From 56aed828cd5ac61c3d321ea445f3e875d7b030c7 Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Thu, 6 Mar 2025 15:49:20 +0300 Subject: [PATCH 01/19] New version of generator and openapi --- client/.openapi-generator-ignore | 4 - client/.openapi-generator/FILES | 95 +- client/.openapi-generator/VERSION | 2 +- client/generator-templates/JSON.mustache | 809 +++--- client/generator-templates/modelEnum.mustache | 13 - client/generator-templates/pojo.mustache | 870 +++--- .../documentreader/webclient/ApiCallback.java | 8 +- .../documentreader/webclient/ApiClient.java | 414 ++- .../webclient/ApiException.java | 87 +- .../documentreader/webclient/ApiResponse.java | 29 +- .../webclient/Configuration.java | 12 +- .../webclient/GzipRequestInterceptor.java | 4 +- .../regula/documentreader/webclient/JSON.java | 1958 +++++++------ .../regula/documentreader/webclient/Pair.java | 12 +- .../webclient/ProgressRequestBody.java | 4 +- .../webclient/ProgressResponseBody.java | 4 +- .../webclient/ServerConfiguration.java | 21 +- .../webclient/ServerVariable.java | 15 + .../documentreader/webclient/StringUtil.java | 8 +- .../webclient/api/DefaultApi.java | 168 -- .../webclient/api/HealthcheckApi.java | 155 +- .../webclient/api/ProcessApi.java | 65 +- .../webclient/api/TransactionApi.java | 315 +- .../webclient/auth/ApiKeyAuth.java | 18 +- .../webclient/auth/Authentication.java | 18 +- .../webclient/auth/HttpBasicAuth.java | 14 +- .../webclient/auth/HttpBearerAuth.java | 37 +- .../model/AbstractOpenApiSchema.java | 144 + .../webclient/model/AreaArray.java | 215 +- .../webclient/model/AreaContainer.java | 190 +- .../webclient/model/AuthParams.java | 210 +- .../model/AuthenticityCheckList.java | 173 +- .../model/AuthenticityCheckResult.java | 135 - .../model/AuthenticityCheckResultItem.java | 177 +- .../AuthenticityCheckResultListInner.java | 423 +++ .../webclient/model/AuthenticityResult.java | 147 +- .../model/AuthenticityResultType.java | 120 +- .../webclient/model/AvailableSource.java | 103 - .../webclient/model/BarCodeModuleType.java | 83 + .../model/BarcodeTextDataResult.java | 84 - .../webclient/model/BarcodeType.java | 133 + .../webclient/model/BcPDF417INFO.java | 186 +- .../webclient/model/BcROIDETECT.java | 162 +- .../webclient/model/BinaryData.java | 2557 +++++++++++++++++ .../webclient/model/ByteArrayResult.java | 139 +- .../webclient/model/CheckDiagnose.java | 309 +- .../webclient/model/CheckResult.java | 64 +- .../webclient/model/ChosenDocumentType.java | 317 +- .../model/ChosenDocumentTypeResult.java | 148 +- .../model/ContainerListListInner.java | 1248 ++++++++ .../webclient/model/Critical.java | 61 +- .../model/CrossSourceValueComparison.java | 168 +- .../webclient/model/DataModule.java | 177 +- .../webclient/model/DetailsOptical.java | 267 +- .../webclient/model/DetailsRFID.java | 226 +- .../webclient/model/DeviceInfo.java | 182 +- .../webclient/model/DocBarCodeInfo.java | 141 +- .../model/DocBarCodeInfoFieldsList.java | 164 +- .../model/DocVisualExtendedField.java | 423 ++- .../model/DocVisualExtendedFieldRect.java | 228 ++ .../model/DocVisualExtendedFieldRfid.java | 320 +++ ...ocVisualExtendedInfoPArrayFieldsInner.java | 281 ++ .../model/DocumentBinaryInfoResult.java | 208 ++ .../webclient/model/DocumentFormat.java | 87 +- .../webclient/model/DocumentImage.java | 153 +- .../webclient/model/DocumentImageResult.java | 140 +- .../webclient/model/DocumentPosition.java | 396 ++- .../model/DocumentPositionResult.java | 141 +- .../webclient/model/DocumentType.java | 518 ++-- .../model/DocumentTypeRecognitionResult.java | 64 +- .../model/DocumentTypesCandidates.java | 161 +- .../model/DocumentTypesCandidatesList.java | 162 +- .../model/DocumentTypesCandidatesResult.java | 142 +- .../webclient/model/DocumentsDatabase.java | 168 +- .../webclient/model/EncryptedRCLResult.java | 139 +- .../webclient/model/ErrorCoordinates.java | 273 ++ .../model/ExtendedRfidTextField.java | 221 -- .../webclient/model/ExtendedTextField.java | 168 -- .../model/ExtendedVisualTextField.java | 194 -- .../webclient/model/FDSIDList.java | 312 +- .../webclient/model/FaceApi.java | 208 +- .../webclient/model/FaceApiSearch.java | 149 +- .../webclient/model/FaceDetection.java | 341 +++ .../webclient/model/FaceDetectionResult.java | 206 ++ .../webclient/model/FaceItem.java | 444 +++ .../webclient/model/FiberResult.java | 229 +- .../webclient/model/FieldItem.java | 345 +++ .../webclient/model/FieldSource.java | 24 - .../model/GetTransactionsByTagResponse.java | 145 +- .../webclient/model/GraphicField.java | 263 +- .../webclient/model/GraphicFieldRect.java | 209 ++ .../webclient/model/GraphicFieldRfid.java | 303 ++ .../webclient/model/GraphicFieldType.java | 113 +- .../webclient/model/GraphicFieldsList.java | 85 - .../GraphicFieldsListPArrayFieldsInner.java | 267 ++ .../webclient/model/GraphicsResult.java | 147 +- .../webclient/model/Healthcheck.java | 279 +- .../model/HealthcheckDocumentsDatabase.java | 178 +- .../webclient/model/IdentResult.java | 186 +- .../webclient/model/ImageData.java | 153 +- .../webclient/model/ImageQA.java | 209 +- .../webclient/model/ImageQualityCheck.java | 214 +- .../model/ImageQualityCheckList.java | 202 +- .../model/ImageQualityCheckType.java | 74 +- .../webclient/model/ImageQualityResult.java | 141 +- .../webclient/model/ImageTransactionData.java | 126 +- .../webclient/model/Images.java | 250 +- .../model/ImagesAvailableSource.java | 149 +- .../webclient/model/ImagesField.java | 215 +- .../webclient/model/ImagesFieldValue.java | 223 +- .../webclient/model/ImagesResult.java | 141 +- .../webclient/model/InData.java | 154 +- .../webclient/model/InDataRfidSession.java | 79 - .../InDataTransactionImagesFieldValue.java | 159 +- .../webclient/model/InDataVideo.java | 138 +- .../webclient/model/InlineResponse200.java | 158 - .../webclient/model/InlineResponse2001.java | 306 -- .../webclient/model/InputBarcodeType.java | 98 +- .../model/InputImageQualityChecks.java | 74 +- .../documentreader/webclient/model/LCID.java | 399 +-- .../model/LexicalAnalysisResult.java | 142 +- .../webclient/model/LicenseResult.java | 139 +- .../documentreader/webclient/model/Light.java | 187 +- .../model/ListTransactionsByTagResponse.java | 158 +- .../webclient/model/ListVerifiedFields.java | 224 +- .../webclient/model/LivenessParams.java | 140 +- .../webclient/model/LogLevel.java | 67 +- .../webclient/model/MRZDetectorResult.java | 208 ++ .../webclient/model/MRZFormat.java | 69 +- .../webclient/model/MRZPositionResult.java | 206 ++ .../webclient/model/MRZRowsItem.java | 283 ++ .../webclient/model/MRZTestQuality.java | 496 ++++ .../webclient/model/MRZTestQualityResult.java | 208 ++ .../webclient/model/MeasureSystem.java | 62 +- .../webclient/model/MrzDetectModeEnum.java | 63 +- .../webclient/model/MrzOcrExtendedResult.java | 84 - .../webclient/model/MrzPosition.java | 629 ++++ .../model/OCRSecurityTextResult.java | 255 +- .../webclient/model/OneCandidate.java | 317 +- .../webclient/model/OriginalSymbol.java | 154 +- .../webclient/model/OutData.java | 160 +- .../OutDataTransactionImagesFieldValue.java | 174 +- .../webclient/model/PArrayField.java | 240 +- .../webclient/model/ParsingErrorCodes.java | 446 +++ .../model/ParsingNotificationCodes.java | 505 ++-- .../webclient/model/PerDocumentConfig.java | 141 +- .../webclient/model/PhotoIdentResult.java | 263 +- .../documentreader/webclient/model/Point.java | 143 +- .../webclient/model/PointArray.java | 154 +- .../webclient/model/PointsContainer.java | 160 +- .../webclient/model/ProcessParams.java | 775 +++-- .../webclient/model/ProcessParamsRfid.java | 138 +- .../webclient/model/ProcessRequest.java | 350 ++- .../webclient/model/ProcessRequestImage.java | 146 +- .../webclient/model/ProcessResponse.java | 240 +- .../webclient/model/ProcessSystemInfo.java | 142 +- .../webclient/model/ProcessingStatus.java | 64 +- .../webclient/model/RFIDErrorCodes.java | 410 +++ .../webclient/model/RFIDPKDResourceType.java | 92 + .../webclient/model/RawImageContainer.java | 106 - .../model/RawImageContainerList.java | 163 +- .../webclient/model/RawImageResult.java | 80 - .../webclient/model/RectangleCoordinates.java | 158 +- .../webclient/model/Result.java | 138 +- .../webclient/model/ResultItem.java | 209 +- .../webclient/model/ResultMRZDetector.java | 331 +++ .../webclient/model/RfidAChip.java | 88 + .../model/RfidAccessControlInfo.java | 367 +++ .../model/RfidAccessControlProcedureType.java | 95 + .../webclient/model/RfidAccessKey.java | 305 ++ .../webclient/model/RfidApplication.java | 431 +++ .../webclient/model/RfidApplicationType.java | 101 + .../webclient/model/RfidAttributeData.java | 242 ++ .../webclient/model/RfidAttributeName.java | 240 ++ .../RfidAuthenticationProcedureType.java | 84 + .../webclient/model/RfidBaudRate.java | 86 + .../model/RfidCardPropertiesExt.java | 631 ++++ .../webclient/model/RfidCertificateEx.java | 645 +++++ .../model/RfidCertificateOrigin.java | 98 + .../webclient/model/RfidCertificateType.java | 95 + .../webclient/model/RfidDG1.java | 726 +++++ .../webclient/model/RfidDataFile.java | 573 ++++ .../webclient/model/RfidDataFileType.java | 254 ++ .../webclient/model/RfidDataGroupTypeTag.java | 237 ++ .../model/RfidDistinguishedName.java | 292 ++ .../webclient/model/RfidLocation.java | 67 +- .../webclient/model/RfidOrigin.java | 161 +- .../webclient/model/RfidPasswordType.java | 92 + .../webclient/model/RfidPkiExtension.java | 245 ++ .../webclient/model/RfidSecurityObject.java | 371 +++ .../webclient/model/RfidSessionData.java | 763 +++++ .../webclient/model/RfidSignerInfoEx.java | 621 ++++ .../webclient/model/RfidTerminal.java | 266 ++ .../webclient/model/RfidTerminalType.java | 86 + .../webclient/model/RfidTextDataResult.java | 83 - .../webclient/model/RfidType.java | 79 + .../webclient/model/RfidValidity.java | 233 ++ .../webclient/model/Scenario.java | 95 +- .../model/SecurityFeatureResult.java | 192 +- .../webclient/model/SecurityFeatureType.java | 167 +- .../webclient/model/Source.java | 70 +- .../webclient/model/SourceValidity.java | 154 +- .../webclient/model/Status.java | 218 +- .../webclient/model/StatusResult.java | 139 +- .../webclient/model/StringItem.java | 739 +++++ .../model/StringRecognitionResult.java | 282 +- .../webclient/model/Symbol.java | 219 ++ .../webclient/model/SymbolCandidate.java | 202 +- .../webclient/model/SymbolEstimationItem.java | 714 +++++ .../model/SymbolRecognitionResult.java | 287 +- .../webclient/model/TDocBinaryInfo.java | 202 ++ .../documentreader/webclient/model/Text.java | 268 +- .../webclient/model/TextAvailableSource.java | 160 +- .../webclient/model/TextDataResult.java | 152 +- .../webclient/model/TextField.java | 346 ++- .../webclient/model/TextFieldType.java | 1342 ++++----- .../webclient/model/TextFieldValue.java | 299 +- .../webclient/model/TextPostProcessing.java | 66 +- .../webclient/model/TextResult.java | 141 +- .../webclient/model/TransactionImage.java | 126 +- .../model/TransactionImagesFieldValue.java | 183 -- .../webclient/model/TransactionInfo.java | 219 +- .../model/TransactionProcessGetResponse.java | 165 +- .../model/TransactionProcessRequest.java | 245 +- .../model/TransactionProcessResponse.java | 218 ++ .../model/TransactionProcessResult.java | 296 ++ .../webclient/model/TrfFtBytes.java | 300 ++ .../webclient/model/TrfFtBytesType.java | 261 ++ .../webclient/model/TrfFtString.java | 306 ++ .../webclient/model/TrfFtStringStatus.java | 267 ++ .../webclient/model/TrfFtStringType.java | 261 ++ .../webclient/model/VerificationResult.java | 68 +- .../webclient/model/VerifiedFieldMap.java | 268 +- .../webclient/model/Visibility.java | 68 +- .../model/VisualOcrExtendedResult.java | 84 - .../webclient/api/DocumentReaderApi.java | 21 +- .../webclient/model/ContainerList.java | 92 - .../model/DocVisualExtendedInfo.java | 92 - .../changed/AuthenticityCheckResult.java | 307 ++ .../model/changed/ContainerList.java | 243 ++ .../model/changed/DocVisualExtendedInfo.java | 245 ++ .../model/changed/GraphicFieldsList.java | 244 ++ .../model/ext/ContainerListRequest.java | 35 - .../model/ext/EncryptedRCLRequest.java | 16 +- .../webclient/model/ext/Images.java | 44 +- .../webclient/model/ext/ImagesField.java | 42 +- .../model/ext/ProcessRequestImage.java | 59 +- .../model/ext/ProcessRequestLicense.java | 16 +- .../model/ext/RecognitionParams.java | 976 ++----- .../model/ext/RecognitionRequest.java | 163 +- .../model/ext/RecognitionResponse.java | 18 +- .../webclient/model/ext/Text.java | 132 +- .../webclient/model/ext/TextField.java | 197 +- .../model/ext/authenticity/Authenticity.java | 22 +- .../ext/authenticity/AuthenticityResult.java | 2 +- .../model/ext/authenticity/FiberChecks.java | 2 +- .../model/ext/authenticity/IdentChecks.java | 5 +- .../ext/authenticity/ImageIdentChecks.java | 2 +- .../authenticity/OCRSecurityTextChecks.java | 2 +- .../authenticity/SecurityFeatureChecks.java | 5 +- .../webclient/encryptedRCL/Example.java | 4 - java-generator-config.json | 12 +- update-models.sh | 31 +- 263 files changed, 48576 insertions(+), 9612 deletions(-) mode change 100755 => 100644 client/generator-templates/JSON.mustache delete mode 100755 client/generator-templates/modelEnum.mustache mode change 100755 => 100644 client/generator-templates/pojo.mustache delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/api/DefaultApi.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/AbstractOpenApiSchema.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultListInner.java delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/model/AvailableSource.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/BarCodeModuleType.java delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/model/BarcodeTextDataResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/BarcodeType.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/BinaryData.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentTypeResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/CrossSourceValueComparison.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DetailsOptical.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DetailsRFID.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImageResult.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocumentType.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypeRecognitionResult.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesList.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/model/ExtendedRfidTextField.java delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/model/ExtendedTextField.java delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/model/ExtendedVisualTextField.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/FDSIDList.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetection.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/FaceItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/FieldItem.java delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/model/FieldSource.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ImageData.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/Images.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ImagesAvailableSource.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ImagesField.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ImagesFieldValue.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/InDataRfidSession.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/InlineResponse200.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/InlineResponse2001.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/LCID.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/LexicalAnalysisResult.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/Light.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFields.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/MRZDetectorResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/MRZPositionResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/MRZRowsItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQuality.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityResult.java delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/model/MrzOcrExtendedResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/MrzPosition.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/OriginalSymbol.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ParsingErrorCodes.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequestImage.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ProcessSystemInfo.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RFIDErrorCodes.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RFIDPKDResourceType.java delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainer.java delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/model/RawImageResult.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/Result.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidAChip.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlProcedureType.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessKey.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplication.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplicationType.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeData.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeName.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidAuthenticationProcedureType.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidBaudRate.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidCardPropertiesExt.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateOrigin.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateType.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidDG1.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFileType.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidDistinguishedName.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidLocation.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidOrigin.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidPasswordType.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidPkiExtension.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminal.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminalType.java delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/model/RfidTextDataResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidType.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidValidity.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/Scenario.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/Source.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/SourceValidity.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/Status.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/StatusResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/StringItem.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/StringRecognitionResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/Symbol.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/SymbolCandidate.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/SymbolRecognitionResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/Text.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TextAvailableSource.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TextField.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldValue.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TransactionImagesFieldValue.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TransactionInfo.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponse.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytesType.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringStatus.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringType.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java delete mode 100755 client/src/main/generated/com/regula/documentreader/webclient/model/VisualOcrExtendedResult.java delete mode 100755 client/src/main/java/com/regula/documentreader/webclient/model/ContainerList.java delete mode 100755 client/src/main/java/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java create mode 100644 client/src/main/java/com/regula/documentreader/webclient/model/changed/AuthenticityCheckResult.java create mode 100644 client/src/main/java/com/regula/documentreader/webclient/model/changed/ContainerList.java create mode 100644 client/src/main/java/com/regula/documentreader/webclient/model/changed/DocVisualExtendedInfo.java create mode 100644 client/src/main/java/com/regula/documentreader/webclient/model/changed/GraphicFieldsList.java delete mode 100644 client/src/main/java/com/regula/documentreader/webclient/model/ext/ContainerListRequest.java diff --git a/client/.openapi-generator-ignore b/client/.openapi-generator-ignore index 74d6387e..49681155 100755 --- a/client/.openapi-generator-ignore +++ b/client/.openapi-generator-ignore @@ -16,7 +16,3 @@ src/test/** src/main/AndroidManifest.xml # classes, modified after generation -**/ContainerList.java -**/DocVisualExtendedInfo.java -**/*AllOf.java -**/AuthenticityCheckResult.java diff --git a/client/.openapi-generator/FILES b/client/.openapi-generator/FILES index 2dd82bea..32140e33 100755 --- a/client/.openapi-generator/FILES +++ b/client/.openapi-generator/FILES @@ -1,3 +1,4 @@ +.github/workflows/maven.yml src/main/generated/com/regula/documentreader/webclient/ApiCallback.java src/main/generated/com/regula/documentreader/webclient/ApiClient.java src/main/generated/com/regula/documentreader/webclient/ApiException.java @@ -18,17 +19,27 @@ src/main/generated/com/regula/documentreader/webclient/auth/ApiKeyAuth.java src/main/generated/com/regula/documentreader/webclient/auth/Authentication.java src/main/generated/com/regula/documentreader/webclient/auth/HttpBasicAuth.java src/main/generated/com/regula/documentreader/webclient/auth/HttpBearerAuth.java +src/main/generated/com/regula/documentreader/webclient/model/AbstractOpenApiSchema.java src/main/generated/com/regula/documentreader/webclient/model/AreaArray.java src/main/generated/com/regula/documentreader/webclient/model/AreaContainer.java src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java +src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultListInner.java src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java +src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResultType.java +src/main/generated/com/regula/documentreader/webclient/model/BarCodeModuleType.java +src/main/generated/com/regula/documentreader/webclient/model/BarcodeType.java src/main/generated/com/regula/documentreader/webclient/model/BcPDF417INFO.java src/main/generated/com/regula/documentreader/webclient/model/BcROIDETECT.java +src/main/generated/com/regula/documentreader/webclient/model/BinaryData.java src/main/generated/com/regula/documentreader/webclient/model/ByteArrayResult.java +src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java +src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentType.java src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentTypeResult.java +src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java +src/main/generated/com/regula/documentreader/webclient/model/Critical.java src/main/generated/com/regula/documentreader/webclient/model/CrossSourceValueComparison.java src/main/generated/com/regula/documentreader/webclient/model/DataModule.java src/main/generated/com/regula/documentreader/webclient/model/DetailsOptical.java @@ -37,22 +48,37 @@ src/main/generated/com/regula/documentreader/webclient/model/DeviceInfo.java src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfo.java src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoFieldsList.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java +src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java +src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java +src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java +src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java +src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java src/main/generated/com/regula/documentreader/webclient/model/DocumentImage.java src/main/generated/com/regula/documentreader/webclient/model/DocumentImageResult.java src/main/generated/com/regula/documentreader/webclient/model/DocumentPosition.java src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionResult.java +src/main/generated/com/regula/documentreader/webclient/model/DocumentType.java +src/main/generated/com/regula/documentreader/webclient/model/DocumentTypeRecognitionResult.java src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidates.java src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesList.java src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesResult.java src/main/generated/com/regula/documentreader/webclient/model/DocumentsDatabase.java src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java +src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java src/main/generated/com/regula/documentreader/webclient/model/FDSIDList.java src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java src/main/generated/com/regula/documentreader/webclient/model/FaceApiSearch.java +src/main/generated/com/regula/documentreader/webclient/model/FaceDetection.java +src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionResult.java +src/main/generated/com/regula/documentreader/webclient/model/FaceItem.java src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java +src/main/generated/com/regula/documentreader/webclient/model/FieldItem.java src/main/generated/com/regula/documentreader/webclient/model/GetTransactionsByTagResponse.java src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java -src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java +src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java +src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java +src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java +src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java src/main/generated/com/regula/documentreader/webclient/model/Healthcheck.java src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java @@ -61,6 +87,7 @@ src/main/generated/com/regula/documentreader/webclient/model/ImageData.java src/main/generated/com/regula/documentreader/webclient/model/ImageQA.java src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheck.java src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckList.java +src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckType.java src/main/generated/com/regula/documentreader/webclient/model/ImageQualityResult.java src/main/generated/com/regula/documentreader/webclient/model/ImageTransactionData.java src/main/generated/com/regula/documentreader/webclient/model/Images.java @@ -71,22 +98,32 @@ src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java src/main/generated/com/regula/documentreader/webclient/model/InData.java src/main/generated/com/regula/documentreader/webclient/model/InDataTransactionImagesFieldValue.java src/main/generated/com/regula/documentreader/webclient/model/InDataVideo.java -src/main/generated/com/regula/documentreader/webclient/model/InlineResponse200.java -src/main/generated/com/regula/documentreader/webclient/model/InlineResponse2001.java src/main/generated/com/regula/documentreader/webclient/model/InputBarcodeType.java src/main/generated/com/regula/documentreader/webclient/model/InputImageQualityChecks.java +src/main/generated/com/regula/documentreader/webclient/model/LCID.java src/main/generated/com/regula/documentreader/webclient/model/LexicalAnalysisResult.java src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java +src/main/generated/com/regula/documentreader/webclient/model/Light.java src/main/generated/com/regula/documentreader/webclient/model/ListTransactionsByTagResponse.java src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFields.java src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java +src/main/generated/com/regula/documentreader/webclient/model/LogLevel.java +src/main/generated/com/regula/documentreader/webclient/model/MRZDetectorResult.java +src/main/generated/com/regula/documentreader/webclient/model/MRZFormat.java +src/main/generated/com/regula/documentreader/webclient/model/MRZPositionResult.java +src/main/generated/com/regula/documentreader/webclient/model/MRZRowsItem.java +src/main/generated/com/regula/documentreader/webclient/model/MRZTestQuality.java +src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityResult.java +src/main/generated/com/regula/documentreader/webclient/model/MeasureSystem.java src/main/generated/com/regula/documentreader/webclient/model/MrzDetectModeEnum.java +src/main/generated/com/regula/documentreader/webclient/model/MrzPosition.java src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextResult.java src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java src/main/generated/com/regula/documentreader/webclient/model/OriginalSymbol.java src/main/generated/com/regula/documentreader/webclient/model/OutData.java src/main/generated/com/regula/documentreader/webclient/model/OutDataTransactionImagesFieldValue.java src/main/generated/com/regula/documentreader/webclient/model/PArrayField.java +src/main/generated/com/regula/documentreader/webclient/model/ParsingErrorCodes.java src/main/generated/com/regula/documentreader/webclient/model/ParsingNotificationCodes.java src/main/generated/com/regula/documentreader/webclient/model/PerDocumentConfig.java src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentResult.java @@ -99,25 +136,77 @@ src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java src/main/generated/com/regula/documentreader/webclient/model/ProcessRequestImage.java src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java src/main/generated/com/regula/documentreader/webclient/model/ProcessSystemInfo.java +src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.java +src/main/generated/com/regula/documentreader/webclient/model/RFIDErrorCodes.java +src/main/generated/com/regula/documentreader/webclient/model/RFIDPKDResourceType.java src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerList.java src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java +src/main/generated/com/regula/documentreader/webclient/model/Result.java src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java +src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java +src/main/generated/com/regula/documentreader/webclient/model/RfidAChip.java +src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java +src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlProcedureType.java +src/main/generated/com/regula/documentreader/webclient/model/RfidAccessKey.java +src/main/generated/com/regula/documentreader/webclient/model/RfidApplication.java +src/main/generated/com/regula/documentreader/webclient/model/RfidApplicationType.java +src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeData.java +src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeName.java +src/main/generated/com/regula/documentreader/webclient/model/RfidAuthenticationProcedureType.java +src/main/generated/com/regula/documentreader/webclient/model/RfidBaudRate.java +src/main/generated/com/regula/documentreader/webclient/model/RfidCardPropertiesExt.java +src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java +src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateOrigin.java +src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateType.java +src/main/generated/com/regula/documentreader/webclient/model/RfidDG1.java +src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java +src/main/generated/com/regula/documentreader/webclient/model/RfidDataFileType.java +src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java +src/main/generated/com/regula/documentreader/webclient/model/RfidDistinguishedName.java +src/main/generated/com/regula/documentreader/webclient/model/RfidLocation.java src/main/generated/com/regula/documentreader/webclient/model/RfidOrigin.java +src/main/generated/com/regula/documentreader/webclient/model/RfidPasswordType.java +src/main/generated/com/regula/documentreader/webclient/model/RfidPkiExtension.java +src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java +src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java +src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java +src/main/generated/com/regula/documentreader/webclient/model/RfidTerminal.java +src/main/generated/com/regula/documentreader/webclient/model/RfidTerminalType.java +src/main/generated/com/regula/documentreader/webclient/model/RfidType.java +src/main/generated/com/regula/documentreader/webclient/model/RfidValidity.java +src/main/generated/com/regula/documentreader/webclient/model/Scenario.java src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureResult.java +src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureType.java +src/main/generated/com/regula/documentreader/webclient/model/Source.java src/main/generated/com/regula/documentreader/webclient/model/SourceValidity.java src/main/generated/com/regula/documentreader/webclient/model/Status.java src/main/generated/com/regula/documentreader/webclient/model/StatusResult.java +src/main/generated/com/regula/documentreader/webclient/model/StringItem.java src/main/generated/com/regula/documentreader/webclient/model/StringRecognitionResult.java +src/main/generated/com/regula/documentreader/webclient/model/Symbol.java src/main/generated/com/regula/documentreader/webclient/model/SymbolCandidate.java +src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java src/main/generated/com/regula/documentreader/webclient/model/SymbolRecognitionResult.java +src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java src/main/generated/com/regula/documentreader/webclient/model/Text.java src/main/generated/com/regula/documentreader/webclient/model/TextAvailableSource.java src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java src/main/generated/com/regula/documentreader/webclient/model/TextField.java +src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java src/main/generated/com/regula/documentreader/webclient/model/TextFieldValue.java +src/main/generated/com/regula/documentreader/webclient/model/TextPostProcessing.java src/main/generated/com/regula/documentreader/webclient/model/TextResult.java src/main/generated/com/regula/documentreader/webclient/model/TransactionImage.java src/main/generated/com/regula/documentreader/webclient/model/TransactionInfo.java src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessGetResponse.java src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java +src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponse.java +src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResult.java +src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java +src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytesType.java +src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java +src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringStatus.java +src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringType.java +src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java +src/main/generated/com/regula/documentreader/webclient/model/Visibility.java diff --git a/client/.openapi-generator/VERSION b/client/.openapi-generator/VERSION index 1a487e1a..5f84a81d 100755 --- a/client/.openapi-generator/VERSION +++ b/client/.openapi-generator/VERSION @@ -1 +1 @@ -5.0.0-beta2 \ No newline at end of file +7.12.0 diff --git a/client/generator-templates/JSON.mustache b/client/generator-templates/JSON.mustache old mode 100755 new mode 100644 index 345cba05..eee7773c --- a/client/generator-templates/JSON.mustache +++ b/client/generator-templates/JSON.mustache @@ -13,21 +13,13 @@ import com.google.gson.JsonElement; import io.gsonfire.GsonFireBuilder; import io.gsonfire.TypeSelector; {{#joda}} - import org.joda.time.DateTime; - import org.joda.time.LocalDate; - import org.joda.time.format.DateTimeFormatter; - import org.joda.time.format.DateTimeFormatterBuilder; - import org.joda.time.format.ISODateTimeFormat; +import org.joda.time.DateTime; +import org.joda.time.LocalDate; +import org.joda.time.format.DateTimeFormatter; +import org.joda.time.format.DateTimeFormatterBuilder; +import org.joda.time.format.ISODateTimeFormat; {{/joda}} -{{#threetenbp}} - import org.threeten.bp.LocalDate; - import org.threeten.bp.OffsetDateTime; - import org.threeten.bp.format.DateTimeFormatter; -{{/threetenbp}} - -{{#models.0}} - import {{modelPackage}}.*; -{{/models.0}} + import okio.ByteString; import java.io.IOException; @@ -36,538 +28,509 @@ import java.lang.reflect.Type; import java.text.DateFormat; import java.text.ParseException; import java.text.ParsePosition; -{{#java8}} - import java.time.LocalDate; - import java.time.OffsetDateTime; - import java.time.format.DateTimeFormatter; -{{/java8}} +{{#jsr310}} +import java.time.LocalDate; +import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; +{{/jsr310}} import java.util.Date; import java.util.Locale; import java.util.Map; import java.util.HashMap; +/* + * A JSON utility class + * + * NOTE: in the future, this class may be converted to static, which may break + * backward-compatibility + */ public class JSON { -private Gson gson; -private boolean isLenientOnJson = false; -private DateTypeAdapter dateTypeAdapter = new DateTypeAdapter(); -private SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter(); -{{#joda}} - private DateTimeTypeAdapter dateTimeTypeAdapter = new DateTimeTypeAdapter(); - private LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter(); -{{/joda}} -{{#jsr310}} - private OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter(); - private LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter(); -{{/jsr310}} -private ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter(); - -{{#models}} - {{#model}}{{#discriminator}} - public static Map childOf{{classname}}ByDiscriminatorValue = new HashMap(); - static { - {{#mappedModels}} - childOf{{classname}}ByDiscriminatorValue.put("{{mappingName}}", {{modelName}}.class); - {{/mappedModels}} - childOf{{classname}}ByDiscriminatorValue.put("{{name}}", {{classname}}.class); - } - {{/discriminator}}{{/model}} -{{/models}} - -public static GsonBuilder createGson() { -GsonFireBuilder fireBuilder = new GsonFireBuilder() -{{#models}} - {{#model}} + private static Gson gson; + private static boolean isLenientOnJson = false; + private static DateTypeAdapter dateTypeAdapter = new DateTypeAdapter(); + private static SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter(); + {{#joda}} + private static DateTimeTypeAdapter dateTimeTypeAdapter = new DateTimeTypeAdapter(); + private static LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter(); + {{/joda}} + {{#jsr310}} + private static OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter(); + private static LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter(); + {{/jsr310}} + private static ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter(); + + @SuppressWarnings("unchecked") + public static GsonBuilder createGson() { + GsonFireBuilder fireBuilder = new GsonFireBuilder() + {{#models}} + {{#model}} {{#discriminator}} - .registerTypeSelector({{classname}}.class, new TypeSelector() { - @Override - public Class getClassForElement(JsonElement readElement) { - return getClassByDiscriminator(childOf{{classname}}ByDiscriminatorValue, - getDiscriminatorValue(readElement, "{{{propertyBaseName}}}")); - } - }) + .registerTypeSelector({{modelPackage}}.{{classname}}.class, new TypeSelector<{{modelPackage}}.{{classname}}>() { + @Override + public Class getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + {{#mappedModels}} + classByDiscriminatorValue.put("{{mappingName}}"{{^discriminatorCaseSensitive}}.toUpperCase(Locale.ROOT){{/discriminatorCaseSensitive}}, {{modelPackage}}.{{modelName}}.class); + {{/mappedModels}} + classByDiscriminatorValue.put("{{name}}"{{^discriminatorCaseSensitive}}.toUpperCase(Locale.ROOT){{/discriminatorCaseSensitive}}, {{modelPackage}}.{{classname}}.class); + return getClassByDiscriminator(classByDiscriminatorValue, + getDiscriminatorValue(readElement, "{{{propertyBaseName}}}")); + } + }) {{/discriminator}} - {{/model}} -{{/models}} -; - -// rewrite, to support default mappings -fireBuilder.registerTypeSelector(ResultItem.class, new TypeSelector() { - @Override - public Class getClassForElement(JsonElement readElement) { - String result_type = getDiscriminatorValue(readElement, "result_type"); - Class clazz = childOfResultItemByDiscriminatorValue.get(result_type); - if (clazz == null) { - clazz = RawResultItem.class; + {{/model}} + {{/models}} + ; + GsonBuilder builder = fireBuilder.createGsonBuilder(); + {{#disableHtmlEscaping}} + builder.disableHtmlEscaping(); + {{/disableHtmlEscaping}} + return builder; } - return clazz; - } -}); -fireBuilder.registerTypeSelector(AuthenticityCheckResultItem.class, new TypeSelector() { - @Override - public Class getClassForElement(JsonElement readElement) { - String result_type = getDiscriminatorValue(readElement, "Type"); - Class clazz = childOfAuthenticityCheckResultItemByDiscriminatorValue.get(result_type); - if (clazz == null) { - clazz = RawAuthenticityCheckResultItem.class; - } - return clazz; - } -}); - -GsonBuilder builder = fireBuilder.createGsonBuilder(); -{{#disableHtmlEscaping}} - builder.disableHtmlEscaping(); -{{/disableHtmlEscaping}} -return builder; -} -private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) { -JsonElement element = readElement.getAsJsonObject().get(discriminatorField); -if (null == element) { -throw new IllegalArgumentException("missing discriminator field: <" + discriminatorField + ">"); -} -return element.getAsString(); -} + private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) { + JsonElement element = readElement.getAsJsonObject().get(discriminatorField); + if (null == element) { + throw new IllegalArgumentException("missing discriminator field: <" + discriminatorField + ">"); + } + return element.getAsString(); + } -/** -* Returns the Java class that implements the OpenAPI schema for the specified discriminator value. -* -* @param classByDiscriminatorValue The map of discriminator values to Java classes. -* @param discriminatorValue The value of the OpenAPI discriminator in the input data. -* @return The Java class that implements the OpenAPI schema -*/ -private static Class getClassByDiscriminator(Map classByDiscriminatorValue, String discriminatorValue) { -Class clazz = (Class) classByDiscriminatorValue.get(discriminatorValue{{^discriminatorCaseSensitive}}.toUpperCase(Locale.ROOT){{/discriminatorCaseSensitive}}); -if (null == clazz) { -throw new IllegalArgumentException("cannot determine model class of name: <" + discriminatorValue + ">"); -} -return clazz; -} + /** + * Returns the Java class that implements the OpenAPI schema for the specified discriminator value. + * + * @param classByDiscriminatorValue The map of discriminator values to Java classes. + * @param discriminatorValue The value of the OpenAPI discriminator in the input data. + * @return The Java class that implements the OpenAPI schema + */ + private static Class getClassByDiscriminator(Map classByDiscriminatorValue, String discriminatorValue) { + Class clazz = (Class) classByDiscriminatorValue.get(discriminatorValue{{^discriminatorCaseSensitive}}.toUpperCase(Locale.ROOT){{/discriminatorCaseSensitive}}); + if (null == clazz) { + throw new IllegalArgumentException("cannot determine model class of name: <" + discriminatorValue + ">"); + } + return clazz; + } -public JSON() { -gson = createGson() -.registerTypeAdapter(Date.class, dateTypeAdapter) -.registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter) -{{#joda}} - .registerTypeAdapter(DateTime.class, dateTimeTypeAdapter) - .registerTypeAdapter(LocalDate.class, localDateTypeAdapter) -{{/joda}} -{{#jsr310}} - .registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter) - .registerTypeAdapter(LocalDate.class, localDateTypeAdapter) -{{/jsr310}} -.registerTypeAdapter(byte[].class, byteArrayAdapter) -.create(); -} + static { + GsonBuilder gsonBuilder = createGson(); + gsonBuilder.registerTypeAdapter(Date.class, dateTypeAdapter); + gsonBuilder.registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter); + {{#joda}} + gsonBuilder.registerTypeAdapter(DateTime.class, dateTimeTypeAdapter); + gsonBuilder.registerTypeAdapter(LocalDate.class, localDateTypeAdapter); + {{/joda}} + {{#jsr310}} + gsonBuilder.registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter); + gsonBuilder.registerTypeAdapter(LocalDate.class, localDateTypeAdapter); + {{/jsr310}} + gsonBuilder.registerTypeAdapter(byte[].class, byteArrayAdapter); + {{#models}} + {{#model}} + {{^isEnum}} + {{^hasChildren}} + gsonBuilder.registerTypeAdapterFactory(new {{modelPackage}}.{{{classname}}}.CustomTypeAdapterFactory()); + {{/hasChildren}} + {{/isEnum}} + {{/model}} + {{/models}} + gson = gsonBuilder.create(); + } -/** -* Get Gson. -* -* @return Gson -*/ -public Gson getGson() { -return gson; -} + /** + * Get Gson. + * + * @return Gson + */ + public static Gson getGson() { + return gson; + } -/** -* Set Gson. -* -* @param gson Gson -* @return JSON -*/ -public JSON setGson(Gson gson) { -this.gson = gson; -return this; -} + /** + * Set Gson. + * + * @param gson Gson + */ + public static void setGson(Gson gson) { + JSON.gson = gson; + } -public JSON setLenientOnJson(boolean lenientOnJson) { -isLenientOnJson = lenientOnJson; -return this; -} + public static void setLenientOnJson(boolean lenientOnJson) { + isLenientOnJson = lenientOnJson; + } -/** -* Serialize the given Java object into JSON string. -* -* @param obj Object -* @return String representation of the JSON -*/ -public String serialize(Object obj) { -return gson.toJson(obj); -} + /** + * Serialize the given Java object into JSON string. + * + * @param obj Object + * @return String representation of the JSON + */ + public static String serialize(Object obj) { + return gson.toJson(obj); + } -/** -* Deserialize the given JSON string to Java object. -* -* @param Type - * @param body The JSON string - * @param returnType The type to deserialize into - * @return The deserialized Java object - */ + /** + * Deserialize the given JSON string to Java object. + * + * @param Type + * @param body The JSON string + * @param returnType The type to deserialize into + * @return The deserialized Java object + */ @SuppressWarnings("unchecked") - public T deserialize(String body, Type returnType) { + public static T deserialize(String body, Type returnType) { try { - if (isLenientOnJson) { - JsonReader jsonReader = new JsonReader(new StringReader(body)); - // see https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/stream/JsonReader.html#setLenient(boolean) - jsonReader.setLenient(true); - return gson.fromJson(jsonReader, returnType); - } else { - return gson.fromJson(body, returnType); - } + if (isLenientOnJson) { + JsonReader jsonReader = new JsonReader(new StringReader(body)); + // see https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/stream/JsonReader.html#setLenient(boolean) + jsonReader.setLenient(true); + return gson.fromJson(jsonReader, returnType); + } else { + return gson.fromJson(body, returnType); + } } catch (JsonParseException e) { - // Fallback processing when failed to parse JSON form response body: - // return the response body string directly for the String return type; - if (returnType.equals(String.class)) { - return (T) body; - } else { - throw (e); - } - } + // Fallback processing when failed to parse JSON form response body: + // return the response body string directly for the String return type; + if (returnType.equals(String.class)) { + return (T) body; + } else { + throw (e); + } } + } - /** - * Gson TypeAdapter for Byte Array type - */ - public class ByteArrayAdapter extends TypeAdapter { + /** + * Gson TypeAdapter for Byte Array type + */ + public static class ByteArrayAdapter extends TypeAdapter { @Override public void write(JsonWriter out, byte[] value) throws IOException { - if (value == null) { - out.nullValue(); - } else { - out.value(ByteString.of(value).base64()); - } + if (value == null) { + out.nullValue(); + } else { + out.value(ByteString.of(value).base64()); + } } @Override public byte[] read(JsonReader in) throws IOException { - switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String bytesAsBase64 = in.nextString(); - ByteString byteString = ByteString.decodeBase64(bytesAsBase64); - return byteString.toByteArray(); - } - } + switch (in.peek()) { + case NULL: + in.nextNull(); + return null; + default: + String bytesAsBase64 = in.nextString(); + ByteString byteString = ByteString.decodeBase64(bytesAsBase64); + return byteString.toByteArray(); + } } + } - {{#joda}} - /** - * Gson TypeAdapter for Joda DateTime type - */ - public static class DateTimeTypeAdapter extends TypeAdapter { + {{#joda}} + /** + * Gson TypeAdapter for Joda DateTime type + */ + public static class DateTimeTypeAdapter extends TypeAdapter { - private DateTimeFormatter formatter; + private DateTimeFormatter formatter; - public DateTimeTypeAdapter() { + public DateTimeTypeAdapter() { this(new DateTimeFormatterBuilder() - .append(ISODateTimeFormat.dateTime().getPrinter(), ISODateTimeFormat.dateOptionalTimeParser().getParser()) - .toFormatter()); - } + .append(ISODateTimeFormat.dateTime().getPrinter(), ISODateTimeFormat.dateOptionalTimeParser().getParser()) + .toFormatter()); + } - public DateTimeTypeAdapter(DateTimeFormatter formatter) { + public DateTimeTypeAdapter(DateTimeFormatter formatter) { this.formatter = formatter; - } + } - public void setFormat(DateTimeFormatter dateFormat) { + public void setFormat(DateTimeFormatter dateFormat) { this.formatter = dateFormat; - } + } - @Override - public void write(JsonWriter out, DateTime date) throws IOException { + @Override + public void write(JsonWriter out, DateTime date) throws IOException { if (date == null) { - out.nullValue(); + out.nullValue(); } else { - out.value(formatter.print(date)); - } + out.value(formatter.print(date)); } + } - @Override - public DateTime read(JsonReader in) throws IOException { + @Override + public DateTime read(JsonReader in) throws IOException { switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - return formatter.parseDateTime(date); - } - } + case NULL: + in.nextNull(); + return null; + default: + String date = in.nextString(); + return formatter.parseDateTime(date); } + } + } - /** - * Gson TypeAdapter for Joda LocalDate type - */ - public class LocalDateTypeAdapter extends TypeAdapter { + /** + * Gson TypeAdapter for Joda LocalDate type + */ + public static class LocalDateTypeAdapter extends TypeAdapter { - private DateTimeFormatter formatter; + private DateTimeFormatter formatter; - public LocalDateTypeAdapter() { + public LocalDateTypeAdapter() { this(ISODateTimeFormat.date()); - } + } - public LocalDateTypeAdapter(DateTimeFormatter formatter) { + public LocalDateTypeAdapter(DateTimeFormatter formatter) { this.formatter = formatter; - } + } - public void setFormat(DateTimeFormatter dateFormat) { + public void setFormat(DateTimeFormatter dateFormat) { this.formatter = dateFormat; - } + } - @Override - public void write(JsonWriter out, LocalDate date) throws IOException { + @Override + public void write(JsonWriter out, LocalDate date) throws IOException { if (date == null) { - out.nullValue(); + out.nullValue(); } else { - out.value(formatter.print(date)); - } + out.value(formatter.print(date)); } + } - @Override - public LocalDate read(JsonReader in) throws IOException { + @Override + public LocalDate read(JsonReader in) throws IOException { switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - return formatter.parseLocalDate(date); - } - } + case NULL: + in.nextNull(); + return null; + default: + String date = in.nextString(); + return formatter.parseLocalDate(date); } + } + } - public JSON setDateTimeFormat(DateTimeFormatter dateFormat) { - dateTimeTypeAdapter.setFormat(dateFormat); - return this; - } + public static void setDateTimeFormat(DateTimeFormatter dateFormat) { + dateTimeTypeAdapter.setFormat(dateFormat); + } - public JSON setLocalDateFormat(DateTimeFormatter dateFormat) { - localDateTypeAdapter.setFormat(dateFormat); - return this; - } + public static void setLocalDateFormat(DateTimeFormatter dateFormat) { + localDateTypeAdapter.setFormat(dateFormat); + } - {{/joda}} - {{#jsr310}} - /** - * Gson TypeAdapter for JSR310 OffsetDateTime type - */ - public static class OffsetDateTimeTypeAdapter extends TypeAdapter { + {{/joda}} + {{#jsr310}} + /** + * Gson TypeAdapter for JSR310 OffsetDateTime type + */ + public static class OffsetDateTimeTypeAdapter extends TypeAdapter { - private DateTimeFormatter formatter; + private DateTimeFormatter formatter; - public OffsetDateTimeTypeAdapter() { + public OffsetDateTimeTypeAdapter() { this(DateTimeFormatter.ISO_OFFSET_DATE_TIME); - } + } - public OffsetDateTimeTypeAdapter(DateTimeFormatter formatter) { + public OffsetDateTimeTypeAdapter(DateTimeFormatter formatter) { this.formatter = formatter; - } + } - public void setFormat(DateTimeFormatter dateFormat) { + public void setFormat(DateTimeFormatter dateFormat) { this.formatter = dateFormat; - } + } - @Override - public void write(JsonWriter out, OffsetDateTime date) throws IOException { + @Override + public void write(JsonWriter out, OffsetDateTime date) throws IOException { if (date == null) { - out.nullValue(); + out.nullValue(); } else { - out.value(formatter.format(date)); - } + out.value(formatter.format(date)); } + } - @Override - public OffsetDateTime read(JsonReader in) throws IOException { + @Override + public OffsetDateTime read(JsonReader in) throws IOException { switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - if (date.endsWith("+0000")) { - date = date.substring(0, date.length()-5) + "Z"; - } - if (date.contains(" ")) { - date = date.replace(' ', 'T'); - } - return OffsetDateTime.parse(date, formatter); - } - } + case NULL: + in.nextNull(); + return null; + default: + String date = in.nextString(); + if (date.endsWith("+0000")) { + date = date.substring(0, date.length()-5) + "Z"; + } + return OffsetDateTime.parse(date, formatter); } + } + } - /** - * Gson TypeAdapter for JSR310 LocalDate type - */ - public class LocalDateTypeAdapter extends TypeAdapter { + /** + * Gson TypeAdapter for JSR310 LocalDate type + */ + public static class LocalDateTypeAdapter extends TypeAdapter { - private DateTimeFormatter formatter; + private DateTimeFormatter formatter; - public LocalDateTypeAdapter() { + public LocalDateTypeAdapter() { this(DateTimeFormatter.ISO_LOCAL_DATE); - } + } - public LocalDateTypeAdapter(DateTimeFormatter formatter) { + public LocalDateTypeAdapter(DateTimeFormatter formatter) { this.formatter = formatter; - } + } - public void setFormat(DateTimeFormatter dateFormat) { + public void setFormat(DateTimeFormatter dateFormat) { this.formatter = dateFormat; - } + } - @Override - public void write(JsonWriter out, LocalDate date) throws IOException { + @Override + public void write(JsonWriter out, LocalDate date) throws IOException { if (date == null) { - out.nullValue(); + out.nullValue(); } else { - out.value(formatter.format(date)); - } + out.value(formatter.format(date)); } + } - @Override - public LocalDate read(JsonReader in) throws IOException { + @Override + public LocalDate read(JsonReader in) throws IOException { switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - return LocalDate.parse(date, formatter); - } - } + case NULL: + in.nextNull(); + return null; + default: + String date = in.nextString(); + return LocalDate.parse(date, formatter); } + } + } - public JSON setOffsetDateTimeFormat(DateTimeFormatter dateFormat) { - offsetDateTimeTypeAdapter.setFormat(dateFormat); - return this; - } + public static void setOffsetDateTimeFormat(DateTimeFormatter dateFormat) { + offsetDateTimeTypeAdapter.setFormat(dateFormat); + } - public JSON setLocalDateFormat(DateTimeFormatter dateFormat) { - localDateTypeAdapter.setFormat(dateFormat); - return this; - } + public static void setLocalDateFormat(DateTimeFormatter dateFormat) { + localDateTypeAdapter.setFormat(dateFormat); + } - {{/jsr310}} - /** - * Gson TypeAdapter for java.sql.Date type - * If the dateFormat is null, a simple "yyyy-MM-dd" format will be used - * (more efficient than SimpleDateFormat). - */ - public static class SqlDateTypeAdapter extends TypeAdapter { + {{/jsr310}} + /** + * Gson TypeAdapter for java.sql.Date type + * If the dateFormat is null, a simple "yyyy-MM-dd" format will be used + * (more efficient than SimpleDateFormat). + */ + public static class SqlDateTypeAdapter extends TypeAdapter { - private DateFormat dateFormat; + private DateFormat dateFormat; - public SqlDateTypeAdapter() {} + public SqlDateTypeAdapter() {} - public SqlDateTypeAdapter(DateFormat dateFormat) { + public SqlDateTypeAdapter(DateFormat dateFormat) { this.dateFormat = dateFormat; - } + } - public void setFormat(DateFormat dateFormat) { + public void setFormat(DateFormat dateFormat) { this.dateFormat = dateFormat; - } + } - @Override - public void write(JsonWriter out, java.sql.Date date) throws IOException { + @Override + public void write(JsonWriter out, java.sql.Date date) throws IOException { if (date == null) { - out.nullValue(); - } else { - String value; - if (dateFormat != null) { - value = dateFormat.format(date); + out.nullValue(); } else { - value = date.toString(); - } - out.value(value); - } + String value; + if (dateFormat != null) { + value = dateFormat.format(date); + } else { + value = date.toString(); + } + out.value(value); } + } - @Override - public java.sql.Date read(JsonReader in) throws IOException { + @Override + public java.sql.Date read(JsonReader in) throws IOException { switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - try { - if (dateFormat != null) { - return new java.sql.Date(dateFormat.parse(date).getTime()); - } - return new java.sql.Date(ISO8601Utils.parse(date, new ParsePosition(0)).getTime()); - } catch (ParseException e) { - throw new JsonParseException(e); - } - } - } + case NULL: + in.nextNull(); + return null; + default: + String date = in.nextString(); + try { + if (dateFormat != null) { + return new java.sql.Date(dateFormat.parse(date).getTime()); + } + return new java.sql.Date(ISO8601Utils.parse(date, new ParsePosition(0)).getTime()); + } catch (ParseException e) { + throw new JsonParseException(e); + } } + } + } - /** - * Gson TypeAdapter for java.util.Date type - * If the dateFormat is null, ISO8601Utils will be used. - */ - public static class DateTypeAdapter extends TypeAdapter { + /** + * Gson TypeAdapter for java.util.Date type + * If the dateFormat is null, ISO8601Utils will be used. + */ + public static class DateTypeAdapter extends TypeAdapter { - private DateFormat dateFormat; + private DateFormat dateFormat; - public DateTypeAdapter() {} + public DateTypeAdapter() {} - public DateTypeAdapter(DateFormat dateFormat) { - this.dateFormat = dateFormat; - } + public DateTypeAdapter(DateFormat dateFormat) { + this.dateFormat = dateFormat; + } - public void setFormat(DateFormat dateFormat) { - this.dateFormat = dateFormat; - } + public void setFormat(DateFormat dateFormat) { + this.dateFormat = dateFormat; + } - @Override - public void write(JsonWriter out, Date date) throws IOException { - if (date == null) { + @Override + public void write(JsonWriter out, Date date) throws IOException { + if (date == null) { out.nullValue(); - } else { + } else { String value; if (dateFormat != null) { - value = dateFormat.format(date); + value = dateFormat.format(date); } else { - value = ISO8601Utils.format(date, true); + value = ISO8601Utils.format(date, true); } out.value(value); - } - } + } + } - @Override - public Date read(JsonReader in) throws IOException { - try { + @Override + public Date read(JsonReader in) throws IOException { + try { switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - try { - if (dateFormat != null) { - return dateFormat.parse(date); - } - return ISO8601Utils.parse(date, new ParsePosition(0)); - } catch (ParseException e) { - throw new JsonParseException(e); - } + case NULL: + in.nextNull(); + return null; + default: + String date = in.nextString(); + try { + if (dateFormat != null) { + return dateFormat.parse(date); + } + return ISO8601Utils.parse(date, new ParsePosition(0)); + } catch (ParseException e) { + throw new JsonParseException(e); + } } - } catch (IllegalArgumentException e) { + } catch (IllegalArgumentException e) { throw new JsonParseException(e); - } - } - } - - public JSON setDateFormat(DateFormat dateFormat) { - dateTypeAdapter.setFormat(dateFormat); - return this; - } + } + } + } - public JSON setSqlDateFormat(DateFormat dateFormat) { - sqlDateTypeAdapter.setFormat(dateFormat); - return this; - } + public static void setDateFormat(DateFormat dateFormat) { + dateTypeAdapter.setFormat(dateFormat); + } - } + public static void setSqlDateFormat(DateFormat dateFormat) { + sqlDateTypeAdapter.setFormat(dateFormat); + } +} diff --git a/client/generator-templates/modelEnum.mustache b/client/generator-templates/modelEnum.mustache deleted file mode 100755 index 4c5ad9d3..00000000 --- a/client/generator-templates/modelEnum.mustache +++ /dev/null @@ -1,13 +0,0 @@ -{{! check updates here https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/resources/Java/ }} -{{! main purpose - generate static constants instead of enums }} - -public class {{classname}} { -{{#allowableValues}}{{#enumVars}} - {{#enumDescription}} - /** - * {{enumDescription}} - */ - {{/enumDescription}} - public static final {{#isInteger}}int{{/isInteger}} {{^isInteger}}{{{dataType}}}{{/isInteger}} {{{name}}} = {{{value}}}; -{{/enumVars}}{{/allowableValues}} -} diff --git a/client/generator-templates/pojo.mustache b/client/generator-templates/pojo.mustache old mode 100755 new mode 100644 index 0c996171..850d7ea4 --- a/client/generator-templates/pojo.mustache +++ b/client/generator-templates/pojo.mustache @@ -1,370 +1,584 @@ -{{! check updates here https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/resources/Java/pojo.mustache }} +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import {{invokerPackage}}.JSON; -{{! removed @generated @apimodel annotations below }} /** -* {{#description}}{{.}}{{/description}}{{^description}}{{classname}}{{/description}} -*/{{#description}} + * {{description}}{{^description}}{{classname}}{{/description}}{{#isDeprecated}} + * @deprecated{{/isDeprecated}} + */{{#isDeprecated}} +@Deprecated{{/isDeprecated}} +{{#swagger1AnnotationLibrary}} +{{#description}} +@ApiModel(description = "{{{.}}}") {{/description}} -{{#jackson}} - @JsonPropertyOrder({ - {{#vars}} - {{classname}}.JSON_PROPERTY_{{nameInSnakeCase}}{{^-last}},{{/-last}} - {{/vars}} - }) -{{/jackson}} -{{>additionalModelTypeAnnotations}}{{#discriminator}}{{>typeInfoAnnotation}}{{/discriminator}}{{>xmlAnnotation}} -public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{{#vendorExtensions.x-implements}}{{#-first}}implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{#-last}} {{/-last}}{{/vendorExtensions.x-implements}}{ +{{/swagger1AnnotationLibrary}} +{{#swagger2AnnotationLibrary}} +{{#description}} +@Schema(description = "{{{.}}}") +{{/description}} +{{/swagger2AnnotationLibrary}} +{{>additionalModelTypeAnnotations}}{{>generatedAnnotation}}{{#discriminator}}{{>typeInfoAnnotation}}{{/discriminator}}{{>xmlAnnotation}} +{{#vendorExtensions.x-class-extra-annotation}} +{{{vendorExtensions.x-class-extra-annotation}}} +{{/vendorExtensions.x-class-extra-annotation}} +public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtensions.x-implements}}{{#-first}}implements {{{.}}}{{/-first}}{{^-first}}, {{{.}}}{{/-first}}{{#-last}} {{/-last}}{{/vendorExtensions.x-implements}}{ {{#serializableModel}} - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; {{/serializableModel}} -{{#vars}} + {{#vars}} {{#isEnum}} - {{^isContainer}} - {{>modelInnerEnum}} - {{/isContainer}} - {{#isContainer}} - {{#mostInnerItems}} - {{>modelInnerEnum}} - {{/mostInnerItems}} - {{/isContainer}} + {{^isContainer}} +{{>modelInnerEnum}} + {{/isContainer}} + {{#isContainer}} + {{#mostInnerItems}} +{{>modelInnerEnum}} + {{/mostInnerItems}} + {{/isContainer}} {{/isEnum}} - {{#gson}} - public static final String SERIALIZED_NAME_{{nameInSnakeCase}} = "{{baseName}}"; - {{/gson}} - {{#jackson}} - public static final String JSON_PROPERTY_{{nameInSnakeCase}} = "{{baseName}}"; - {{/jackson}} - {{#withXml}} - {{#isXmlAttribute}} - @XmlAttribute(name = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}") - {{/isXmlAttribute}} - {{^isXmlAttribute}} - {{^isContainer}} - @XmlElement({{#xmlNamespace}}namespace="{{xmlNamespace}}", {{/xmlNamespace}}name = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}") - {{/isContainer}} - {{#isContainer}} - // Is a container wrapped={{isXmlWrapped}} - {{#items}} - // items.name={{name}} items.baseName={{baseName}} items.xmlName={{xmlName}} items.xmlNamespace={{xmlNamespace}} - // items.example={{example}} items.type={{dataType}} - @XmlElement({{#xmlNamespace}}namespace="{{xmlNamespace}}", {{/xmlNamespace}}name = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}") - {{/items}} - {{#isXmlWrapped}} - @XmlElementWrapper({{#xmlNamespace}}namespace="{{xmlNamespace}}", {{/xmlNamespace}}name = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}") - {{/isXmlWrapped}} - {{/isContainer}} - {{/isXmlAttribute}} - {{/withXml}} - {{#gson}} - @SerializedName(SERIALIZED_NAME_{{nameInSnakeCase}}) - {{/gson}} - {{#vendorExtensions.x-is-jackson-optional-nullable}} - {{#isContainer}} - private JsonNullable<{{{datatypeWithEnum}}}> {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>undefined(); - {{/isContainer}} - {{^isContainer}} - private JsonNullable<{{{datatypeWithEnum}}}> {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}undefined(){{/defaultValue}}; - {{/isContainer}} - {{/vendorExtensions.x-is-jackson-optional-nullable}} - {{^vendorExtensions.x-is-jackson-optional-nullable}} - {{#isContainer}} - {{#isListContainer}} - private List<{{{items.baseType}}}> {{name}}{{#required}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{/required}}{{^required}} = null{{/required}}; - {{/isListContainer}} - {{^isListContainer}} - private {{{datatypeWithEnum}}} {{name}}{{#required}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{/required}}{{^required}} = null{{/required}}; - {{/isListContainer}} - {{/isContainer}} - {{^isContainer}} - {{#isDiscriminator}}protected{{/isDiscriminator}}{{^isDiscriminator}}private{{/isDiscriminator}} {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}; - {{/isContainer}} - {{/vendorExtensions.x-is-jackson-optional-nullable}} - - + public static final String SERIALIZED_NAME_{{nameInSnakeCase}} = "{{baseName}}"; + {{#withXml}} + @Xml{{#isXmlAttribute}}Attribute{{/isXmlAttribute}}{{^isXmlAttribute}}Element{{/isXmlAttribute}}(name = "{{items.xmlName}}{{^items.xmlName}}{{xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}{{/items.xmlName}}"{{#xmlNamespace}}, namespace = "{{.}}"{{/xmlNamespace}}) + {{#isXmlWrapped}} + @XmlElementWrapper(name = "{{xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}"{{#xmlNamespace}}, namespace = "{{.}}"{{/xmlNamespace}}) + {{/isXmlWrapped}} + {{/withXml}} + {{#deprecated}} + @Deprecated + {{/deprecated}} + @SerializedName(SERIALIZED_NAME_{{nameInSnakeCase}}) + {{#vendorExtensions.x-field-extra-annotation}} + {{{vendorExtensions.x-field-extra-annotation}}} + {{/vendorExtensions.x-field-extra-annotation}} + {{>nullable_var_annotations}} + {{#isDiscriminator}}protected{{/isDiscriminator}}{{^isDiscriminator}}private{{/isDiscriminator}} {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}; -{{/vars}} -{{#parcelableModel}} - public {{classname}}() { + {{/vars}} + public {{classname}}() { {{#parent}} - super(); + {{#parcelableModel}} + super(); + {{/parcelableModel}} {{/parent}} - {{#gson}} - {{! removed discriminator here }} - {{/gson}} - } -{{/parcelableModel}} -{{^parcelableModel}} - {{#gson}} - {{! removed discriminator here }} - {{/gson}} -{{/parcelableModel}} -{{#vars}} + {{#discriminator}} + {{#discriminator.isEnum}} +{{#readWriteVars}}{{#isDiscriminator}}{{#defaultValue}} + this.{{name}} = {{defaultValue}}; +{{/defaultValue}}{{/isDiscriminator}}{{/readWriteVars}} + {{/discriminator.isEnum}} + {{/discriminator}} + } + {{#vendorExtensions.x-has-readonly-properties}} + {{^withXml}} - {{^isReadOnly}} - {{#isListContainer}} - public {{classname}} with{{nameInCamelCase}}(List<{{{items.baseType}}}> {{name}}) { - {{/isListContainer}} - {{^isListContainer}} - public {{classname}} with{{nameInCamelCase}}({{{datatypeWithEnum}}} {{name}}) { - {{/isListContainer}} - this.{{name}} = {{name}}; - return this; - } - - {{#isListContainer}} - public {{classname}} add{{nameInCamelCase}}Item({{{items.datatypeWithEnum}}} {{name}}Item) { - {{^required}} - if (this.{{name}} == null) { - this.{{name}} = new ArrayList<{{{items.baseType}}}>(); - } - {{/required}} - this.{{name}}.add({{name}}Item); - return this; - } - {{/isListContainer}} - {{#isMapContainer}} - - public {{classname}} put{{nameInCamelCase}}Item(String key, {{{items.datatypeWithEnum}}} {{name}}Item) { - {{#vendorExtensions.x-is-jackson-optional-nullable}} - if (this.{{name}} == null || !this.{{name}}.isPresent()) { - this.{{name}} = JsonNullable.<{{{datatypeWithEnum}}}>of({{{defaultValue}}}); - } - try { - this.{{name}}.get().put(key, {{name}}Item); - } catch (java.util.NoSuchElementException e) { - // this can never happen, as we make sure above that the value is present - } - return this; - {{/vendorExtensions.x-is-jackson-optional-nullable}} - {{^vendorExtensions.x-is-jackson-optional-nullable}} - {{^required}} - if (this.{{name}} == null) { - this.{{name}} = {{{defaultValue}}}; - } - {{/required}} - this.{{name}}.put(key, {{name}}Item); - return this; - {{/vendorExtensions.x-is-jackson-optional-nullable}} - } - {{/isMapContainer}} - - {{/isReadOnly}} - /** - {{#description}} - * {{description}} - {{/description}} - {{^description}} - * Get {{name}} - {{/description}} - {{#minimum}} - * minimum: {{minimum}} - {{/minimum}} - {{#maximum}} - * maximum: {{maximum}} - {{/maximum}} - * @return {{name}} - **/ - {{#required}} - {{#isNullable}} - @javax.annotation.Nullable - {{/isNullable}} - {{/required}} - {{^required}} - @javax.annotation.Nullable - {{/required}} - {{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}} - {{#vendorExtensions.x-extra-annotation}} - {{{vendorExtensions.x-extra-annotation}}} - {{/vendorExtensions.x-extra-annotation}} - {{#vendorExtensions.x-is-jackson-optional-nullable}} - {{!unannotated, Jackson would pick this up automatically and add it *in addition* to the _JsonNullable getter field}} - @JsonIgnore - {{/vendorExtensions.x-is-jackson-optional-nullable}} - {{^vendorExtensions.x-is-jackson-optional-nullable}}{{#jackson}}{{> jackson_annotations}}{{/jackson}}{{/vendorExtensions.x-is-jackson-optional-nullable}} - - {{#isListContainer}} - public List<{{{items.baseType}}}> {{getter}}() { - {{/isListContainer}} - {{^isListContainer}} - public {{{datatypeWithEnum}}} {{getter}}() { - {{/isListContainer}} - {{#vendorExtensions.x-is-jackson-optional-nullable}} - {{#isReadOnly}}{{! A readonly attribute doesn't have setter => jackson will set null directly if explicitly returned by API, so make sure we have an empty JsonNullable}} - if ({{name}} == null) { - {{name}} = JsonNullable.<{{{datatypeWithEnum}}}>{{#defaultValue}}of({{{.}}}){{/defaultValue}}{{^defaultValue}}undefined(){{/defaultValue}}; - } - {{/isReadOnly}} - return {{name}}.orElse(null); - {{/vendorExtensions.x-is-jackson-optional-nullable}} - {{^vendorExtensions.x-is-jackson-optional-nullable}} - return {{name}}; - {{/vendorExtensions.x-is-jackson-optional-nullable}} - } - - {{#vendorExtensions.x-is-jackson-optional-nullable}} - {{> jackson_annotations}} - public JsonNullable<{{{datatypeWithEnum}}}> {{getter}}_JsonNullable() { - return {{name}}; - } - {{/vendorExtensions.x-is-jackson-optional-nullable}}{{#vendorExtensions.x-is-jackson-optional-nullable}} - @JsonProperty(JSON_PROPERTY_{{nameInSnakeCase}}) - {{#isReadOnly}}private{{/isReadOnly}}{{^isReadOnly}}public{{/isReadOnly}} void {{setter}}_JsonNullable(JsonNullable<{{{datatypeWithEnum}}}> {{name}}) { - {{! For getters/setters that have name differing from attribute name, we must include setter (albeit private) for jackson to be able to set the attribute}} - this.{{name}} = {{name}}; - } - {{/vendorExtensions.x-is-jackson-optional-nullable}} - - {{^isReadOnly}} - {{#isListContainer}} - public void {{setter}}(List<{{{items.baseType}}}> {{name}}) { - {{/isListContainer}} - {{^isListContainer}} - public void {{setter}}({{{datatypeWithEnum}}} {{name}}) { - {{/isListContainer}} - this.{{name}} = {{name}}; - } - {{/isReadOnly}} + public {{classname}}( + {{#readOnlyVars}} + {{{datatypeWithEnum}}} {{name}}{{^-last}}, {{/-last}} + {{/readOnlyVars}} + ) { + this(); + {{#readOnlyVars}} + this.{{name}} = {{name}}; + {{/readOnlyVars}} + } + {{/withXml}} + {{/vendorExtensions.x-has-readonly-properties}} + {{#vars}} -{{/vars}} + {{^isReadOnly}} + {{#deprecated}} + @Deprecated + {{/deprecated}} + public {{classname}} {{name}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) { + this.{{name}} = {{name}}; + return this; + } + {{#isArray}} -{{^supportJava6}} - @Override - public boolean equals(java.lang.Object o) { - {{#useReflectionEqualsHashCode}} - return EqualsBuilder.reflectionEquals(this, o, false, null, true); - {{/useReflectionEqualsHashCode}} - {{^useReflectionEqualsHashCode}} - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - }{{#hasVars}} - {{classname}} {{classVarName}} = ({{classname}}) o; - return {{#vars}}{{#isByteArray}}Arrays{{/isByteArray}}{{^isByteArray}}Objects{{/isByteArray}}.equals(this.{{name}}, {{classVarName}}.{{name}}){{#hasMore}} && - {{/hasMore}}{{/vars}}{{#parent}} && - super.equals(o){{/parent}};{{/hasVars}}{{^hasVars}} - return {{#parent}}super.equals(o){{/parent}}{{^parent}}true{{/parent}};{{/hasVars}} - {{/useReflectionEqualsHashCode}} + public {{classname}} add{{nameInPascalCase}}Item({{{items.datatypeWithEnum}}} {{name}}Item) { + if (this.{{name}} == null) { + this.{{name}} = {{{defaultValue}}}{{^defaultValue}}new {{#uniqueItems}}LinkedHashSet{{/uniqueItems}}{{^uniqueItems}}ArrayList{{/uniqueItems}}<>(){{/defaultValue}}; } + this.{{name}}.add({{name}}Item); + return this; + } + {{/isArray}} + {{#isMap}} - @Override - public int hashCode() { - {{#useReflectionEqualsHashCode}} - return HashCodeBuilder.reflectionHashCode(this); - {{/useReflectionEqualsHashCode}} - {{^useReflectionEqualsHashCode}} - return Objects.hash({{#vars}}{{^isByteArray}}{{name}}{{/isByteArray}}{{#isByteArray}}Arrays.hashCode({{name}}){{/isByteArray}}{{#hasMore}}, {{/hasMore}}{{/vars}}{{#parent}}{{#hasVars}}, {{/hasVars}}super.hashCode(){{/parent}}); - {{/useReflectionEqualsHashCode}} + public {{classname}} put{{nameInPascalCase}}Item(String key, {{{items.datatypeWithEnum}}} {{name}}Item) { + if (this.{{name}} == null) { + this.{{name}} = {{{defaultValue}}}{{^defaultValue}}new HashMap<>(){{/defaultValue}}; } + this.{{name}}.put(key, {{name}}Item); + return this; + } + {{/isMap}} -{{/supportJava6}} -{{#supportJava6}} - @Override - public boolean equals(java.lang.Object o) { + {{/isReadOnly}} + /** + {{#description}} + * {{.}} + {{/description}} + {{^description}} + * Get {{name}} + {{/description}} + {{#minimum}} + * minimum: {{.}} + {{/minimum}} + {{#maximum}} + * maximum: {{.}} + {{/maximum}} + * @return {{name}} + {{#deprecated}} + * @deprecated + {{/deprecated}} + */ +{{#deprecated}} + @Deprecated +{{/deprecated}} + {{>nullable_var_annotations}} +{{#useBeanValidation}} +{{>beanValidation}} +{{/useBeanValidation}} +{{#swagger1AnnotationLibrary}} + @ApiModelProperty({{#example}}example = "{{{.}}}", {{/example}}{{#required}}required = {{required}}, {{/required}}value = "{{{description}}}") +{{/swagger1AnnotationLibrary}} +{{#swagger2AnnotationLibrary}} + @Schema({{#example}}example = "{{{.}}}", {{/example}}requiredMode = {{#required}}Schema.RequiredMode.REQUIRED{{/required}}{{^required}}Schema.RequiredMode.NOT_REQUIRED{{/required}}, description = "{{{description}}}") +{{/swagger2AnnotationLibrary}} +{{#vendorExtensions.x-extra-annotation}} + {{{vendorExtensions.x-extra-annotation}}} +{{/vendorExtensions.x-extra-annotation}} + public {{{datatypeWithEnum}}} {{getter}}() { + return {{name}}; + } + + {{^isReadOnly}} +{{#vendorExtensions.x-setter-extra-annotation}} {{{vendorExtensions.x-setter-extra-annotation}}} +{{/vendorExtensions.x-setter-extra-annotation}}{{#deprecated}} @Deprecated +{{/deprecated}} public void {{setter}}({{>nullable_var_annotations}} {{{datatypeWithEnum}}} {{name}}) { + this.{{name}} = {{name}}; + } + {{/isReadOnly}} + + {{/vars}} +{{>libraries/okhttp-gson/additional_properties}} + + @Override + public boolean equals(Object o) { + {{#useReflectionEqualsHashCode}} + return EqualsBuilder.reflectionEquals(this, o, false, null, true); + {{/useReflectionEqualsHashCode}} + {{^useReflectionEqualsHashCode}} if (this == o) { - return true; + return true; } if (o == null || getClass() != o.getClass()) { - return false; + return false; }{{#hasVars}} - {{classname}} {{classVarName}} = ({{classname}}) o; - return {{#vars}}ObjectUtils.equals(this.{{name}}, {{classVarName}}.{{name}}){{#hasMore}} && - {{/hasMore}}{{/vars}}{{#parent}} && + {{classname}} {{classVarName}} = ({{classname}}) o; + return {{#vars}}{{#isByteArray}}Arrays{{/isByteArray}}{{^isByteArray}}Objects{{/isByteArray}}.equals(this.{{name}}, {{classVarName}}.{{name}}){{^-last}} && + {{/-last}}{{/vars}}{{#isAdditionalPropertiesTrue}}&& + Objects.equals(this.additionalProperties, {{classVarName}}.additionalProperties){{/isAdditionalPropertiesTrue}}{{#parent}} && super.equals(o){{/parent}};{{/hasVars}}{{^hasVars}} - return true;{{/hasVars}} + return {{#parent}}super.equals(o){{/parent}}{{^parent}}true{{/parent}};{{/hasVars}} + {{/useReflectionEqualsHashCode}} + }{{#vendorExtensions.x-jackson-optional-nullable-helpers}} + + private static boolean equalsNullable(JsonNullable a, JsonNullable b) { + return a == b || (a != null && b != null && a.isPresent() && b.isPresent() && Objects.deepEquals(a.get(), b.get())); + }{{/vendorExtensions.x-jackson-optional-nullable-helpers}} + + @Override + public int hashCode() { + {{#useReflectionEqualsHashCode}} + return HashCodeBuilder.reflectionHashCode(this); + {{/useReflectionEqualsHashCode}} + {{^useReflectionEqualsHashCode}} + return Objects.hash({{#vars}}{{^isByteArray}}{{name}}{{/isByteArray}}{{#isByteArray}}Arrays.hashCode({{name}}){{/isByteArray}}{{^-last}}, {{/-last}}{{/vars}}{{#parent}}{{#hasVars}}, {{/hasVars}}super.hashCode(){{/parent}}{{#isAdditionalPropertiesTrue}}{{#hasVars}}, {{/hasVars}}{{^hasVars}}{{#parent}}, {{/parent}}{{/hasVars}}additionalProperties{{/isAdditionalPropertiesTrue}}); + {{/useReflectionEqualsHashCode}} + }{{#vendorExtensions.x-jackson-optional-nullable-helpers}} + + private static int hashCodeNullable(JsonNullable a) { + if (a == null) { + return 1; } + return a.isPresent() ? Arrays.deepHashCode(new Object[]{a.get()}) : 31; + }{{/vendorExtensions.x-jackson-optional-nullable-helpers}} - @Override - public int hashCode() { - return ObjectUtils.hashCodeMulti({{#vars}}{{name}}{{#hasMore}}, {{/hasMore}}{{/vars}}{{#parent}}{{#hasVars}}, {{/hasVars}}super.hashCode(){{/parent}}); + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class {{classname}} {\n"); + {{#parent}} + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + {{/parent}} + {{#vars}} + sb.append(" {{name}}: ").append({{#isPassword}}"*"{{/isPassword}}{{^isPassword}}toIndentedString({{name}}){{/isPassword}}).append("\n"); + {{/vars}} +{{#isAdditionalPropertiesTrue}} + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); +{{/isAdditionalPropertiesTrue}} + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; } + return o.toString().replace("\n", "\n "); + } -{{/supportJava6}} +{{#parcelableModel}} -@Override -public String toString() { -StringBuilder sb = new StringBuilder(); -sb.append("class {{classname}} {\n"); + public void writeToParcel(Parcel out, int flags) { +{{#model}} +{{#isArray}} + out.writeList(this); +{{/isArray}} +{{^isArray}} {{#parent}} - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + super.writeToParcel(out, flags); {{/parent}} {{#vars}} - sb.append(" {{name}}: ").append(toIndentedString({{name}})).append("\n"); + out.writeValue({{name}}); {{/vars}} -sb.append("}"); -return sb.toString(); -} - -/** -* Convert the given object to string with each line indented by 4 spaces -* (except the first line). -*/ -private String toIndentedString(java.lang.Object o) { -if (o == null) { -return "null"; -} -return o.toString().replace("\n", "\n "); -} - -{{#parcelableModel}} - - public void writeToParcel(Parcel out, int flags) { - {{#model}} - {{#isArrayModel}} - out.writeList(this); - {{/isArrayModel}} - {{^isArrayModel}} - {{#parent}} - super.writeToParcel(out, flags); - {{/parent}} - {{#vars}} - out.writeValue({{name}}); - {{/vars}} - {{/isArrayModel}} - {{/model}} - } +{{/isArray}} +{{/model}} + } - {{classname}}(Parcel in) { - {{#isArrayModel}} - in.readTypedList(this, {{arrayModelType}}.CREATOR); - {{/isArrayModel}} - {{^isArrayModel}} - {{#parent}} - super(in); - {{/parent}} - {{#vars}} - {{#isPrimitiveType}} - {{name}} = ({{{datatypeWithEnum}}})in.readValue(null); - {{/isPrimitiveType}} - {{^isPrimitiveType}} - {{name}} = ({{{datatypeWithEnum}}})in.readValue({{complexType}}.class.getClassLoader()); - {{/isPrimitiveType}} - {{/vars}} - {{/isArrayModel}} - } + {{classname}}(Parcel in) { +{{#isArray}} + in.readTypedList(this, {{arrayModelType}}.CREATOR); +{{/isArray}} +{{^isArray}} +{{#parent}} + super(in); +{{/parent}} +{{#vars}} +{{#isPrimitiveType}} + {{name}} = ({{{datatypeWithEnum}}})in.readValue(null); +{{/isPrimitiveType}} +{{^isPrimitiveType}} + {{name}} = ({{{datatypeWithEnum}}})in.readValue({{complexType}}.class.getClassLoader()); +{{/isPrimitiveType}} +{{/vars}} +{{/isArray}} + } - public int describeContents() { + public int describeContents() { return 0; - } + } - public static final Parcelable.Creator<{{classname}}> CREATOR = new Parcelable.Creator<{{classname}}>() { + public static final Parcelable.Creator<{{classname}}> CREATOR = new Parcelable.Creator<{{classname}}>() { public {{classname}} createFromParcel(Parcel in) { - {{#model}} - {{#isArrayModel}} - {{classname}} result = new {{classname}}(); - result.addAll(in.readArrayList({{arrayModelType}}.class.getClassLoader())); - return result; - {{/isArrayModel}} - {{^isArrayModel}} - return new {{classname}}(in); - {{/isArrayModel}} - {{/model}} +{{#model}} +{{#isArray}} + {{classname}} result = new {{classname}}(); + result.addAll(in.readArrayList({{arrayModelType}}.class.getClassLoader())); + return result; +{{/isArray}} +{{^isArray}} + return new {{classname}}(in); +{{/isArray}} +{{/model}} } public {{classname}}[] newArray(int size) { - return new {{classname}}[size]; + return new {{classname}}[size]; } - }; + }; {{/parcelableModel}} + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + {{#allVars}} + openapiFields.add("{{baseName}}"); + {{/allVars}} + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + {{#requiredVars}} + openapiRequiredFields.add("{{baseName}}"); + {{/requiredVars}} + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to {{classname}} + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!{{classname}}.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format("The required field(s) %s in {{{classname}}} is not found in the empty JSON string", {{classname}}.openapiRequiredFields.toString())); + } + } + {{^hasChildren}} + {{^isAdditionalPropertiesTrue}} + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!{{classname}}.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `{{classname}}` properties. JSON: %s", entry.getKey(), jsonElement.toString())); + } + } + {{/isAdditionalPropertiesTrue}} + {{#requiredVars}} + {{#-first}} + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : {{classname}}.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format("The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + {{/-first}} + {{/requiredVars}} + {{/hasChildren}} + {{^discriminator}} + {{#hasVars}} + JsonObject jsonObj = jsonElement.getAsJsonObject(); + {{/hasVars}} + {{#vars}} + {{#isArray}} + {{#items.isModel}} + {{#required}} + // ensure the json data is an array + if (!jsonObj.get("{{{baseName}}}").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `{{{baseName}}}` to be an array in the JSON string but got `%s`", jsonObj.get("{{{baseName}}}").toString())); + } + + JsonArray jsonArray{{name}} = jsonObj.getAsJsonArray("{{{baseName}}}"); + // validate the required field `{{{baseName}}}` (array) + for (int i = 0; i < jsonArray{{name}}.size(); i++) { + {{{items.dataType}}}.validateJsonElement(jsonArray{{name}}.get(i)); + }; + {{/required}} + {{^required}} + if (jsonObj.get("{{{baseName}}}") != null && !jsonObj.get("{{{baseName}}}").isJsonNull()) { + JsonArray jsonArray{{name}} = jsonObj.getAsJsonArray("{{{baseName}}}"); + if (jsonArray{{name}} != null) { + // ensure the json data is an array + if (!jsonObj.get("{{{baseName}}}").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `{{{baseName}}}` to be an array in the JSON string but got `%s`", jsonObj.get("{{{baseName}}}").toString())); + } + + // validate the optional field `{{{baseName}}}` (array) + for (int i = 0; i < jsonArray{{name}}.size(); i++) { + {{{items.dataType}}}.validateJsonElement(jsonArray{{name}}.get(i)); + }; + } + } + {{/required}} + {{/items.isModel}} + {{^items.isModel}} + {{^required}} + // ensure the optional json data is an array if present + if (jsonObj.get("{{{baseName}}}") != null && !jsonObj.get("{{{baseName}}}").isJsonNull() && !jsonObj.get("{{{baseName}}}").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `{{{baseName}}}` to be an array in the JSON string but got `%s`", jsonObj.get("{{{baseName}}}").toString())); + } + {{/required}} + {{#required}} + // ensure the required json array is present + if (jsonObj.get("{{{baseName}}}") == null) { + throw new IllegalArgumentException("Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("{{{baseName}}}").isJsonArray()) { + throw new IllegalArgumentException(String.format("Expected the field `{{{baseName}}}` to be an array in the JSON string but got `%s`", jsonObj.get("{{{baseName}}}").toString())); + } + {{/required}} + {{/items.isModel}} + {{/isArray}} + {{^isContainer}} + {{#isString}} + if ({{#notRequiredOrIsNullable}}(jsonObj.get("{{{baseName}}}") != null && !jsonObj.get("{{{baseName}}}").isJsonNull()) && {{/notRequiredOrIsNullable}}!jsonObj.get("{{{baseName}}}").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format("Expected the field `{{{baseName}}}` to be a primitive type in the JSON string but got `%s`", jsonObj.get("{{{baseName}}}").toString())); + } + {{/isString}} + {{#isModel}} + {{#required}} + // validate the required field `{{{baseName}}}` + {{{dataType}}}.validateJsonElement(jsonObj.get("{{{baseName}}}")); + {{/required}} + {{^required}} + // validate the optional field `{{{baseName}}}` + if (jsonObj.get("{{{baseName}}}") != null && !jsonObj.get("{{{baseName}}}").isJsonNull()) { + {{{dataType}}}.validateJsonElement(jsonObj.get("{{{baseName}}}")); + } + {{/required}} + {{/isModel}} + {{#isEnum}} + {{#required}} + // validate the required field `{{{baseName}}}` + {{{datatypeWithEnum}}}.validateJsonElement(jsonObj.get("{{{baseName}}}")); + {{/required}} + {{^required}} + // validate the optional field `{{{baseName}}}` + if (jsonObj.get("{{{baseName}}}") != null && !jsonObj.get("{{{baseName}}}").isJsonNull()) { + {{{datatypeWithEnum}}}.validateJsonElement(jsonObj.get("{{{baseName}}}")); + } + {{/required}} + {{/isEnum}} + {{#isEnumRef}} + {{#required}} + // validate the required field `{{{baseName}}}` + {{{dataType}}}.validateJsonElement(jsonObj.get("{{{baseName}}}")); + {{/required}} + {{^required}} + // validate the optional field `{{{baseName}}}` + if (jsonObj.get("{{{baseName}}}") != null && !jsonObj.get("{{{baseName}}}").isJsonNull()) { + {{{dataType}}}.validateJsonElement(jsonObj.get("{{{baseName}}}")); + } + {{/required}} + {{/isEnumRef}} + {{/isContainer}} + {{/vars}} + {{/discriminator}} + {{#hasChildren}} + {{#discriminator}} + + String discriminatorValue = jsonElement.getAsJsonObject().get("{{{propertyBaseName}}}").getAsString(); + switch (discriminatorValue) { + {{#mappedModels}} + case "{{mappingName}}": + {{modelName}}.validateJsonElement(jsonElement); + break; + {{/mappedModels}} + default: + throw new IllegalArgumentException(String.format("The value of the `{{{propertyBaseName}}}` field `%s` does not match any key defined in the discriminator's mapping.", discriminatorValue)); + } + {{/discriminator}} + {{/hasChildren}} + } + +{{^hasChildren}} + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!{{classname}}.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes '{{classname}}' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter<{{classname}}> thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get({{classname}}.class)); + + return (TypeAdapter) new TypeAdapter<{{classname}}>() { + @Override + public void write(JsonWriter out, {{classname}} value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + {{#isAdditionalPropertiesTrue}} + obj.remove("additionalProperties"); + // serialize additional properties + if (value.getAdditionalProperties() != null) { + for (Map.Entry entry : value.getAdditionalProperties().entrySet()) { + if (entry.getValue() instanceof String) + obj.addProperty(entry.getKey(), (String) entry.getValue()); + else if (entry.getValue() instanceof Number) + obj.addProperty(entry.getKey(), (Number) entry.getValue()); + else if (entry.getValue() instanceof Boolean) + obj.addProperty(entry.getKey(), (Boolean) entry.getValue()); + else if (entry.getValue() instanceof Character) + obj.addProperty(entry.getKey(), (Character) entry.getValue()); + else { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + {{/isAdditionalPropertiesTrue}} + elementAdapter.write(out, obj); + } + + @Override + public {{classname}} read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + {{#isAdditionalPropertiesTrue}} + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + {{classname}} instance = thisAdapter.fromJsonTree(jsonObj); + for (Map.Entry entry : jsonObj.entrySet()) { + if (!openapiFields.contains(entry.getKey())) { + if (entry.getValue().isJsonPrimitive()) { // primitive type + if (entry.getValue().getAsJsonPrimitive().isString()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString()); + else if (entry.getValue().getAsJsonPrimitive().isNumber()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber()); + else if (entry.getValue().getAsJsonPrimitive().isBoolean()) + instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean()); + else + throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString())); + } else if (entry.getValue().isJsonArray()) { + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), List.class)); + } else { // JSON object + instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class)); + } + } + } + return instance; + {{/isAdditionalPropertiesTrue}} + {{^isAdditionalPropertiesTrue}} + return thisAdapter.fromJsonTree(jsonElement); + {{/isAdditionalPropertiesTrue}} + } + + }.nullSafe(); + } + } +{{/hasChildren}} + + /** + * Create an instance of {{classname}} given an JSON string + * + * @param jsonString JSON string + * @return An instance of {{classname}} + * @throws IOException if the JSON string is invalid with respect to {{classname}} + */ + public static {{{classname}}} fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, {{{classname}}}.class); + } + + /** + * Convert an instance of {{classname}} to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ApiCallback.java b/client/src/main/generated/com/regula/documentreader/webclient/ApiCallback.java index 6cfd6fbe..66e45cbc 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ApiCallback.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ApiCallback.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -49,10 +49,10 @@ public interface ApiCallback { void onUploadProgress(long bytesWritten, long contentLength, boolean done); /** - * This is called when the API downlond processing. + * This is called when the API download processing. * * @param bytesRead bytes Read - * @param contentLength content lenngth of the response + * @param contentLength content length of the response * @param done Read end */ void onDownloadProgress(long bytesRead, long contentLength, boolean done); diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ApiClient.java b/client/src/main/generated/com/regula/documentreader/webclient/ApiClient.java index d55c4e2f..da8210c8 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ApiClient.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ApiClient.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -20,8 +20,11 @@ import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.lang.reflect.Type; +import java.net.URI; import java.net.URLConnection; import java.net.URLEncoder; +import java.nio.file.Files; +import java.nio.file.Paths; import java.security.GeneralSecurityException; import java.security.KeyStore; import java.security.SecureRandom; @@ -29,6 +32,9 @@ import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.text.DateFormat; +import java.time.LocalDate; +import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.Map.Entry; import java.util.concurrent.TimeUnit; @@ -40,15 +46,31 @@ import okhttp3.internal.tls.OkHostnameVerifier; import okhttp3.logging.HttpLoggingInterceptor; import okhttp3.logging.HttpLoggingInterceptor.Level; +import okio.Buffer; import okio.BufferedSink; import okio.Okio; -import org.threeten.bp.LocalDate; -import org.threeten.bp.OffsetDateTime; -import org.threeten.bp.format.DateTimeFormatter; +/** ApiClient class. */ public class ApiClient { private String basePath = "https://api.regulaforensics.com"; + protected List servers = + new ArrayList( + Arrays.asList( + new ServerConfiguration( + "https://api.regulaforensics.com", + "Latest stable Regula Document Reader demo endpoint", + new HashMap()), + new ServerConfiguration( + "https://nightly-api.regulaforensics.com", + "Nightly Regula document reader demo endpoint", + new HashMap()), + new ServerConfiguration( + "http://localhost:8080", + "Local on-premise installation", + new HashMap()))); + protected Integer serverIndex = 0; + protected Map serverVariables = null; private boolean debugging = false; private Map defaultHeaderMap = new HashMap(); private Map defaultCookieMap = new HashMap(); @@ -70,9 +92,7 @@ public class ApiClient { private HttpLoggingInterceptor loggingInterceptor; - /* - * Basic constructor for ApiClient - */ + /** Basic constructor for ApiClient */ public ApiClient() { init(); initHttpClient(); @@ -82,8 +102,10 @@ public ApiClient() { authentications = Collections.unmodifiableMap(authentications); } - /* + /** * Basic constructor with custom OkHttpClient + * + * @param client a {@link okhttp3.OkHttpClient} object */ public ApiClient(OkHttpClient client) { init(); @@ -115,7 +137,7 @@ private void init() { json = new JSON(); // Set default User-Agent. - setUserAgent("OpenAPI-Generator/5.1.0/java"); + setUserAgent("OpenAPI-Generator/7.4.0/java"); authentications = new HashMap(); } @@ -137,6 +159,34 @@ public String getBasePath() { */ public ApiClient setBasePath(String basePath) { this.basePath = basePath; + this.serverIndex = null; + return this; + } + + public List getServers() { + return servers; + } + + public ApiClient setServers(List servers) { + this.servers = servers; + return this; + } + + public Integer getServerIndex() { + return serverIndex; + } + + public ApiClient setServerIndex(Integer serverIndex) { + this.serverIndex = serverIndex; + return this; + } + + public Map getServerVariables() { + return serverVariables; + } + + public ApiClient setServerVariables(Map serverVariables) { + this.serverVariables = serverVariables; return this; } @@ -154,7 +204,7 @@ public OkHttpClient getHttpClient() { * * @param newHttpClient An instance of OkHttpClient * @return Api Client - * @throws NullPointerException when newHttpClient is null + * @throws java.lang.NullPointerException when newHttpClient is null */ public ApiClient setHttpClient(OkHttpClient newHttpClient) { this.httpClient = Objects.requireNonNull(newHttpClient, "HttpClient must not be null!"); @@ -226,6 +276,11 @@ public ApiClient setSslCaCert(InputStream sslCaCert) { return this; } + /** + * Getter for the field keyManagers. + * + * @return an array of {@link javax.net.ssl.KeyManager} objects + */ public KeyManager[] getKeyManagers() { return keyManagers; } @@ -242,32 +297,67 @@ public ApiClient setKeyManagers(KeyManager[] managers) { return this; } + /** + * Getter for the field dateFormat. + * + * @return a {@link java.text.DateFormat} object + */ public DateFormat getDateFormat() { return dateFormat; } + /** + * Setter for the field dateFormat. + * + * @param dateFormat a {@link java.text.DateFormat} object + * @return a {@link com.regula.documentreader.webclient.ApiClient} object + */ public ApiClient setDateFormat(DateFormat dateFormat) { - this.json.setDateFormat(dateFormat); + JSON.setDateFormat(dateFormat); return this; } + /** + * Set SqlDateFormat. + * + * @param dateFormat a {@link java.text.DateFormat} object + * @return a {@link com.regula.documentreader.webclient.ApiClient} object + */ public ApiClient setSqlDateFormat(DateFormat dateFormat) { - this.json.setSqlDateFormat(dateFormat); + JSON.setSqlDateFormat(dateFormat); return this; } + /** + * Set OffsetDateTimeFormat. + * + * @param dateFormat a {@link java.time.format.DateTimeFormatter} object + * @return a {@link com.regula.documentreader.webclient.ApiClient} object + */ public ApiClient setOffsetDateTimeFormat(DateTimeFormatter dateFormat) { - this.json.setOffsetDateTimeFormat(dateFormat); + JSON.setOffsetDateTimeFormat(dateFormat); return this; } + /** + * Set LocalDateFormat. + * + * @param dateFormat a {@link java.time.format.DateTimeFormatter} object + * @return a {@link com.regula.documentreader.webclient.ApiClient} object + */ public ApiClient setLocalDateFormat(DateTimeFormatter dateFormat) { - this.json.setLocalDateFormat(dateFormat); + JSON.setLocalDateFormat(dateFormat); return this; } + /** + * Set LenientOnJson. + * + * @param lenientOnJson a boolean + * @return a {@link com.regula.documentreader.webclient.ApiClient} object + */ public ApiClient setLenientOnJson(boolean lenientOnJson) { - this.json.setLenientOnJson(lenientOnJson); + JSON.setLenientOnJson(lenientOnJson); return this; } @@ -359,6 +449,33 @@ public void setAccessToken(String accessToken) { throw new RuntimeException("No OAuth2 authentication configured!"); } + /** + * Helper method to set credentials for AWSV4 Signature + * + * @param accessKey Access Key + * @param secretKey Secret Key + * @param region Region + * @param service Service to access to + */ + public void setAWS4Configuration( + String accessKey, String secretKey, String region, String service) { + throw new RuntimeException("No AWS4 authentication configured!"); + } + + /** + * Helper method to set credentials for AWSV4 Signature + * + * @param accessKey Access Key + * @param secretKey Secret Key + * @param sessionToken Session Token + * @param region Region + * @param service Service to access to + */ + public void setAWS4Configuration( + String accessKey, String secretKey, String sessionToken, String region, String service) { + throw new RuntimeException("No AWS4 authentication configured!"); + } + /** * Set the User-Agent header's value (by adding to the default header map). * @@ -428,10 +545,10 @@ public ApiClient setDebugging(boolean debugging) { /** * The path of temporary folder used to store downloaded files from endpoints with file response. - * The default value is null, i.e. using the system's default tempopary folder. + * The default value is null, i.e. using the system's default temporary folder. * * @see createTempFile + * href="https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#createTempFile(java.lang.String,%20java.lang.String,%20java.nio.file.attribute.FileAttribute...)">createTempFile * @return Temporary folder path */ public String getTempFolderPath() { @@ -460,7 +577,7 @@ public int getConnectTimeout() { /** * Sets the connect timeout (in milliseconds). A value of 0 means no timeout, otherwise values - * must be between 1 and {@link Integer#MAX_VALUE}. + * must be between 1 and {@link java.lang.Integer#MAX_VALUE}. * * @param connectionTimeout connection timeout in milliseconds * @return Api client @@ -482,7 +599,7 @@ public int getReadTimeout() { /** * Sets the read timeout (in milliseconds). A value of 0 means no timeout, otherwise values must - * be between 1 and {@link Integer#MAX_VALUE}. + * be between 1 and {@link java.lang.Integer#MAX_VALUE}. * * @param readTimeout read timeout in milliseconds * @return Api client @@ -503,7 +620,7 @@ public int getWriteTimeout() { /** * Sets the write timeout (in milliseconds). A value of 0 means no timeout, otherwise values must - * be between 1 and {@link Integer#MAX_VALUE}. + * be between 1 and {@link java.lang.Integer#MAX_VALUE}. * * @param writeTimeout connection timeout in milliseconds * @return Api client @@ -526,7 +643,7 @@ public String parameterToString(Object param) { || param instanceof OffsetDateTime || param instanceof LocalDate) { // Serialize to json string and remove the " enclosing characters - String jsonStr = json.serialize(param); + String jsonStr = JSON.serialize(param); return jsonStr.substring(1, jsonStr.length() - 1); } else if (param instanceof Collection) { StringBuilder b = new StringBuilder(); @@ -534,7 +651,7 @@ public String parameterToString(Object param) { if (b.length() > 0) { b.append(","); } - b.append(String.valueOf(o)); + b.append(o); } return b.toString(); } else { @@ -613,6 +730,30 @@ public List parameterToPairs(String collectionFormat, String name, Collect return params; } + /** + * Formats the specified free-form query parameters to a list of {@code Pair} objects. + * + * @param value The free-form query parameters. + * @return A list of {@code Pair} objects. + */ + public List freeFormParameterToPairs(Object value) { + List params = new ArrayList<>(); + + // preconditions + if (value == null || !(value instanceof Map)) { + return params; + } + + @SuppressWarnings("unchecked") + final Map valuesMap = (Map) value; + + for (Map.Entry entry : valuesMap.entrySet()) { + params.add(new Pair(entry.getKey(), parameterToString(entry.getValue()))); + } + + return params; + } + /** * Formats the specified collection path parameter to a string value. * @@ -694,18 +835,24 @@ public String selectHeaderAccept(String[] accepts) { * use it; otherwise use the first one of the array. * * @param contentTypes The Content-Type array to select from - * @return The Content-Type header to use. If the given array is empty, or matches "any", JSON - * will be used. + * @return The Content-Type header to use. If the given array is empty, returns null. If it + * matches "any", JSON will be used. */ public String selectHeaderContentType(String[] contentTypes) { - if (contentTypes.length == 0 || contentTypes[0].equals("*/*")) { + if (contentTypes.length == 0) { + return null; + } + + if (contentTypes[0].equals("*/*")) { return "application/json"; } + for (String contentType : contentTypes) { if (isJsonMime(contentType)) { return contentType; } } + return contentTypes[0]; } @@ -731,8 +878,8 @@ public String escapeString(String str) { * @param response HTTP response * @param returnType The type of the Java object * @return The deserialized Java object - * @throws ApiException If fail to deserialize response body, i.e. cannot read response body or - * the Content-Type of the response is not supported. + * @throws com.regula.documentreader.webclient.ApiException If fail to deserialize response body, + * i.e. cannot read response body or the Content-Type of the response is not supported. */ @SuppressWarnings("unchecked") public T deserialize(Response response, Type returnType) throws ApiException { @@ -770,7 +917,7 @@ public T deserialize(Response response, Type returnType) throws ApiException contentType = "application/json"; } if (isJsonMime(contentType)) { - return json.deserialize(respBody, returnType); + return JSON.deserialize(respBody, returnType); } else if (returnType.equals(String.class)) { // Expecting string, return the raw response body. return (T) respBody; @@ -790,23 +937,27 @@ public T deserialize(Response response, Type returnType) throws ApiException * @param obj The Java object * @param contentType The request Content-Type * @return The serialized request body - * @throws ApiException If fail to serialize the given object + * @throws com.regula.documentreader.webclient.ApiException If fail to serialize the given object */ public RequestBody serialize(Object obj, String contentType) throws ApiException { if (obj instanceof byte[]) { // Binary (byte array) body parameter support. - return RequestBody.create(MediaType.parse(contentType), (byte[]) obj); + return RequestBody.create((byte[]) obj, MediaType.parse(contentType)); } else if (obj instanceof File) { // File body parameter support. - return RequestBody.create(MediaType.parse(contentType), (File) obj); + return RequestBody.create((File) obj, MediaType.parse(contentType)); + } else if ("text/plain".equals(contentType) && obj instanceof String) { + return RequestBody.create((String) obj, MediaType.parse(contentType)); } else if (isJsonMime(contentType)) { String content; if (obj != null) { - content = json.serialize(obj); + content = JSON.serialize(obj); } else { content = null; } - return RequestBody.create(MediaType.parse(contentType), content); + return RequestBody.create(content, MediaType.parse(contentType)); + } else if (obj instanceof String) { + return RequestBody.create((String) obj, MediaType.parse(contentType)); } else { throw new ApiException("Content type \"" + contentType + "\" is not supported"); } @@ -816,7 +967,8 @@ public RequestBody serialize(Object obj, String contentType) throws ApiException * Download file from the given response. * * @param response An instance of the Response object - * @throws ApiException If fail to read file content from response and write to disk + * @throws com.regula.documentreader.webclient.ApiException If fail to read file content from + * response and write to disk * @return Downloaded file */ public File downloadFileFromResponse(Response response) throws ApiException { @@ -836,7 +988,7 @@ public File downloadFileFromResponse(Response response) throws ApiException { * * @param response An instance of the Response object * @return Prepared file for the download - * @throws IOException If fail to prepare file for download + * @throws java.io.IOException If fail to prepare file for download */ public File prepareDownloadFile(Response response) throws IOException { String filename = null; @@ -863,12 +1015,12 @@ public File prepareDownloadFile(Response response) throws IOException { prefix = filename.substring(0, pos) + "-"; suffix = filename.substring(pos); } - // File.createTempFile requires the prefix to be at least three characters long + // Files.createTempFile requires the prefix to be at least three characters long if (prefix.length() < 3) prefix = "download-"; } - if (tempFolderPath == null) return File.createTempFile(prefix, suffix); - else return File.createTempFile(prefix, suffix, new File(tempFolderPath)); + if (tempFolderPath == null) return Files.createTempFile(prefix, suffix).toFile(); + else return Files.createTempFile(Paths.get(tempFolderPath), prefix, suffix).toFile(); } /** @@ -877,7 +1029,7 @@ public File prepareDownloadFile(Response response) throws IOException { * @param Type * @param call An instance of the Call object * @return ApiResponse<T> - * @throws ApiException If fail to execute the call + * @throws com.regula.documentreader.webclient.ApiException If fail to execute the call */ public ApiResponse execute(Call call) throws ApiException { return execute(call, null); @@ -891,7 +1043,7 @@ public ApiResponse execute(Call call) throws ApiException { * @param call Call * @return ApiResponse object containing response status, headers and data, which is a Java object * deserialized from response body and would be null when returnType is null. - * @throws ApiException If fail to execute the call + * @throws com.regula.documentreader.webclient.ApiException If fail to execute the call */ public ApiResponse execute(Call call, Type returnType) throws ApiException { try { @@ -957,8 +1109,8 @@ public void onResponse(Call call, Response response) throws IOException { * @param response Response * @param returnType Return type * @return Type - * @throws ApiException If the response has an unsuccessful status code or fail to deserialize the - * response body + * @throws com.regula.documentreader.webclient.ApiException If the response has an unsuccessful + * status code or fail to deserialize the response body */ public T handleResponse(Response response, Type returnType) throws ApiException { if (response.isSuccessful()) { @@ -995,6 +1147,7 @@ public T handleResponse(Response response, Type returnType) throws ApiExcept /** * Build HTTP call with the given options. * + * @param baseUrl The base URL * @param path The sub-path of the HTTP URL * @param method The request method, one of "GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH" and * "DELETE" @@ -1007,9 +1160,11 @@ public T handleResponse(Response response, Type returnType) throws ApiExcept * @param authNames The authentications to apply * @param callback Callback for upload/download progress * @return The HTTP call - * @throws ApiException If fail to serialize the request body object + * @throws com.regula.documentreader.webclient.ApiException If fail to serialize the request body + * object */ public Call buildCall( + String baseUrl, String path, String method, List queryParams, @@ -1023,6 +1178,7 @@ public Call buildCall( throws ApiException { Request request = buildRequest( + baseUrl, path, method, queryParams, @@ -1040,6 +1196,7 @@ public Call buildCall( /** * Build an HTTP request with the given options. * + * @param baseUrl The base URL * @param path The sub-path of the HTTP URL * @param method The request method, one of "GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH" and * "DELETE" @@ -1052,9 +1209,11 @@ public Call buildCall( * @param authNames The authentications to apply * @param callback Callback for upload/download progress * @return The HTTP request - * @throws ApiException If fail to serialize the request body object + * @throws com.regula.documentreader.webclient.ApiException If fail to serialize the request body + * object */ public Request buildRequest( + String baseUrl, String path, String method, List queryParams, @@ -1066,25 +1225,20 @@ public Request buildRequest( String[] authNames, ApiCallback callback) throws ApiException { - updateParamsForAuth(authNames, queryParams, headerParams, cookieParams); - - final String url = buildUrl(path, queryParams, collectionQueryParams); - final Request.Builder reqBuilder = new Request.Builder().url(url); - processHeaderParams(headerParams, reqBuilder); - processCookieParams(cookieParams, reqBuilder); - - String contentType = (String) headerParams.get("Content-Type"); - // ensuring a default content type - if (contentType == null) { - contentType = "application/json"; - } + final String url = buildUrl(baseUrl, path, queryParams, collectionQueryParams); + // prepare HTTP request body RequestBody reqBody; + String contentType = headerParams.get("Content-Type"); + String contentTypePure = contentType; + if (contentTypePure != null && contentTypePure.contains(";")) { + contentTypePure = contentType.substring(0, contentType.indexOf(";")); + } if (!HttpMethod.permitsRequestBody(method)) { reqBody = null; - } else if ("application/x-www-form-urlencoded".equals(contentType)) { + } else if ("application/x-www-form-urlencoded".equals(contentTypePure)) { reqBody = buildRequestBodyFormEncoding(formParams); - } else if ("multipart/form-data".equals(contentType)) { + } else if ("multipart/form-data".equals(contentTypePure)) { reqBody = buildRequestBodyMultipart(formParams); } else if (body == null) { if ("DELETE".equals(method)) { @@ -1092,12 +1246,30 @@ public Request buildRequest( reqBody = null; } else { // use an empty request body (for POST, PUT and PATCH) - reqBody = RequestBody.create(MediaType.parse(contentType), ""); + reqBody = RequestBody.create("", contentType == null ? null : MediaType.parse(contentType)); } } else { reqBody = serialize(body, contentType); } + List updatedQueryParams = new ArrayList<>(queryParams); + + // update parameters with authentication settings + updateParamsForAuth( + authNames, + updatedQueryParams, + headerParams, + cookieParams, + requestBodyToString(reqBody), + method, + URI.create(url)); + + final Request.Builder reqBuilder = + new Request.Builder() + .url(buildUrl(baseUrl, path, updatedQueryParams, collectionQueryParams)); + processHeaderParams(headerParams, reqBuilder); + processCookieParams(cookieParams, reqBuilder); + // Associate callback with request (if not null) so interceptor can // access it when creating ProgressResponseBody reqBuilder.tag(callback); @@ -1117,14 +1289,32 @@ public Request buildRequest( /** * Build full URL by concatenating base path, the given sub path and query parameters. * + * @param baseUrl The base URL * @param path The sub path * @param queryParams The query parameters * @param collectionQueryParams The collection query parameters * @return The full URL */ - public String buildUrl(String path, List queryParams, List collectionQueryParams) { + public String buildUrl( + String baseUrl, String path, List queryParams, List collectionQueryParams) { final StringBuilder url = new StringBuilder(); - url.append(basePath).append(path); + if (baseUrl != null) { + url.append(baseUrl).append(path); + } else { + String baseURL; + if (serverIndex != null) { + if (serverIndex < 0 || serverIndex >= servers.size()) { + throw new ArrayIndexOutOfBoundsException( + String.format( + "Invalid index %d when selecting the host settings. Must be less than %d", + serverIndex, servers.size())); + } + baseURL = servers.get(serverIndex).URL(serverVariables); + } else { + baseURL = basePath; + } + url.append(baseURL).append(path); + } if (queryParams != null && !queryParams.isEmpty()) { // support (constant) query string in `path`, e.g. "/posts?draft=1" @@ -1204,18 +1394,26 @@ public void processCookieParams(Map cookieParams, Request.Builde * @param queryParams List of query parameters * @param headerParams Map of header parameters * @param cookieParams Map of cookie parameters + * @param payload HTTP request body + * @param method HTTP method + * @param uri URI + * @throws com.regula.documentreader.webclient.ApiException If fails to update the parameters */ public void updateParamsForAuth( String[] authNames, List queryParams, Map headerParams, - Map cookieParams) { + Map cookieParams, + String payload, + String method, + URI uri) + throws ApiException { for (String authName : authNames) { Authentication auth = authentications.get(authName); if (auth == null) { throw new RuntimeException("Authentication undefined: " + authName); } - auth.applyToParams(queryParams, headerParams, cookieParams); + auth.applyToParams(queryParams, headerParams, cookieParams, payload, method, uri); } } @@ -1245,17 +1443,18 @@ public RequestBody buildRequestBodyMultipart(Map formParams) { for (Entry param : formParams.entrySet()) { if (param.getValue() instanceof File) { File file = (File) param.getValue(); - Headers partHeaders = - Headers.of( - "Content-Disposition", - "form-data; name=\"" + param.getKey() + "\"; filename=\"" + file.getName() + "\""); - MediaType mediaType = MediaType.parse(guessContentTypeFromFile(file)); - mpBuilder.addPart(partHeaders, RequestBody.create(mediaType, file)); + addPartToMultiPartBuilder(mpBuilder, param.getKey(), file); + } else if (param.getValue() instanceof List) { + List list = (List) param.getValue(); + for (Object item : list) { + if (item instanceof File) { + addPartToMultiPartBuilder(mpBuilder, param.getKey(), (File) item); + } else { + addPartToMultiPartBuilder(mpBuilder, param.getKey(), param.getValue()); + } + } } else { - Headers partHeaders = - Headers.of("Content-Disposition", "form-data; name=\"" + param.getKey() + "\""); - mpBuilder.addPart( - partHeaders, RequestBody.create(null, parameterToString(param.getValue()))); + addPartToMultiPartBuilder(mpBuilder, param.getKey(), param.getValue()); } } return mpBuilder.build(); @@ -1276,6 +1475,48 @@ public String guessContentTypeFromFile(File file) { } } + /** + * Add a Content-Disposition Header for the given key and file to the MultipartBody Builder. + * + * @param mpBuilder MultipartBody.Builder + * @param key The key of the Header element + * @param file The file to add to the Header + */ + private void addPartToMultiPartBuilder(MultipartBody.Builder mpBuilder, String key, File file) { + Headers partHeaders = + Headers.of( + "Content-Disposition", + "form-data; name=\"" + key + "\"; filename=\"" + file.getName() + "\""); + MediaType mediaType = MediaType.parse(guessContentTypeFromFile(file)); + mpBuilder.addPart(partHeaders, RequestBody.create(file, mediaType)); + } + + /** + * Add a Content-Disposition Header for the given key and complex object to the MultipartBody + * Builder. + * + * @param mpBuilder MultipartBody.Builder + * @param key The key of the Header element + * @param obj The complex object to add to the Header + */ + private void addPartToMultiPartBuilder(MultipartBody.Builder mpBuilder, String key, Object obj) { + RequestBody requestBody; + if (obj instanceof String) { + requestBody = RequestBody.create((String) obj, MediaType.parse("text/plain")); + } else { + String content; + if (obj != null) { + content = JSON.serialize(obj); + } else { + content = null; + } + requestBody = RequestBody.create(content, MediaType.parse("application/json")); + } + + Headers partHeaders = Headers.of("Content-Disposition", "form-data; name=\"" + key + "\""); + mpBuilder.addPart(partHeaders, requestBody); + } + /** * Get network interceptor to add it to the httpClient to track download progress for async * requests. @@ -1350,7 +1591,7 @@ public boolean verify(String hostname, SSLSession session) { KeyStore caKeyStore = newEmptyKeyStore(password); int index = 0; for (Certificate certificate : certificates) { - String certificateAlias = "ca" + Integer.toString(index++); + String certificateAlias = "ca" + (index++); caKeyStore.setCertificateEntry(certificateAlias, certificate); } trustManagerFactory.init(caKeyStore); @@ -1381,4 +1622,27 @@ private KeyStore newEmptyKeyStore(char[] password) throws GeneralSecurityExcepti throw new AssertionError(e); } } + + /** + * Convert the HTTP request body to a string. + * + * @param requestBody The HTTP request object + * @return The string representation of the HTTP request body + * @throws com.regula.documentreader.webclient.ApiException If fail to serialize the request body + * object into a string + */ + private String requestBodyToString(RequestBody requestBody) throws ApiException { + if (requestBody != null) { + try { + final Buffer buffer = new Buffer(); + requestBody.writeTo(buffer); + return buffer.readUtf8(); + } catch (final IOException e) { + throw new ApiException(e); + } + } + + // empty http request body + return ""; + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ApiException.java b/client/src/main/generated/com/regula/documentreader/webclient/ApiException.java index a74bacaa..39f5e3f9 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ApiException.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ApiException.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -15,22 +15,48 @@ import java.util.List; import java.util.Map; -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +/** ApiException class. */ +@SuppressWarnings("serial") +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ApiException extends RuntimeException { + private static final long serialVersionUID = 1L; + private int code = 0; private Map> responseHeaders = null; private String responseBody = null; + /** Constructor for ApiException. */ public ApiException() {} + /** + * Constructor for ApiException. + * + * @param throwable a {@link java.lang.Throwable} object + */ public ApiException(Throwable throwable) { super(throwable); } + /** + * Constructor for ApiException. + * + * @param message the error message + */ public ApiException(String message) { super(message); } + /** + * Constructor for ApiException. + * + * @param message the error message + * @param throwable a {@link java.lang.Throwable} object + * @param code HTTP status code + * @param responseHeaders a {@link java.util.Map} of HTTP response headers + * @param responseBody the response body + */ public ApiException( String message, Throwable throwable, @@ -43,25 +69,67 @@ public ApiException( this.responseBody = responseBody; } + /** + * Constructor for ApiException. + * + * @param message the error message + * @param code HTTP status code + * @param responseHeaders a {@link java.util.Map} of HTTP response headers + * @param responseBody the response body + */ public ApiException( String message, int code, Map> responseHeaders, String responseBody) { this(message, (Throwable) null, code, responseHeaders, responseBody); } + /** + * Constructor for ApiException. + * + * @param message the error message + * @param throwable a {@link java.lang.Throwable} object + * @param code HTTP status code + * @param responseHeaders a {@link java.util.Map} of HTTP response headers + */ public ApiException( String message, Throwable throwable, int code, Map> responseHeaders) { this(message, throwable, code, responseHeaders, null); } + /** + * Constructor for ApiException. + * + * @param code HTTP status code + * @param responseHeaders a {@link java.util.Map} of HTTP response headers + * @param responseBody the response body + */ public ApiException(int code, Map> responseHeaders, String responseBody) { - this((String) null, (Throwable) null, code, responseHeaders, responseBody); + this( + "Response Code: " + code + " Response Body: " + responseBody, + (Throwable) null, + code, + responseHeaders, + responseBody); } + /** + * Constructor for ApiException. + * + * @param code HTTP status code + * @param message a {@link java.lang.String} object + */ public ApiException(int code, String message) { super(message); this.code = code; } + /** + * Constructor for ApiException. + * + * @param code HTTP status code + * @param message the error message + * @param responseHeaders a {@link java.util.Map} of HTTP response headers + * @param responseBody the response body + */ public ApiException( int code, String message, Map> responseHeaders, String responseBody) { this(code, message); @@ -95,4 +163,15 @@ public Map> getResponseHeaders() { public String getResponseBody() { return responseBody; } + + /** + * Get the exception message including HTTP response data. + * + * @return The exception message + */ + public String getMessage() { + return String.format( + "Message: %s%nHTTP response code: %s%nHTTP response body: %s%nHTTP response headers: %s", + super.getMessage(), this.getCode(), this.getResponseBody(), this.getResponseHeaders()); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ApiResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/ApiResponse.java index 613d5bcf..ded5227b 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ApiResponse.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ApiResponse.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -15,17 +15,15 @@ import java.util.List; import java.util.Map; -/** - * API response returned by API call. - * - * @param The type of data that is deserialized from response body - */ +/** API response returned by API call. */ public class ApiResponse { private final int statusCode; private final Map> headers; private final T data; /** + * Constructor for ApiResponse. + * * @param statusCode The status code of HTTP response * @param headers The headers of HTTP response */ @@ -34,6 +32,8 @@ public ApiResponse(int statusCode, Map> headers) { } /** + * Constructor for ApiResponse. + * * @param statusCode The status code of HTTP response * @param headers The headers of HTTP response * @param data The object deserialized from response bod @@ -44,14 +44,29 @@ public ApiResponse(int statusCode, Map> headers, T data) { this.data = data; } + /** + * Get the status code. + * + * @return the status code + */ public int getStatusCode() { return statusCode; } + /** + * Get the headers. + * + * @return a {@link java.util.Map} of headers + */ public Map> getHeaders() { return headers; } + /** + * Get the data. + * + * @return the data + */ public T getData() { return data; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/Configuration.java b/client/src/main/generated/com/regula/documentreader/webclient/Configuration.java index 879915be..4e245dd9 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/Configuration.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/Configuration.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,9 +12,13 @@ package com.regula.documentreader.webclient; -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class Configuration { - private static ApiClient defaultApiClient = new ApiClient(); + public static final String VERSION = "7.4.0"; + + private static volatile ApiClient defaultApiClient = new ApiClient(); /** * Get the default API client, which would be used when creating API instances without providing diff --git a/client/src/main/generated/com/regula/documentreader/webclient/GzipRequestInterceptor.java b/client/src/main/generated/com/regula/documentreader/webclient/GzipRequestInterceptor.java index 1bb31265..72d610eb 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/GzipRequestInterceptor.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/GzipRequestInterceptor.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java index bf4cd778..c78d7551 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -20,7 +20,6 @@ import com.google.gson.internal.bind.util.ISO8601Utils; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.model.*; import io.gsonfire.GsonFireBuilder; import io.gsonfire.TypeSelector; import java.io.IOException; @@ -29,1030 +28,839 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.ParsePosition; +import java.time.LocalDate; +import java.time.OffsetDateTime; +import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.HashMap; import java.util.Map; import okio.ByteString; -import org.threeten.bp.LocalDate; -import org.threeten.bp.OffsetDateTime; -import org.threeten.bp.format.DateTimeFormatter; +/* + * A JSON utility class + * + * NOTE: in the future, this class may be converted to static, which may break + * backward-compatibility + */ public class JSON { - private Gson gson; - private boolean isLenientOnJson = false; - private DateTypeAdapter dateTypeAdapter = new DateTypeAdapter(); - private SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter(); - private OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter(); - private LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter(); - private ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter(); - - public static Map childOfAuthenticityCheckResultItemByDiscriminatorValue = - new HashMap(); - - static { - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("1", SecurityFeatureResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("1024", IdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("1048576", IdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("128", PhotoIdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("131072", IdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("16", FiberResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("16384", FiberResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("2", SecurityFeatureResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("2048", IdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("256", PhotoIdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("262144", IdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("32", IdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("32768", IdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("4", IdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("4096", SecurityFeatureResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("512", SecurityFeatureResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("524288", IdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("64", OCRSecurityTextResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put( - "65536", SecurityFeatureResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("8", SecurityFeatureResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("8192", SecurityFeatureResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put( - "8388608", SecurityFeatureResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("FiberResult", FiberResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put("IdentResult", IdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put( - "OCRSecurityTextResult", OCRSecurityTextResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put( - "PhotoIdentResult", PhotoIdentResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put( - "SecurityFeatureResult", SecurityFeatureResult.class); - childOfAuthenticityCheckResultItemByDiscriminatorValue.put( - "AuthenticityCheckResultItem", AuthenticityCheckResultItem.class); - } - - public static Map childOfAuthenticityResultByDiscriminatorValue = - new HashMap(); - - static { - childOfAuthenticityResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("33", StatusResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("36", TextResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfAuthenticityResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfAuthenticityResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfAuthenticityResultByDiscriminatorValue.put( - "AuthenticityResult", AuthenticityResult.class); - } - - public static Map childOfByteArrayResultByDiscriminatorValue = - new HashMap(); - - static { - childOfByteArrayResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfByteArrayResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfByteArrayResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfByteArrayResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfByteArrayResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfByteArrayResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfByteArrayResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfByteArrayResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfByteArrayResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfByteArrayResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfByteArrayResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfByteArrayResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfByteArrayResultByDiscriminatorValue.put("33", StatusResult.class); - childOfByteArrayResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfByteArrayResultByDiscriminatorValue.put("36", TextResult.class); - childOfByteArrayResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfByteArrayResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfByteArrayResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfByteArrayResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfByteArrayResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfByteArrayResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfByteArrayResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfByteArrayResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfByteArrayResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfByteArrayResultByDiscriminatorValue.put("ByteArrayResult", ByteArrayResult.class); - } - - public static Map childOfChosenDocumentTypeResultByDiscriminatorValue = - new HashMap(); - - static { - childOfChosenDocumentTypeResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("33", StatusResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("36", TextResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put( - "8", DocumentTypesCandidatesResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfChosenDocumentTypeResultByDiscriminatorValue.put( - "ChosenDocumentTypeResult", ChosenDocumentTypeResult.class); - } - - public static Map childOfDocBarCodeInfoByDiscriminatorValue = - new HashMap(); - - static { - childOfDocBarCodeInfoByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("102", TextDataResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("103", GraphicsResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("17", TextDataResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("18", TextDataResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("19", GraphicsResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("3", TextDataResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("33", StatusResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("36", TextResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("37", ImagesResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("50", LicenseResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("6", GraphicsResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfDocBarCodeInfoByDiscriminatorValue.put("DocBarCodeInfo", DocBarCodeInfo.class); - } - - public static Map childOfDocumentImageResultByDiscriminatorValue = - new HashMap(); - - static { - childOfDocumentImageResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("33", StatusResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("36", TextResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfDocumentImageResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfDocumentImageResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfDocumentImageResultByDiscriminatorValue.put( - "DocumentImageResult", DocumentImageResult.class); - } - - public static Map childOfDocumentPositionResultByDiscriminatorValue = - new HashMap(); - - static { - childOfDocumentPositionResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("33", StatusResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("36", TextResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfDocumentPositionResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfDocumentPositionResultByDiscriminatorValue.put( - "DocumentPositionResult", DocumentPositionResult.class); - } - - public static Map childOfDocumentTypesCandidatesResultByDiscriminatorValue = - new HashMap(); - - static { - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("33", StatusResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("36", TextResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put( - "8", DocumentTypesCandidatesResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put( - "85", DocumentPositionResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put( - "9", ChosenDocumentTypeResult.class); - childOfDocumentTypesCandidatesResultByDiscriminatorValue.put( - "DocumentTypesCandidatesResult", DocumentTypesCandidatesResult.class); - } - - public static Map childOfEncryptedRCLResultByDiscriminatorValue = - new HashMap(); - - static { - childOfEncryptedRCLResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("33", StatusResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("36", TextResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfEncryptedRCLResultByDiscriminatorValue.put( - "EncryptedRCLResult", EncryptedRCLResult.class); - } - - public static Map childOfFiberResultByDiscriminatorValue = - new HashMap(); - - static { - childOfFiberResultByDiscriminatorValue.put("1", SecurityFeatureResult.class); - childOfFiberResultByDiscriminatorValue.put("1024", IdentResult.class); - childOfFiberResultByDiscriminatorValue.put("1048576", IdentResult.class); - childOfFiberResultByDiscriminatorValue.put("128", PhotoIdentResult.class); - childOfFiberResultByDiscriminatorValue.put("131072", IdentResult.class); - childOfFiberResultByDiscriminatorValue.put("16", FiberResult.class); - childOfFiberResultByDiscriminatorValue.put("16384", FiberResult.class); - childOfFiberResultByDiscriminatorValue.put("2", SecurityFeatureResult.class); - childOfFiberResultByDiscriminatorValue.put("2048", IdentResult.class); - childOfFiberResultByDiscriminatorValue.put("256", PhotoIdentResult.class); - childOfFiberResultByDiscriminatorValue.put("262144", IdentResult.class); - childOfFiberResultByDiscriminatorValue.put("32", IdentResult.class); - childOfFiberResultByDiscriminatorValue.put("32768", IdentResult.class); - childOfFiberResultByDiscriminatorValue.put("4", IdentResult.class); - childOfFiberResultByDiscriminatorValue.put("4096", SecurityFeatureResult.class); - childOfFiberResultByDiscriminatorValue.put("512", SecurityFeatureResult.class); - childOfFiberResultByDiscriminatorValue.put("524288", IdentResult.class); - childOfFiberResultByDiscriminatorValue.put("64", OCRSecurityTextResult.class); - childOfFiberResultByDiscriminatorValue.put("65536", SecurityFeatureResult.class); - childOfFiberResultByDiscriminatorValue.put("8", SecurityFeatureResult.class); - childOfFiberResultByDiscriminatorValue.put("8192", SecurityFeatureResult.class); - childOfFiberResultByDiscriminatorValue.put("8388608", SecurityFeatureResult.class); - childOfFiberResultByDiscriminatorValue.put("FiberResult", FiberResult.class); - } - - public static Map childOfGraphicsResultByDiscriminatorValue = - new HashMap(); - - static { - childOfGraphicsResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfGraphicsResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfGraphicsResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfGraphicsResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfGraphicsResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfGraphicsResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfGraphicsResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfGraphicsResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfGraphicsResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfGraphicsResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfGraphicsResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfGraphicsResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfGraphicsResultByDiscriminatorValue.put("33", StatusResult.class); - childOfGraphicsResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfGraphicsResultByDiscriminatorValue.put("36", TextResult.class); - childOfGraphicsResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfGraphicsResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfGraphicsResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfGraphicsResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfGraphicsResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfGraphicsResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfGraphicsResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfGraphicsResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfGraphicsResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfGraphicsResultByDiscriminatorValue.put("GraphicsResult", GraphicsResult.class); - } - - public static Map childOfIdentResultByDiscriminatorValue = - new HashMap(); - - static { - childOfIdentResultByDiscriminatorValue.put("1", SecurityFeatureResult.class); - childOfIdentResultByDiscriminatorValue.put("1024", IdentResult.class); - childOfIdentResultByDiscriminatorValue.put("1048576", IdentResult.class); - childOfIdentResultByDiscriminatorValue.put("128", PhotoIdentResult.class); - childOfIdentResultByDiscriminatorValue.put("131072", IdentResult.class); - childOfIdentResultByDiscriminatorValue.put("16", FiberResult.class); - childOfIdentResultByDiscriminatorValue.put("16384", FiberResult.class); - childOfIdentResultByDiscriminatorValue.put("2", SecurityFeatureResult.class); - childOfIdentResultByDiscriminatorValue.put("2048", IdentResult.class); - childOfIdentResultByDiscriminatorValue.put("256", PhotoIdentResult.class); - childOfIdentResultByDiscriminatorValue.put("262144", IdentResult.class); - childOfIdentResultByDiscriminatorValue.put("32", IdentResult.class); - childOfIdentResultByDiscriminatorValue.put("32768", IdentResult.class); - childOfIdentResultByDiscriminatorValue.put("4", IdentResult.class); - childOfIdentResultByDiscriminatorValue.put("4096", SecurityFeatureResult.class); - childOfIdentResultByDiscriminatorValue.put("512", SecurityFeatureResult.class); - childOfIdentResultByDiscriminatorValue.put("524288", IdentResult.class); - childOfIdentResultByDiscriminatorValue.put("64", OCRSecurityTextResult.class); - childOfIdentResultByDiscriminatorValue.put("65536", SecurityFeatureResult.class); - childOfIdentResultByDiscriminatorValue.put("8", SecurityFeatureResult.class); - childOfIdentResultByDiscriminatorValue.put("8192", SecurityFeatureResult.class); - childOfIdentResultByDiscriminatorValue.put("8388608", SecurityFeatureResult.class); - childOfIdentResultByDiscriminatorValue.put("IdentResult", IdentResult.class); - } - - public static Map childOfImageQualityResultByDiscriminatorValue = - new HashMap(); - - static { - childOfImageQualityResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfImageQualityResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfImageQualityResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfImageQualityResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfImageQualityResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfImageQualityResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfImageQualityResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfImageQualityResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfImageQualityResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfImageQualityResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfImageQualityResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfImageQualityResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfImageQualityResultByDiscriminatorValue.put("33", StatusResult.class); - childOfImageQualityResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfImageQualityResultByDiscriminatorValue.put("36", TextResult.class); - childOfImageQualityResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfImageQualityResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfImageQualityResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfImageQualityResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfImageQualityResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfImageQualityResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfImageQualityResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfImageQualityResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfImageQualityResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfImageQualityResultByDiscriminatorValue.put( - "ImageQualityResult", ImageQualityResult.class); - } - - public static Map childOfImagesResultByDiscriminatorValue = - new HashMap(); - - static { - childOfImagesResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfImagesResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfImagesResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfImagesResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfImagesResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfImagesResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfImagesResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfImagesResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfImagesResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfImagesResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfImagesResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfImagesResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfImagesResultByDiscriminatorValue.put("33", StatusResult.class); - childOfImagesResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfImagesResultByDiscriminatorValue.put("36", TextResult.class); - childOfImagesResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfImagesResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfImagesResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfImagesResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfImagesResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfImagesResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfImagesResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfImagesResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfImagesResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfImagesResultByDiscriminatorValue.put("ImagesResult", ImagesResult.class); - } - - public static Map childOfLexicalAnalysisResultByDiscriminatorValue = - new HashMap(); - - static { - childOfLexicalAnalysisResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("33", StatusResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("36", TextResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfLexicalAnalysisResultByDiscriminatorValue.put( - "LexicalAnalysisResult", LexicalAnalysisResult.class); - } - - public static Map childOfLicenseResultByDiscriminatorValue = - new HashMap(); - - static { - childOfLicenseResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfLicenseResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfLicenseResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfLicenseResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfLicenseResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfLicenseResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfLicenseResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfLicenseResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfLicenseResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfLicenseResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfLicenseResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfLicenseResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfLicenseResultByDiscriminatorValue.put("33", StatusResult.class); - childOfLicenseResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfLicenseResultByDiscriminatorValue.put("36", TextResult.class); - childOfLicenseResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfLicenseResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfLicenseResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfLicenseResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfLicenseResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfLicenseResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfLicenseResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfLicenseResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfLicenseResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfLicenseResultByDiscriminatorValue.put("LicenseResult", LicenseResult.class); - } - - public static Map childOfOCRSecurityTextResultByDiscriminatorValue = - new HashMap(); - - static { - childOfOCRSecurityTextResultByDiscriminatorValue.put("1", SecurityFeatureResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("1024", IdentResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("1048576", IdentResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("128", PhotoIdentResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("131072", IdentResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("16", FiberResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("16384", FiberResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("2", SecurityFeatureResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("2048", IdentResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("256", PhotoIdentResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("262144", IdentResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("32", IdentResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("32768", IdentResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("4", IdentResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("4096", SecurityFeatureResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("512", SecurityFeatureResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("524288", IdentResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("64", OCRSecurityTextResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("65536", SecurityFeatureResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("8", SecurityFeatureResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("8192", SecurityFeatureResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put("8388608", SecurityFeatureResult.class); - childOfOCRSecurityTextResultByDiscriminatorValue.put( - "OCRSecurityTextResult", OCRSecurityTextResult.class); - } - - public static Map childOfPhotoIdentResultByDiscriminatorValue = - new HashMap(); - - static { - childOfPhotoIdentResultByDiscriminatorValue.put("1", SecurityFeatureResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("1024", IdentResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("1048576", IdentResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("128", PhotoIdentResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("131072", IdentResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("16", FiberResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("16384", FiberResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("2", SecurityFeatureResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("2048", IdentResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("256", PhotoIdentResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("262144", IdentResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("32", IdentResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("32768", IdentResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("4", IdentResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("4096", SecurityFeatureResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("512", SecurityFeatureResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("524288", IdentResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("64", OCRSecurityTextResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("65536", SecurityFeatureResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("8", SecurityFeatureResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("8192", SecurityFeatureResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("8388608", SecurityFeatureResult.class); - childOfPhotoIdentResultByDiscriminatorValue.put("PhotoIdentResult", PhotoIdentResult.class); - } - - public static Map childOfResultItemByDiscriminatorValue = - new HashMap(); - - static { - childOfResultItemByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfResultItemByDiscriminatorValue.put("102", TextDataResult.class); - childOfResultItemByDiscriminatorValue.put("103", GraphicsResult.class); - childOfResultItemByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfResultItemByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfResultItemByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfResultItemByDiscriminatorValue.put("17", TextDataResult.class); - childOfResultItemByDiscriminatorValue.put("18", TextDataResult.class); - childOfResultItemByDiscriminatorValue.put("19", GraphicsResult.class); - childOfResultItemByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfResultItemByDiscriminatorValue.put("3", TextDataResult.class); - childOfResultItemByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfResultItemByDiscriminatorValue.put("33", StatusResult.class); - childOfResultItemByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfResultItemByDiscriminatorValue.put("36", TextResult.class); - childOfResultItemByDiscriminatorValue.put("37", ImagesResult.class); - childOfResultItemByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfResultItemByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfResultItemByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfResultItemByDiscriminatorValue.put("50", LicenseResult.class); - childOfResultItemByDiscriminatorValue.put("6", GraphicsResult.class); - childOfResultItemByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfResultItemByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfResultItemByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfResultItemByDiscriminatorValue.put("AuthenticityResult", AuthenticityResult.class); - childOfResultItemByDiscriminatorValue.put("ByteArrayResult", ByteArrayResult.class); - childOfResultItemByDiscriminatorValue.put( - "ChosenDocumentTypeResult", ChosenDocumentTypeResult.class); - childOfResultItemByDiscriminatorValue.put("DocBarCodeInfo", DocBarCodeInfo.class); - childOfResultItemByDiscriminatorValue.put("DocumentImageResult", DocumentImageResult.class); - childOfResultItemByDiscriminatorValue.put( - "DocumentPositionResult", DocumentPositionResult.class); - childOfResultItemByDiscriminatorValue.put( - "DocumentTypesCandidatesResult", DocumentTypesCandidatesResult.class); - childOfResultItemByDiscriminatorValue.put("EncryptedRCLResult", EncryptedRCLResult.class); - childOfResultItemByDiscriminatorValue.put("GraphicsResult", GraphicsResult.class); - childOfResultItemByDiscriminatorValue.put("ImageQualityResult", ImageQualityResult.class); - childOfResultItemByDiscriminatorValue.put("ImagesResult", ImagesResult.class); - childOfResultItemByDiscriminatorValue.put("LexicalAnalysisResult", LexicalAnalysisResult.class); - childOfResultItemByDiscriminatorValue.put("LicenseResult", LicenseResult.class); - childOfResultItemByDiscriminatorValue.put("StatusResult", StatusResult.class); - childOfResultItemByDiscriminatorValue.put("TextDataResult", TextDataResult.class); - childOfResultItemByDiscriminatorValue.put("TextResult", TextResult.class); - childOfResultItemByDiscriminatorValue.put("ResultItem", ResultItem.class); - } - - public static Map childOfSecurityFeatureResultByDiscriminatorValue = - new HashMap(); - - static { - childOfSecurityFeatureResultByDiscriminatorValue.put("1", SecurityFeatureResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("1024", IdentResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("1048576", IdentResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("128", PhotoIdentResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("131072", IdentResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("16", FiberResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("16384", FiberResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("2", SecurityFeatureResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("2048", IdentResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("256", PhotoIdentResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("262144", IdentResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("32", IdentResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("32768", IdentResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("4", IdentResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("4096", SecurityFeatureResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("512", SecurityFeatureResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("524288", IdentResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("64", OCRSecurityTextResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("65536", SecurityFeatureResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("8", SecurityFeatureResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("8192", SecurityFeatureResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put("8388608", SecurityFeatureResult.class); - childOfSecurityFeatureResultByDiscriminatorValue.put( - "SecurityFeatureResult", SecurityFeatureResult.class); - } - - public static Map childOfStatusResultByDiscriminatorValue = - new HashMap(); - - static { - childOfStatusResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfStatusResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfStatusResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfStatusResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfStatusResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfStatusResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfStatusResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfStatusResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfStatusResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfStatusResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfStatusResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfStatusResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfStatusResultByDiscriminatorValue.put("33", StatusResult.class); - childOfStatusResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfStatusResultByDiscriminatorValue.put("36", TextResult.class); - childOfStatusResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfStatusResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfStatusResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfStatusResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfStatusResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfStatusResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfStatusResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfStatusResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfStatusResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfStatusResultByDiscriminatorValue.put("StatusResult", StatusResult.class); - } - - public static Map childOfTextDataResultByDiscriminatorValue = - new HashMap(); - - static { - childOfTextDataResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfTextDataResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfTextDataResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfTextDataResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfTextDataResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfTextDataResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfTextDataResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfTextDataResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfTextDataResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfTextDataResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfTextDataResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfTextDataResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfTextDataResultByDiscriminatorValue.put("33", StatusResult.class); - childOfTextDataResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfTextDataResultByDiscriminatorValue.put("36", TextResult.class); - childOfTextDataResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfTextDataResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfTextDataResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfTextDataResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfTextDataResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfTextDataResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfTextDataResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfTextDataResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfTextDataResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfTextDataResultByDiscriminatorValue.put("TextDataResult", TextDataResult.class); - } - - public static Map childOfTextResultByDiscriminatorValue = - new HashMap(); - - static { - childOfTextResultByDiscriminatorValue.put("1", DocumentImageResult.class); - childOfTextResultByDiscriminatorValue.put("102", TextDataResult.class); - childOfTextResultByDiscriminatorValue.put("103", GraphicsResult.class); - childOfTextResultByDiscriminatorValue.put("109", ByteArrayResult.class); - childOfTextResultByDiscriminatorValue.put("15", LexicalAnalysisResult.class); - childOfTextResultByDiscriminatorValue.put("16", DocumentImageResult.class); - childOfTextResultByDiscriminatorValue.put("17", TextDataResult.class); - childOfTextResultByDiscriminatorValue.put("18", TextDataResult.class); - childOfTextResultByDiscriminatorValue.put("19", GraphicsResult.class); - childOfTextResultByDiscriminatorValue.put("20", AuthenticityResult.class); - childOfTextResultByDiscriminatorValue.put("3", TextDataResult.class); - childOfTextResultByDiscriminatorValue.put("30", ImageQualityResult.class); - childOfTextResultByDiscriminatorValue.put("33", StatusResult.class); - childOfTextResultByDiscriminatorValue.put("34", AuthenticityResult.class); - childOfTextResultByDiscriminatorValue.put("36", TextResult.class); - childOfTextResultByDiscriminatorValue.put("37", ImagesResult.class); - childOfTextResultByDiscriminatorValue.put("39", AuthenticityResult.class); - childOfTextResultByDiscriminatorValue.put("49", EncryptedRCLResult.class); - childOfTextResultByDiscriminatorValue.put("5", DocBarCodeInfo.class); - childOfTextResultByDiscriminatorValue.put("50", LicenseResult.class); - childOfTextResultByDiscriminatorValue.put("6", GraphicsResult.class); - childOfTextResultByDiscriminatorValue.put("8", DocumentTypesCandidatesResult.class); - childOfTextResultByDiscriminatorValue.put("85", DocumentPositionResult.class); - childOfTextResultByDiscriminatorValue.put("9", ChosenDocumentTypeResult.class); - childOfTextResultByDiscriminatorValue.put("TextResult", TextResult.class); - } + private static Gson gson; + private static boolean isLenientOnJson = false; + private static DateTypeAdapter dateTypeAdapter = new DateTypeAdapter(); + private static SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter(); + private static OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = + new OffsetDateTimeTypeAdapter(); + private static LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter(); + private static ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter(); + @SuppressWarnings("unchecked") public static GsonBuilder createGson() { GsonFireBuilder fireBuilder = new GsonFireBuilder() .registerTypeSelector( - AuthenticityCheckResultItem.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.AuthenticityCheckResultItem.class, + new TypeSelector< + com.regula.documentreader.webclient.model.AuthenticityCheckResultItem>() { + @Override + public Class< + ? extends + com.regula.documentreader.webclient.model.AuthenticityCheckResultItem> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "1", com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "1024", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "1048576", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "128", com.regula.documentreader.webclient.model.PhotoIdentResult.class); + classByDiscriminatorValue.put( + "131072", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "16", com.regula.documentreader.webclient.model.FiberResult.class); + classByDiscriminatorValue.put( + "16384", com.regula.documentreader.webclient.model.FiberResult.class); + classByDiscriminatorValue.put( + "2", com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "2048", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "256", com.regula.documentreader.webclient.model.PhotoIdentResult.class); + classByDiscriminatorValue.put( + "262144", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "32", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "32768", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "4", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "4096", + com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "512", + com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "524288", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "64", + com.regula.documentreader.webclient.model.OCRSecurityTextResult.class); + classByDiscriminatorValue.put( + "65536", + com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "8", com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "8192", + com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "8388608", + com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "AuthenticityCheckResultItem", + com.regula.documentreader.webclient.model.AuthenticityCheckResultItem + .class); + return getClassByDiscriminator( + classByDiscriminatorValue, getDiscriminatorValue(readElement, "Type")); + } + }) + .registerTypeSelector( + com.regula.documentreader.webclient.model.AuthenticityCheckResultListInner.class, + new TypeSelector< + com.regula.documentreader.webclient.model.AuthenticityCheckResultListInner>() { + @Override + public Class< + ? extends + com.regula.documentreader.webclient.model + .AuthenticityCheckResultListInner> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "1", com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "1024", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "1048576", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "128", com.regula.documentreader.webclient.model.PhotoIdentResult.class); + classByDiscriminatorValue.put( + "131072", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "16", com.regula.documentreader.webclient.model.FiberResult.class); + classByDiscriminatorValue.put( + "16384", com.regula.documentreader.webclient.model.FiberResult.class); + classByDiscriminatorValue.put( + "2", com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "2048", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "256", com.regula.documentreader.webclient.model.PhotoIdentResult.class); + classByDiscriminatorValue.put( + "262144", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "32", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "32768", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "4", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "4096", + com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "512", + com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "524288", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "64", + com.regula.documentreader.webclient.model.OCRSecurityTextResult.class); + classByDiscriminatorValue.put( + "65536", + com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "8", com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "8192", + com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "8388608", + com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "FiberResult", com.regula.documentreader.webclient.model.FiberResult.class); + classByDiscriminatorValue.put( + "IdentResult", com.regula.documentreader.webclient.model.IdentResult.class); + classByDiscriminatorValue.put( + "OCRSecurityTextResult", + com.regula.documentreader.webclient.model.OCRSecurityTextResult.class); + classByDiscriminatorValue.put( + "PhotoIdentResult", + com.regula.documentreader.webclient.model.PhotoIdentResult.class); + classByDiscriminatorValue.put( + "SecurityFeatureResult", + com.regula.documentreader.webclient.model.SecurityFeatureResult.class); + classByDiscriminatorValue.put( + "AuthenticityCheckResult_List_inner", + com.regula.documentreader.webclient.model.AuthenticityCheckResultListInner + .class); + return getClassByDiscriminator( + classByDiscriminatorValue, getDiscriminatorValue(readElement, "Type")); + } + }) + .registerTypeSelector( + com.regula.documentreader.webclient.model.AuthenticityResult.class, + new TypeSelector() { + @Override + public Class< + ? extends com.regula.documentreader.webclient.model.AuthenticityResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "AuthenticityResult", + com.regula.documentreader.webclient.model.AuthenticityResult.class); + return getClassByDiscriminator( + classByDiscriminatorValue, + getDiscriminatorValue(readElement, "result_type")); + } + }) + .registerTypeSelector( + com.regula.documentreader.webclient.model.ByteArrayResult.class, + new TypeSelector() { + @Override + public Class + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "ByteArrayResult", + com.regula.documentreader.webclient.model.ByteArrayResult.class); + return getClassByDiscriminator( + classByDiscriminatorValue, + getDiscriminatorValue(readElement, "result_type")); + } + }) + .registerTypeSelector( + com.regula.documentreader.webclient.model.ChosenDocumentTypeResult.class, + new TypeSelector< + com.regula.documentreader.webclient.model.ChosenDocumentTypeResult>() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends + com.regula.documentreader.webclient.model.ChosenDocumentTypeResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "ChosenDocumentTypeResult", + com.regula.documentreader.webclient.model.ChosenDocumentTypeResult.class); return getClassByDiscriminator( - childOfAuthenticityCheckResultItemByDiscriminatorValue, - getDiscriminatorValue(readElement, "Type")); + classByDiscriminatorValue, + getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - AuthenticityResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.ContainerListListInner.class, + new TypeSelector< + com.regula.documentreader.webclient.model.ContainerListListInner>() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends + com.regula.documentreader.webclient.model.ContainerListListInner> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "1", com.regula.documentreader.webclient.model.DocumentImageResult.class); + classByDiscriminatorValue.put( + "102", com.regula.documentreader.webclient.model.TextDataResult.class); + classByDiscriminatorValue.put( + "103", com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "104", + com.regula.documentreader.webclient.model.DocumentBinaryInfoResult.class); + classByDiscriminatorValue.put( + "109", com.regula.documentreader.webclient.model.ByteArrayResult.class); + classByDiscriminatorValue.put( + "15", + com.regula.documentreader.webclient.model.LexicalAnalysisResult.class); + classByDiscriminatorValue.put( + "16", com.regula.documentreader.webclient.model.DocumentImageResult.class); + classByDiscriminatorValue.put( + "17", com.regula.documentreader.webclient.model.TextDataResult.class); + classByDiscriminatorValue.put( + "18", com.regula.documentreader.webclient.model.TextDataResult.class); + classByDiscriminatorValue.put( + "19", com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "20", com.regula.documentreader.webclient.model.AuthenticityResult.class); + classByDiscriminatorValue.put( + "26", com.regula.documentreader.webclient.model.TextDataResult.class); + classByDiscriminatorValue.put( + "3", com.regula.documentreader.webclient.model.TextDataResult.class); + classByDiscriminatorValue.put( + "30", com.regula.documentreader.webclient.model.ImageQualityResult.class); + classByDiscriminatorValue.put( + "32", com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "33", com.regula.documentreader.webclient.model.StatusResult.class); + classByDiscriminatorValue.put( + "34", com.regula.documentreader.webclient.model.AuthenticityResult.class); + classByDiscriminatorValue.put( + "35", com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "36", com.regula.documentreader.webclient.model.TextResult.class); + classByDiscriminatorValue.put( + "37", com.regula.documentreader.webclient.model.ImagesResult.class); + classByDiscriminatorValue.put( + "38", com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "39", com.regula.documentreader.webclient.model.AuthenticityResult.class); + classByDiscriminatorValue.put( + "49", com.regula.documentreader.webclient.model.EncryptedRCLResult.class); + classByDiscriminatorValue.put( + "5", com.regula.documentreader.webclient.model.DocBarCodeInfo.class); + classByDiscriminatorValue.put( + "50", com.regula.documentreader.webclient.model.LicenseResult.class); + classByDiscriminatorValue.put( + "6", com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "61", com.regula.documentreader.webclient.model.MRZPositionResult.class); + classByDiscriminatorValue.put( + "62", + com.regula.documentreader.webclient.model.DocumentPositionResult.class); + classByDiscriminatorValue.put( + "7", com.regula.documentreader.webclient.model.MRZTestQualityResult.class); + classByDiscriminatorValue.put( + "8", + com.regula.documentreader.webclient.model.DocumentTypesCandidatesResult + .class); + classByDiscriminatorValue.put( + "85", + com.regula.documentreader.webclient.model.DocumentPositionResult.class); + classByDiscriminatorValue.put( + "87", com.regula.documentreader.webclient.model.MRZDetectorResult.class); + classByDiscriminatorValue.put( + "9", + com.regula.documentreader.webclient.model.ChosenDocumentTypeResult.class); + classByDiscriminatorValue.put( + "97", com.regula.documentreader.webclient.model.FaceDetectionResult.class); + classByDiscriminatorValue.put( + "AuthenticityResult", + com.regula.documentreader.webclient.model.AuthenticityResult.class); + classByDiscriminatorValue.put( + "ByteArrayResult", + com.regula.documentreader.webclient.model.ByteArrayResult.class); + classByDiscriminatorValue.put( + "ChosenDocumentTypeResult", + com.regula.documentreader.webclient.model.ChosenDocumentTypeResult.class); + classByDiscriminatorValue.put( + "DocBarCodeInfo", + com.regula.documentreader.webclient.model.DocBarCodeInfo.class); + classByDiscriminatorValue.put( + "DocumentBinaryInfoResult", + com.regula.documentreader.webclient.model.DocumentBinaryInfoResult.class); + classByDiscriminatorValue.put( + "DocumentImageResult", + com.regula.documentreader.webclient.model.DocumentImageResult.class); + classByDiscriminatorValue.put( + "DocumentPositionResult", + com.regula.documentreader.webclient.model.DocumentPositionResult.class); + classByDiscriminatorValue.put( + "DocumentTypesCandidatesResult", + com.regula.documentreader.webclient.model.DocumentTypesCandidatesResult + .class); + classByDiscriminatorValue.put( + "EncryptedRCLResult", + com.regula.documentreader.webclient.model.EncryptedRCLResult.class); + classByDiscriminatorValue.put( + "FaceDetectionResult", + com.regula.documentreader.webclient.model.FaceDetectionResult.class); + classByDiscriminatorValue.put( + "GraphicsResult", + com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "ImageQualityResult", + com.regula.documentreader.webclient.model.ImageQualityResult.class); + classByDiscriminatorValue.put( + "ImagesResult", + com.regula.documentreader.webclient.model.ImagesResult.class); + classByDiscriminatorValue.put( + "LexicalAnalysisResult", + com.regula.documentreader.webclient.model.LexicalAnalysisResult.class); + classByDiscriminatorValue.put( + "LicenseResult", + com.regula.documentreader.webclient.model.LicenseResult.class); + classByDiscriminatorValue.put( + "MRZDetectorResult", + com.regula.documentreader.webclient.model.MRZDetectorResult.class); + classByDiscriminatorValue.put( + "MRZPositionResult", + com.regula.documentreader.webclient.model.MRZPositionResult.class); + classByDiscriminatorValue.put( + "MRZTestQualityResult", + com.regula.documentreader.webclient.model.MRZTestQualityResult.class); + classByDiscriminatorValue.put( + "StatusResult", + com.regula.documentreader.webclient.model.StatusResult.class); + classByDiscriminatorValue.put( + "TextDataResult", + com.regula.documentreader.webclient.model.TextDataResult.class); + classByDiscriminatorValue.put( + "TextResult", com.regula.documentreader.webclient.model.TextResult.class); + classByDiscriminatorValue.put( + "ContainerList_List_inner", + com.regula.documentreader.webclient.model.ContainerListListInner.class); return getClassByDiscriminator( - childOfAuthenticityResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - ByteArrayResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.DocBarCodeInfo.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "DocBarCodeInfo", + com.regula.documentreader.webclient.model.DocBarCodeInfo.class); return getClassByDiscriminator( - childOfByteArrayResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - ChosenDocumentTypeResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.DocumentBinaryInfoResult.class, + new TypeSelector< + com.regula.documentreader.webclient.model.DocumentBinaryInfoResult>() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends + com.regula.documentreader.webclient.model.DocumentBinaryInfoResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "DocumentBinaryInfoResult", + com.regula.documentreader.webclient.model.DocumentBinaryInfoResult.class); return getClassByDiscriminator( - childOfChosenDocumentTypeResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - DocBarCodeInfo.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.DocumentImageResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends com.regula.documentreader.webclient.model.DocumentImageResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "DocumentImageResult", + com.regula.documentreader.webclient.model.DocumentImageResult.class); return getClassByDiscriminator( - childOfDocBarCodeInfoByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - DocumentImageResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.DocumentPositionResult.class, + new TypeSelector< + com.regula.documentreader.webclient.model.DocumentPositionResult>() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends + com.regula.documentreader.webclient.model.DocumentPositionResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "DocumentPositionResult", + com.regula.documentreader.webclient.model.DocumentPositionResult.class); return getClassByDiscriminator( - childOfDocumentImageResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - DocumentPositionResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.DocumentTypesCandidatesResult.class, + new TypeSelector< + com.regula.documentreader.webclient.model.DocumentTypesCandidatesResult>() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends + com.regula.documentreader.webclient.model + .DocumentTypesCandidatesResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "DocumentTypesCandidatesResult", + com.regula.documentreader.webclient.model.DocumentTypesCandidatesResult + .class); return getClassByDiscriminator( - childOfDocumentPositionResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - DocumentTypesCandidatesResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.EncryptedRCLResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends com.regula.documentreader.webclient.model.EncryptedRCLResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "EncryptedRCLResult", + com.regula.documentreader.webclient.model.EncryptedRCLResult.class); return getClassByDiscriminator( - childOfDocumentTypesCandidatesResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - EncryptedRCLResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.FaceDetectionResult.class, + new TypeSelector() { + @Override + public Class< + ? extends com.regula.documentreader.webclient.model.FaceDetectionResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "FaceDetectionResult", + com.regula.documentreader.webclient.model.FaceDetectionResult.class); + return getClassByDiscriminator( + classByDiscriminatorValue, + getDiscriminatorValue(readElement, "result_type")); + } + }) + .registerTypeSelector( + com.regula.documentreader.webclient.model.FiberResult.class, + new TypeSelector() { + @Override + public Class + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "FiberResult", com.regula.documentreader.webclient.model.FiberResult.class); + return getClassByDiscriminator( + classByDiscriminatorValue, getDiscriminatorValue(readElement, "Type")); + } + }) + .registerTypeSelector( + com.regula.documentreader.webclient.model.GraphicsResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "GraphicsResult", + com.regula.documentreader.webclient.model.GraphicsResult.class); return getClassByDiscriminator( - childOfEncryptedRCLResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - FiberResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.IdentResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "IdentResult", com.regula.documentreader.webclient.model.IdentResult.class); return getClassByDiscriminator( - childOfFiberResultByDiscriminatorValue, - getDiscriminatorValue(readElement, "Type")); + classByDiscriminatorValue, getDiscriminatorValue(readElement, "Type")); + } + }) + .registerTypeSelector( + com.regula.documentreader.webclient.model.ImageQualityResult.class, + new TypeSelector() { + @Override + public Class< + ? extends com.regula.documentreader.webclient.model.ImageQualityResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "ImageQualityResult", + com.regula.documentreader.webclient.model.ImageQualityResult.class); + return getClassByDiscriminator( + classByDiscriminatorValue, + getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - GraphicsResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.ImagesResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "ImagesResult", + com.regula.documentreader.webclient.model.ImagesResult.class); return getClassByDiscriminator( - childOfGraphicsResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - IdentResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.LexicalAnalysisResult.class, + new TypeSelector< + com.regula.documentreader.webclient.model.LexicalAnalysisResult>() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends com.regula.documentreader.webclient.model.LexicalAnalysisResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "LexicalAnalysisResult", + com.regula.documentreader.webclient.model.LexicalAnalysisResult.class); return getClassByDiscriminator( - childOfIdentResultByDiscriminatorValue, - getDiscriminatorValue(readElement, "Type")); + classByDiscriminatorValue, + getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - ImageQualityResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.LicenseResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "LicenseResult", + com.regula.documentreader.webclient.model.LicenseResult.class); return getClassByDiscriminator( - childOfImageQualityResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - ImagesResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.MRZDetectorResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends com.regula.documentreader.webclient.model.MRZDetectorResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "MRZDetectorResult", + com.regula.documentreader.webclient.model.MRZDetectorResult.class); return getClassByDiscriminator( - childOfImagesResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - LexicalAnalysisResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.MRZPositionResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends com.regula.documentreader.webclient.model.MRZPositionResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "MRZPositionResult", + com.regula.documentreader.webclient.model.MRZPositionResult.class); return getClassByDiscriminator( - childOfLexicalAnalysisResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - LicenseResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.MRZTestQualityResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends com.regula.documentreader.webclient.model.MRZTestQualityResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "MRZTestQualityResult", + com.regula.documentreader.webclient.model.MRZTestQualityResult.class); return getClassByDiscriminator( - childOfLicenseResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - OCRSecurityTextResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.OCRSecurityTextResult.class, + new TypeSelector< + com.regula.documentreader.webclient.model.OCRSecurityTextResult>() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends com.regula.documentreader.webclient.model.OCRSecurityTextResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "OCRSecurityTextResult", + com.regula.documentreader.webclient.model.OCRSecurityTextResult.class); return getClassByDiscriminator( - childOfOCRSecurityTextResultByDiscriminatorValue, - getDiscriminatorValue(readElement, "Type")); + classByDiscriminatorValue, getDiscriminatorValue(readElement, "Type")); } }) .registerTypeSelector( - PhotoIdentResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.PhotoIdentResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "PhotoIdentResult", + com.regula.documentreader.webclient.model.PhotoIdentResult.class); return getClassByDiscriminator( - childOfPhotoIdentResultByDiscriminatorValue, - getDiscriminatorValue(readElement, "Type")); + classByDiscriminatorValue, getDiscriminatorValue(readElement, "Type")); } }) .registerTypeSelector( - ResultItem.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.ResultItem.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "1", com.regula.documentreader.webclient.model.DocumentImageResult.class); + classByDiscriminatorValue.put( + "102", com.regula.documentreader.webclient.model.TextDataResult.class); + classByDiscriminatorValue.put( + "103", com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "104", + com.regula.documentreader.webclient.model.DocumentBinaryInfoResult.class); + classByDiscriminatorValue.put( + "109", com.regula.documentreader.webclient.model.ByteArrayResult.class); + classByDiscriminatorValue.put( + "15", + com.regula.documentreader.webclient.model.LexicalAnalysisResult.class); + classByDiscriminatorValue.put( + "16", com.regula.documentreader.webclient.model.DocumentImageResult.class); + classByDiscriminatorValue.put( + "17", com.regula.documentreader.webclient.model.TextDataResult.class); + classByDiscriminatorValue.put( + "18", com.regula.documentreader.webclient.model.TextDataResult.class); + classByDiscriminatorValue.put( + "19", com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "20", com.regula.documentreader.webclient.model.AuthenticityResult.class); + classByDiscriminatorValue.put( + "26", com.regula.documentreader.webclient.model.TextDataResult.class); + classByDiscriminatorValue.put( + "3", com.regula.documentreader.webclient.model.TextDataResult.class); + classByDiscriminatorValue.put( + "30", com.regula.documentreader.webclient.model.ImageQualityResult.class); + classByDiscriminatorValue.put( + "32", com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "33", com.regula.documentreader.webclient.model.StatusResult.class); + classByDiscriminatorValue.put( + "34", com.regula.documentreader.webclient.model.AuthenticityResult.class); + classByDiscriminatorValue.put( + "35", com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "36", com.regula.documentreader.webclient.model.TextResult.class); + classByDiscriminatorValue.put( + "37", com.regula.documentreader.webclient.model.ImagesResult.class); + classByDiscriminatorValue.put( + "38", com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "39", com.regula.documentreader.webclient.model.AuthenticityResult.class); + classByDiscriminatorValue.put( + "49", com.regula.documentreader.webclient.model.EncryptedRCLResult.class); + classByDiscriminatorValue.put( + "5", com.regula.documentreader.webclient.model.DocBarCodeInfo.class); + classByDiscriminatorValue.put( + "50", com.regula.documentreader.webclient.model.LicenseResult.class); + classByDiscriminatorValue.put( + "6", com.regula.documentreader.webclient.model.GraphicsResult.class); + classByDiscriminatorValue.put( + "61", com.regula.documentreader.webclient.model.MRZPositionResult.class); + classByDiscriminatorValue.put( + "62", + com.regula.documentreader.webclient.model.DocumentPositionResult.class); + classByDiscriminatorValue.put( + "7", com.regula.documentreader.webclient.model.MRZTestQualityResult.class); + classByDiscriminatorValue.put( + "8", + com.regula.documentreader.webclient.model.DocumentTypesCandidatesResult + .class); + classByDiscriminatorValue.put( + "85", + com.regula.documentreader.webclient.model.DocumentPositionResult.class); + classByDiscriminatorValue.put( + "87", com.regula.documentreader.webclient.model.MRZDetectorResult.class); + classByDiscriminatorValue.put( + "9", + com.regula.documentreader.webclient.model.ChosenDocumentTypeResult.class); + classByDiscriminatorValue.put( + "97", com.regula.documentreader.webclient.model.FaceDetectionResult.class); + classByDiscriminatorValue.put( + "ResultItem", com.regula.documentreader.webclient.model.ResultItem.class); return getClassByDiscriminator( - childOfResultItemByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - SecurityFeatureResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.SecurityFeatureResult.class, + new TypeSelector< + com.regula.documentreader.webclient.model.SecurityFeatureResult>() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class< + ? extends com.regula.documentreader.webclient.model.SecurityFeatureResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "SecurityFeatureResult", + com.regula.documentreader.webclient.model.SecurityFeatureResult.class); return getClassByDiscriminator( - childOfSecurityFeatureResultByDiscriminatorValue, - getDiscriminatorValue(readElement, "Type")); + classByDiscriminatorValue, getDiscriminatorValue(readElement, "Type")); } }) .registerTypeSelector( - StatusResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.StatusResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "StatusResult", + com.regula.documentreader.webclient.model.StatusResult.class); return getClassByDiscriminator( - childOfStatusResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - TextDataResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.TextDataResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "TextDataResult", + com.regula.documentreader.webclient.model.TextDataResult.class); return getClassByDiscriminator( - childOfTextDataResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }) .registerTypeSelector( - TextResult.class, - new TypeSelector() { + com.regula.documentreader.webclient.model.TextResult.class, + new TypeSelector() { @Override - public Class getClassForElement(JsonElement readElement) { + public Class + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "TextResult", com.regula.documentreader.webclient.model.TextResult.class); return getClassByDiscriminator( - childOfTextResultByDiscriminatorValue, + classByDiscriminatorValue, getDiscriminatorValue(readElement, "result_type")); } }); - - // rewrite, to support default mappings - fireBuilder.registerTypeSelector( - ResultItem.class, - new TypeSelector() { - @Override - public Class getClassForElement(JsonElement readElement) { - String result_type = getDiscriminatorValue(readElement, "result_type"); - Class clazz = childOfResultItemByDiscriminatorValue.get(result_type); - if (clazz == null) { - clazz = RawResultItem.class; - } - return clazz; - } - }); - fireBuilder.registerTypeSelector( - AuthenticityCheckResultItem.class, - new TypeSelector() { - @Override - public Class getClassForElement(JsonElement readElement) { - String result_type = getDiscriminatorValue(readElement, "Type"); - Class clazz = childOfAuthenticityCheckResultItemByDiscriminatorValue.get(result_type); - if (clazz == null) { - clazz = RawAuthenticityCheckResultItem.class; - } - return clazz; - } - }); - GsonBuilder builder = fireBuilder.createGsonBuilder(); return builder; } @@ -1084,15 +892,343 @@ private static Class getClassByDiscriminator( return clazz; } - public JSON() { - gson = - createGson() - .registerTypeAdapter(Date.class, dateTypeAdapter) - .registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter) - .registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter) - .registerTypeAdapter(LocalDate.class, localDateTypeAdapter) - .registerTypeAdapter(byte[].class, byteArrayAdapter) - .create(); + static { + GsonBuilder gsonBuilder = createGson(); + gsonBuilder.registerTypeAdapter(Date.class, dateTypeAdapter); + gsonBuilder.registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter); + gsonBuilder.registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter); + gsonBuilder.registerTypeAdapter(LocalDate.class, localDateTypeAdapter); + gsonBuilder.registerTypeAdapter(byte[].class, byteArrayAdapter); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.AreaArray.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.AreaContainer.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.AuthParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.AuthenticityCheckList + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.AuthenticityCheckResultListInner + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.AuthenticityResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.BcPDF417INFO.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.BcROIDETECT.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.BinaryData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ByteArrayResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ChosenDocumentType + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ChosenDocumentTypeResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ContainerListListInner + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.CrossSourceValueComparison + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DataModule.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DetailsOptical.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DetailsRFID.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DeviceInfo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocBarCodeInfo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocBarCodeInfoFieldsList + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocVisualExtendedFieldRect + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocVisualExtendedFieldRfid + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocVisualExtendedInfoPArrayFieldsInner + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocumentBinaryInfoResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocumentImage.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocumentImageResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocumentPosition.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocumentPositionResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocumentTypesCandidates + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocumentTypesCandidatesList + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocumentTypesCandidatesResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocumentsDatabase.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.EncryptedRCLResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ErrorCoordinates.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.FDSIDList.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.FaceApi.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.FaceApiSearch.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.FaceDetection.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.FaceDetectionResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.FaceItem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.FiberResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.FieldItem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.GetTransactionsByTagResponse + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.GraphicFieldRect.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.GraphicFieldRfid.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.GraphicFieldsListPArrayFieldsInner + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.GraphicsResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.Healthcheck.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.HealthcheckDocumentsDatabase + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.IdentResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ImageData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ImageQA.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ImageQualityCheck.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ImageQualityCheckList + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ImageQualityResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ImageTransactionData + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.Images.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ImagesAvailableSource + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ImagesField.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ImagesFieldValue.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ImagesResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.InData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.InDataTransactionImagesFieldValue + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.InDataVideo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.LexicalAnalysisResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.LicenseResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ListTransactionsByTagResponse + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ListVerifiedFields + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.LivenessParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.MRZDetectorResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.MRZPositionResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.MRZRowsItem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.MRZTestQuality.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.MRZTestQualityResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.MrzPosition.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.OCRSecurityTextResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.OneCandidate.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.OriginalSymbol.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.OutData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.OutDataTransactionImagesFieldValue + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.PArrayField.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.PerDocumentConfig.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.PhotoIdentResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.Point.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.PointArray.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.PointsContainer.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ProcessParams.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ProcessParamsRfid.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ProcessRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ProcessRequestImage + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ProcessSystemInfo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RawImageContainerList + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RectangleCoordinates + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ResultMRZDetector.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidAccessControlInfo + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidAccessKey.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidApplication.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidAttributeData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidAttributeName.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidCardPropertiesExt + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidCertificateEx.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidDG1.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidDataFile.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidDistinguishedName + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidOrigin.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidPkiExtension.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidSecurityObject + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidSessionData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidSignerInfoEx.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidTerminal.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidValidity.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.SecurityFeatureResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.SourceValidity.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.Status.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.StatusResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.StringItem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.StringRecognitionResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.Symbol.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.SymbolCandidate.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.SymbolEstimationItem + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.SymbolRecognitionResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TDocBinaryInfo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.Text.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TextAvailableSource + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TextDataResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TextField.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TextFieldValue.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TextResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TransactionImage.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TransactionInfo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TransactionProcessGetResponse + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TransactionProcessRequest + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TransactionProcessResponse + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TransactionProcessResult + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TrfFtBytes.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TrfFtBytesType.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TrfFtString.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TrfFtStringStatus.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TrfFtStringType.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.VerifiedFieldMap.CustomTypeAdapterFactory()); + gson = gsonBuilder.create(); } /** @@ -1100,7 +1236,7 @@ public JSON() { * * @return Gson */ - public Gson getGson() { + public static Gson getGson() { return gson; } @@ -1108,16 +1244,13 @@ public Gson getGson() { * Set Gson. * * @param gson Gson - * @return JSON */ - public JSON setGson(Gson gson) { - this.gson = gson; - return this; + public static void setGson(Gson gson) { + JSON.gson = gson; } - public JSON setLenientOnJson(boolean lenientOnJson) { + public static void setLenientOnJson(boolean lenientOnJson) { isLenientOnJson = lenientOnJson; - return this; } /** @@ -1126,7 +1259,7 @@ public JSON setLenientOnJson(boolean lenientOnJson) { * @param obj Object * @return String representation of the JSON */ - public String serialize(Object obj) { + public static String serialize(Object obj) { return gson.toJson(obj); } @@ -1139,7 +1272,7 @@ public String serialize(Object obj) { * @return The deserialized Java object */ @SuppressWarnings("unchecked") - public T deserialize(String body, Type returnType) { + public static T deserialize(String body, Type returnType) { try { if (isLenientOnJson) { JsonReader jsonReader = new JsonReader(new StringReader(body)); @@ -1162,7 +1295,7 @@ public T deserialize(String body, Type returnType) { } /** Gson TypeAdapter for Byte Array type */ - public class ByteArrayAdapter extends TypeAdapter { + public static class ByteArrayAdapter extends TypeAdapter { @Override public void write(JsonWriter out, byte[] value) throws IOException { @@ -1224,16 +1357,13 @@ public OffsetDateTime read(JsonReader in) throws IOException { if (date.endsWith("+0000")) { date = date.substring(0, date.length() - 5) + "Z"; } - if (date.contains(" ")) { - date = date.replace(' ', 'T'); - } return OffsetDateTime.parse(date, formatter); } } } /** Gson TypeAdapter for JSR310 LocalDate type */ - public class LocalDateTypeAdapter extends TypeAdapter { + public static class LocalDateTypeAdapter extends TypeAdapter { private DateTimeFormatter formatter; @@ -1271,14 +1401,12 @@ public LocalDate read(JsonReader in) throws IOException { } } - public JSON setOffsetDateTimeFormat(DateTimeFormatter dateFormat) { + public static void setOffsetDateTimeFormat(DateTimeFormatter dateFormat) { offsetDateTimeTypeAdapter.setFormat(dateFormat); - return this; } - public JSON setLocalDateFormat(DateTimeFormatter dateFormat) { + public static void setLocalDateFormat(DateTimeFormatter dateFormat) { localDateTypeAdapter.setFormat(dateFormat); - return this; } /** @@ -1390,13 +1518,11 @@ public Date read(JsonReader in) throws IOException { } } - public JSON setDateFormat(DateFormat dateFormat) { + public static void setDateFormat(DateFormat dateFormat) { dateTypeAdapter.setFormat(dateFormat); - return this; } - public JSON setSqlDateFormat(DateFormat dateFormat) { + public static void setSqlDateFormat(DateFormat dateFormat) { sqlDateTypeAdapter.setFormat(dateFormat); - return this; } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/Pair.java b/client/src/main/generated/com/regula/documentreader/webclient/Pair.java index 23b13ea6..410e40ee 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/Pair.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/Pair.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,7 +12,9 @@ package com.regula.documentreader.webclient; -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class Pair { private String name = ""; private String value = ""; @@ -51,10 +53,6 @@ private boolean isValidString(String arg) { return false; } - if (arg.trim().isEmpty()) { - return false; - } - return true; } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ProgressRequestBody.java b/client/src/main/generated/com/regula/documentreader/webclient/ProgressRequestBody.java index f412234f..4f1a057d 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ProgressRequestBody.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ProgressRequestBody.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ProgressResponseBody.java b/client/src/main/generated/com/regula/documentreader/webclient/ProgressResponseBody.java index cf95814e..f09fd254 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ProgressResponseBody.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ProgressResponseBody.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ServerConfiguration.java b/client/src/main/generated/com/regula/documentreader/webclient/ServerConfiguration.java index 59c109b5..28a9365b 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ServerConfiguration.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ServerConfiguration.java @@ -1,8 +1,23 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + package com.regula.documentreader.webclient; import java.util.Map; /** Representing a Server configuration. */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ServerConfiguration { public String URL; public String description; @@ -10,7 +25,7 @@ public class ServerConfiguration { /** * @param URL A URL to the target host. - * @param description A describtion of the host designated by the URL. + * @param description A description of the host designated by the URL. * @param variables A map between a variable name and its value. The value is used for * substitution in the server's URL template. */ @@ -39,11 +54,11 @@ public String URL(Map variables) { if (variables != null && variables.containsKey(name)) { value = variables.get(name); if (serverVariable.enumValues.size() > 0 && !serverVariable.enumValues.contains(value)) { - throw new RuntimeException( + throw new IllegalArgumentException( "The variable " + name + " in the server URL has invalid value " + value + "."); } } - url = url.replaceAll("\\{" + name + "\\}", value); + url = url.replace("{" + name + "}", value); } return url; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ServerVariable.java b/client/src/main/generated/com/regula/documentreader/webclient/ServerVariable.java index 32406502..aa049e33 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ServerVariable.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ServerVariable.java @@ -1,8 +1,23 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + package com.regula.documentreader.webclient; import java.util.HashSet; /** Representing a Server Variable for server URL template substitution. */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ServerVariable { public String description; public String defaultValue; diff --git a/client/src/main/generated/com/regula/documentreader/webclient/StringUtil.java b/client/src/main/generated/com/regula/documentreader/webclient/StringUtil.java index 190e7a1c..3df726ea 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/StringUtil.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/StringUtil.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -15,7 +15,9 @@ import java.util.Collection; import java.util.Iterator; -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class StringUtil { /** * Check if the given array contains the given value (with case-insensitive comparison). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/DefaultApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/DefaultApi.java deleted file mode 100755 index 545e8be5..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/DefaultApi.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.api; - -import com.google.gson.reflect.TypeToken; -import com.regula.documentreader.webclient.ApiCallback; -import com.regula.documentreader.webclient.ApiClient; -import com.regula.documentreader.webclient.ApiException; -import com.regula.documentreader.webclient.ApiResponse; -import com.regula.documentreader.webclient.Configuration; -import com.regula.documentreader.webclient.Pair; -import com.regula.documentreader.webclient.model.DeviceInfo; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class DefaultApi { - private ApiClient localVarApiClient; - - public DefaultApi() { - this(Configuration.getDefaultApiClient()); - } - - public DefaultApi(ApiClient apiClient) { - this.localVarApiClient = apiClient; - } - - public ApiClient getApiClient() { - return localVarApiClient; - } - - public void setApiClient(ApiClient apiClient) { - this.localVarApiClient = apiClient; - } - - /** - * Build call for ping - * - * @param xRequestID (optional) - * @param _callback Callback for upload/download progress - * @return Call to execute - * @throws ApiException If fail to serialize the request body object - * @http.response.details - * - * - * - *
Status Code Description Response Headers
200 Device info -
- */ - public okhttp3.Call pingCall(String xRequestID, final ApiCallback _callback) throws ApiException { - Object localVarPostBody = null; - - // create path and map variables - String localVarPath = "/api/ping"; - - List localVarQueryParams = new ArrayList(); - List localVarCollectionQueryParams = new ArrayList(); - Map localVarHeaderParams = new HashMap(); - if (xRequestID != null) { - localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); - } - - Map localVarCookieParams = new HashMap(); - Map localVarFormParams = new HashMap(); - final String[] localVarAccepts = {"application/json"}; - final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); - if (localVarAccept != null) { - localVarHeaderParams.put("Accept", localVarAccept); - } - - final String[] localVarContentTypes = {}; - - final String localVarContentType = - localVarApiClient.selectHeaderContentType(localVarContentTypes); - localVarHeaderParams.put("Content-Type", localVarContentType); - - String[] localVarAuthNames = new String[] {}; - return localVarApiClient.buildCall( - localVarPath, - "GET", - localVarQueryParams, - localVarCollectionQueryParams, - localVarPostBody, - localVarHeaderParams, - localVarCookieParams, - localVarFormParams, - localVarAuthNames, - _callback); - } - - @SuppressWarnings("rawtypes") - private okhttp3.Call pingValidateBeforeCall(String xRequestID, final ApiCallback _callback) - throws ApiException { - - okhttp3.Call localVarCall = pingCall(xRequestID, _callback); - return localVarCall; - } - - /** - * Server health check - * - * @param xRequestID (optional) - * @return DeviceInfo - * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the - * response body - * @http.response.details - * - * - * - *
Status Code Description Response Headers
200 Device info -
- */ - public DeviceInfo ping(String xRequestID) throws ApiException { - ApiResponse localVarResp = pingWithHttpInfo(xRequestID); - return localVarResp.getData(); - } - - /** - * Server health check - * - * @param xRequestID (optional) - * @return ApiResponse<DeviceInfo> - * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the - * response body - * @http.response.details - * - * - * - *
Status Code Description Response Headers
200 Device info -
- */ - public ApiResponse pingWithHttpInfo(String xRequestID) throws ApiException { - okhttp3.Call localVarCall = pingValidateBeforeCall(xRequestID, null); - Type localVarReturnType = new TypeToken() {}.getType(); - return localVarApiClient.execute(localVarCall, localVarReturnType); - } - - /** - * Server health check (asynchronously) - * - * @param xRequestID (optional) - * @param _callback The callback to be executed when the API call finishes - * @return The request call - * @throws ApiException If fail to process the API call, e.g. serializing the request body object - * @http.response.details - * - * - * - *
Status Code Description Response Headers
200 Device info -
- */ - public okhttp3.Call pingAsync(String xRequestID, final ApiCallback _callback) - throws ApiException { - - okhttp3.Call localVarCall = pingValidateBeforeCall(xRequestID, _callback); - Type localVarReturnType = new TypeToken() {}.getType(); - localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); - return localVarCall; - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java index 5032ce19..86cf41c3 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -29,6 +29,8 @@ public class HealthcheckApi { private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; public HealthcheckApi() { this(Configuration.getDefaultApiClient()); @@ -46,6 +48,22 @@ public void setApiClient(ApiClient apiClient) { this.localVarApiClient = apiClient; } + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + /** * Build call for healthz * @@ -54,13 +72,27 @@ public void setApiClient(ApiClient apiClient) { * @return Call to execute * @throws ApiException If fail to serialize the request body object * @http.response.details - * + *
+ * * * *
Response Details
Status Code Description Response Headers
200 Device info. -
*/ public okhttp3.Call healthzCall(String xRequestID, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] {}; + + // Determine Base Path to Use + if (localCustomBaseUrl != null) { + basePath = localCustomBaseUrl; + } else if (localBasePaths.length > 0) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + Object localVarPostBody = null; // create path and map variables @@ -69,12 +101,9 @@ public okhttp3.Call healthzCall(String xRequestID, final ApiCallback _callback) List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); - if (xRequestID != null) { - localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); - } - Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = {"application/json"}; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -82,13 +111,19 @@ public okhttp3.Call healthzCall(String xRequestID, final ApiCallback _callback) } final String[] localVarContentTypes = {}; - final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - localVarHeaderParams.put("Content-Type", localVarContentType); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + if (xRequestID != null) { + localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( + basePath, localVarPath, "GET", localVarQueryParams, @@ -104,9 +139,7 @@ public okhttp3.Call healthzCall(String xRequestID, final ApiCallback _callback) @SuppressWarnings("rawtypes") private okhttp3.Call healthzValidateBeforeCall(String xRequestID, final ApiCallback _callback) throws ApiException { - - okhttp3.Call localVarCall = healthzCall(xRequestID, _callback); - return localVarCall; + return healthzCall(xRequestID, _callback); } /** @@ -117,7 +150,8 @@ private okhttp3.Call healthzValidateBeforeCall(String xRequestID, final ApiCallb * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - * + *
+ * * * *
Response Details
Status Code Description Response Headers
200 Device info. -
@@ -135,7 +169,8 @@ public Healthcheck healthz(String xRequestID) throws ApiException { * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - * + *
+ * * * *
Response Details
Status Code Description Response Headers
200 Device info. -
@@ -154,7 +189,8 @@ public ApiResponse healthzWithHttpInfo(String xRequestID) throws Ap * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object * @http.response.details - * + *
+ * * * *
Response Details
Status Code Description Response Headers
200 Device info. -
@@ -175,7 +211,8 @@ public okhttp3.Call healthzAsync(String xRequestID, final ApiCallback + * + * * * *
Response Details
Status Code Description Response Headers
200 Device info -
@@ -184,6 +221,19 @@ public okhttp3.Call healthzAsync(String xRequestID, final ApiCallback 0) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + Object localVarPostBody = null; // create path and map variables @@ -192,12 +242,9 @@ public okhttp3.Call pingCall(String xRequestID, final ApiCallback _callback) thr List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); - if (xRequestID != null) { - localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); - } - Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = {"application/json"}; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -205,13 +252,19 @@ public okhttp3.Call pingCall(String xRequestID, final ApiCallback _callback) thr } final String[] localVarContentTypes = {}; - final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - localVarHeaderParams.put("Content-Type", localVarContentType); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + if (xRequestID != null) { + localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( + basePath, localVarPath, "GET", localVarQueryParams, @@ -228,9 +281,7 @@ public okhttp3.Call pingCall(String xRequestID, final ApiCallback _callback) thr @SuppressWarnings("rawtypes") private okhttp3.Call pingValidateBeforeCall(String xRequestID, final ApiCallback _callback) throws ApiException { - - okhttp3.Call localVarCall = pingCall(xRequestID, _callback); - return localVarCall; + return pingCall(xRequestID, _callback); } /** @@ -241,7 +292,8 @@ private okhttp3.Call pingValidateBeforeCall(String xRequestID, final ApiCallback * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - * + *
+ * * * *
Response Details
Status Code Description Response Headers
200 Device info -
@@ -262,7 +314,8 @@ public DeviceInfo ping(String xRequestID) throws ApiException { * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - * + *
+ * * * *
Response Details
Status Code Description Response Headers
200 Device info -
@@ -284,7 +337,8 @@ public ApiResponse pingWithHttpInfo(String xRequestID) throws ApiExc * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object * @http.response.details - * + *
+ * * * *
Response Details
Status Code Description Response Headers
200 Device info -
@@ -308,7 +362,8 @@ public okhttp3.Call pingAsync(String xRequestID, final ApiCallback _ * @return Call to execute * @throws ApiException If fail to serialize the request body object * @http.response.details - * + *
+ * * * * @@ -316,6 +371,19 @@ public okhttp3.Call pingAsync(String xRequestID, final ApiCallback _ */ public okhttp3.Call readyzCall(String xRequestID, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] {}; + + // Determine Base Path to Use + if (localCustomBaseUrl != null) { + basePath = localCustomBaseUrl; + } else if (localBasePaths.length > 0) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + Object localVarPostBody = null; // create path and map variables @@ -324,27 +392,29 @@ public okhttp3.Call readyzCall(String xRequestID, final ApiCallback _callback) List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); - if (xRequestID != null) { - localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); - } - Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); - final String[] localVarAccepts = {}; + final String[] localVarAccepts = {}; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { localVarHeaderParams.put("Accept", localVarAccept); } final String[] localVarContentTypes = {}; - final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - localVarHeaderParams.put("Content-Type", localVarContentType); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + if (xRequestID != null) { + localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( + basePath, localVarPath, "GET", localVarQueryParams, @@ -360,9 +430,7 @@ public okhttp3.Call readyzCall(String xRequestID, final ApiCallback _callback) @SuppressWarnings("rawtypes") private okhttp3.Call readyzValidateBeforeCall(String xRequestID, final ApiCallback _callback) throws ApiException { - - okhttp3.Call localVarCall = readyzCall(xRequestID, _callback); - return localVarCall; + return readyzCall(xRequestID, _callback); } /** @@ -372,7 +440,8 @@ private okhttp3.Call readyzValidateBeforeCall(String xRequestID, final ApiCallba * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
200 The license is valid. -
400 The license is not valid. -
+ *
+ * * * * @@ -390,7 +459,8 @@ public void readyz(String xRequestID) throws ApiException { * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
200 The license is valid. -
400 The license is not valid. -
+ *
+ * * * * @@ -409,7 +479,8 @@ public ApiResponse readyzWithHttpInfo(String xRequestID) throws ApiExcepti * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object * @http.response.details - *
Response Details
Status Code Description Response Headers
200 The license is valid. -
400 The license is not valid. -
+ *
+ * * * * diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java index 5c2a8bdb..636eb8cb 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -29,6 +29,8 @@ public class ProcessApi { private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; public ProcessApi() { this(Configuration.getDefaultApiClient()); @@ -46,6 +48,22 @@ public void setApiClient(ApiClient apiClient) { this.localVarApiClient = apiClient; } + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + /** * Build call for apiProcess * @@ -55,7 +73,8 @@ public void setApiClient(ApiClient apiClient) { * @return Call to execute * @throws ApiException If fail to serialize the request body object * @http.response.details - *
Response Details
Status Code Description Response Headers
200 The license is valid. -
400 The license is not valid. -
+ *
+ * * * * @@ -65,6 +84,19 @@ public void setApiClient(ApiClient apiClient) { public okhttp3.Call apiProcessCall( ProcessRequest processRequest, String xRequestID, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] {}; + + // Determine Base Path to Use + if (localCustomBaseUrl != null) { + basePath = localCustomBaseUrl; + } else if (localBasePaths.length > 0) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + Object localVarPostBody = processRequest; // create path and map variables @@ -73,12 +105,9 @@ public okhttp3.Call apiProcessCall( List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); - if (xRequestID != null) { - localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); - } - Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = {"application/json"}; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -88,10 +117,17 @@ public okhttp3.Call apiProcessCall( final String[] localVarContentTypes = {"application/json"}; final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - localVarHeaderParams.put("Content-Type", localVarContentType); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + if (xRequestID != null) { + localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( + basePath, localVarPath, "POST", localVarQueryParams, @@ -108,15 +144,13 @@ public okhttp3.Call apiProcessCall( private okhttp3.Call apiProcessValidateBeforeCall( ProcessRequest processRequest, String xRequestID, final ApiCallback _callback) throws ApiException { - // verify the required parameter 'processRequest' is set if (processRequest == null) { throw new ApiException( "Missing the required parameter 'processRequest' when calling apiProcess(Async)"); } - okhttp3.Call localVarCall = apiProcessCall(processRequest, xRequestID, _callback); - return localVarCall; + return apiProcessCall(processRequest, xRequestID, _callback); } /** @@ -128,7 +162,8 @@ private okhttp3.Call apiProcessValidateBeforeCall( * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Document reading result -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -150,7 +185,8 @@ public ProcessResponse apiProcess(ProcessRequest processRequest, String xRequest * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Document reading result -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -173,7 +209,8 @@ public ApiResponse apiProcessWithHttpInfo( * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Document reading result -
400 Bad request. Check your input data. -
+ *
+ * * * * diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java index 5a91ba00..dd195d05 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -19,11 +19,11 @@ import com.regula.documentreader.webclient.ApiResponse; import com.regula.documentreader.webclient.Configuration; import com.regula.documentreader.webclient.Pair; -import com.regula.documentreader.webclient.model.InlineResponse200; -import com.regula.documentreader.webclient.model.InlineResponse2001; import com.regula.documentreader.webclient.model.ListTransactionsByTagResponse; import com.regula.documentreader.webclient.model.TransactionProcessGetResponse; import com.regula.documentreader.webclient.model.TransactionProcessRequest; +import com.regula.documentreader.webclient.model.TransactionProcessResponse; +import com.regula.documentreader.webclient.model.TransactionProcessResult; import java.io.File; import java.lang.reflect.Type; import java.util.ArrayList; @@ -34,6 +34,8 @@ public class TransactionApi { private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; public TransactionApi() { this(Configuration.getDefaultApiClient()); @@ -51,6 +53,22 @@ public void setApiClient(ApiClient apiClient) { this.localVarApiClient = apiClient; } + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + /** * Build call for apiV2TagTagIdDelete * @@ -59,7 +77,8 @@ public void setApiClient(ApiClient apiClient) { * @return Call to execute * @throws ApiException If fail to serialize the request body object * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Document reading result -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -68,18 +87,32 @@ public void setApiClient(ApiClient apiClient) { */ public okhttp3.Call apiV2TagTagIdDeleteCall(UUID tagId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] {}; + + // Determine Base Path to Use + if (localCustomBaseUrl != null) { + basePath = localCustomBaseUrl; + } else if (localBasePaths.length > 0) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + Object localVarPostBody = null; // create path and map variables String localVarPath = "/api/v2/tag/{tagId}" - .replaceAll("\\{" + "tagId" + "\\}", localVarApiClient.escapeString(tagId.toString())); + .replace("{" + "tagId" + "}", localVarApiClient.escapeString(tagId.toString())); List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = {"application/json"}; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -87,13 +120,15 @@ public okhttp3.Call apiV2TagTagIdDeleteCall(UUID tagId, final ApiCallback _callb } final String[] localVarContentTypes = {}; - final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - localVarHeaderParams.put("Content-Type", localVarContentType); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( + basePath, localVarPath, "DELETE", localVarQueryParams, @@ -109,15 +144,13 @@ public okhttp3.Call apiV2TagTagIdDeleteCall(UUID tagId, final ApiCallback _callb @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TagTagIdDeleteValidateBeforeCall( UUID tagId, final ApiCallback _callback) throws ApiException { - // verify the required parameter 'tagId' is set if (tagId == null) { throw new ApiException( "Missing the required parameter 'tagId' when calling apiV2TagTagIdDelete(Async)"); } - okhttp3.Call localVarCall = apiV2TagTagIdDeleteCall(tagId, _callback); - return localVarCall; + return apiV2TagTagIdDeleteCall(tagId, _callback); } /** @@ -128,7 +161,8 @@ private okhttp3.Call apiV2TagTagIdDeleteValidateBeforeCall( * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
204 Transactions deleted -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -148,7 +182,8 @@ public Object apiV2TagTagIdDelete(UUID tagId) throws ApiException { * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
204 Transactions deleted -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -169,7 +204,8 @@ public ApiResponse apiV2TagTagIdDeleteWithHttpInfo(UUID tagId) throws Ap * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object * @http.response.details - *
Response Details
Status Code Description Response Headers
204 Transactions deleted -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -192,7 +228,8 @@ public okhttp3.Call apiV2TagTagIdDeleteAsync(UUID tagId, final ApiCallback + *
Response Details
Status Code Description Response Headers
204 Transactions deleted -
400 Bad request. Check your input data. -
+ * * * * @@ -201,18 +238,32 @@ public okhttp3.Call apiV2TagTagIdDeleteAsync(UUID tagId, final ApiCallback 0) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + Object localVarPostBody = null; // create path and map variables String localVarPath = "/api/v2/tag/{tagId}/transactions" - .replaceAll("\\{" + "tagId" + "\\}", localVarApiClient.escapeString(tagId.toString())); + .replace("{" + "tagId" + "}", localVarApiClient.escapeString(tagId.toString())); List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = {"application/json"}; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -220,13 +271,15 @@ public okhttp3.Call apiV2TagTagIdTransactionsGetCall(String tagId, final ApiCall } final String[] localVarContentTypes = {}; - final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - localVarHeaderParams.put("Content-Type", localVarContentType); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( + basePath, localVarPath, "GET", localVarQueryParams, @@ -242,15 +295,13 @@ public okhttp3.Call apiV2TagTagIdTransactionsGetCall(String tagId, final ApiCall @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TagTagIdTransactionsGetValidateBeforeCall( String tagId, final ApiCallback _callback) throws ApiException { - // verify the required parameter 'tagId' is set if (tagId == null) { throw new ApiException( "Missing the required parameter 'tagId' when calling apiV2TagTagIdTransactionsGet(Async)"); } - okhttp3.Call localVarCall = apiV2TagTagIdTransactionsGetCall(tagId, _callback); - return localVarCall; + return apiV2TagTagIdTransactionsGetCall(tagId, _callback); } /** @@ -261,7 +312,8 @@ private okhttp3.Call apiV2TagTagIdTransactionsGetValidateBeforeCall( * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Transactions list by tag -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -283,7 +335,8 @@ public ListTransactionsByTagResponse apiV2TagTagIdTransactionsGet(String tagId) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Transactions list by tag -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -305,7 +358,8 @@ public ApiResponse apiV2TagTagIdTransactionsGetWi * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Transactions list by tag -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -330,7 +384,8 @@ public okhttp3.Call apiV2TagTagIdTransactionsGetAsync( * @return Call to execute * @throws ApiException If fail to serialize the request body object * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Transactions list by tag -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -338,24 +393,38 @@ public okhttp3.Call apiV2TagTagIdTransactionsGetAsync( */ public okhttp3.Call apiV2TransactionTransactionIdFileGetCall( UUID transactionId, String name, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] {}; + + // Determine Base Path to Use + if (localCustomBaseUrl != null) { + basePath = localCustomBaseUrl; + } else if (localBasePaths.length > 0) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + Object localVarPostBody = null; // create path and map variables String localVarPath = "/api/v2/transaction/{transactionId}/file" - .replaceAll( - "\\{" + "transactionId" + "\\}", + .replace( + "{" + "transactionId" + "}", localVarApiClient.escapeString(transactionId.toString())); List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + if (name != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("name", name)); } - Map localVarHeaderParams = new HashMap(); - Map localVarCookieParams = new HashMap(); - Map localVarFormParams = new HashMap(); final String[] localVarAccepts = {"application/octet-stream"}; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -363,13 +432,15 @@ public okhttp3.Call apiV2TransactionTransactionIdFileGetCall( } final String[] localVarContentTypes = {}; - final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - localVarHeaderParams.put("Content-Type", localVarContentType); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( + basePath, localVarPath, "GET", localVarQueryParams, @@ -385,7 +456,6 @@ public okhttp3.Call apiV2TransactionTransactionIdFileGetCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TransactionTransactionIdFileGetValidateBeforeCall( UUID transactionId, String name, final ApiCallback _callback) throws ApiException { - // verify the required parameter 'transactionId' is set if (transactionId == null) { throw new ApiException( @@ -398,9 +468,7 @@ private okhttp3.Call apiV2TransactionTransactionIdFileGetValidateBeforeCall( "Missing the required parameter 'name' when calling apiV2TransactionTransactionIdFileGet(Async)"); } - okhttp3.Call localVarCall = - apiV2TransactionTransactionIdFileGetCall(transactionId, name, _callback); - return localVarCall; + return apiV2TransactionTransactionIdFileGetCall(transactionId, name, _callback); } /** @@ -412,7 +480,8 @@ private okhttp3.Call apiV2TransactionTransactionIdFileGetValidateBeforeCall( * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Binary file -
404 File not found -
+ *
+ * * * * @@ -434,7 +503,8 @@ public File apiV2TransactionTransactionIdFileGet(UUID transactionId, String name * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Binary file -
404 File not found -
+ *
+ * * * * @@ -457,7 +527,8 @@ public ApiResponse apiV2TransactionTransactionIdFileGetWithHttpInfo( * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Binary file -
404 File not found -
+ *
+ * * * * @@ -480,7 +551,8 @@ public okhttp3.Call apiV2TransactionTransactionIdFileGetAsync( * @return Call to execute * @throws ApiException If fail to serialize the request body object * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Binary file -
404 File not found -
+ *
+ * * * * @@ -489,13 +561,26 @@ public okhttp3.Call apiV2TransactionTransactionIdFileGetAsync( */ public okhttp3.Call apiV2TransactionTransactionIdGetCall( UUID transactionId, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] {}; + + // Determine Base Path to Use + if (localCustomBaseUrl != null) { + basePath = localCustomBaseUrl; + } else if (localBasePaths.length > 0) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + Object localVarPostBody = null; // create path and map variables String localVarPath = "/api/v2/transaction/{transactionId}" - .replaceAll( - "\\{" + "transactionId" + "\\}", + .replace( + "{" + "transactionId" + "}", localVarApiClient.escapeString(transactionId.toString())); List localVarQueryParams = new ArrayList(); @@ -503,6 +588,7 @@ public okhttp3.Call apiV2TransactionTransactionIdGetCall( Map localVarHeaderParams = new HashMap(); Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = {"application/json"}; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -510,13 +596,15 @@ public okhttp3.Call apiV2TransactionTransactionIdGetCall( } final String[] localVarContentTypes = {}; - final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - localVarHeaderParams.put("Content-Type", localVarContentType); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( + basePath, localVarPath, "GET", localVarQueryParams, @@ -532,15 +620,13 @@ public okhttp3.Call apiV2TransactionTransactionIdGetCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TransactionTransactionIdGetValidateBeforeCall( UUID transactionId, final ApiCallback _callback) throws ApiException { - // verify the required parameter 'transactionId' is set if (transactionId == null) { throw new ApiException( "Missing the required parameter 'transactionId' when calling apiV2TransactionTransactionIdGet(Async)"); } - okhttp3.Call localVarCall = apiV2TransactionTransactionIdGetCall(transactionId, _callback); - return localVarCall; + return apiV2TransactionTransactionIdGetCall(transactionId, _callback); } /** @@ -551,7 +637,8 @@ private okhttp3.Call apiV2TransactionTransactionIdGetValidateBeforeCall( * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Reprocess transaction data -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -573,7 +660,8 @@ public TransactionProcessGetResponse apiV2TransactionTransactionIdGet(UUID trans * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Reprocess transaction data -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -596,7 +684,8 @@ public ApiResponse apiV2TransactionTransactionIdG * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Reprocess transaction data -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -622,7 +711,8 @@ public okhttp3.Call apiV2TransactionTransactionIdGetAsync( * @return Call to execute * @throws ApiException If fail to serialize the request body object * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Reprocess transaction data -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -634,13 +724,26 @@ public okhttp3.Call apiV2TransactionTransactionIdProcessPostCall( TransactionProcessRequest transactionProcessRequest, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] {}; + + // Determine Base Path to Use + if (localCustomBaseUrl != null) { + basePath = localCustomBaseUrl; + } else if (localBasePaths.length > 0) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + Object localVarPostBody = transactionProcessRequest; // create path and map variables String localVarPath = "/api/v2/transaction/{transactionId}/process" - .replaceAll( - "\\{" + "transactionId" + "\\}", + .replace( + "{" + "transactionId" + "}", localVarApiClient.escapeString(transactionId.toString())); List localVarQueryParams = new ArrayList(); @@ -648,6 +751,7 @@ public okhttp3.Call apiV2TransactionTransactionIdProcessPostCall( Map localVarHeaderParams = new HashMap(); Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = {"application/json"}; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -657,10 +761,13 @@ public okhttp3.Call apiV2TransactionTransactionIdProcessPostCall( final String[] localVarContentTypes = {"application/json"}; final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - localVarHeaderParams.put("Content-Type", localVarContentType); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( + basePath, localVarPath, "POST", localVarQueryParams, @@ -679,7 +786,6 @@ private okhttp3.Call apiV2TransactionTransactionIdProcessPostValidateBeforeCall( TransactionProcessRequest transactionProcessRequest, final ApiCallback _callback) throws ApiException { - // verify the required parameter 'transactionId' is set if (transactionId == null) { throw new ApiException( @@ -692,10 +798,8 @@ private okhttp3.Call apiV2TransactionTransactionIdProcessPostValidateBeforeCall( "Missing the required parameter 'transactionProcessRequest' when calling apiV2TransactionTransactionIdProcessPost(Async)"); } - okhttp3.Call localVarCall = - apiV2TransactionTransactionIdProcessPostCall( - transactionId, transactionProcessRequest, _callback); - return localVarCall; + return apiV2TransactionTransactionIdProcessPostCall( + transactionId, transactionProcessRequest, _callback); } /** @@ -703,20 +807,21 @@ private okhttp3.Call apiV2TransactionTransactionIdProcessPostValidateBeforeCall( * * @param transactionId Transaction id (required) * @param transactionProcessRequest (required) - * @return InlineResponse200 + * @return TransactionProcessResult * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Transaction Process result -
400 Bad request. Check your input data. -
+ *
+ * * * * * *
Response Details
Status Code Description Response Headers
200 Transaction Process result -
400 Bad request. Check your input data. -
403 Bad license. Either server or request does not contain valid license. -
*/ - public InlineResponse200 apiV2TransactionTransactionIdProcessPost( + public TransactionProcessResult apiV2TransactionTransactionIdProcessPost( UUID transactionId, TransactionProcessRequest transactionProcessRequest) throws ApiException { - ApiResponse localVarResp = + ApiResponse localVarResp = apiV2TransactionTransactionIdProcessPostWithHttpInfo( transactionId, transactionProcessRequest); return localVarResp.getData(); @@ -727,23 +832,24 @@ public InlineResponse200 apiV2TransactionTransactionIdProcessPost( * * @param transactionId Transaction id (required) * @param transactionProcessRequest (required) - * @return ApiResponse<InlineResponse200> + * @return ApiResponse<TransactionProcessResult> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - * + *
+ * * * * * *
Response Details
Status Code Description Response Headers
200 Transaction Process result -
400 Bad request. Check your input data. -
403 Bad license. Either server or request does not contain valid license. -
*/ - public ApiResponse apiV2TransactionTransactionIdProcessPostWithHttpInfo( + public ApiResponse apiV2TransactionTransactionIdProcessPostWithHttpInfo( UUID transactionId, TransactionProcessRequest transactionProcessRequest) throws ApiException { okhttp3.Call localVarCall = apiV2TransactionTransactionIdProcessPostValidateBeforeCall( transactionId, transactionProcessRequest, null); - Type localVarReturnType = new TypeToken() {}.getType(); + Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -756,7 +862,8 @@ public ApiResponse apiV2TransactionTransactionIdProcessPostWi * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object * @http.response.details - * + *
+ * * * * @@ -766,13 +873,13 @@ public ApiResponse apiV2TransactionTransactionIdProcessPostWi public okhttp3.Call apiV2TransactionTransactionIdProcessPostAsync( UUID transactionId, TransactionProcessRequest transactionProcessRequest, - final ApiCallback _callback) + final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = apiV2TransactionTransactionIdProcessPostValidateBeforeCall( transactionId, transactionProcessRequest, _callback); - Type localVarReturnType = new TypeToken() {}.getType(); + Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } @@ -785,7 +892,8 @@ public okhttp3.Call apiV2TransactionTransactionIdProcessPostAsync( * @return Call to execute * @throws ApiException If fail to serialize the request body object * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Transaction Process result -
400 Bad request. Check your input data. -
+ *
+ * * * * @@ -794,24 +902,38 @@ public okhttp3.Call apiV2TransactionTransactionIdProcessPostAsync( */ public okhttp3.Call apiV2TransactionTransactionIdResultsGetCall( UUID transactionId, Boolean withImages, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] {}; + + // Determine Base Path to Use + if (localCustomBaseUrl != null) { + basePath = localCustomBaseUrl; + } else if (localBasePaths.length > 0) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + Object localVarPostBody = null; // create path and map variables String localVarPath = "/api/v2/transaction/{transactionId}/results" - .replaceAll( - "\\{" + "transactionId" + "\\}", + .replace( + "{" + "transactionId" + "}", localVarApiClient.escapeString(transactionId.toString())); List localVarQueryParams = new ArrayList(); List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + if (withImages != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("withImages", withImages)); } - Map localVarHeaderParams = new HashMap(); - Map localVarCookieParams = new HashMap(); - Map localVarFormParams = new HashMap(); final String[] localVarAccepts = {"application/json"}; final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); if (localVarAccept != null) { @@ -819,13 +941,15 @@ public okhttp3.Call apiV2TransactionTransactionIdResultsGetCall( } final String[] localVarContentTypes = {}; - final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - localVarHeaderParams.put("Content-Type", localVarContentType); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( + basePath, localVarPath, "GET", localVarQueryParams, @@ -841,16 +965,13 @@ public okhttp3.Call apiV2TransactionTransactionIdResultsGetCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TransactionTransactionIdResultsGetValidateBeforeCall( UUID transactionId, Boolean withImages, final ApiCallback _callback) throws ApiException { - // verify the required parameter 'transactionId' is set if (transactionId == null) { throw new ApiException( "Missing the required parameter 'transactionId' when calling apiV2TransactionTransactionIdResultsGet(Async)"); } - okhttp3.Call localVarCall = - apiV2TransactionTransactionIdResultsGetCall(transactionId, withImages, _callback); - return localVarCall; + return apiV2TransactionTransactionIdResultsGetCall(transactionId, withImages, _callback); } /** @@ -858,20 +979,21 @@ private okhttp3.Call apiV2TransactionTransactionIdResultsGetValidateBeforeCall( * * @param transactionId Transaction id (required) * @param withImages With base64 images or url (optional) - * @return InlineResponse2001 + * @return TransactionProcessResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - *
Response Details
Status Code Description Response Headers
200 Transaction data -
400 Bad request. Check your input data. -
+ *
+ * * * * * *
Response Details
Status Code Description Response Headers
200 Transaction data -
400 Bad request. Check your input data. -
403 Bad license. Either server or request does not contain valid license. -
*/ - public InlineResponse2001 apiV2TransactionTransactionIdResultsGet( + public TransactionProcessResponse apiV2TransactionTransactionIdResultsGet( UUID transactionId, Boolean withImages) throws ApiException { - ApiResponse localVarResp = + ApiResponse localVarResp = apiV2TransactionTransactionIdResultsGetWithHttpInfo(transactionId, withImages); return localVarResp.getData(); } @@ -881,22 +1003,24 @@ public InlineResponse2001 apiV2TransactionTransactionIdResultsGet( * * @param transactionId Transaction id (required) * @param withImages With base64 images or url (optional) - * @return ApiResponse<InlineResponse2001> + * @return ApiResponse<TransactionProcessResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details - * + *
+ * * * * * *
Response Details
Status Code Description Response Headers
200 Transaction data -
400 Bad request. Check your input data. -
403 Bad license. Either server or request does not contain valid license. -
*/ - public ApiResponse apiV2TransactionTransactionIdResultsGetWithHttpInfo( - UUID transactionId, Boolean withImages) throws ApiException { + public ApiResponse + apiV2TransactionTransactionIdResultsGetWithHttpInfo(UUID transactionId, Boolean withImages) + throws ApiException { okhttp3.Call localVarCall = apiV2TransactionTransactionIdResultsGetValidateBeforeCall(transactionId, withImages, null); - Type localVarReturnType = new TypeToken() {}.getType(); + Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -909,7 +1033,8 @@ public ApiResponse apiV2TransactionTransactionIdResultsGetWi * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object * @http.response.details - * + *
+ * * * * @@ -917,13 +1042,15 @@ public ApiResponse apiV2TransactionTransactionIdResultsGetWi *
Response Details
Status Code Description Response Headers
200 Transaction data -
400 Bad request. Check your input data. -
*/ public okhttp3.Call apiV2TransactionTransactionIdResultsGetAsync( - UUID transactionId, Boolean withImages, final ApiCallback _callback) + UUID transactionId, + Boolean withImages, + final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = apiV2TransactionTransactionIdResultsGetValidateBeforeCall( transactionId, withImages, _callback); - Type localVarReturnType = new TypeToken() {}.getType(); + Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/auth/ApiKeyAuth.java b/client/src/main/generated/com/regula/documentreader/webclient/auth/ApiKeyAuth.java index 232efa5d..8e0d5b3f 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/auth/ApiKeyAuth.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/auth/ApiKeyAuth.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,11 +12,15 @@ package com.regula.documentreader.webclient.auth; +import com.regula.documentreader.webclient.ApiException; import com.regula.documentreader.webclient.Pair; +import java.net.URI; import java.util.List; import java.util.Map; -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ApiKeyAuth implements Authentication { private final String location; private final String paramName; @@ -55,7 +59,13 @@ public void setApiKeyPrefix(String apiKeyPrefix) { @Override public void applyToParams( - List queryParams, Map headerParams, Map cookieParams) { + List queryParams, + Map headerParams, + Map cookieParams, + String payload, + String method, + URI uri) + throws ApiException { if (apiKey == null) { return; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/auth/Authentication.java b/client/src/main/generated/com/regula/documentreader/webclient/auth/Authentication.java index 049b2d43..383013af 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/auth/Authentication.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/auth/Authentication.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,7 +12,9 @@ package com.regula.documentreader.webclient.auth; +import com.regula.documentreader.webclient.ApiException; import com.regula.documentreader.webclient.Pair; +import java.net.URI; import java.util.List; import java.util.Map; @@ -23,7 +25,17 @@ public interface Authentication { * @param queryParams List of query parameters * @param headerParams Map of header parameters * @param cookieParams Map of cookie parameters + * @param payload HTTP request body + * @param method HTTP method + * @param uri URI + * @throws ApiException if failed to update the parameters */ void applyToParams( - List queryParams, Map headerParams, Map cookieParams); + List queryParams, + Map headerParams, + Map cookieParams, + String payload, + String method, + URI uri) + throws ApiException; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBasicAuth.java b/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBasicAuth.java index 034725d4..d6307c9a 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBasicAuth.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBasicAuth.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,7 +12,9 @@ package com.regula.documentreader.webclient.auth; +import com.regula.documentreader.webclient.ApiException; import com.regula.documentreader.webclient.Pair; +import java.net.URI; import java.util.List; import java.util.Map; import okhttp3.Credentials; @@ -39,7 +41,13 @@ public void setPassword(String password) { @Override public void applyToParams( - List queryParams, Map headerParams, Map cookieParams) { + List queryParams, + Map headerParams, + Map cookieParams, + String payload, + String method, + URI uri) + throws ApiException { if (username == null && password == null) { return; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBearerAuth.java b/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBearerAuth.java index 92e831ea..ebb7ee1d 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBearerAuth.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBearerAuth.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,14 +12,20 @@ package com.regula.documentreader.webclient.auth; +import com.regula.documentreader.webclient.ApiException; import com.regula.documentreader.webclient.Pair; +import java.net.URI; import java.util.List; import java.util.Map; +import java.util.Optional; +import java.util.function.Supplier; -@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class HttpBearerAuth implements Authentication { private final String scheme; - private String bearerToken; + private Supplier tokenSupplier; public HttpBearerAuth(String scheme) { this.scheme = scheme; @@ -32,7 +38,7 @@ public HttpBearerAuth(String scheme) { * @return The bearer token */ public String getBearerToken() { - return bearerToken; + return tokenSupplier.get(); } /** @@ -42,12 +48,29 @@ public String getBearerToken() { * @param bearerToken The bearer token to send in the Authorization header */ public void setBearerToken(String bearerToken) { - this.bearerToken = bearerToken; + this.tokenSupplier = () -> bearerToken; + } + + /** + * Sets the supplier of tokens, which together with the scheme, will be sent as the value of the + * Authorization header. + * + * @param tokenSupplier The supplier of bearer tokens to send in the Authorization header + */ + public void setBearerToken(Supplier tokenSupplier) { + this.tokenSupplier = tokenSupplier; } @Override public void applyToParams( - List queryParams, Map headerParams, Map cookieParams) { + List queryParams, + Map headerParams, + Map cookieParams, + String payload, + String method, + URI uri) + throws ApiException { + String bearerToken = Optional.ofNullable(tokenSupplier).map(Supplier::get).orElse(null); if (bearerToken == null) { return; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AbstractOpenApiSchema.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AbstractOpenApiSchema.java new file mode 100644 index 00000000..32cd39b0 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AbstractOpenApiSchema.java @@ -0,0 +1,144 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import java.util.Map; +import java.util.Objects; + +/** Abstract class for oneOf,anyOf schemas defined in OpenAPI spec */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public abstract class AbstractOpenApiSchema { + + // store the actual instance of the schema/object + private Object instance; + + // is nullable + private Boolean isNullable; + + // schema type (e.g. oneOf, anyOf) + private final String schemaType; + + public AbstractOpenApiSchema(String schemaType, Boolean isNullable) { + this.schemaType = schemaType; + this.isNullable = isNullable; + } + + /** + * Get the list of oneOf/anyOf composed schemas allowed to be stored in this object + * + * @return an instance of the actual schema/object + */ + public abstract Map> getSchemas(); + + /** + * Get the actual instance + * + * @return an instance of the actual schema/object + */ + // @JsonValue + public Object getActualInstance() { + return instance; + } + + /** + * Set the actual instance + * + * @param instance the actual instance of the schema/object + */ + public void setActualInstance(Object instance) { + this.instance = instance; + } + + /** + * Get the instant recursively when the schemas defined in oneOf/anyof happen to be oneOf/anyOf + * schema as well + * + * @return an instance of the actual schema/object + */ + public Object getActualInstanceRecursively() { + return getActualInstanceRecursively(this); + } + + private Object getActualInstanceRecursively(AbstractOpenApiSchema object) { + if (object.getActualInstance() == null) { + return null; + } else if (object.getActualInstance() instanceof AbstractOpenApiSchema) { + return getActualInstanceRecursively((AbstractOpenApiSchema) object.getActualInstance()); + } else { + return object.getActualInstance(); + } + } + + /** + * Get the schema type (e.g. anyOf, oneOf) + * + * @return the schema type + */ + public String getSchemaType() { + return schemaType; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ").append(getClass()).append(" {\n"); + sb.append(" instance: ").append(toIndentedString(instance)).append("\n"); + sb.append(" isNullable: ").append(toIndentedString(isNullable)).append("\n"); + sb.append(" schemaType: ").append(toIndentedString(schemaType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AbstractOpenApiSchema a = (AbstractOpenApiSchema) o; + return Objects.equals(this.instance, a.instance) + && Objects.equals(this.isNullable, a.isNullable) + && Objects.equals(this.schemaType, a.schemaType); + } + + @Override + public int hashCode() { + return Objects.hash(instance, isNullable, schemaType); + } + + /** + * Is nullable + * + * @return true if it's nullable + */ + public Boolean isNullable() { + if (Boolean.TRUE.equals(isNullable)) { + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AreaArray.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AreaArray.java index 649b0d3f..8db0fd07 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AreaArray.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AreaArray.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,31 +12,78 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** AreaArray */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class AreaArray { + public static final String SERIALIZED_NAME_COUNT = "Count"; + + @SerializedName(SERIALIZED_NAME_COUNT) + @javax.annotation.Nonnull + private BigDecimal count; + public static final String SERIALIZED_NAME_LIST = "List"; @SerializedName(SERIALIZED_NAME_LIST) - private List list = null; + @javax.annotation.Nonnull + private List list; public static final String SERIALIZED_NAME_POINTS = "Points"; @SerializedName(SERIALIZED_NAME_POINTS) - private List points = null; + @javax.annotation.Nonnull + private List points; + + public AreaArray() {} + + public AreaArray count(@javax.annotation.Nonnull BigDecimal count) { + this.count = count; + return this; + } + + /** + * Number of elements in List and Points + * + * @return count + */ + @javax.annotation.Nonnull + public BigDecimal getCount() { + return count; + } + + public void setCount(@javax.annotation.Nonnull BigDecimal count) { + this.count = count; + } - public AreaArray withList(List list) { + public AreaArray list(@javax.annotation.Nonnull List list) { this.list = list; return this; } public AreaArray addListItem(RectangleCoordinates listItem) { if (this.list == null) { - this.list = new ArrayList(); + this.list = new ArrayList<>(); } this.list.add(listItem); return this; @@ -47,23 +94,23 @@ public AreaArray addListItem(RectangleCoordinates listItem) { * * @return list */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getList() { return list; } - public void setList(List list) { + public void setList(@javax.annotation.Nonnull List list) { this.list = list; } - public AreaArray withPoints(List points) { + public AreaArray points(@javax.annotation.Nonnull List points) { this.points = points; return this; } public AreaArray addPointsItem(PointArray pointsItem) { if (this.points == null) { - this.points = new ArrayList(); + this.points = new ArrayList<>(); } this.points.add(pointsItem); return this; @@ -74,17 +121,17 @@ public AreaArray addPointsItem(PointArray pointsItem) { * * @return points */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getPoints() { return points; } - public void setPoints(List points) { + public void setPoints(@javax.annotation.Nonnull List points) { this.points = points; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -92,19 +139,21 @@ public boolean equals(java.lang.Object o) { return false; } AreaArray areaArray = (AreaArray) o; - return Objects.equals(this.list, areaArray.list) + return Objects.equals(this.count, areaArray.count) + && Objects.equals(this.list, areaArray.list) && Objects.equals(this.points, areaArray.points); } @Override public int hashCode() { - return Objects.hash(list, points); + return Objects.hash(count, list, points); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AreaArray {\n"); + sb.append(" count: ").append(toIndentedString(count)).append("\n"); sb.append(" list: ").append(toIndentedString(list)).append("\n"); sb.append(" points: ").append(toIndentedString(points)).append("\n"); sb.append("}"); @@ -114,10 +163,144 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Count"); + openapiFields.add("List"); + openapiFields.add("Points"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Count"); + openapiRequiredFields.add("List"); + openapiRequiredFields.add("Points"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AreaArray + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AreaArray.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in AreaArray is not found in the empty JSON string", + AreaArray.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AreaArray.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `AreaArray` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AreaArray.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("List").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `List` to be an array in the JSON string but got `%s`", + jsonObj.get("List").toString())); + } + + JsonArray jsonArraylist = jsonObj.getAsJsonArray("List"); + // validate the required field `List` (array) + for (int i = 0; i < jsonArraylist.size(); i++) { + RectangleCoordinates.validateJsonElement(jsonArraylist.get(i)); + } + ; + // ensure the json data is an array + if (!jsonObj.get("Points").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Points` to be an array in the JSON string but got `%s`", + jsonObj.get("Points").toString())); + } + + JsonArray jsonArraypoints = jsonObj.getAsJsonArray("Points"); + // validate the required field `Points` (array) + for (int i = 0; i < jsonArraypoints.size(); i++) { + PointArray.validateJsonElement(jsonArraypoints.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AreaArray.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AreaArray' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(AreaArray.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, AreaArray value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AreaArray read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of AreaArray given an JSON string + * + * @param jsonString JSON string + * @return An instance of AreaArray + * @throws IOException if the JSON string is invalid with respect to AreaArray + */ + public static AreaArray fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AreaArray.class); + } + + /** + * Convert an instance of AreaArray to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AreaContainer.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AreaContainer.java index 0174a4a5..a1de6812 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AreaContainer.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AreaContainer.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,29 +12,51 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Checked fragment coordinates */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class AreaContainer { public static final String SERIALIZED_NAME_COUNT = "Count"; @SerializedName(SERIALIZED_NAME_COUNT) + @javax.annotation.Nonnull private Integer count; public static final String SERIALIZED_NAME_LIST = "List"; @SerializedName(SERIALIZED_NAME_LIST) - private List list = null; + @javax.annotation.Nonnull + private List list; public static final String SERIALIZED_NAME_POINTS = "Points"; @SerializedName(SERIALIZED_NAME_POINTS) - private List points = null; + @javax.annotation.Nonnull + private List points; - public AreaContainer withCount(Integer count) { + public AreaContainer() {} + + public AreaContainer count(@javax.annotation.Nonnull Integer count) { this.count = count; return this; } @@ -44,23 +66,23 @@ public AreaContainer withCount(Integer count) { * * @return count */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getCount() { return count; } - public void setCount(Integer count) { + public void setCount(@javax.annotation.Nonnull Integer count) { this.count = count; } - public AreaContainer withList(List list) { + public AreaContainer list(@javax.annotation.Nonnull List list) { this.list = list; return this; } public AreaContainer addListItem(RectangleCoordinates listItem) { if (this.list == null) { - this.list = new ArrayList(); + this.list = new ArrayList<>(); } this.list.add(listItem); return this; @@ -71,23 +93,23 @@ public AreaContainer addListItem(RectangleCoordinates listItem) { * * @return list */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getList() { return list; } - public void setList(List list) { + public void setList(@javax.annotation.Nonnull List list) { this.list = list; } - public AreaContainer withPoints(List points) { + public AreaContainer points(@javax.annotation.Nonnull List points) { this.points = points; return this; } public AreaContainer addPointsItem(PointsContainer pointsItem) { if (this.points == null) { - this.points = new ArrayList(); + this.points = new ArrayList<>(); } this.points.add(pointsItem); return this; @@ -98,17 +120,17 @@ public AreaContainer addPointsItem(PointsContainer pointsItem) { * * @return points */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getPoints() { return points; } - public void setPoints(List points) { + public void setPoints(@javax.annotation.Nonnull List points) { this.points = points; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -140,10 +162,144 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Count"); + openapiFields.add("List"); + openapiFields.add("Points"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Count"); + openapiRequiredFields.add("List"); + openapiRequiredFields.add("Points"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AreaContainer + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AreaContainer.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in AreaContainer is not found in the empty JSON string", + AreaContainer.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AreaContainer.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `AreaContainer` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AreaContainer.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("List").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `List` to be an array in the JSON string but got `%s`", + jsonObj.get("List").toString())); + } + + JsonArray jsonArraylist = jsonObj.getAsJsonArray("List"); + // validate the required field `List` (array) + for (int i = 0; i < jsonArraylist.size(); i++) { + RectangleCoordinates.validateJsonElement(jsonArraylist.get(i)); + } + ; + // ensure the json data is an array + if (!jsonObj.get("Points").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Points` to be an array in the JSON string but got `%s`", + jsonObj.get("Points").toString())); + } + + JsonArray jsonArraypoints = jsonObj.getAsJsonArray("Points"); + // validate the required field `Points` (array) + for (int i = 0; i < jsonArraypoints.size(); i++) { + PointsContainer.validateJsonElement(jsonArraypoints.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AreaContainer.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AreaContainer' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(AreaContainer.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, AreaContainer value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AreaContainer read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of AreaContainer given an JSON string + * + * @param jsonString JSON string + * @return An instance of AreaContainer + * @throws IOException if the JSON string is invalid with respect to AreaContainer + */ + public static AreaContainer fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AreaContainer.class); + } + + /** + * Convert an instance of AreaContainer to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java index a087a5f6..37709bb7 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,87 +12,120 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** AuthParams */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class AuthParams { public static final String SERIALIZED_NAME_CHECK_LIVENESS = "checkLiveness"; @SerializedName(SERIALIZED_NAME_CHECK_LIVENESS) + @javax.annotation.Nullable private Boolean checkLiveness; public static final String SERIALIZED_NAME_LIVENESS_PARAMS = "livenessParams"; @SerializedName(SERIALIZED_NAME_LIVENESS_PARAMS) + @javax.annotation.Nullable private LivenessParams livenessParams; public static final String SERIALIZED_NAME_CHECK_U_V_LUMINISCENCE = "checkUVLuminiscence"; @SerializedName(SERIALIZED_NAME_CHECK_U_V_LUMINISCENCE) + @javax.annotation.Nullable private Boolean checkUVLuminiscence; public static final String SERIALIZED_NAME_CHECK_I_R_B900 = "checkIRB900"; @SerializedName(SERIALIZED_NAME_CHECK_I_R_B900) + @javax.annotation.Nullable private Boolean checkIRB900; public static final String SERIALIZED_NAME_CHECK_IMAGE_PATTERNS = "checkImagePatterns"; @SerializedName(SERIALIZED_NAME_CHECK_IMAGE_PATTERNS) + @javax.annotation.Nullable private Boolean checkImagePatterns; public static final String SERIALIZED_NAME_CHECK_FIBERS = "checkFibers"; @SerializedName(SERIALIZED_NAME_CHECK_FIBERS) + @javax.annotation.Nullable private Boolean checkFibers; public static final String SERIALIZED_NAME_CHECK_EXT_M_R_Z = "checkExtMRZ"; @SerializedName(SERIALIZED_NAME_CHECK_EXT_M_R_Z) + @javax.annotation.Nullable private Boolean checkExtMRZ; public static final String SERIALIZED_NAME_CHECK_EXT_O_C_R = "checkExtOCR"; @SerializedName(SERIALIZED_NAME_CHECK_EXT_O_C_R) + @javax.annotation.Nullable private Boolean checkExtOCR; public static final String SERIALIZED_NAME_CHECK_AXIAL = "checkAxial"; @SerializedName(SERIALIZED_NAME_CHECK_AXIAL) + @javax.annotation.Nullable private Boolean checkAxial; public static final String SERIALIZED_NAME_CHECK_BARCODE_FORMAT = "checkBarcodeFormat"; @SerializedName(SERIALIZED_NAME_CHECK_BARCODE_FORMAT) + @javax.annotation.Nullable private Boolean checkBarcodeFormat; public static final String SERIALIZED_NAME_CHECK_I_R_VISIBILITY = "checkIRVisibility"; @SerializedName(SERIALIZED_NAME_CHECK_I_R_VISIBILITY) + @javax.annotation.Nullable private Boolean checkIRVisibility; public static final String SERIALIZED_NAME_CHECK_I_P_I = "checkIPI"; @SerializedName(SERIALIZED_NAME_CHECK_I_P_I) + @javax.annotation.Nullable private Boolean checkIPI; public static final String SERIALIZED_NAME_CHECK_PHOTO_EMBEDDING = "checkPhotoEmbedding"; @SerializedName(SERIALIZED_NAME_CHECK_PHOTO_EMBEDDING) + @javax.annotation.Nullable private Boolean checkPhotoEmbedding; public static final String SERIALIZED_NAME_CHECK_PHOTO_COMPARISON = "checkPhotoComparison"; @SerializedName(SERIALIZED_NAME_CHECK_PHOTO_COMPARISON) + @javax.annotation.Nullable private Boolean checkPhotoComparison; public static final String SERIALIZED_NAME_CHECK_LETTER_SCREEN = "checkLetterScreen"; @SerializedName(SERIALIZED_NAME_CHECK_LETTER_SCREEN) + @javax.annotation.Nullable private Boolean checkLetterScreen; - public AuthParams withCheckLiveness(Boolean checkLiveness) { + public AuthParams() {} + + public AuthParams checkLiveness(@javax.annotation.Nullable Boolean checkLiveness) { this.checkLiveness = checkLiveness; return this; } @@ -107,11 +140,11 @@ public Boolean getCheckLiveness() { return checkLiveness; } - public void setCheckLiveness(Boolean checkLiveness) { + public void setCheckLiveness(@javax.annotation.Nullable Boolean checkLiveness) { this.checkLiveness = checkLiveness; } - public AuthParams withLivenessParams(LivenessParams livenessParams) { + public AuthParams livenessParams(@javax.annotation.Nullable LivenessParams livenessParams) { this.livenessParams = livenessParams; return this; } @@ -126,11 +159,11 @@ public LivenessParams getLivenessParams() { return livenessParams; } - public void setLivenessParams(LivenessParams livenessParams) { + public void setLivenessParams(@javax.annotation.Nullable LivenessParams livenessParams) { this.livenessParams = livenessParams; } - public AuthParams withCheckUVLuminiscence(Boolean checkUVLuminiscence) { + public AuthParams checkUVLuminiscence(@javax.annotation.Nullable Boolean checkUVLuminiscence) { this.checkUVLuminiscence = checkUVLuminiscence; return this; } @@ -145,11 +178,11 @@ public Boolean getCheckUVLuminiscence() { return checkUVLuminiscence; } - public void setCheckUVLuminiscence(Boolean checkUVLuminiscence) { + public void setCheckUVLuminiscence(@javax.annotation.Nullable Boolean checkUVLuminiscence) { this.checkUVLuminiscence = checkUVLuminiscence; } - public AuthParams withCheckIRB900(Boolean checkIRB900) { + public AuthParams checkIRB900(@javax.annotation.Nullable Boolean checkIRB900) { this.checkIRB900 = checkIRB900; return this; } @@ -164,11 +197,11 @@ public Boolean getCheckIRB900() { return checkIRB900; } - public void setCheckIRB900(Boolean checkIRB900) { + public void setCheckIRB900(@javax.annotation.Nullable Boolean checkIRB900) { this.checkIRB900 = checkIRB900; } - public AuthParams withCheckImagePatterns(Boolean checkImagePatterns) { + public AuthParams checkImagePatterns(@javax.annotation.Nullable Boolean checkImagePatterns) { this.checkImagePatterns = checkImagePatterns; return this; } @@ -183,11 +216,11 @@ public Boolean getCheckImagePatterns() { return checkImagePatterns; } - public void setCheckImagePatterns(Boolean checkImagePatterns) { + public void setCheckImagePatterns(@javax.annotation.Nullable Boolean checkImagePatterns) { this.checkImagePatterns = checkImagePatterns; } - public AuthParams withCheckFibers(Boolean checkFibers) { + public AuthParams checkFibers(@javax.annotation.Nullable Boolean checkFibers) { this.checkFibers = checkFibers; return this; } @@ -202,11 +235,11 @@ public Boolean getCheckFibers() { return checkFibers; } - public void setCheckFibers(Boolean checkFibers) { + public void setCheckFibers(@javax.annotation.Nullable Boolean checkFibers) { this.checkFibers = checkFibers; } - public AuthParams withCheckExtMRZ(Boolean checkExtMRZ) { + public AuthParams checkExtMRZ(@javax.annotation.Nullable Boolean checkExtMRZ) { this.checkExtMRZ = checkExtMRZ; return this; } @@ -221,11 +254,11 @@ public Boolean getCheckExtMRZ() { return checkExtMRZ; } - public void setCheckExtMRZ(Boolean checkExtMRZ) { + public void setCheckExtMRZ(@javax.annotation.Nullable Boolean checkExtMRZ) { this.checkExtMRZ = checkExtMRZ; } - public AuthParams withCheckExtOCR(Boolean checkExtOCR) { + public AuthParams checkExtOCR(@javax.annotation.Nullable Boolean checkExtOCR) { this.checkExtOCR = checkExtOCR; return this; } @@ -240,11 +273,11 @@ public Boolean getCheckExtOCR() { return checkExtOCR; } - public void setCheckExtOCR(Boolean checkExtOCR) { + public void setCheckExtOCR(@javax.annotation.Nullable Boolean checkExtOCR) { this.checkExtOCR = checkExtOCR; } - public AuthParams withCheckAxial(Boolean checkAxial) { + public AuthParams checkAxial(@javax.annotation.Nullable Boolean checkAxial) { this.checkAxial = checkAxial; return this; } @@ -259,11 +292,11 @@ public Boolean getCheckAxial() { return checkAxial; } - public void setCheckAxial(Boolean checkAxial) { + public void setCheckAxial(@javax.annotation.Nullable Boolean checkAxial) { this.checkAxial = checkAxial; } - public AuthParams withCheckBarcodeFormat(Boolean checkBarcodeFormat) { + public AuthParams checkBarcodeFormat(@javax.annotation.Nullable Boolean checkBarcodeFormat) { this.checkBarcodeFormat = checkBarcodeFormat; return this; } @@ -279,11 +312,11 @@ public Boolean getCheckBarcodeFormat() { return checkBarcodeFormat; } - public void setCheckBarcodeFormat(Boolean checkBarcodeFormat) { + public void setCheckBarcodeFormat(@javax.annotation.Nullable Boolean checkBarcodeFormat) { this.checkBarcodeFormat = checkBarcodeFormat; } - public AuthParams withCheckIRVisibility(Boolean checkIRVisibility) { + public AuthParams checkIRVisibility(@javax.annotation.Nullable Boolean checkIRVisibility) { this.checkIRVisibility = checkIRVisibility; return this; } @@ -298,11 +331,11 @@ public Boolean getCheckIRVisibility() { return checkIRVisibility; } - public void setCheckIRVisibility(Boolean checkIRVisibility) { + public void setCheckIRVisibility(@javax.annotation.Nullable Boolean checkIRVisibility) { this.checkIRVisibility = checkIRVisibility; } - public AuthParams withCheckIPI(Boolean checkIPI) { + public AuthParams checkIPI(@javax.annotation.Nullable Boolean checkIPI) { this.checkIPI = checkIPI; return this; } @@ -317,11 +350,11 @@ public Boolean getCheckIPI() { return checkIPI; } - public void setCheckIPI(Boolean checkIPI) { + public void setCheckIPI(@javax.annotation.Nullable Boolean checkIPI) { this.checkIPI = checkIPI; } - public AuthParams withCheckPhotoEmbedding(Boolean checkPhotoEmbedding) { + public AuthParams checkPhotoEmbedding(@javax.annotation.Nullable Boolean checkPhotoEmbedding) { this.checkPhotoEmbedding = checkPhotoEmbedding; return this; } @@ -337,11 +370,11 @@ public Boolean getCheckPhotoEmbedding() { return checkPhotoEmbedding; } - public void setCheckPhotoEmbedding(Boolean checkPhotoEmbedding) { + public void setCheckPhotoEmbedding(@javax.annotation.Nullable Boolean checkPhotoEmbedding) { this.checkPhotoEmbedding = checkPhotoEmbedding; } - public AuthParams withCheckPhotoComparison(Boolean checkPhotoComparison) { + public AuthParams checkPhotoComparison(@javax.annotation.Nullable Boolean checkPhotoComparison) { this.checkPhotoComparison = checkPhotoComparison; return this; } @@ -356,11 +389,11 @@ public Boolean getCheckPhotoComparison() { return checkPhotoComparison; } - public void setCheckPhotoComparison(Boolean checkPhotoComparison) { + public void setCheckPhotoComparison(@javax.annotation.Nullable Boolean checkPhotoComparison) { this.checkPhotoComparison = checkPhotoComparison; } - public AuthParams withCheckLetterScreen(Boolean checkLetterScreen) { + public AuthParams checkLetterScreen(@javax.annotation.Nullable Boolean checkLetterScreen) { this.checkLetterScreen = checkLetterScreen; return this; } @@ -375,12 +408,12 @@ public Boolean getCheckLetterScreen() { return checkLetterScreen; } - public void setCheckLetterScreen(Boolean checkLetterScreen) { + public void setCheckLetterScreen(@javax.annotation.Nullable Boolean checkLetterScreen) { this.checkLetterScreen = checkLetterScreen; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -457,10 +490,119 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("checkLiveness"); + openapiFields.add("livenessParams"); + openapiFields.add("checkUVLuminiscence"); + openapiFields.add("checkIRB900"); + openapiFields.add("checkImagePatterns"); + openapiFields.add("checkFibers"); + openapiFields.add("checkExtMRZ"); + openapiFields.add("checkExtOCR"); + openapiFields.add("checkAxial"); + openapiFields.add("checkBarcodeFormat"); + openapiFields.add("checkIRVisibility"); + openapiFields.add("checkIPI"); + openapiFields.add("checkPhotoEmbedding"); + openapiFields.add("checkPhotoComparison"); + openapiFields.add("checkLetterScreen"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthParams.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in AuthParams is not found in the empty JSON string", + AuthParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `AuthParams` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `livenessParams` + if (jsonObj.get("livenessParams") != null && !jsonObj.get("livenessParams").isJsonNull()) { + LivenessParams.validateJsonElement(jsonObj.get("livenessParams")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(AuthParams.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of AuthParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthParams + * @throws IOException if the JSON string is invalid with respect to AuthParams + */ + public static AuthParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthParams.class); + } + + /** + * Convert an instance of AuthParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java index 37e34c5f..b6646878 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,24 +12,45 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** AuthenticityCheckList */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class AuthenticityCheckList { public static final String SERIALIZED_NAME_COUNT = "Count"; @SerializedName(SERIALIZED_NAME_COUNT) + @javax.annotation.Nonnull private Integer count; public static final String SERIALIZED_NAME_LIST = "List"; @SerializedName(SERIALIZED_NAME_LIST) - private List list = new ArrayList(); + @javax.annotation.Nonnull + private List list; - public AuthenticityCheckList withCount(Integer count) { + public AuthenticityCheckList() {} + + public AuthenticityCheckList count(@javax.annotation.Nonnull Integer count) { this.count = count; return this; } @@ -39,21 +60,27 @@ public AuthenticityCheckList withCount(Integer count) { * * @return count */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getCount() { return count; } - public void setCount(Integer count) { + public void setCount(@javax.annotation.Nonnull Integer count) { this.count = count; } - public AuthenticityCheckList withList(List list) { + public AuthenticityCheckList list( + @javax.annotation.Nonnull + List list) { this.list = list; return this; } - public AuthenticityCheckList addListItem(AuthenticityCheckResult listItem) { + public AuthenticityCheckList addListItem( + com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult listItem) { + if (this.list == null) { + this.list = new ArrayList<>(); + } this.list.add(listItem); return this; } @@ -63,16 +90,19 @@ public AuthenticityCheckList addListItem(AuthenticityCheckResult listItem) { * * @return list */ - public List getList() { + @javax.annotation.Nonnull + public List getList() { return list; } - public void setList(List list) { + public void setList( + @javax.annotation.Nonnull + List list) { this.list = list; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -102,10 +132,129 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Count"); + openapiFields.add("List"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Count"); + openapiRequiredFields.add("List"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticityCheckList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticityCheckList.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in AuthenticityCheckList is not found in the empty JSON string", + AuthenticityCheckList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthenticityCheckList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `AuthenticityCheckList` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AuthenticityCheckList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("List").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `List` to be an array in the JSON string but got `%s`", + jsonObj.get("List").toString())); + } + + JsonArray jsonArraylist = jsonObj.getAsJsonArray("List"); + // validate the required field `List` (array) + for (int i = 0; i < jsonArraylist.size(); i++) { + com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult.validateJsonElement( + jsonArraylist.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticityCheckList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticityCheckList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(AuthenticityCheckList.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticityCheckList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthenticityCheckList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of AuthenticityCheckList given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticityCheckList + * @throws IOException if the JSON string is invalid with respect to AuthenticityCheckList + */ + public static AuthenticityCheckList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticityCheckList.class); + } + + /** + * Convert an instance of AuthenticityCheckList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java deleted file mode 100644 index b56d19a1..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 5.5.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** AuthenticityCheckResult */ -public class AuthenticityCheckResult { - public static final String SERIALIZED_NAME_TYPE = "Type"; - - @SerializedName(SERIALIZED_NAME_TYPE) - private Integer type; - - public static final String SERIALIZED_NAME_RESULT = "Result"; - - @SerializedName(SERIALIZED_NAME_RESULT) - private Integer result; - - public static final String SERIALIZED_NAME_LIST = "List"; - - @SerializedName(SERIALIZED_NAME_LIST) - private List list = new ArrayList(); - - public AuthenticityCheckResult withType(Integer type) { - this.type = type; - return this; - } - - /** - * Get type - * - * @return type - */ - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public AuthenticityCheckResult withResult(Integer result) { - this.result = result; - return this; - } - - /** - * Get result - * - * @return result - */ - public Integer getResult() { - return result; - } - - public void setResult(Integer result) { - this.result = result; - } - - public AuthenticityCheckResult withList(List list) { - this.list = list; - return this; - } - - public AuthenticityCheckResult addListItem(AuthenticityCheckResultItem listItem) { - this.list.add(listItem); - return this; - } - - /** - * Get list - * - * @return list - */ - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - AuthenticityCheckResult authenticityCheckResult = (AuthenticityCheckResult) o; - return Objects.equals(this.type, authenticityCheckResult.type) - && Objects.equals(this.result, authenticityCheckResult.result) - && Objects.equals(this.list, authenticityCheckResult.list); - } - - @Override - public int hashCode() { - return Objects.hash(type, result, list); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class AuthenticityCheckResult {\n"); - sb.append(" type: ").append(toIndentedString(type)).append("\n"); - sb.append(" result: ").append(toIndentedString(result)).append("\n"); - sb.append(" list: ").append(toIndentedString(list)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java index b921fdf3..b85855e9 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,32 +12,45 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.JsonElement; import com.google.gson.annotations.SerializedName; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; import java.util.Objects; /** Common fields for all authenticity result objects */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class AuthenticityCheckResultItem { public static final String SERIALIZED_NAME_TYPE = "Type"; @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull protected Integer type = 0; public static final String SERIALIZED_NAME_ELEMENT_RESULT = "ElementResult"; @SerializedName(SERIALIZED_NAME_ELEMENT_RESULT) - private Integer elementResult; + @javax.annotation.Nullable + private CheckResult elementResult; public static final String SERIALIZED_NAME_ELEMENT_DIAGNOSE = "ElementDiagnose"; @SerializedName(SERIALIZED_NAME_ELEMENT_DIAGNOSE) - private Integer elementDiagnose; + @javax.annotation.Nullable + private CheckDiagnose elementDiagnose; public static final String SERIALIZED_NAME_PERCENT_VALUE = "PercentValue"; @SerializedName(SERIALIZED_NAME_PERCENT_VALUE) + @javax.annotation.Nullable private Integer percentValue; - public AuthenticityCheckResultItem withType(Integer type) { + public AuthenticityCheckResultItem() {} + + public AuthenticityCheckResultItem type(@javax.annotation.Nonnull Integer type) { this.type = type; return this; } @@ -48,15 +61,17 @@ public AuthenticityCheckResultItem withType(Integer type) { * * @return type */ + @javax.annotation.Nonnull public Integer getType() { return type; } - public void setType(Integer type) { + public void setType(@javax.annotation.Nonnull Integer type) { this.type = type; } - public AuthenticityCheckResultItem withElementResult(Integer elementResult) { + public AuthenticityCheckResultItem elementResult( + @javax.annotation.Nullable CheckResult elementResult) { this.elementResult = elementResult; return this; } @@ -67,15 +82,16 @@ public AuthenticityCheckResultItem withElementResult(Integer elementResult) { * @return elementResult */ @javax.annotation.Nullable - public Integer getElementResult() { + public CheckResult getElementResult() { return elementResult; } - public void setElementResult(Integer elementResult) { + public void setElementResult(@javax.annotation.Nullable CheckResult elementResult) { this.elementResult = elementResult; } - public AuthenticityCheckResultItem withElementDiagnose(Integer elementDiagnose) { + public AuthenticityCheckResultItem elementDiagnose( + @javax.annotation.Nullable CheckDiagnose elementDiagnose) { this.elementDiagnose = elementDiagnose; return this; } @@ -86,15 +102,15 @@ public AuthenticityCheckResultItem withElementDiagnose(Integer elementDiagnose) * @return elementDiagnose */ @javax.annotation.Nullable - public Integer getElementDiagnose() { + public CheckDiagnose getElementDiagnose() { return elementDiagnose; } - public void setElementDiagnose(Integer elementDiagnose) { + public void setElementDiagnose(@javax.annotation.Nullable CheckDiagnose elementDiagnose) { this.elementDiagnose = elementDiagnose; } - public AuthenticityCheckResultItem withPercentValue(Integer percentValue) { + public AuthenticityCheckResultItem percentValue(@javax.annotation.Nullable Integer percentValue) { this.percentValue = percentValue; return this; } @@ -109,12 +125,12 @@ public Integer getPercentValue() { return percentValue; } - public void setPercentValue(Integer percentValue) { + public void setPercentValue(@javax.annotation.Nullable Integer percentValue) { this.percentValue = percentValue; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -148,10 +164,139 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("ElementResult"); + openapiFields.add("ElementDiagnose"); + openapiFields.add("PercentValue"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticityCheckResultItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticityCheckResultItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in AuthenticityCheckResultItem is not found in the empty JSON string", + AuthenticityCheckResultItem.openapiRequiredFields.toString())); + } + } + + String discriminatorValue = jsonElement.getAsJsonObject().get("Type").getAsString(); + switch (discriminatorValue) { + case "1": + SecurityFeatureResult.validateJsonElement(jsonElement); + break; + case "1024": + IdentResult.validateJsonElement(jsonElement); + break; + case "1048576": + IdentResult.validateJsonElement(jsonElement); + break; + case "128": + PhotoIdentResult.validateJsonElement(jsonElement); + break; + case "131072": + IdentResult.validateJsonElement(jsonElement); + break; + case "16": + FiberResult.validateJsonElement(jsonElement); + break; + case "16384": + FiberResult.validateJsonElement(jsonElement); + break; + case "2": + SecurityFeatureResult.validateJsonElement(jsonElement); + break; + case "2048": + IdentResult.validateJsonElement(jsonElement); + break; + case "256": + PhotoIdentResult.validateJsonElement(jsonElement); + break; + case "262144": + IdentResult.validateJsonElement(jsonElement); + break; + case "32": + IdentResult.validateJsonElement(jsonElement); + break; + case "32768": + IdentResult.validateJsonElement(jsonElement); + break; + case "4": + IdentResult.validateJsonElement(jsonElement); + break; + case "4096": + SecurityFeatureResult.validateJsonElement(jsonElement); + break; + case "512": + SecurityFeatureResult.validateJsonElement(jsonElement); + break; + case "524288": + IdentResult.validateJsonElement(jsonElement); + break; + case "64": + OCRSecurityTextResult.validateJsonElement(jsonElement); + break; + case "65536": + SecurityFeatureResult.validateJsonElement(jsonElement); + break; + case "8": + SecurityFeatureResult.validateJsonElement(jsonElement); + break; + case "8192": + SecurityFeatureResult.validateJsonElement(jsonElement); + break; + case "8388608": + SecurityFeatureResult.validateJsonElement(jsonElement); + break; + default: + throw new IllegalArgumentException( + String.format( + "The value of the `Type` field `%s` does not match any key defined in the discriminator's mapping.", + discriminatorValue)); + } + } + + /** + * Create an instance of AuthenticityCheckResultItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticityCheckResultItem + * @throws IOException if the JSON string is invalid with respect to AuthenticityCheckResultItem + */ + public static AuthenticityCheckResultItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticityCheckResultItem.class); + } + + /** + * Convert an instance of AuthenticityCheckResultItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultListInner.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultListInner.java new file mode 100644 index 00000000..c208771b --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultListInner.java @@ -0,0 +1,423 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class AuthenticityCheckResultListInner extends AbstractOpenApiSchema { + private static final Logger log = + Logger.getLogger(AuthenticityCheckResultListInner.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticityCheckResultListInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticityCheckResultListInner' and its + // subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterSecurityFeatureResult = + gson.getDelegateAdapter(this, TypeToken.get(SecurityFeatureResult.class)); + final TypeAdapter adapterIdentResult = + gson.getDelegateAdapter(this, TypeToken.get(IdentResult.class)); + final TypeAdapter adapterFiberResult = + gson.getDelegateAdapter(this, TypeToken.get(FiberResult.class)); + final TypeAdapter adapterOCRSecurityTextResult = + gson.getDelegateAdapter(this, TypeToken.get(OCRSecurityTextResult.class)); + final TypeAdapter adapterPhotoIdentResult = + gson.getDelegateAdapter(this, TypeToken.get(PhotoIdentResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticityCheckResultListInner value) + throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `SecurityFeatureResult` + if (value.getActualInstance() instanceof SecurityFeatureResult) { + JsonElement element = + adapterSecurityFeatureResult.toJsonTree( + (SecurityFeatureResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `IdentResult` + if (value.getActualInstance() instanceof IdentResult) { + JsonElement element = + adapterIdentResult.toJsonTree((IdentResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `FiberResult` + if (value.getActualInstance() instanceof FiberResult) { + JsonElement element = + adapterFiberResult.toJsonTree((FiberResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `OCRSecurityTextResult` + if (value.getActualInstance() instanceof OCRSecurityTextResult) { + JsonElement element = + adapterOCRSecurityTextResult.toJsonTree( + (OCRSecurityTextResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `PhotoIdentResult` + if (value.getActualInstance() instanceof PhotoIdentResult) { + JsonElement element = + adapterPhotoIdentResult.toJsonTree( + (PhotoIdentResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException( + "Failed to serialize as the type doesn't match oneOf schemas: FiberResult, IdentResult, OCRSecurityTextResult, PhotoIdentResult, SecurityFeatureResult"); + } + + @Override + public AuthenticityCheckResultListInner read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize SecurityFeatureResult + try { + // validate the JSON object to see if any exception is thrown + SecurityFeatureResult.validateJsonElement(jsonElement); + actualAdapter = adapterSecurityFeatureResult; + match++; + log.log(Level.FINER, "Input data matches schema 'SecurityFeatureResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for SecurityFeatureResult failed with `%s`.", + e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'SecurityFeatureResult'", e); + } + // deserialize IdentResult + try { + // validate the JSON object to see if any exception is thrown + IdentResult.validateJsonElement(jsonElement); + actualAdapter = adapterIdentResult; + match++; + log.log(Level.FINER, "Input data matches schema 'IdentResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for IdentResult failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'IdentResult'", e); + } + // deserialize FiberResult + try { + // validate the JSON object to see if any exception is thrown + FiberResult.validateJsonElement(jsonElement); + actualAdapter = adapterFiberResult; + match++; + log.log(Level.FINER, "Input data matches schema 'FiberResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for FiberResult failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'FiberResult'", e); + } + // deserialize OCRSecurityTextResult + try { + // validate the JSON object to see if any exception is thrown + OCRSecurityTextResult.validateJsonElement(jsonElement); + actualAdapter = adapterOCRSecurityTextResult; + match++; + log.log(Level.FINER, "Input data matches schema 'OCRSecurityTextResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for OCRSecurityTextResult failed with `%s`.", + e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'OCRSecurityTextResult'", e); + } + // deserialize PhotoIdentResult + try { + // validate the JSON object to see if any exception is thrown + PhotoIdentResult.validateJsonElement(jsonElement); + actualAdapter = adapterPhotoIdentResult; + match++; + log.log(Level.FINER, "Input data matches schema 'PhotoIdentResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for PhotoIdentResult failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'PhotoIdentResult'", e); + } + + if (match == 1) { + AuthenticityCheckResultListInner ret = new AuthenticityCheckResultListInner(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException( + String.format( + "Failed deserialization for AuthenticityCheckResultListInner: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public AuthenticityCheckResultListInner() { + super("oneOf", Boolean.FALSE); + } + + public AuthenticityCheckResultListInner(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("SecurityFeatureResult", SecurityFeatureResult.class); + schemas.put("IdentResult", IdentResult.class); + schemas.put("FiberResult", FiberResult.class); + schemas.put("OCRSecurityTextResult", OCRSecurityTextResult.class); + schemas.put("PhotoIdentResult", PhotoIdentResult.class); + } + + @Override + public Map> getSchemas() { + return AuthenticityCheckResultListInner.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: FiberResult, IdentResult, OCRSecurityTextResult, + * PhotoIdentResult, SecurityFeatureResult + * + *

It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof SecurityFeatureResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof IdentResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof FiberResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof OCRSecurityTextResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof PhotoIdentResult) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException( + "Invalid instance type. Must be FiberResult, IdentResult, OCRSecurityTextResult, PhotoIdentResult, SecurityFeatureResult"); + } + + /** + * Get the actual instance, which can be the following: FiberResult, IdentResult, + * OCRSecurityTextResult, PhotoIdentResult, SecurityFeatureResult + * + * @return The actual instance (FiberResult, IdentResult, OCRSecurityTextResult, PhotoIdentResult, + * SecurityFeatureResult) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `SecurityFeatureResult`. If the actual instance is not + * `SecurityFeatureResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `SecurityFeatureResult` + * @throws ClassCastException if the instance is not `SecurityFeatureResult` + */ + public SecurityFeatureResult getSecurityFeatureResult() throws ClassCastException { + return (SecurityFeatureResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `IdentResult`. If the actual instance is not `IdentResult`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `IdentResult` + * @throws ClassCastException if the instance is not `IdentResult` + */ + public IdentResult getIdentResult() throws ClassCastException { + return (IdentResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `FiberResult`. If the actual instance is not `FiberResult`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `FiberResult` + * @throws ClassCastException if the instance is not `FiberResult` + */ + public FiberResult getFiberResult() throws ClassCastException { + return (FiberResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `OCRSecurityTextResult`. If the actual instance is not + * `OCRSecurityTextResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `OCRSecurityTextResult` + * @throws ClassCastException if the instance is not `OCRSecurityTextResult` + */ + public OCRSecurityTextResult getOCRSecurityTextResult() throws ClassCastException { + return (OCRSecurityTextResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `PhotoIdentResult`. If the actual instance is not + * `PhotoIdentResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `PhotoIdentResult` + * @throws ClassCastException if the instance is not `PhotoIdentResult` + */ + public PhotoIdentResult getPhotoIdentResult() throws ClassCastException { + return (PhotoIdentResult) super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * AuthenticityCheckResultListInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with SecurityFeatureResult + try { + SecurityFeatureResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for SecurityFeatureResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with IdentResult + try { + IdentResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for IdentResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with FiberResult + try { + FiberResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for FiberResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with OCRSecurityTextResult + try { + OCRSecurityTextResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for OCRSecurityTextResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with PhotoIdentResult + try { + PhotoIdentResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for PhotoIdentResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException( + String.format( + "The JSON string is invalid for AuthenticityCheckResultListInner with oneOf schemas: FiberResult, IdentResult, OCRSecurityTextResult, PhotoIdentResult, SecurityFeatureResult. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of AuthenticityCheckResultListInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticityCheckResultListInner + * @throws IOException if the JSON string is invalid with respect to + * AuthenticityCheckResultListInner + */ + public static AuthenticityCheckResultListInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticityCheckResultListInner.class); + } + + /** + * Convert an instance of AuthenticityCheckResultListInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java index 9739620c..862569e3 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,20 +12,40 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** AuthenticityResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class AuthenticityResult extends ResultItem { public static final String SERIALIZED_NAME_AUTHENTICITY_CHECK_LIST = "AuthenticityCheckList"; @SerializedName(SERIALIZED_NAME_AUTHENTICITY_CHECK_LIST) + @javax.annotation.Nonnull private com.regula.documentreader.webclient.model.ext.authenticity.Authenticity authenticityCheckList; - public AuthenticityResult withAuthenticityCheckList( - com.regula.documentreader.webclient.model.ext.authenticity.Authenticity - authenticityCheckList) { + public AuthenticityResult() {} + + public AuthenticityResult authenticityCheckList( + @javax.annotation.Nonnull + com.regula.documentreader.webclient.model.ext.authenticity.Authenticity + authenticityCheckList) { this.authenticityCheckList = authenticityCheckList; return this; } @@ -35,19 +55,21 @@ public AuthenticityResult withAuthenticityCheckList( * * @return authenticityCheckList */ + @javax.annotation.Nonnull public com.regula.documentreader.webclient.model.ext.authenticity.Authenticity getAuthenticityCheckList() { return authenticityCheckList; } public void setAuthenticityCheckList( - com.regula.documentreader.webclient.model.ext.authenticity.Authenticity - authenticityCheckList) { + @javax.annotation.Nonnull + com.regula.documentreader.webclient.model.ext.authenticity.Authenticity + authenticityCheckList) { this.authenticityCheckList = authenticityCheckList; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -79,10 +101,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("AuthenticityCheckList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("AuthenticityCheckList"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticityResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticityResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in AuthenticityResult is not found in the empty JSON string", + AuthenticityResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthenticityResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `AuthenticityResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AuthenticityResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticityResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticityResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(AuthenticityResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticityResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthenticityResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of AuthenticityResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticityResult + * @throws IOException if the JSON string is invalid with respect to AuthenticityResult + */ + public static AuthenticityResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticityResult.class); + } + + /** + * Convert an instance of AuthenticityResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResultType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResultType.java index e023b30b..99585b4b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResultType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResultType.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,71 +12,141 @@ package com.regula.documentreader.webclient.model; -public class AuthenticityResultType { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration describes available authenticity checks: + * https://docs.regulaforensics.com/develop/doc-reader-sdk/web-service/development/enums/authenticity-result-type/. + */ +@JsonAdapter(AuthenticityResultType.Adapter.class) +public enum AuthenticityResultType { + + /** No authenticity control procedure */ + NONE(0l), /** Document luminescence check in UV light */ - public static final int UV_LUMINESCENCE = 1; + UV_LUMINESCENCE(1l), /** B900 ink MRZ contrast check in IR light */ - public static final int IR_B900 = 2; + IR_B900(2l), /** Image patterns presence/absence check (position, shape, color) */ - public static final int IMAGE_PATTERN = 4; + IMAGE_PATTERN(4l), /** Confirm laminate integrity check in axial light */ - public static final int AXIAL_PROTECTION = 8; + AXIAL_PROTECTION(8l), /** Protection fibers presence check (color, density) in UV light */ - public static final int UV_FIBERS = 16; + UV_FIBERS(16l), /** Document elements visibility check in IR light */ - public static final int IR_VISIBILITY = 32; + IR_VISIBILITY(32l), /** OCR for the text field in UV light comparison with other text sources check */ - public static final int OCR_SECURITY_TEXT = 64; + OCR_SECURITY_TEXT(64l), /** Invisible Personal Information (IPI) visualization */ - public static final int IPI = 128; + IPI(128l), + + /** Document photo check in IR light */ + IR_PHOTO(256l), /** Owner's photo embedding check (is photo printed or sticked) */ - public static final int PHOTO_EMBED_TYPE = 512; + PHOTO_EMBED_TYPE(512l), /** OVI check. Deprecated, use Document liveness check instead */ - public static final int OVI = 1024; + OVI(1024l), + + /** IR luminescence check */ + IR_LUMINESCENCE(2048l), /** Hologram presence check. Deprecated */ - public static final int HOLOGRAMS = 4096; + HOLOGRAMS(4096l), /** Owner's photo area advanced check (photo shape, size, position, etc.) */ - public static final int PHOTO_AREA = 8192; + PHOTO_AREA(8192l), + + /** UV background check */ + UV_BACKGROUND(16384l), /** Portrait comparison check (document printed vs chip vs live) */ - public static final int PORTRAIT_COMPARISON = 32768; + PORTRAIT_COMPARISON(32768l), /** Barcode format check (code metadata, data format, contents format, etc.) */ - public static final int BARCODE_FORMAT_CHECK = 65536; + BARCODE_FORMAT_CHECK(65536l), /** Kinegram check */ - public static final int KINEGRAM = 131072; + KINEGRAM(131072l), /** LetterScreen check */ - public static final int LETTER_SCREEN = 262144; + LETTER_SCREEN(262144l), /** Hologram detection and validation check */ - public static final int HOLOGRAM_DETECTION = 524288; + HOLOGRAM_DETECTION(524288l), /** Fingerprint comparison check */ - public static final int FINGERPRINT_COMPARISON = 1048576; + FINGERPRINT_COMPARISON(1048576l), /** Document liveness check */ - public static final int LIVENESS = 2097152; + LIVENESS(2097152l), /** Extended OCR Check */ - public static final int EXTENDED_OCR_CHECK = 4194304; + EXTENDED_OCR_CHECK(4194304l), /** Extended MRZ check */ - public static final int EXTENDED_MRZ_CHECK = 8388608; + EXTENDED_MRZ_CHECK(8388608l), /** Encrypted IPI */ - public static final int ENCRYPTED_IPI = 16777216; + ENCRYPTED_IPI(16777216l), + + /** Flag for status-only authenticity */ + STATUS_ONLY(2147483648l); + + private Long value; + + AuthenticityResultType(Long value) { + this.value = value; + } + + public Long getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static AuthenticityResultType fromValue(Long value) { + for (AuthenticityResultType b : AuthenticityResultType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final AuthenticityResultType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public AuthenticityResultType read(final JsonReader jsonReader) throws IOException { + Long value = jsonReader.nextLong(); + return AuthenticityResultType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Long value = jsonElement.getAsLong(); + AuthenticityResultType.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AvailableSource.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AvailableSource.java deleted file mode 100755 index c902956f..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AvailableSource.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.Objects; - -/** AvailableSource */ -public class AvailableSource { - public static final String SERIALIZED_NAME_SOURCE = "source"; - - @SerializedName(SERIALIZED_NAME_SOURCE) - private String source; - - public static final String SERIALIZED_NAME_VALIDITY_STATUS = "validityStatus"; - - @SerializedName(SERIALIZED_NAME_VALIDITY_STATUS) - private int validityStatus; - - public AvailableSource withSource(String source) { - this.source = source; - return this; - } - - /** - * Get source - * - * @return source - */ - public String getSource() { - return source; - } - - public void setSource(String source) { - this.source = source; - } - - public AvailableSource withValidityStatus(int validityStatus) { - this.validityStatus = validityStatus; - return this; - } - - /** - * Get validityStatus - * - * @return validityStatus - */ - public int getValidityStatus() { - return validityStatus; - } - - public void setValidityStatus(int validityStatus) { - this.validityStatus = validityStatus; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - AvailableSource availableSource = (AvailableSource) o; - return Objects.equals(this.source, availableSource.source) - && Objects.equals(this.validityStatus, availableSource.validityStatus); - } - - @Override - public int hashCode() { - return Objects.hash(source, validityStatus); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class AvailableSource {\n"); - sb.append(" source: ").append(toIndentedString(source)).append("\n"); - sb.append(" validityStatus: ").append(toIndentedString(validityStatus)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/BarCodeModuleType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/BarCodeModuleType.java new file mode 100644 index 00000000..f2985689 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/BarCodeModuleType.java @@ -0,0 +1,83 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Gets or Sets BarCodeModuleType */ +@JsonAdapter(BarCodeModuleType.Adapter.class) +public enum BarCodeModuleType { + + /** Module contains text data */ + TEXT(0), + + /** Module contains byte data */ + BYTE(1), + + /** Module contains numeric data */ + NUM(2), + + /** Shifts in byte compaction mode (for PDF417) */ + SHIFT(3), + + /** Module contains any data */ + ALL(4); + + private Integer value; + + BarCodeModuleType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static BarCodeModuleType fromValue(Integer value) { + for (BarCodeModuleType b : BarCodeModuleType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final BarCodeModuleType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public BarCodeModuleType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return BarCodeModuleType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + BarCodeModuleType.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/BarcodeTextDataResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/BarcodeTextDataResult.java deleted file mode 100755 index ec13660c..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/BarcodeTextDataResult.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.Objects; - -/** Text fields extracted from document barcode */ -public class BarcodeTextDataResult extends ResultItem { - public static final String SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO = "DocVisualExtendedInfo"; - - @SerializedName(SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO) - private DocVisualExtendedInfo docVisualExtendedInfo; - - public BarcodeTextDataResult withDocVisualExtendedInfo( - DocVisualExtendedInfo docVisualExtendedInfo) { - this.docVisualExtendedInfo = docVisualExtendedInfo; - return this; - } - - /** - * Get docVisualExtendedInfo - * - * @return docVisualExtendedInfo - */ - @javax.annotation.Nullable - public DocVisualExtendedInfo getDocVisualExtendedInfo() { - return docVisualExtendedInfo; - } - - public void setDocVisualExtendedInfo(DocVisualExtendedInfo docVisualExtendedInfo) { - this.docVisualExtendedInfo = docVisualExtendedInfo; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - BarcodeTextDataResult barcodeTextDataResult = (BarcodeTextDataResult) o; - return Objects.equals(this.docVisualExtendedInfo, barcodeTextDataResult.docVisualExtendedInfo) - && super.equals(o); - } - - @Override - public int hashCode() { - return Objects.hash(docVisualExtendedInfo, super.hashCode()); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class BarcodeTextDataResult {\n"); - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - sb.append(" docVisualExtendedInfo: ") - .append(toIndentedString(docVisualExtendedInfo)) - .append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/BarcodeType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/BarcodeType.java new file mode 100644 index 00000000..58fbac64 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/BarcodeType.java @@ -0,0 +1,133 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Enumeration contains the types of barcodes that can be processed */ +@JsonAdapter(BarcodeType.Adapter.class) +public enum BarcodeType { + + /** Unknown type */ + UNKNOWN(0), + + /** One-dimensional bar-code, ISO 15417 (ANSI/AIM BC4-1999 Code 128) */ + CODE128(1), + + /** One-dimensional bar-code, ISO 16388 (ANSI/AIM BC1-1995 Code 39) */ + CODE39(2), + + /** One-dimensional bar-code, EAN8, ISO 15418 */ + EAN8(3), + + /** + * One-dimensional bar-code, Interleaved 2 of 5, ISO 16390 (ANSI/AIM BC2-1995 Interleaved 2 of 5) + */ + ITF(4), + + /** Two-dimensional bar-code, ISO 15438 (AIM USS PDF417) */ + PDF417(5), + + /** One-dimensional bar-code, Standard 2 of 5 (Industrial) */ + STF(6), + + /** One-dimensional bar-code, Matrix 2 of 5 */ + MTF(7), + + /** One-dimensional bar-code, IATA 2 of 5 (Airline) */ + IATA(8), + + /** One-dimensional bar-code, (ANSI/AIM BC3-1995, USS - Codabar) */ + CODABAR(9), + + /** One-dimensional bar-code, UPC-A */ + UPCA(10), + + /** One-dimensional bar-code, (ANSI/AIM BC5-1995, USS - Code 93) */ + CODE93(11), + + /** One-dimensional bar-code, UPC-E */ + UPCE(12), + + /** One-dimensional bar-code, EAN13, ISO 15418 */ + EAN13(13), + + /** Two-dimensional QRCODE bar-code */ + QRCODE(14), + + /** Two-dimensional AZTEC bar-code */ + AZTEC(15), + + /** Two-dimensional DATAMATRIX bar-code */ + DATAMATRIX(16), + + /** Type for internal use, representing all 1D bar-codes */ + ALL_1D(17), + + /** One-dimensional bar-code CODE11 */ + CODE11(18), + + /** JAB code */ + JABCODE(19), + + /** For internal use */ + END(20); + + private Integer value; + + BarcodeType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static BarcodeType fromValue(Integer value) { + for (BarcodeType b : BarcodeType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final BarcodeType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public BarcodeType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return BarcodeType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + BarcodeType.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/BcPDF417INFO.java b/client/src/main/generated/com/regula/documentreader/webclient/model/BcPDF417INFO.java index fcfb0c87..3f0f62f5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/BcPDF417INFO.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/BcPDF417INFO.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,42 +12,66 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** BcPDF417INFO */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class BcPDF417INFO { public static final String SERIALIZED_NAME_ANGLE = "Angle"; @SerializedName(SERIALIZED_NAME_ANGLE) - private Float angle = null; + @javax.annotation.Nonnull + private Float angle; public static final String SERIALIZED_NAME_BC_COLUMN = "bcColumn"; @SerializedName(SERIALIZED_NAME_BC_COLUMN) + @javax.annotation.Nonnull private Integer bcColumn; public static final String SERIALIZED_NAME_BC_ERROR_LEVEL = "bcErrorLevel"; @SerializedName(SERIALIZED_NAME_BC_ERROR_LEVEL) + @javax.annotation.Nonnull private Integer bcErrorLevel; public static final String SERIALIZED_NAME_BC_ROW = "bcRow"; @SerializedName(SERIALIZED_NAME_BC_ROW) + @javax.annotation.Nonnull private Integer bcRow; public static final String SERIALIZED_NAME_MIN_X = "minX"; @SerializedName(SERIALIZED_NAME_MIN_X) - private Float minX = null; + @javax.annotation.Nonnull + private Float minX; public static final String SERIALIZED_NAME_MIN_Y = "minY"; @SerializedName(SERIALIZED_NAME_MIN_Y) - private Float minY = null; + @javax.annotation.Nonnull + private Float minY; - public BcPDF417INFO withAngle(Float angle) { + public BcPDF417INFO() {} + + public BcPDF417INFO angle(@javax.annotation.Nonnull Float angle) { this.angle = angle; return this; } @@ -57,16 +81,16 @@ public BcPDF417INFO withAngle(Float angle) { * * @return angle */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Float getAngle() { return angle; } - public void setAngle(Float angle) { + public void setAngle(@javax.annotation.Nonnull Float angle) { this.angle = angle; } - public BcPDF417INFO withBcColumn(Integer bcColumn) { + public BcPDF417INFO bcColumn(@javax.annotation.Nonnull Integer bcColumn) { this.bcColumn = bcColumn; return this; } @@ -76,16 +100,16 @@ public BcPDF417INFO withBcColumn(Integer bcColumn) { * * @return bcColumn */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getBcColumn() { return bcColumn; } - public void setBcColumn(Integer bcColumn) { + public void setBcColumn(@javax.annotation.Nonnull Integer bcColumn) { this.bcColumn = bcColumn; } - public BcPDF417INFO withBcErrorLevel(Integer bcErrorLevel) { + public BcPDF417INFO bcErrorLevel(@javax.annotation.Nonnull Integer bcErrorLevel) { this.bcErrorLevel = bcErrorLevel; return this; } @@ -95,16 +119,16 @@ public BcPDF417INFO withBcErrorLevel(Integer bcErrorLevel) { * * @return bcErrorLevel */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getBcErrorLevel() { return bcErrorLevel; } - public void setBcErrorLevel(Integer bcErrorLevel) { + public void setBcErrorLevel(@javax.annotation.Nonnull Integer bcErrorLevel) { this.bcErrorLevel = bcErrorLevel; } - public BcPDF417INFO withBcRow(Integer bcRow) { + public BcPDF417INFO bcRow(@javax.annotation.Nonnull Integer bcRow) { this.bcRow = bcRow; return this; } @@ -114,16 +138,16 @@ public BcPDF417INFO withBcRow(Integer bcRow) { * * @return bcRow */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getBcRow() { return bcRow; } - public void setBcRow(Integer bcRow) { + public void setBcRow(@javax.annotation.Nonnull Integer bcRow) { this.bcRow = bcRow; } - public BcPDF417INFO withMinX(Float minX) { + public BcPDF417INFO minX(@javax.annotation.Nonnull Float minX) { this.minX = minX; return this; } @@ -133,16 +157,16 @@ public BcPDF417INFO withMinX(Float minX) { * * @return minX */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Float getMinX() { return minX; } - public void setMinX(Float minX) { + public void setMinX(@javax.annotation.Nonnull Float minX) { this.minX = minX; } - public BcPDF417INFO withMinY(Float minY) { + public BcPDF417INFO minY(@javax.annotation.Nonnull Float minY) { this.minY = minY; return this; } @@ -152,17 +176,17 @@ public BcPDF417INFO withMinY(Float minY) { * * @return minY */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Float getMinY() { return minY; } - public void setMinY(Float minY) { + public void setMinY(@javax.annotation.Nonnull Float minY) { this.minY = minY; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -200,10 +224,122 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Angle"); + openapiFields.add("bcColumn"); + openapiFields.add("bcErrorLevel"); + openapiFields.add("bcRow"); + openapiFields.add("minX"); + openapiFields.add("minY"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Angle"); + openapiRequiredFields.add("bcColumn"); + openapiRequiredFields.add("bcErrorLevel"); + openapiRequiredFields.add("bcRow"); + openapiRequiredFields.add("minX"); + openapiRequiredFields.add("minY"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BcPDF417INFO + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BcPDF417INFO.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in BcPDF417INFO is not found in the empty JSON string", + BcPDF417INFO.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BcPDF417INFO.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `BcPDF417INFO` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BcPDF417INFO.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BcPDF417INFO.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BcPDF417INFO' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(BcPDF417INFO.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, BcPDF417INFO value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BcPDF417INFO read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of BcPDF417INFO given an JSON string + * + * @param jsonString JSON string + * @return An instance of BcPDF417INFO + * @throws IOException if the JSON string is invalid with respect to BcPDF417INFO + */ + public static BcPDF417INFO fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BcPDF417INFO.class); + } + + /** + * Convert an instance of BcPDF417INFO to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/BcROIDETECT.java b/client/src/main/generated/com/regula/documentreader/webclient/model/BcROIDETECT.java index c688fdcb..44dc85bf 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/BcROIDETECT.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/BcROIDETECT.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,32 +12,54 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** BcROIDETECT */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class BcROIDETECT { public static final String SERIALIZED_NAME_BOTTOM = "bottom"; @SerializedName(SERIALIZED_NAME_BOTTOM) + @javax.annotation.Nonnull private Integer bottom; public static final String SERIALIZED_NAME_LEFT = "left"; @SerializedName(SERIALIZED_NAME_LEFT) + @javax.annotation.Nonnull private Integer left; public static final String SERIALIZED_NAME_RIGHT = "right"; @SerializedName(SERIALIZED_NAME_RIGHT) + @javax.annotation.Nonnull private Integer right; public static final String SERIALIZED_NAME_TOP = "top"; @SerializedName(SERIALIZED_NAME_TOP) + @javax.annotation.Nonnull private Integer top; - public BcROIDETECT withBottom(Integer bottom) { + public BcROIDETECT() {} + + public BcROIDETECT bottom(@javax.annotation.Nonnull Integer bottom) { this.bottom = bottom; return this; } @@ -47,16 +69,16 @@ public BcROIDETECT withBottom(Integer bottom) { * * @return bottom */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getBottom() { return bottom; } - public void setBottom(Integer bottom) { + public void setBottom(@javax.annotation.Nonnull Integer bottom) { this.bottom = bottom; } - public BcROIDETECT withLeft(Integer left) { + public BcROIDETECT left(@javax.annotation.Nonnull Integer left) { this.left = left; return this; } @@ -66,16 +88,16 @@ public BcROIDETECT withLeft(Integer left) { * * @return left */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getLeft() { return left; } - public void setLeft(Integer left) { + public void setLeft(@javax.annotation.Nonnull Integer left) { this.left = left; } - public BcROIDETECT withRight(Integer right) { + public BcROIDETECT right(@javax.annotation.Nonnull Integer right) { this.right = right; return this; } @@ -85,16 +107,16 @@ public BcROIDETECT withRight(Integer right) { * * @return right */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getRight() { return right; } - public void setRight(Integer right) { + public void setRight(@javax.annotation.Nonnull Integer right) { this.right = right; } - public BcROIDETECT withTop(Integer top) { + public BcROIDETECT top(@javax.annotation.Nonnull Integer top) { this.top = top; return this; } @@ -104,17 +126,17 @@ public BcROIDETECT withTop(Integer top) { * * @return top */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getTop() { return top; } - public void setTop(Integer top) { + public void setTop(@javax.annotation.Nonnull Integer top) { this.top = top; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -148,10 +170,118 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("bottom"); + openapiFields.add("left"); + openapiFields.add("right"); + openapiFields.add("top"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("bottom"); + openapiRequiredFields.add("left"); + openapiRequiredFields.add("right"); + openapiRequiredFields.add("top"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BcROIDETECT + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BcROIDETECT.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in BcROIDETECT is not found in the empty JSON string", + BcROIDETECT.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BcROIDETECT.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `BcROIDETECT` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : BcROIDETECT.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BcROIDETECT.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BcROIDETECT' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(BcROIDETECT.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, BcROIDETECT value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BcROIDETECT read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of BcROIDETECT given an JSON string + * + * @param jsonString JSON string + * @return An instance of BcROIDETECT + * @throws IOException if the JSON string is invalid with respect to BcROIDETECT + */ + public static BcROIDETECT fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BcROIDETECT.class); + } + + /** + * Convert an instance of BcROIDETECT to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/BinaryData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/BinaryData.java new file mode 100644 index 00000000..94165cca --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/BinaryData.java @@ -0,0 +1,2557 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** Structure is used for storing the results of one bar-code module reading. */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class BinaryData { + public static final String SERIALIZED_NAME_RF_I_D_AUTHENTICATION_INFO = + "RFID_Authentication_Info"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_AUTHENTICATION_INFO) + @javax.annotation.Nullable + private Map rfIDAuthenticationInfo; + + public static final String SERIALIZED_NAME_RF_I_D_M_I_F_A_R_E_DATA_VALIDITY = + "RFID_MIFARE_Data_Validity"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_M_I_F_A_R_E_DATA_VALIDITY) + @javax.annotation.Nullable + private Map rfIDMIFAREDataValidity; + + public static final String SERIALIZED_NAME_RF_I_D_M_I_F_A_R_E_DATA = "RFID_MIFARE_Data"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_M_I_F_A_R_E_DATA) + @javax.annotation.Nullable + private Map rfIDMIFAREData; + + public static final String SERIALIZED_NAME_R_F_I_D_E_F_C_O_M = "RFID_EF_COM"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_E_F_C_O_M) + @javax.annotation.Nullable + private Map RFID_EF_COM; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G1 = "RFID_DG1"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G1) + @javax.annotation.Nullable + private RfidDG1 RFID_DG1; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G2 = "RFID_DG2"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G2) + @javax.annotation.Nullable + private Map RFID_DG2; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G3 = "RFID_DG3"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G3) + @javax.annotation.Nullable + private Map RFID_DG3; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G4 = "RFID_DG4"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G4) + @javax.annotation.Nullable + private Map RFID_DG4; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G5 = "RFID_DG5"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G5) + @javax.annotation.Nullable + private Map RFID_DG5; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G6 = "RFID_DG6"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G6) + @javax.annotation.Nullable + private Map RFID_DG6; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G7 = "RFID_DG7"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G7) + @javax.annotation.Nullable + private Map RFID_DG7; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G8 = "RFID_DG8"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G8) + @javax.annotation.Nullable + private Map RFID_DG8; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G9 = "RFID_DG9"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G9) + @javax.annotation.Nullable + private Map RFID_DG9; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G10 = "RFID_DG10"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G10) + @javax.annotation.Nullable + private Map RFID_DG10; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G11 = "RFID_DG11"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G11) + @javax.annotation.Nullable + private Map RFID_DG11; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G12 = "RFID_DG12"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G12) + @javax.annotation.Nullable + private Map RFID_DG12; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G13 = "RFID_DG13"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G13) + @javax.annotation.Nullable + private Map RFID_DG13; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G14 = "RFID_DG14"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G14) + @javax.annotation.Nullable + private Map RFID_DG14; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G15 = "RFID_DG15"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G15) + @javax.annotation.Nullable + private Map RFID_DG15; + + public static final String SERIALIZED_NAME_R_F_I_D_D_G16 = "RFID_DG16"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_D_G16) + @javax.annotation.Nullable + private Map RFID_DG16; + + public static final String SERIALIZED_NAME_R_F_I_D_E_F_S_O_D = "RFID_EF_SOD"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_E_F_S_O_D) + @javax.annotation.Nullable + private Map RFID_EF_SOD; + + public static final String SERIALIZED_NAME_E_I_D_D_G1 = "eID_DG1"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G1) + @javax.annotation.Nullable + private Map eIDDG1; + + public static final String SERIALIZED_NAME_E_I_D_D_G2 = "eID_DG2"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G2) + @javax.annotation.Nullable + private Map eIDDG2; + + public static final String SERIALIZED_NAME_E_I_D_D_G3 = "eID_DG3"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G3) + @javax.annotation.Nullable + private Map eIDDG3; + + public static final String SERIALIZED_NAME_E_I_D_D_G4 = "eID_DG4"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G4) + @javax.annotation.Nullable + private Map eIDDG4; + + public static final String SERIALIZED_NAME_E_I_D_D_G5 = "eID_DG5"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G5) + @javax.annotation.Nullable + private Map eIDDG5; + + public static final String SERIALIZED_NAME_E_I_D_D_G6 = "eID_DG6"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G6) + @javax.annotation.Nullable + private Map eIDDG6; + + public static final String SERIALIZED_NAME_E_I_D_D_G7 = "eID_DG7"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G7) + @javax.annotation.Nullable + private Map eIDDG7; + + public static final String SERIALIZED_NAME_E_I_D_D_G8 = "eID_DG8"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G8) + @javax.annotation.Nullable + private Map eIDDG8; + + public static final String SERIALIZED_NAME_E_I_D_D_G9 = "eID_DG9"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G9) + @javax.annotation.Nullable + private Map eIDDG9; + + public static final String SERIALIZED_NAME_E_I_D_D_G10 = "eID_DG10"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G10) + @javax.annotation.Nullable + private Map eIDDG10; + + public static final String SERIALIZED_NAME_E_I_D_D_G11 = "eID_DG11"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G11) + @javax.annotation.Nullable + private Map eIDDG11; + + public static final String SERIALIZED_NAME_E_I_D_D_G12 = "eID_DG12"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G12) + @javax.annotation.Nullable + private Map eIDDG12; + + public static final String SERIALIZED_NAME_E_I_D_D_G13 = "eID_DG13"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G13) + @javax.annotation.Nullable + private Map eIDDG13; + + public static final String SERIALIZED_NAME_E_I_D_D_G14 = "eID_DG14"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G14) + @javax.annotation.Nullable + private Map eIDDG14; + + public static final String SERIALIZED_NAME_E_I_D_D_G15 = "eID_DG15"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G15) + @javax.annotation.Nullable + private Map eIDDG15; + + public static final String SERIALIZED_NAME_E_I_D_D_G16 = "eID_DG16"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G16) + @javax.annotation.Nullable + private Map eIDDG16; + + public static final String SERIALIZED_NAME_E_I_D_D_G17 = "eID_DG17"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G17) + @javax.annotation.Nullable + private Map eIDDG17; + + public static final String SERIALIZED_NAME_E_I_D_D_G18 = "eID_DG18"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G18) + @javax.annotation.Nullable + private Map eIDDG18; + + public static final String SERIALIZED_NAME_E_I_D_D_G19 = "eID_DG19"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G19) + @javax.annotation.Nullable + private Map eIDDG19; + + public static final String SERIALIZED_NAME_E_I_D_D_G20 = "eID_DG20"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G20) + @javax.annotation.Nullable + private Map eIDDG20; + + public static final String SERIALIZED_NAME_E_I_D_D_G21 = "eID_DG21"; + + @SerializedName(SERIALIZED_NAME_E_I_D_D_G21) + @javax.annotation.Nullable + private Map eIDDG21; + + public static final String SERIALIZED_NAME_E_D_L_C_O_M = "eDL_COM"; + + @SerializedName(SERIALIZED_NAME_E_D_L_C_O_M) + @javax.annotation.Nullable + private Map eDLCOM; + + public static final String SERIALIZED_NAME_E_D_L_S_O_D = "eDL_SOD"; + + @SerializedName(SERIALIZED_NAME_E_D_L_S_O_D) + @javax.annotation.Nullable + private Map eDLSOD; + + public static final String SERIALIZED_NAME_E_D_L_D_G1 = "eDL_DG1"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G1) + @javax.annotation.Nullable + private Map eDLDG1; + + public static final String SERIALIZED_NAME_E_D_L_D_G2 = "eDL_DG2"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G2) + @javax.annotation.Nullable + private Map eDLDG2; + + public static final String SERIALIZED_NAME_E_D_L_D_G3 = "eDL_DG3"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G3) + @javax.annotation.Nullable + private Map eDLDG3; + + public static final String SERIALIZED_NAME_E_D_L_D_G4 = "eDL_DG4"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G4) + @javax.annotation.Nullable + private Map eDLDG4; + + public static final String SERIALIZED_NAME_E_D_L_D_G5 = "eDL_DG5"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G5) + @javax.annotation.Nullable + private Map eDLDG5; + + public static final String SERIALIZED_NAME_E_D_L_D_G6 = "eDL_DG6"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G6) + @javax.annotation.Nullable + private Map eDLDG6; + + public static final String SERIALIZED_NAME_E_D_L_D_G7 = "eDL_DG7"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G7) + @javax.annotation.Nullable + private Map eDLDG7; + + public static final String SERIALIZED_NAME_E_D_L_D_G8 = "eDL_DG8"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G8) + @javax.annotation.Nullable + private Map eDLDG8; + + public static final String SERIALIZED_NAME_E_D_L_D_G9 = "eDL_DG9"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G9) + @javax.annotation.Nullable + private Map eDLDG9; + + public static final String SERIALIZED_NAME_E_D_L_D_G10 = "eDL_DG10"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G10) + @javax.annotation.Nullable + private Map eDLDG10; + + public static final String SERIALIZED_NAME_E_D_L_D_G11 = "eDL_DG11"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G11) + @javax.annotation.Nullable + private Map eDLDG11; + + public static final String SERIALIZED_NAME_E_D_L_D_G12 = "eDL_DG12"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G12) + @javax.annotation.Nullable + private Map eDLDG12; + + public static final String SERIALIZED_NAME_E_D_L_D_G13 = "eDL_DG13"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G13) + @javax.annotation.Nullable + private Map eDLDG13; + + public static final String SERIALIZED_NAME_E_D_L_D_G14 = "eDL_DG14"; + + @SerializedName(SERIALIZED_NAME_E_D_L_D_G14) + @javax.annotation.Nullable + private Map eDLDG14; + + public static final String SERIALIZED_NAME_VISIBLE_DIGITAL_SEAL = "Visible_Digital_Seal"; + + @SerializedName(SERIALIZED_NAME_VISIBLE_DIGITAL_SEAL) + @javax.annotation.Nullable + private Map visibleDigitalSeal; + + public static final String SERIALIZED_NAME_VISIBLE_DIGITAL_SEAL_N_C = "Visible_Digital_Seal_NC"; + + @SerializedName(SERIALIZED_NAME_VISIBLE_DIGITAL_SEAL_N_C) + @javax.annotation.Nullable + private Map visibleDigitalSealNC; + + public static final String SERIALIZED_NAME_DIGITAL_SIGNATURE = "Digital_Signature"; + + @SerializedName(SERIALIZED_NAME_DIGITAL_SIGNATURE) + @javax.annotation.Nullable + private Map digitalSignature; + + public static final String SERIALIZED_NAME_RF_I_D_SESSION_DATA = "RFID_Session_Data"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_SESSION_DATA) + @javax.annotation.Nullable + private RfidSessionData rfIDSessionData; + + public static final String SERIALIZED_NAME_RF_I_D_SESSION_DATA_STATUS = + "RFID_Session_Data_Status"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_SESSION_DATA_STATUS) + @javax.annotation.Nullable + private DetailsRFID rfIDSessionDataStatus; + + public static final String SERIALIZED_NAME_RF_I_D_E_PASSP_DIRECTORY = "RFID_ePassp_Directory"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_E_PASSP_DIRECTORY) + @javax.annotation.Nullable + private List rfIDEPasspDirectory; + + public BinaryData() {} + + public BinaryData rfIDAuthenticationInfo( + @javax.annotation.Nullable Map rfIDAuthenticationInfo) { + this.rfIDAuthenticationInfo = rfIDAuthenticationInfo; + return this; + } + + public BinaryData putRfIDAuthenticationInfoItem(String key, Object rfIDAuthenticationInfoItem) { + if (this.rfIDAuthenticationInfo == null) { + this.rfIDAuthenticationInfo = new HashMap<>(); + } + this.rfIDAuthenticationInfo.put(key, rfIDAuthenticationInfoItem); + return this; + } + + /** + * Get rfIDAuthenticationInfo + * + * @return rfIDAuthenticationInfo + */ + @javax.annotation.Nullable + public Map getRfIDAuthenticationInfo() { + return rfIDAuthenticationInfo; + } + + public void setRfIDAuthenticationInfo( + @javax.annotation.Nullable Map rfIDAuthenticationInfo) { + this.rfIDAuthenticationInfo = rfIDAuthenticationInfo; + } + + public BinaryData rfIDMIFAREDataValidity( + @javax.annotation.Nullable Map rfIDMIFAREDataValidity) { + this.rfIDMIFAREDataValidity = rfIDMIFAREDataValidity; + return this; + } + + public BinaryData putRfIDMIFAREDataValidityItem(String key, Object rfIDMIFAREDataValidityItem) { + if (this.rfIDMIFAREDataValidity == null) { + this.rfIDMIFAREDataValidity = new HashMap<>(); + } + this.rfIDMIFAREDataValidity.put(key, rfIDMIFAREDataValidityItem); + return this; + } + + /** + * Get rfIDMIFAREDataValidity + * + * @return rfIDMIFAREDataValidity + */ + @javax.annotation.Nullable + public Map getRfIDMIFAREDataValidity() { + return rfIDMIFAREDataValidity; + } + + public void setRfIDMIFAREDataValidity( + @javax.annotation.Nullable Map rfIDMIFAREDataValidity) { + this.rfIDMIFAREDataValidity = rfIDMIFAREDataValidity; + } + + public BinaryData rfIDMIFAREData(@javax.annotation.Nullable Map rfIDMIFAREData) { + this.rfIDMIFAREData = rfIDMIFAREData; + return this; + } + + public BinaryData putRfIDMIFAREDataItem(String key, Object rfIDMIFAREDataItem) { + if (this.rfIDMIFAREData == null) { + this.rfIDMIFAREData = new HashMap<>(); + } + this.rfIDMIFAREData.put(key, rfIDMIFAREDataItem); + return this; + } + + /** + * Get rfIDMIFAREData + * + * @return rfIDMIFAREData + */ + @javax.annotation.Nullable + public Map getRfIDMIFAREData() { + return rfIDMIFAREData; + } + + public void setRfIDMIFAREData(@javax.annotation.Nullable Map rfIDMIFAREData) { + this.rfIDMIFAREData = rfIDMIFAREData; + } + + public BinaryData RFID_EF_COM(@javax.annotation.Nullable Map RFID_EF_COM) { + this.RFID_EF_COM = RFID_EF_COM; + return this; + } + + public BinaryData putRFIDEFCOMItem(String key, Object RFID_EF_COMItem) { + if (this.RFID_EF_COM == null) { + this.RFID_EF_COM = new HashMap<>(); + } + this.RFID_EF_COM.put(key, RFID_EF_COMItem); + return this; + } + + /** + * Get RFID_EF_COM + * + * @return RFID_EF_COM + */ + @javax.annotation.Nullable + public Map getRFIDEFCOM() { + return RFID_EF_COM; + } + + public void setRFIDEFCOM(@javax.annotation.Nullable Map RFID_EF_COM) { + this.RFID_EF_COM = RFID_EF_COM; + } + + public BinaryData RFID_DG1(@javax.annotation.Nullable RfidDG1 RFID_DG1) { + this.RFID_DG1 = RFID_DG1; + return this; + } + + /** + * Get RFID_DG1 + * + * @return RFID_DG1 + */ + @javax.annotation.Nullable + public RfidDG1 getRFIDDG1() { + return RFID_DG1; + } + + public void setRFIDDG1(@javax.annotation.Nullable RfidDG1 RFID_DG1) { + this.RFID_DG1 = RFID_DG1; + } + + public BinaryData RFID_DG2(@javax.annotation.Nullable Map RFID_DG2) { + this.RFID_DG2 = RFID_DG2; + return this; + } + + public BinaryData putRFIDDG2Item(String key, Object RFID_DG2Item) { + if (this.RFID_DG2 == null) { + this.RFID_DG2 = new HashMap<>(); + } + this.RFID_DG2.put(key, RFID_DG2Item); + return this; + } + + /** + * Get RFID_DG2 + * + * @return RFID_DG2 + */ + @javax.annotation.Nullable + public Map getRFIDDG2() { + return RFID_DG2; + } + + public void setRFIDDG2(@javax.annotation.Nullable Map RFID_DG2) { + this.RFID_DG2 = RFID_DG2; + } + + public BinaryData RFID_DG3(@javax.annotation.Nullable Map RFID_DG3) { + this.RFID_DG3 = RFID_DG3; + return this; + } + + public BinaryData putRFIDDG3Item(String key, Object RFID_DG3Item) { + if (this.RFID_DG3 == null) { + this.RFID_DG3 = new HashMap<>(); + } + this.RFID_DG3.put(key, RFID_DG3Item); + return this; + } + + /** + * Get RFID_DG3 + * + * @return RFID_DG3 + */ + @javax.annotation.Nullable + public Map getRFIDDG3() { + return RFID_DG3; + } + + public void setRFIDDG3(@javax.annotation.Nullable Map RFID_DG3) { + this.RFID_DG3 = RFID_DG3; + } + + public BinaryData RFID_DG4(@javax.annotation.Nullable Map RFID_DG4) { + this.RFID_DG4 = RFID_DG4; + return this; + } + + public BinaryData putRFIDDG4Item(String key, Object RFID_DG4Item) { + if (this.RFID_DG4 == null) { + this.RFID_DG4 = new HashMap<>(); + } + this.RFID_DG4.put(key, RFID_DG4Item); + return this; + } + + /** + * Get RFID_DG4 + * + * @return RFID_DG4 + */ + @javax.annotation.Nullable + public Map getRFIDDG4() { + return RFID_DG4; + } + + public void setRFIDDG4(@javax.annotation.Nullable Map RFID_DG4) { + this.RFID_DG4 = RFID_DG4; + } + + public BinaryData RFID_DG5(@javax.annotation.Nullable Map RFID_DG5) { + this.RFID_DG5 = RFID_DG5; + return this; + } + + public BinaryData putRFIDDG5Item(String key, Object RFID_DG5Item) { + if (this.RFID_DG5 == null) { + this.RFID_DG5 = new HashMap<>(); + } + this.RFID_DG5.put(key, RFID_DG5Item); + return this; + } + + /** + * Get RFID_DG5 + * + * @return RFID_DG5 + */ + @javax.annotation.Nullable + public Map getRFIDDG5() { + return RFID_DG5; + } + + public void setRFIDDG5(@javax.annotation.Nullable Map RFID_DG5) { + this.RFID_DG5 = RFID_DG5; + } + + public BinaryData RFID_DG6(@javax.annotation.Nullable Map RFID_DG6) { + this.RFID_DG6 = RFID_DG6; + return this; + } + + public BinaryData putRFIDDG6Item(String key, Object RFID_DG6Item) { + if (this.RFID_DG6 == null) { + this.RFID_DG6 = new HashMap<>(); + } + this.RFID_DG6.put(key, RFID_DG6Item); + return this; + } + + /** + * Get RFID_DG6 + * + * @return RFID_DG6 + */ + @javax.annotation.Nullable + public Map getRFIDDG6() { + return RFID_DG6; + } + + public void setRFIDDG6(@javax.annotation.Nullable Map RFID_DG6) { + this.RFID_DG6 = RFID_DG6; + } + + public BinaryData RFID_DG7(@javax.annotation.Nullable Map RFID_DG7) { + this.RFID_DG7 = RFID_DG7; + return this; + } + + public BinaryData putRFIDDG7Item(String key, Object RFID_DG7Item) { + if (this.RFID_DG7 == null) { + this.RFID_DG7 = new HashMap<>(); + } + this.RFID_DG7.put(key, RFID_DG7Item); + return this; + } + + /** + * Get RFID_DG7 + * + * @return RFID_DG7 + */ + @javax.annotation.Nullable + public Map getRFIDDG7() { + return RFID_DG7; + } + + public void setRFIDDG7(@javax.annotation.Nullable Map RFID_DG7) { + this.RFID_DG7 = RFID_DG7; + } + + public BinaryData RFID_DG8(@javax.annotation.Nullable Map RFID_DG8) { + this.RFID_DG8 = RFID_DG8; + return this; + } + + public BinaryData putRFIDDG8Item(String key, Object RFID_DG8Item) { + if (this.RFID_DG8 == null) { + this.RFID_DG8 = new HashMap<>(); + } + this.RFID_DG8.put(key, RFID_DG8Item); + return this; + } + + /** + * Get RFID_DG8 + * + * @return RFID_DG8 + */ + @javax.annotation.Nullable + public Map getRFIDDG8() { + return RFID_DG8; + } + + public void setRFIDDG8(@javax.annotation.Nullable Map RFID_DG8) { + this.RFID_DG8 = RFID_DG8; + } + + public BinaryData RFID_DG9(@javax.annotation.Nullable Map RFID_DG9) { + this.RFID_DG9 = RFID_DG9; + return this; + } + + public BinaryData putRFIDDG9Item(String key, Object RFID_DG9Item) { + if (this.RFID_DG9 == null) { + this.RFID_DG9 = new HashMap<>(); + } + this.RFID_DG9.put(key, RFID_DG9Item); + return this; + } + + /** + * Get RFID_DG9 + * + * @return RFID_DG9 + */ + @javax.annotation.Nullable + public Map getRFIDDG9() { + return RFID_DG9; + } + + public void setRFIDDG9(@javax.annotation.Nullable Map RFID_DG9) { + this.RFID_DG9 = RFID_DG9; + } + + public BinaryData RFID_DG10(@javax.annotation.Nullable Map RFID_DG10) { + this.RFID_DG10 = RFID_DG10; + return this; + } + + public BinaryData putRFIDDG10Item(String key, Object RFID_DG10Item) { + if (this.RFID_DG10 == null) { + this.RFID_DG10 = new HashMap<>(); + } + this.RFID_DG10.put(key, RFID_DG10Item); + return this; + } + + /** + * Get RFID_DG10 + * + * @return RFID_DG10 + */ + @javax.annotation.Nullable + public Map getRFIDDG10() { + return RFID_DG10; + } + + public void setRFIDDG10(@javax.annotation.Nullable Map RFID_DG10) { + this.RFID_DG10 = RFID_DG10; + } + + public BinaryData RFID_DG11(@javax.annotation.Nullable Map RFID_DG11) { + this.RFID_DG11 = RFID_DG11; + return this; + } + + public BinaryData putRFIDDG11Item(String key, Object RFID_DG11Item) { + if (this.RFID_DG11 == null) { + this.RFID_DG11 = new HashMap<>(); + } + this.RFID_DG11.put(key, RFID_DG11Item); + return this; + } + + /** + * Get RFID_DG11 + * + * @return RFID_DG11 + */ + @javax.annotation.Nullable + public Map getRFIDDG11() { + return RFID_DG11; + } + + public void setRFIDDG11(@javax.annotation.Nullable Map RFID_DG11) { + this.RFID_DG11 = RFID_DG11; + } + + public BinaryData RFID_DG12(@javax.annotation.Nullable Map RFID_DG12) { + this.RFID_DG12 = RFID_DG12; + return this; + } + + public BinaryData putRFIDDG12Item(String key, Object RFID_DG12Item) { + if (this.RFID_DG12 == null) { + this.RFID_DG12 = new HashMap<>(); + } + this.RFID_DG12.put(key, RFID_DG12Item); + return this; + } + + /** + * Get RFID_DG12 + * + * @return RFID_DG12 + */ + @javax.annotation.Nullable + public Map getRFIDDG12() { + return RFID_DG12; + } + + public void setRFIDDG12(@javax.annotation.Nullable Map RFID_DG12) { + this.RFID_DG12 = RFID_DG12; + } + + public BinaryData RFID_DG13(@javax.annotation.Nullable Map RFID_DG13) { + this.RFID_DG13 = RFID_DG13; + return this; + } + + public BinaryData putRFIDDG13Item(String key, Object RFID_DG13Item) { + if (this.RFID_DG13 == null) { + this.RFID_DG13 = new HashMap<>(); + } + this.RFID_DG13.put(key, RFID_DG13Item); + return this; + } + + /** + * Get RFID_DG13 + * + * @return RFID_DG13 + */ + @javax.annotation.Nullable + public Map getRFIDDG13() { + return RFID_DG13; + } + + public void setRFIDDG13(@javax.annotation.Nullable Map RFID_DG13) { + this.RFID_DG13 = RFID_DG13; + } + + public BinaryData RFID_DG14(@javax.annotation.Nullable Map RFID_DG14) { + this.RFID_DG14 = RFID_DG14; + return this; + } + + public BinaryData putRFIDDG14Item(String key, Object RFID_DG14Item) { + if (this.RFID_DG14 == null) { + this.RFID_DG14 = new HashMap<>(); + } + this.RFID_DG14.put(key, RFID_DG14Item); + return this; + } + + /** + * Get RFID_DG14 + * + * @return RFID_DG14 + */ + @javax.annotation.Nullable + public Map getRFIDDG14() { + return RFID_DG14; + } + + public void setRFIDDG14(@javax.annotation.Nullable Map RFID_DG14) { + this.RFID_DG14 = RFID_DG14; + } + + public BinaryData RFID_DG15(@javax.annotation.Nullable Map RFID_DG15) { + this.RFID_DG15 = RFID_DG15; + return this; + } + + public BinaryData putRFIDDG15Item(String key, Object RFID_DG15Item) { + if (this.RFID_DG15 == null) { + this.RFID_DG15 = new HashMap<>(); + } + this.RFID_DG15.put(key, RFID_DG15Item); + return this; + } + + /** + * Get RFID_DG15 + * + * @return RFID_DG15 + */ + @javax.annotation.Nullable + public Map getRFIDDG15() { + return RFID_DG15; + } + + public void setRFIDDG15(@javax.annotation.Nullable Map RFID_DG15) { + this.RFID_DG15 = RFID_DG15; + } + + public BinaryData RFID_DG16(@javax.annotation.Nullable Map RFID_DG16) { + this.RFID_DG16 = RFID_DG16; + return this; + } + + public BinaryData putRFIDDG16Item(String key, Object RFID_DG16Item) { + if (this.RFID_DG16 == null) { + this.RFID_DG16 = new HashMap<>(); + } + this.RFID_DG16.put(key, RFID_DG16Item); + return this; + } + + /** + * Get RFID_DG16 + * + * @return RFID_DG16 + */ + @javax.annotation.Nullable + public Map getRFIDDG16() { + return RFID_DG16; + } + + public void setRFIDDG16(@javax.annotation.Nullable Map RFID_DG16) { + this.RFID_DG16 = RFID_DG16; + } + + public BinaryData RFID_EF_SOD(@javax.annotation.Nullable Map RFID_EF_SOD) { + this.RFID_EF_SOD = RFID_EF_SOD; + return this; + } + + public BinaryData putRFIDEFSODItem(String key, Object RFID_EF_SODItem) { + if (this.RFID_EF_SOD == null) { + this.RFID_EF_SOD = new HashMap<>(); + } + this.RFID_EF_SOD.put(key, RFID_EF_SODItem); + return this; + } + + /** + * Get RFID_EF_SOD + * + * @return RFID_EF_SOD + */ + @javax.annotation.Nullable + public Map getRFIDEFSOD() { + return RFID_EF_SOD; + } + + public void setRFIDEFSOD(@javax.annotation.Nullable Map RFID_EF_SOD) { + this.RFID_EF_SOD = RFID_EF_SOD; + } + + public BinaryData eIDDG1(@javax.annotation.Nullable Map eIDDG1) { + this.eIDDG1 = eIDDG1; + return this; + } + + public BinaryData putEIDDG1Item(String key, Object eIDDG1Item) { + if (this.eIDDG1 == null) { + this.eIDDG1 = new HashMap<>(); + } + this.eIDDG1.put(key, eIDDG1Item); + return this; + } + + /** + * Get eIDDG1 + * + * @return eIDDG1 + */ + @javax.annotation.Nullable + public Map geteIDDG1() { + return eIDDG1; + } + + public void seteIDDG1(@javax.annotation.Nullable Map eIDDG1) { + this.eIDDG1 = eIDDG1; + } + + public BinaryData eIDDG2(@javax.annotation.Nullable Map eIDDG2) { + this.eIDDG2 = eIDDG2; + return this; + } + + public BinaryData putEIDDG2Item(String key, Object eIDDG2Item) { + if (this.eIDDG2 == null) { + this.eIDDG2 = new HashMap<>(); + } + this.eIDDG2.put(key, eIDDG2Item); + return this; + } + + /** + * Get eIDDG2 + * + * @return eIDDG2 + */ + @javax.annotation.Nullable + public Map geteIDDG2() { + return eIDDG2; + } + + public void seteIDDG2(@javax.annotation.Nullable Map eIDDG2) { + this.eIDDG2 = eIDDG2; + } + + public BinaryData eIDDG3(@javax.annotation.Nullable Map eIDDG3) { + this.eIDDG3 = eIDDG3; + return this; + } + + public BinaryData putEIDDG3Item(String key, Object eIDDG3Item) { + if (this.eIDDG3 == null) { + this.eIDDG3 = new HashMap<>(); + } + this.eIDDG3.put(key, eIDDG3Item); + return this; + } + + /** + * Get eIDDG3 + * + * @return eIDDG3 + */ + @javax.annotation.Nullable + public Map geteIDDG3() { + return eIDDG3; + } + + public void seteIDDG3(@javax.annotation.Nullable Map eIDDG3) { + this.eIDDG3 = eIDDG3; + } + + public BinaryData eIDDG4(@javax.annotation.Nullable Map eIDDG4) { + this.eIDDG4 = eIDDG4; + return this; + } + + public BinaryData putEIDDG4Item(String key, Object eIDDG4Item) { + if (this.eIDDG4 == null) { + this.eIDDG4 = new HashMap<>(); + } + this.eIDDG4.put(key, eIDDG4Item); + return this; + } + + /** + * Get eIDDG4 + * + * @return eIDDG4 + */ + @javax.annotation.Nullable + public Map geteIDDG4() { + return eIDDG4; + } + + public void seteIDDG4(@javax.annotation.Nullable Map eIDDG4) { + this.eIDDG4 = eIDDG4; + } + + public BinaryData eIDDG5(@javax.annotation.Nullable Map eIDDG5) { + this.eIDDG5 = eIDDG5; + return this; + } + + public BinaryData putEIDDG5Item(String key, Object eIDDG5Item) { + if (this.eIDDG5 == null) { + this.eIDDG5 = new HashMap<>(); + } + this.eIDDG5.put(key, eIDDG5Item); + return this; + } + + /** + * Get eIDDG5 + * + * @return eIDDG5 + */ + @javax.annotation.Nullable + public Map geteIDDG5() { + return eIDDG5; + } + + public void seteIDDG5(@javax.annotation.Nullable Map eIDDG5) { + this.eIDDG5 = eIDDG5; + } + + public BinaryData eIDDG6(@javax.annotation.Nullable Map eIDDG6) { + this.eIDDG6 = eIDDG6; + return this; + } + + public BinaryData putEIDDG6Item(String key, Object eIDDG6Item) { + if (this.eIDDG6 == null) { + this.eIDDG6 = new HashMap<>(); + } + this.eIDDG6.put(key, eIDDG6Item); + return this; + } + + /** + * Get eIDDG6 + * + * @return eIDDG6 + */ + @javax.annotation.Nullable + public Map geteIDDG6() { + return eIDDG6; + } + + public void seteIDDG6(@javax.annotation.Nullable Map eIDDG6) { + this.eIDDG6 = eIDDG6; + } + + public BinaryData eIDDG7(@javax.annotation.Nullable Map eIDDG7) { + this.eIDDG7 = eIDDG7; + return this; + } + + public BinaryData putEIDDG7Item(String key, Object eIDDG7Item) { + if (this.eIDDG7 == null) { + this.eIDDG7 = new HashMap<>(); + } + this.eIDDG7.put(key, eIDDG7Item); + return this; + } + + /** + * Get eIDDG7 + * + * @return eIDDG7 + */ + @javax.annotation.Nullable + public Map geteIDDG7() { + return eIDDG7; + } + + public void seteIDDG7(@javax.annotation.Nullable Map eIDDG7) { + this.eIDDG7 = eIDDG7; + } + + public BinaryData eIDDG8(@javax.annotation.Nullable Map eIDDG8) { + this.eIDDG8 = eIDDG8; + return this; + } + + public BinaryData putEIDDG8Item(String key, Object eIDDG8Item) { + if (this.eIDDG8 == null) { + this.eIDDG8 = new HashMap<>(); + } + this.eIDDG8.put(key, eIDDG8Item); + return this; + } + + /** + * Get eIDDG8 + * + * @return eIDDG8 + */ + @javax.annotation.Nullable + public Map geteIDDG8() { + return eIDDG8; + } + + public void seteIDDG8(@javax.annotation.Nullable Map eIDDG8) { + this.eIDDG8 = eIDDG8; + } + + public BinaryData eIDDG9(@javax.annotation.Nullable Map eIDDG9) { + this.eIDDG9 = eIDDG9; + return this; + } + + public BinaryData putEIDDG9Item(String key, Object eIDDG9Item) { + if (this.eIDDG9 == null) { + this.eIDDG9 = new HashMap<>(); + } + this.eIDDG9.put(key, eIDDG9Item); + return this; + } + + /** + * Get eIDDG9 + * + * @return eIDDG9 + */ + @javax.annotation.Nullable + public Map geteIDDG9() { + return eIDDG9; + } + + public void seteIDDG9(@javax.annotation.Nullable Map eIDDG9) { + this.eIDDG9 = eIDDG9; + } + + public BinaryData eIDDG10(@javax.annotation.Nullable Map eIDDG10) { + this.eIDDG10 = eIDDG10; + return this; + } + + public BinaryData putEIDDG10Item(String key, Object eIDDG10Item) { + if (this.eIDDG10 == null) { + this.eIDDG10 = new HashMap<>(); + } + this.eIDDG10.put(key, eIDDG10Item); + return this; + } + + /** + * Get eIDDG10 + * + * @return eIDDG10 + */ + @javax.annotation.Nullable + public Map geteIDDG10() { + return eIDDG10; + } + + public void seteIDDG10(@javax.annotation.Nullable Map eIDDG10) { + this.eIDDG10 = eIDDG10; + } + + public BinaryData eIDDG11(@javax.annotation.Nullable Map eIDDG11) { + this.eIDDG11 = eIDDG11; + return this; + } + + public BinaryData putEIDDG11Item(String key, Object eIDDG11Item) { + if (this.eIDDG11 == null) { + this.eIDDG11 = new HashMap<>(); + } + this.eIDDG11.put(key, eIDDG11Item); + return this; + } + + /** + * Get eIDDG11 + * + * @return eIDDG11 + */ + @javax.annotation.Nullable + public Map geteIDDG11() { + return eIDDG11; + } + + public void seteIDDG11(@javax.annotation.Nullable Map eIDDG11) { + this.eIDDG11 = eIDDG11; + } + + public BinaryData eIDDG12(@javax.annotation.Nullable Map eIDDG12) { + this.eIDDG12 = eIDDG12; + return this; + } + + public BinaryData putEIDDG12Item(String key, Object eIDDG12Item) { + if (this.eIDDG12 == null) { + this.eIDDG12 = new HashMap<>(); + } + this.eIDDG12.put(key, eIDDG12Item); + return this; + } + + /** + * Get eIDDG12 + * + * @return eIDDG12 + */ + @javax.annotation.Nullable + public Map geteIDDG12() { + return eIDDG12; + } + + public void seteIDDG12(@javax.annotation.Nullable Map eIDDG12) { + this.eIDDG12 = eIDDG12; + } + + public BinaryData eIDDG13(@javax.annotation.Nullable Map eIDDG13) { + this.eIDDG13 = eIDDG13; + return this; + } + + public BinaryData putEIDDG13Item(String key, Object eIDDG13Item) { + if (this.eIDDG13 == null) { + this.eIDDG13 = new HashMap<>(); + } + this.eIDDG13.put(key, eIDDG13Item); + return this; + } + + /** + * Get eIDDG13 + * + * @return eIDDG13 + */ + @javax.annotation.Nullable + public Map geteIDDG13() { + return eIDDG13; + } + + public void seteIDDG13(@javax.annotation.Nullable Map eIDDG13) { + this.eIDDG13 = eIDDG13; + } + + public BinaryData eIDDG14(@javax.annotation.Nullable Map eIDDG14) { + this.eIDDG14 = eIDDG14; + return this; + } + + public BinaryData putEIDDG14Item(String key, Object eIDDG14Item) { + if (this.eIDDG14 == null) { + this.eIDDG14 = new HashMap<>(); + } + this.eIDDG14.put(key, eIDDG14Item); + return this; + } + + /** + * Get eIDDG14 + * + * @return eIDDG14 + */ + @javax.annotation.Nullable + public Map geteIDDG14() { + return eIDDG14; + } + + public void seteIDDG14(@javax.annotation.Nullable Map eIDDG14) { + this.eIDDG14 = eIDDG14; + } + + public BinaryData eIDDG15(@javax.annotation.Nullable Map eIDDG15) { + this.eIDDG15 = eIDDG15; + return this; + } + + public BinaryData putEIDDG15Item(String key, Object eIDDG15Item) { + if (this.eIDDG15 == null) { + this.eIDDG15 = new HashMap<>(); + } + this.eIDDG15.put(key, eIDDG15Item); + return this; + } + + /** + * Get eIDDG15 + * + * @return eIDDG15 + */ + @javax.annotation.Nullable + public Map geteIDDG15() { + return eIDDG15; + } + + public void seteIDDG15(@javax.annotation.Nullable Map eIDDG15) { + this.eIDDG15 = eIDDG15; + } + + public BinaryData eIDDG16(@javax.annotation.Nullable Map eIDDG16) { + this.eIDDG16 = eIDDG16; + return this; + } + + public BinaryData putEIDDG16Item(String key, Object eIDDG16Item) { + if (this.eIDDG16 == null) { + this.eIDDG16 = new HashMap<>(); + } + this.eIDDG16.put(key, eIDDG16Item); + return this; + } + + /** + * Get eIDDG16 + * + * @return eIDDG16 + */ + @javax.annotation.Nullable + public Map geteIDDG16() { + return eIDDG16; + } + + public void seteIDDG16(@javax.annotation.Nullable Map eIDDG16) { + this.eIDDG16 = eIDDG16; + } + + public BinaryData eIDDG17(@javax.annotation.Nullable Map eIDDG17) { + this.eIDDG17 = eIDDG17; + return this; + } + + public BinaryData putEIDDG17Item(String key, Object eIDDG17Item) { + if (this.eIDDG17 == null) { + this.eIDDG17 = new HashMap<>(); + } + this.eIDDG17.put(key, eIDDG17Item); + return this; + } + + /** + * Get eIDDG17 + * + * @return eIDDG17 + */ + @javax.annotation.Nullable + public Map geteIDDG17() { + return eIDDG17; + } + + public void seteIDDG17(@javax.annotation.Nullable Map eIDDG17) { + this.eIDDG17 = eIDDG17; + } + + public BinaryData eIDDG18(@javax.annotation.Nullable Map eIDDG18) { + this.eIDDG18 = eIDDG18; + return this; + } + + public BinaryData putEIDDG18Item(String key, Object eIDDG18Item) { + if (this.eIDDG18 == null) { + this.eIDDG18 = new HashMap<>(); + } + this.eIDDG18.put(key, eIDDG18Item); + return this; + } + + /** + * Get eIDDG18 + * + * @return eIDDG18 + */ + @javax.annotation.Nullable + public Map geteIDDG18() { + return eIDDG18; + } + + public void seteIDDG18(@javax.annotation.Nullable Map eIDDG18) { + this.eIDDG18 = eIDDG18; + } + + public BinaryData eIDDG19(@javax.annotation.Nullable Map eIDDG19) { + this.eIDDG19 = eIDDG19; + return this; + } + + public BinaryData putEIDDG19Item(String key, Object eIDDG19Item) { + if (this.eIDDG19 == null) { + this.eIDDG19 = new HashMap<>(); + } + this.eIDDG19.put(key, eIDDG19Item); + return this; + } + + /** + * Get eIDDG19 + * + * @return eIDDG19 + */ + @javax.annotation.Nullable + public Map geteIDDG19() { + return eIDDG19; + } + + public void seteIDDG19(@javax.annotation.Nullable Map eIDDG19) { + this.eIDDG19 = eIDDG19; + } + + public BinaryData eIDDG20(@javax.annotation.Nullable Map eIDDG20) { + this.eIDDG20 = eIDDG20; + return this; + } + + public BinaryData putEIDDG20Item(String key, Object eIDDG20Item) { + if (this.eIDDG20 == null) { + this.eIDDG20 = new HashMap<>(); + } + this.eIDDG20.put(key, eIDDG20Item); + return this; + } + + /** + * Get eIDDG20 + * + * @return eIDDG20 + */ + @javax.annotation.Nullable + public Map geteIDDG20() { + return eIDDG20; + } + + public void seteIDDG20(@javax.annotation.Nullable Map eIDDG20) { + this.eIDDG20 = eIDDG20; + } + + public BinaryData eIDDG21(@javax.annotation.Nullable Map eIDDG21) { + this.eIDDG21 = eIDDG21; + return this; + } + + public BinaryData putEIDDG21Item(String key, Object eIDDG21Item) { + if (this.eIDDG21 == null) { + this.eIDDG21 = new HashMap<>(); + } + this.eIDDG21.put(key, eIDDG21Item); + return this; + } + + /** + * Get eIDDG21 + * + * @return eIDDG21 + */ + @javax.annotation.Nullable + public Map geteIDDG21() { + return eIDDG21; + } + + public void seteIDDG21(@javax.annotation.Nullable Map eIDDG21) { + this.eIDDG21 = eIDDG21; + } + + public BinaryData eDLCOM(@javax.annotation.Nullable Map eDLCOM) { + this.eDLCOM = eDLCOM; + return this; + } + + public BinaryData putEDLCOMItem(String key, Object eDLCOMItem) { + if (this.eDLCOM == null) { + this.eDLCOM = new HashMap<>(); + } + this.eDLCOM.put(key, eDLCOMItem); + return this; + } + + /** + * Get eDLCOM + * + * @return eDLCOM + */ + @javax.annotation.Nullable + public Map geteDLCOM() { + return eDLCOM; + } + + public void seteDLCOM(@javax.annotation.Nullable Map eDLCOM) { + this.eDLCOM = eDLCOM; + } + + public BinaryData eDLSOD(@javax.annotation.Nullable Map eDLSOD) { + this.eDLSOD = eDLSOD; + return this; + } + + public BinaryData putEDLSODItem(String key, Object eDLSODItem) { + if (this.eDLSOD == null) { + this.eDLSOD = new HashMap<>(); + } + this.eDLSOD.put(key, eDLSODItem); + return this; + } + + /** + * Get eDLSOD + * + * @return eDLSOD + */ + @javax.annotation.Nullable + public Map geteDLSOD() { + return eDLSOD; + } + + public void seteDLSOD(@javax.annotation.Nullable Map eDLSOD) { + this.eDLSOD = eDLSOD; + } + + public BinaryData eDLDG1(@javax.annotation.Nullable Map eDLDG1) { + this.eDLDG1 = eDLDG1; + return this; + } + + public BinaryData putEDLDG1Item(String key, Object eDLDG1Item) { + if (this.eDLDG1 == null) { + this.eDLDG1 = new HashMap<>(); + } + this.eDLDG1.put(key, eDLDG1Item); + return this; + } + + /** + * Get eDLDG1 + * + * @return eDLDG1 + */ + @javax.annotation.Nullable + public Map geteDLDG1() { + return eDLDG1; + } + + public void seteDLDG1(@javax.annotation.Nullable Map eDLDG1) { + this.eDLDG1 = eDLDG1; + } + + public BinaryData eDLDG2(@javax.annotation.Nullable Map eDLDG2) { + this.eDLDG2 = eDLDG2; + return this; + } + + public BinaryData putEDLDG2Item(String key, Object eDLDG2Item) { + if (this.eDLDG2 == null) { + this.eDLDG2 = new HashMap<>(); + } + this.eDLDG2.put(key, eDLDG2Item); + return this; + } + + /** + * Get eDLDG2 + * + * @return eDLDG2 + */ + @javax.annotation.Nullable + public Map geteDLDG2() { + return eDLDG2; + } + + public void seteDLDG2(@javax.annotation.Nullable Map eDLDG2) { + this.eDLDG2 = eDLDG2; + } + + public BinaryData eDLDG3(@javax.annotation.Nullable Map eDLDG3) { + this.eDLDG3 = eDLDG3; + return this; + } + + public BinaryData putEDLDG3Item(String key, Object eDLDG3Item) { + if (this.eDLDG3 == null) { + this.eDLDG3 = new HashMap<>(); + } + this.eDLDG3.put(key, eDLDG3Item); + return this; + } + + /** + * Get eDLDG3 + * + * @return eDLDG3 + */ + @javax.annotation.Nullable + public Map geteDLDG3() { + return eDLDG3; + } + + public void seteDLDG3(@javax.annotation.Nullable Map eDLDG3) { + this.eDLDG3 = eDLDG3; + } + + public BinaryData eDLDG4(@javax.annotation.Nullable Map eDLDG4) { + this.eDLDG4 = eDLDG4; + return this; + } + + public BinaryData putEDLDG4Item(String key, Object eDLDG4Item) { + if (this.eDLDG4 == null) { + this.eDLDG4 = new HashMap<>(); + } + this.eDLDG4.put(key, eDLDG4Item); + return this; + } + + /** + * Get eDLDG4 + * + * @return eDLDG4 + */ + @javax.annotation.Nullable + public Map geteDLDG4() { + return eDLDG4; + } + + public void seteDLDG4(@javax.annotation.Nullable Map eDLDG4) { + this.eDLDG4 = eDLDG4; + } + + public BinaryData eDLDG5(@javax.annotation.Nullable Map eDLDG5) { + this.eDLDG5 = eDLDG5; + return this; + } + + public BinaryData putEDLDG5Item(String key, Object eDLDG5Item) { + if (this.eDLDG5 == null) { + this.eDLDG5 = new HashMap<>(); + } + this.eDLDG5.put(key, eDLDG5Item); + return this; + } + + /** + * Get eDLDG5 + * + * @return eDLDG5 + */ + @javax.annotation.Nullable + public Map geteDLDG5() { + return eDLDG5; + } + + public void seteDLDG5(@javax.annotation.Nullable Map eDLDG5) { + this.eDLDG5 = eDLDG5; + } + + public BinaryData eDLDG6(@javax.annotation.Nullable Map eDLDG6) { + this.eDLDG6 = eDLDG6; + return this; + } + + public BinaryData putEDLDG6Item(String key, Object eDLDG6Item) { + if (this.eDLDG6 == null) { + this.eDLDG6 = new HashMap<>(); + } + this.eDLDG6.put(key, eDLDG6Item); + return this; + } + + /** + * Get eDLDG6 + * + * @return eDLDG6 + */ + @javax.annotation.Nullable + public Map geteDLDG6() { + return eDLDG6; + } + + public void seteDLDG6(@javax.annotation.Nullable Map eDLDG6) { + this.eDLDG6 = eDLDG6; + } + + public BinaryData eDLDG7(@javax.annotation.Nullable Map eDLDG7) { + this.eDLDG7 = eDLDG7; + return this; + } + + public BinaryData putEDLDG7Item(String key, Object eDLDG7Item) { + if (this.eDLDG7 == null) { + this.eDLDG7 = new HashMap<>(); + } + this.eDLDG7.put(key, eDLDG7Item); + return this; + } + + /** + * Get eDLDG7 + * + * @return eDLDG7 + */ + @javax.annotation.Nullable + public Map geteDLDG7() { + return eDLDG7; + } + + public void seteDLDG7(@javax.annotation.Nullable Map eDLDG7) { + this.eDLDG7 = eDLDG7; + } + + public BinaryData eDLDG8(@javax.annotation.Nullable Map eDLDG8) { + this.eDLDG8 = eDLDG8; + return this; + } + + public BinaryData putEDLDG8Item(String key, Object eDLDG8Item) { + if (this.eDLDG8 == null) { + this.eDLDG8 = new HashMap<>(); + } + this.eDLDG8.put(key, eDLDG8Item); + return this; + } + + /** + * Get eDLDG8 + * + * @return eDLDG8 + */ + @javax.annotation.Nullable + public Map geteDLDG8() { + return eDLDG8; + } + + public void seteDLDG8(@javax.annotation.Nullable Map eDLDG8) { + this.eDLDG8 = eDLDG8; + } + + public BinaryData eDLDG9(@javax.annotation.Nullable Map eDLDG9) { + this.eDLDG9 = eDLDG9; + return this; + } + + public BinaryData putEDLDG9Item(String key, Object eDLDG9Item) { + if (this.eDLDG9 == null) { + this.eDLDG9 = new HashMap<>(); + } + this.eDLDG9.put(key, eDLDG9Item); + return this; + } + + /** + * Get eDLDG9 + * + * @return eDLDG9 + */ + @javax.annotation.Nullable + public Map geteDLDG9() { + return eDLDG9; + } + + public void seteDLDG9(@javax.annotation.Nullable Map eDLDG9) { + this.eDLDG9 = eDLDG9; + } + + public BinaryData eDLDG10(@javax.annotation.Nullable Map eDLDG10) { + this.eDLDG10 = eDLDG10; + return this; + } + + public BinaryData putEDLDG10Item(String key, Object eDLDG10Item) { + if (this.eDLDG10 == null) { + this.eDLDG10 = new HashMap<>(); + } + this.eDLDG10.put(key, eDLDG10Item); + return this; + } + + /** + * Get eDLDG10 + * + * @return eDLDG10 + */ + @javax.annotation.Nullable + public Map geteDLDG10() { + return eDLDG10; + } + + public void seteDLDG10(@javax.annotation.Nullable Map eDLDG10) { + this.eDLDG10 = eDLDG10; + } + + public BinaryData eDLDG11(@javax.annotation.Nullable Map eDLDG11) { + this.eDLDG11 = eDLDG11; + return this; + } + + public BinaryData putEDLDG11Item(String key, Object eDLDG11Item) { + if (this.eDLDG11 == null) { + this.eDLDG11 = new HashMap<>(); + } + this.eDLDG11.put(key, eDLDG11Item); + return this; + } + + /** + * Get eDLDG11 + * + * @return eDLDG11 + */ + @javax.annotation.Nullable + public Map geteDLDG11() { + return eDLDG11; + } + + public void seteDLDG11(@javax.annotation.Nullable Map eDLDG11) { + this.eDLDG11 = eDLDG11; + } + + public BinaryData eDLDG12(@javax.annotation.Nullable Map eDLDG12) { + this.eDLDG12 = eDLDG12; + return this; + } + + public BinaryData putEDLDG12Item(String key, Object eDLDG12Item) { + if (this.eDLDG12 == null) { + this.eDLDG12 = new HashMap<>(); + } + this.eDLDG12.put(key, eDLDG12Item); + return this; + } + + /** + * Get eDLDG12 + * + * @return eDLDG12 + */ + @javax.annotation.Nullable + public Map geteDLDG12() { + return eDLDG12; + } + + public void seteDLDG12(@javax.annotation.Nullable Map eDLDG12) { + this.eDLDG12 = eDLDG12; + } + + public BinaryData eDLDG13(@javax.annotation.Nullable Map eDLDG13) { + this.eDLDG13 = eDLDG13; + return this; + } + + public BinaryData putEDLDG13Item(String key, Object eDLDG13Item) { + if (this.eDLDG13 == null) { + this.eDLDG13 = new HashMap<>(); + } + this.eDLDG13.put(key, eDLDG13Item); + return this; + } + + /** + * Get eDLDG13 + * + * @return eDLDG13 + */ + @javax.annotation.Nullable + public Map geteDLDG13() { + return eDLDG13; + } + + public void seteDLDG13(@javax.annotation.Nullable Map eDLDG13) { + this.eDLDG13 = eDLDG13; + } + + public BinaryData eDLDG14(@javax.annotation.Nullable Map eDLDG14) { + this.eDLDG14 = eDLDG14; + return this; + } + + public BinaryData putEDLDG14Item(String key, Object eDLDG14Item) { + if (this.eDLDG14 == null) { + this.eDLDG14 = new HashMap<>(); + } + this.eDLDG14.put(key, eDLDG14Item); + return this; + } + + /** + * Get eDLDG14 + * + * @return eDLDG14 + */ + @javax.annotation.Nullable + public Map geteDLDG14() { + return eDLDG14; + } + + public void seteDLDG14(@javax.annotation.Nullable Map eDLDG14) { + this.eDLDG14 = eDLDG14; + } + + public BinaryData visibleDigitalSeal( + @javax.annotation.Nullable Map visibleDigitalSeal) { + this.visibleDigitalSeal = visibleDigitalSeal; + return this; + } + + public BinaryData putVisibleDigitalSealItem(String key, Object visibleDigitalSealItem) { + if (this.visibleDigitalSeal == null) { + this.visibleDigitalSeal = new HashMap<>(); + } + this.visibleDigitalSeal.put(key, visibleDigitalSealItem); + return this; + } + + /** + * Get visibleDigitalSeal + * + * @return visibleDigitalSeal + */ + @javax.annotation.Nullable + public Map getVisibleDigitalSeal() { + return visibleDigitalSeal; + } + + public void setVisibleDigitalSeal( + @javax.annotation.Nullable Map visibleDigitalSeal) { + this.visibleDigitalSeal = visibleDigitalSeal; + } + + public BinaryData visibleDigitalSealNC( + @javax.annotation.Nullable Map visibleDigitalSealNC) { + this.visibleDigitalSealNC = visibleDigitalSealNC; + return this; + } + + public BinaryData putVisibleDigitalSealNCItem(String key, Object visibleDigitalSealNCItem) { + if (this.visibleDigitalSealNC == null) { + this.visibleDigitalSealNC = new HashMap<>(); + } + this.visibleDigitalSealNC.put(key, visibleDigitalSealNCItem); + return this; + } + + /** + * Get visibleDigitalSealNC + * + * @return visibleDigitalSealNC + */ + @javax.annotation.Nullable + public Map getVisibleDigitalSealNC() { + return visibleDigitalSealNC; + } + + public void setVisibleDigitalSealNC( + @javax.annotation.Nullable Map visibleDigitalSealNC) { + this.visibleDigitalSealNC = visibleDigitalSealNC; + } + + public BinaryData digitalSignature( + @javax.annotation.Nullable Map digitalSignature) { + this.digitalSignature = digitalSignature; + return this; + } + + public BinaryData putDigitalSignatureItem(String key, Object digitalSignatureItem) { + if (this.digitalSignature == null) { + this.digitalSignature = new HashMap<>(); + } + this.digitalSignature.put(key, digitalSignatureItem); + return this; + } + + /** + * Get digitalSignature + * + * @return digitalSignature + */ + @javax.annotation.Nullable + public Map getDigitalSignature() { + return digitalSignature; + } + + public void setDigitalSignature(@javax.annotation.Nullable Map digitalSignature) { + this.digitalSignature = digitalSignature; + } + + public BinaryData rfIDSessionData(@javax.annotation.Nullable RfidSessionData rfIDSessionData) { + this.rfIDSessionData = rfIDSessionData; + return this; + } + + /** + * Get rfIDSessionData + * + * @return rfIDSessionData + */ + @javax.annotation.Nullable + public RfidSessionData getRfIDSessionData() { + return rfIDSessionData; + } + + public void setRfIDSessionData(@javax.annotation.Nullable RfidSessionData rfIDSessionData) { + this.rfIDSessionData = rfIDSessionData; + } + + public BinaryData rfIDSessionDataStatus( + @javax.annotation.Nullable DetailsRFID rfIDSessionDataStatus) { + this.rfIDSessionDataStatus = rfIDSessionDataStatus; + return this; + } + + /** + * Get rfIDSessionDataStatus + * + * @return rfIDSessionDataStatus + */ + @javax.annotation.Nullable + public DetailsRFID getRfIDSessionDataStatus() { + return rfIDSessionDataStatus; + } + + public void setRfIDSessionDataStatus( + @javax.annotation.Nullable DetailsRFID rfIDSessionDataStatus) { + this.rfIDSessionDataStatus = rfIDSessionDataStatus; + } + + public BinaryData rfIDEPasspDirectory( + @javax.annotation.Nullable List rfIDEPasspDirectory) { + this.rfIDEPasspDirectory = rfIDEPasspDirectory; + return this; + } + + public BinaryData addRfIDEPasspDirectoryItem(RfidDataFileType rfIDEPasspDirectoryItem) { + if (this.rfIDEPasspDirectory == null) { + this.rfIDEPasspDirectory = new ArrayList<>(); + } + this.rfIDEPasspDirectory.add(rfIDEPasspDirectoryItem); + return this; + } + + /** + * Indexes of groups that aren't read + * + * @return rfIDEPasspDirectory + */ + @javax.annotation.Nullable + public List getRfIDEPasspDirectory() { + return rfIDEPasspDirectory; + } + + public void setRfIDEPasspDirectory( + @javax.annotation.Nullable List rfIDEPasspDirectory) { + this.rfIDEPasspDirectory = rfIDEPasspDirectory; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BinaryData binaryData = (BinaryData) o; + return Objects.equals(this.rfIDAuthenticationInfo, binaryData.rfIDAuthenticationInfo) + && Objects.equals(this.rfIDMIFAREDataValidity, binaryData.rfIDMIFAREDataValidity) + && Objects.equals(this.rfIDMIFAREData, binaryData.rfIDMIFAREData) + && Objects.equals(this.RFID_EF_COM, binaryData.RFID_EF_COM) + && Objects.equals(this.RFID_DG1, binaryData.RFID_DG1) + && Objects.equals(this.RFID_DG2, binaryData.RFID_DG2) + && Objects.equals(this.RFID_DG3, binaryData.RFID_DG3) + && Objects.equals(this.RFID_DG4, binaryData.RFID_DG4) + && Objects.equals(this.RFID_DG5, binaryData.RFID_DG5) + && Objects.equals(this.RFID_DG6, binaryData.RFID_DG6) + && Objects.equals(this.RFID_DG7, binaryData.RFID_DG7) + && Objects.equals(this.RFID_DG8, binaryData.RFID_DG8) + && Objects.equals(this.RFID_DG9, binaryData.RFID_DG9) + && Objects.equals(this.RFID_DG10, binaryData.RFID_DG10) + && Objects.equals(this.RFID_DG11, binaryData.RFID_DG11) + && Objects.equals(this.RFID_DG12, binaryData.RFID_DG12) + && Objects.equals(this.RFID_DG13, binaryData.RFID_DG13) + && Objects.equals(this.RFID_DG14, binaryData.RFID_DG14) + && Objects.equals(this.RFID_DG15, binaryData.RFID_DG15) + && Objects.equals(this.RFID_DG16, binaryData.RFID_DG16) + && Objects.equals(this.RFID_EF_SOD, binaryData.RFID_EF_SOD) + && Objects.equals(this.eIDDG1, binaryData.eIDDG1) + && Objects.equals(this.eIDDG2, binaryData.eIDDG2) + && Objects.equals(this.eIDDG3, binaryData.eIDDG3) + && Objects.equals(this.eIDDG4, binaryData.eIDDG4) + && Objects.equals(this.eIDDG5, binaryData.eIDDG5) + && Objects.equals(this.eIDDG6, binaryData.eIDDG6) + && Objects.equals(this.eIDDG7, binaryData.eIDDG7) + && Objects.equals(this.eIDDG8, binaryData.eIDDG8) + && Objects.equals(this.eIDDG9, binaryData.eIDDG9) + && Objects.equals(this.eIDDG10, binaryData.eIDDG10) + && Objects.equals(this.eIDDG11, binaryData.eIDDG11) + && Objects.equals(this.eIDDG12, binaryData.eIDDG12) + && Objects.equals(this.eIDDG13, binaryData.eIDDG13) + && Objects.equals(this.eIDDG14, binaryData.eIDDG14) + && Objects.equals(this.eIDDG15, binaryData.eIDDG15) + && Objects.equals(this.eIDDG16, binaryData.eIDDG16) + && Objects.equals(this.eIDDG17, binaryData.eIDDG17) + && Objects.equals(this.eIDDG18, binaryData.eIDDG18) + && Objects.equals(this.eIDDG19, binaryData.eIDDG19) + && Objects.equals(this.eIDDG20, binaryData.eIDDG20) + && Objects.equals(this.eIDDG21, binaryData.eIDDG21) + && Objects.equals(this.eDLCOM, binaryData.eDLCOM) + && Objects.equals(this.eDLSOD, binaryData.eDLSOD) + && Objects.equals(this.eDLDG1, binaryData.eDLDG1) + && Objects.equals(this.eDLDG2, binaryData.eDLDG2) + && Objects.equals(this.eDLDG3, binaryData.eDLDG3) + && Objects.equals(this.eDLDG4, binaryData.eDLDG4) + && Objects.equals(this.eDLDG5, binaryData.eDLDG5) + && Objects.equals(this.eDLDG6, binaryData.eDLDG6) + && Objects.equals(this.eDLDG7, binaryData.eDLDG7) + && Objects.equals(this.eDLDG8, binaryData.eDLDG8) + && Objects.equals(this.eDLDG9, binaryData.eDLDG9) + && Objects.equals(this.eDLDG10, binaryData.eDLDG10) + && Objects.equals(this.eDLDG11, binaryData.eDLDG11) + && Objects.equals(this.eDLDG12, binaryData.eDLDG12) + && Objects.equals(this.eDLDG13, binaryData.eDLDG13) + && Objects.equals(this.eDLDG14, binaryData.eDLDG14) + && Objects.equals(this.visibleDigitalSeal, binaryData.visibleDigitalSeal) + && Objects.equals(this.visibleDigitalSealNC, binaryData.visibleDigitalSealNC) + && Objects.equals(this.digitalSignature, binaryData.digitalSignature) + && Objects.equals(this.rfIDSessionData, binaryData.rfIDSessionData) + && Objects.equals(this.rfIDSessionDataStatus, binaryData.rfIDSessionDataStatus) + && Objects.equals(this.rfIDEPasspDirectory, binaryData.rfIDEPasspDirectory); + } + + @Override + public int hashCode() { + return Objects.hash( + rfIDAuthenticationInfo, + rfIDMIFAREDataValidity, + rfIDMIFAREData, + RFID_EF_COM, + RFID_DG1, + RFID_DG2, + RFID_DG3, + RFID_DG4, + RFID_DG5, + RFID_DG6, + RFID_DG7, + RFID_DG8, + RFID_DG9, + RFID_DG10, + RFID_DG11, + RFID_DG12, + RFID_DG13, + RFID_DG14, + RFID_DG15, + RFID_DG16, + RFID_EF_SOD, + eIDDG1, + eIDDG2, + eIDDG3, + eIDDG4, + eIDDG5, + eIDDG6, + eIDDG7, + eIDDG8, + eIDDG9, + eIDDG10, + eIDDG11, + eIDDG12, + eIDDG13, + eIDDG14, + eIDDG15, + eIDDG16, + eIDDG17, + eIDDG18, + eIDDG19, + eIDDG20, + eIDDG21, + eDLCOM, + eDLSOD, + eDLDG1, + eDLDG2, + eDLDG3, + eDLDG4, + eDLDG5, + eDLDG6, + eDLDG7, + eDLDG8, + eDLDG9, + eDLDG10, + eDLDG11, + eDLDG12, + eDLDG13, + eDLDG14, + visibleDigitalSeal, + visibleDigitalSealNC, + digitalSignature, + rfIDSessionData, + rfIDSessionDataStatus, + rfIDEPasspDirectory); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BinaryData {\n"); + sb.append(" rfIDAuthenticationInfo: ") + .append(toIndentedString(rfIDAuthenticationInfo)) + .append("\n"); + sb.append(" rfIDMIFAREDataValidity: ") + .append(toIndentedString(rfIDMIFAREDataValidity)) + .append("\n"); + sb.append(" rfIDMIFAREData: ").append(toIndentedString(rfIDMIFAREData)).append("\n"); + sb.append(" RFID_EF_COM: ").append(toIndentedString(RFID_EF_COM)).append("\n"); + sb.append(" RFID_DG1: ").append(toIndentedString(RFID_DG1)).append("\n"); + sb.append(" RFID_DG2: ").append(toIndentedString(RFID_DG2)).append("\n"); + sb.append(" RFID_DG3: ").append(toIndentedString(RFID_DG3)).append("\n"); + sb.append(" RFID_DG4: ").append(toIndentedString(RFID_DG4)).append("\n"); + sb.append(" RFID_DG5: ").append(toIndentedString(RFID_DG5)).append("\n"); + sb.append(" RFID_DG6: ").append(toIndentedString(RFID_DG6)).append("\n"); + sb.append(" RFID_DG7: ").append(toIndentedString(RFID_DG7)).append("\n"); + sb.append(" RFID_DG8: ").append(toIndentedString(RFID_DG8)).append("\n"); + sb.append(" RFID_DG9: ").append(toIndentedString(RFID_DG9)).append("\n"); + sb.append(" RFID_DG10: ").append(toIndentedString(RFID_DG10)).append("\n"); + sb.append(" RFID_DG11: ").append(toIndentedString(RFID_DG11)).append("\n"); + sb.append(" RFID_DG12: ").append(toIndentedString(RFID_DG12)).append("\n"); + sb.append(" RFID_DG13: ").append(toIndentedString(RFID_DG13)).append("\n"); + sb.append(" RFID_DG14: ").append(toIndentedString(RFID_DG14)).append("\n"); + sb.append(" RFID_DG15: ").append(toIndentedString(RFID_DG15)).append("\n"); + sb.append(" RFID_DG16: ").append(toIndentedString(RFID_DG16)).append("\n"); + sb.append(" RFID_EF_SOD: ").append(toIndentedString(RFID_EF_SOD)).append("\n"); + sb.append(" eIDDG1: ").append(toIndentedString(eIDDG1)).append("\n"); + sb.append(" eIDDG2: ").append(toIndentedString(eIDDG2)).append("\n"); + sb.append(" eIDDG3: ").append(toIndentedString(eIDDG3)).append("\n"); + sb.append(" eIDDG4: ").append(toIndentedString(eIDDG4)).append("\n"); + sb.append(" eIDDG5: ").append(toIndentedString(eIDDG5)).append("\n"); + sb.append(" eIDDG6: ").append(toIndentedString(eIDDG6)).append("\n"); + sb.append(" eIDDG7: ").append(toIndentedString(eIDDG7)).append("\n"); + sb.append(" eIDDG8: ").append(toIndentedString(eIDDG8)).append("\n"); + sb.append(" eIDDG9: ").append(toIndentedString(eIDDG9)).append("\n"); + sb.append(" eIDDG10: ").append(toIndentedString(eIDDG10)).append("\n"); + sb.append(" eIDDG11: ").append(toIndentedString(eIDDG11)).append("\n"); + sb.append(" eIDDG12: ").append(toIndentedString(eIDDG12)).append("\n"); + sb.append(" eIDDG13: ").append(toIndentedString(eIDDG13)).append("\n"); + sb.append(" eIDDG14: ").append(toIndentedString(eIDDG14)).append("\n"); + sb.append(" eIDDG15: ").append(toIndentedString(eIDDG15)).append("\n"); + sb.append(" eIDDG16: ").append(toIndentedString(eIDDG16)).append("\n"); + sb.append(" eIDDG17: ").append(toIndentedString(eIDDG17)).append("\n"); + sb.append(" eIDDG18: ").append(toIndentedString(eIDDG18)).append("\n"); + sb.append(" eIDDG19: ").append(toIndentedString(eIDDG19)).append("\n"); + sb.append(" eIDDG20: ").append(toIndentedString(eIDDG20)).append("\n"); + sb.append(" eIDDG21: ").append(toIndentedString(eIDDG21)).append("\n"); + sb.append(" eDLCOM: ").append(toIndentedString(eDLCOM)).append("\n"); + sb.append(" eDLSOD: ").append(toIndentedString(eDLSOD)).append("\n"); + sb.append(" eDLDG1: ").append(toIndentedString(eDLDG1)).append("\n"); + sb.append(" eDLDG2: ").append(toIndentedString(eDLDG2)).append("\n"); + sb.append(" eDLDG3: ").append(toIndentedString(eDLDG3)).append("\n"); + sb.append(" eDLDG4: ").append(toIndentedString(eDLDG4)).append("\n"); + sb.append(" eDLDG5: ").append(toIndentedString(eDLDG5)).append("\n"); + sb.append(" eDLDG6: ").append(toIndentedString(eDLDG6)).append("\n"); + sb.append(" eDLDG7: ").append(toIndentedString(eDLDG7)).append("\n"); + sb.append(" eDLDG8: ").append(toIndentedString(eDLDG8)).append("\n"); + sb.append(" eDLDG9: ").append(toIndentedString(eDLDG9)).append("\n"); + sb.append(" eDLDG10: ").append(toIndentedString(eDLDG10)).append("\n"); + sb.append(" eDLDG11: ").append(toIndentedString(eDLDG11)).append("\n"); + sb.append(" eDLDG12: ").append(toIndentedString(eDLDG12)).append("\n"); + sb.append(" eDLDG13: ").append(toIndentedString(eDLDG13)).append("\n"); + sb.append(" eDLDG14: ").append(toIndentedString(eDLDG14)).append("\n"); + sb.append(" visibleDigitalSeal: ").append(toIndentedString(visibleDigitalSeal)).append("\n"); + sb.append(" visibleDigitalSealNC: ") + .append(toIndentedString(visibleDigitalSealNC)) + .append("\n"); + sb.append(" digitalSignature: ").append(toIndentedString(digitalSignature)).append("\n"); + sb.append(" rfIDSessionData: ").append(toIndentedString(rfIDSessionData)).append("\n"); + sb.append(" rfIDSessionDataStatus: ") + .append(toIndentedString(rfIDSessionDataStatus)) + .append("\n"); + sb.append(" rfIDEPasspDirectory: ") + .append(toIndentedString(rfIDEPasspDirectory)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RFID_Authentication_Info"); + openapiFields.add("RFID_MIFARE_Data_Validity"); + openapiFields.add("RFID_MIFARE_Data"); + openapiFields.add("RFID_EF_COM"); + openapiFields.add("RFID_DG1"); + openapiFields.add("RFID_DG2"); + openapiFields.add("RFID_DG3"); + openapiFields.add("RFID_DG4"); + openapiFields.add("RFID_DG5"); + openapiFields.add("RFID_DG6"); + openapiFields.add("RFID_DG7"); + openapiFields.add("RFID_DG8"); + openapiFields.add("RFID_DG9"); + openapiFields.add("RFID_DG10"); + openapiFields.add("RFID_DG11"); + openapiFields.add("RFID_DG12"); + openapiFields.add("RFID_DG13"); + openapiFields.add("RFID_DG14"); + openapiFields.add("RFID_DG15"); + openapiFields.add("RFID_DG16"); + openapiFields.add("RFID_EF_SOD"); + openapiFields.add("eID_DG1"); + openapiFields.add("eID_DG2"); + openapiFields.add("eID_DG3"); + openapiFields.add("eID_DG4"); + openapiFields.add("eID_DG5"); + openapiFields.add("eID_DG6"); + openapiFields.add("eID_DG7"); + openapiFields.add("eID_DG8"); + openapiFields.add("eID_DG9"); + openapiFields.add("eID_DG10"); + openapiFields.add("eID_DG11"); + openapiFields.add("eID_DG12"); + openapiFields.add("eID_DG13"); + openapiFields.add("eID_DG14"); + openapiFields.add("eID_DG15"); + openapiFields.add("eID_DG16"); + openapiFields.add("eID_DG17"); + openapiFields.add("eID_DG18"); + openapiFields.add("eID_DG19"); + openapiFields.add("eID_DG20"); + openapiFields.add("eID_DG21"); + openapiFields.add("eDL_COM"); + openapiFields.add("eDL_SOD"); + openapiFields.add("eDL_DG1"); + openapiFields.add("eDL_DG2"); + openapiFields.add("eDL_DG3"); + openapiFields.add("eDL_DG4"); + openapiFields.add("eDL_DG5"); + openapiFields.add("eDL_DG6"); + openapiFields.add("eDL_DG7"); + openapiFields.add("eDL_DG8"); + openapiFields.add("eDL_DG9"); + openapiFields.add("eDL_DG10"); + openapiFields.add("eDL_DG11"); + openapiFields.add("eDL_DG12"); + openapiFields.add("eDL_DG13"); + openapiFields.add("eDL_DG14"); + openapiFields.add("Visible_Digital_Seal"); + openapiFields.add("Visible_Digital_Seal_NC"); + openapiFields.add("Digital_Signature"); + openapiFields.add("RFID_Session_Data"); + openapiFields.add("RFID_Session_Data_Status"); + openapiFields.add("RFID_ePassp_Directory"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to BinaryData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!BinaryData.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in BinaryData is not found in the empty JSON string", + BinaryData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!BinaryData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `BinaryData` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `RFID_DG1` + if (jsonObj.get("RFID_DG1") != null && !jsonObj.get("RFID_DG1").isJsonNull()) { + RfidDG1.validateJsonElement(jsonObj.get("RFID_DG1")); + } + // validate the optional field `RFID_Session_Data` + if (jsonObj.get("RFID_Session_Data") != null + && !jsonObj.get("RFID_Session_Data").isJsonNull()) { + RfidSessionData.validateJsonElement(jsonObj.get("RFID_Session_Data")); + } + // validate the optional field `RFID_Session_Data_Status` + if (jsonObj.get("RFID_Session_Data_Status") != null + && !jsonObj.get("RFID_Session_Data_Status").isJsonNull()) { + DetailsRFID.validateJsonElement(jsonObj.get("RFID_Session_Data_Status")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("RFID_ePassp_Directory") != null + && !jsonObj.get("RFID_ePassp_Directory").isJsonNull() + && !jsonObj.get("RFID_ePassp_Directory").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `RFID_ePassp_Directory` to be an array in the JSON string but got `%s`", + jsonObj.get("RFID_ePassp_Directory").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!BinaryData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'BinaryData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(BinaryData.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, BinaryData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public BinaryData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of BinaryData given an JSON string + * + * @param jsonString JSON string + * @return An instance of BinaryData + * @throws IOException if the JSON string is invalid with respect to BinaryData + */ + public static BinaryData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, BinaryData.class); + } + + /** + * Convert an instance of BinaryData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayResult.java index a1dfef5e..2bc99a47 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,36 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ByteArrayResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ByteArrayResult extends ResultItem { public static final String SERIALIZED_NAME_BYTE_ARRAY = "ByteArray"; @SerializedName(SERIALIZED_NAME_BYTE_ARRAY) + @javax.annotation.Nonnull private String byteArray; - public ByteArrayResult withByteArray(String byteArray) { + public ByteArrayResult() {} + + public ByteArrayResult byteArray(@javax.annotation.Nonnull String byteArray) { this.byteArray = byteArray; return this; } @@ -32,16 +51,17 @@ public ByteArrayResult withByteArray(String byteArray) { * * @return byteArray */ + @javax.annotation.Nonnull public String getByteArray() { return byteArray; } - public void setByteArray(String byteArray) { + public void setByteArray(@javax.annotation.Nonnull String byteArray) { this.byteArray = byteArray; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -70,10 +90,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("ByteArray"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ByteArray"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ByteArrayResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ByteArrayResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ByteArrayResult is not found in the empty JSON string", + ByteArrayResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ByteArrayResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ByteArrayResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ByteArrayResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ByteArrayResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ByteArrayResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ByteArrayResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ByteArrayResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ByteArrayResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ByteArrayResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of ByteArrayResult + * @throws IOException if the JSON string is invalid with respect to ByteArrayResult + */ + public static ByteArrayResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ByteArrayResult.class); + } + + /** + * Convert an instance of ByteArrayResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java b/client/src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java index 0b8f2125..1271bc17 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,253 +12,308 @@ package com.regula.documentreader.webclient.model; -public class CheckDiagnose { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains identifiers which determinate the single document element authenticity check + * outcome reason: + * https://docs.regulaforensics.com/develop/doc-reader-sdk/web-service/development/enums/check-diagnose/ + */ +@JsonAdapter(CheckDiagnose.Adapter.class) +public enum CheckDiagnose { + UNKNOWN(0), + + PASS(1), + + INVALID_INPUT_DATA(2), + + INTERNAL_ERROR(3), + + EXCEPTION_IN_MODULE(4), + + UNCERTAIN_VERIFICATION(5), + + NECESSARY_IMAGE_NOT_FOUND(7), + + PHOTO_SIDES_NOT_FOUND(8), - public static final int UNKNOWN = 0; + INVALID_CHECKSUM(10), - public static final int PASS = 1; + SYNTAX_ERROR(11), - public static final int INVALID_INPUT_DATA = 2; + LOGIC_ERROR(12), - public static final int INTERNAL_ERROR = 3; + SOURCES_COMPARISON_ERROR(13), - public static final int EXCEPTION_IN_MODULE = 4; + FIELDS_COMPARISON_LOGIC_ERROR(14), - public static final int UNCERTAIN_VERIFICATION = 5; + INVALID_FIELD_FORMAT(15), - public static final int NECESSARY_IMAGE_NOT_FOUND = 7; + TRUE_LUMINESCENCE_ERROR(20), - public static final int PHOTO_SIDES_NOT_FOUND = 8; + FALSE_LUMINESCENCE_ERROR(21), - public static final int INVALID_CHECKSUM = 10; + FIXED_PATTERN_ERROR(22), - public static final int SYNTAX_ERROR = 11; + LOW_CONTRAST_IN_IR_LIGHT(23), - public static final int LOGIC_ERROR = 12; + INCORRECT_BACKGROUND_LIGHT(24), - public static final int SOURCES_COMPARISON_ERROR = 13; + BACKGROUND_COMPARISON_ERROR(25), - public static final int FIELDS_COMPARISON_LOGIC_ERROR = 14; + INCORRECT_TEXT_COLOR(26), - public static final int INVALID_FIELD_FORMAT = 15; + PHOTO_FALSE_LUMINESCENCE(27), - public static final int TRUE_LUMINESCENCE_ERROR = 20; + TOO_MUCH_SHIFT(28), - public static final int FALSE_LUMINESCENCE_ERROR = 21; + CONTACT_CHIP_TYPE_MISMATCH(29), - public static final int FIXED_PATTERN_ERROR = 22; + FIBERS_NOT_FOUND(30), - public static final int LOW_CONTRAST_IN_IR_LIGHT = 23; + TOO_MANY_OBJECTS(31), - public static final int INCORRECT_BACKGROUND_LIGHT = 24; + SPECKS_IN_UV(33), - public static final int BACKGROUND_COMPARISON_ERROR = 25; + TOO_LOW_RESOLUTION(34), - public static final int INCORRECT_TEXT_COLOR = 26; + INVISIBLE_ELEMENT_PRESENT(40), - public static final int PHOTO_FALSE_LUMINESCENCE = 27; + VISIBLE_ELEMENT_ABSENT(41), - public static final int TOO_MUCH_SHIFT = 28; + ELEMENT_SHOULD_BE_COLORED(42), - public static final int CONTACT_CHIP_TYPE_MISMATCH = 29; + ELEMENT_SHOULD_BE_GRAYSCALE(43), - public static final int FIBERS_NOT_FOUND = 30; + PHOTO_WHITE_IR_DONT_MATCH(44), - public static final int TOO_MANY_OBJECTS = 31; + UV_DULL_PAPER_MRZ(50), - public static final int SPECKS_IN_UV = 33; + FALSE_LUMINESCENCE_IN_MRZ(51), - public static final int TOO_LOW_RESOLUTION = 34; + UV_DULL_PAPER_PHOTO(52), - public static final int INVISIBLE_ELEMENT_PRESENT = 40; + UV_DULL_PAPER_BLANK(53), - public static final int VISIBLE_ELEMENT_ABSENT = 41; + UV_DULL_PAPER_ERROR(54), - public static final int ELEMENT_SHOULD_BE_COLORED = 42; + FALSE_LUMINESCENCE_IN_BLANK(55), - public static final int ELEMENT_SHOULD_BE_GRAYSCALE = 43; + BAD_AREA_IN_AXIAL(60), - public static final int PHOTO_WHITE_IR_DONT_MATCH = 44; + FALSE_IPI_PARAMETERS(65), - public static final int UV_DULL_PAPER_MRZ = 50; + ENCRYPTED_IPI_NOT_FOUND(66), - public static final int FALSE_LUMINESCENCE_IN_MRZ = 51; + ENCRYPTED_IPI_DATA_DONT_MATCH(67), - public static final int UV_DULL_PAPER_PHOTO = 52; + FIELD_POS_CORRECTOR_HIGHLIGHT_IR(80), - public static final int UV_DULL_PAPER_BLANK = 53; + FIELD_POS_CORRECTOR_GLARES_IN_PHOTO_AREA(81), - public static final int UV_DULL_PAPER_ERROR = 54; + FIELD_POS_CORRECTOR_PHOTO_REPLACED(82), - public static final int FALSE_LUMINESCENCE_IN_BLANK = 55; + FIELD_POS_CORRECTOR_LANDMARKS_CHECK_ERROR(83), - public static final int BAD_AREA_IN_AXIAL = 60; + FIELD_POS_CORRECTOR_FACE_PRESENCE_CHECK_ERROR(84), - public static final int FALSE_IPI_PARAMETERS = 65; + FIELD_POS_CORRECTOR_FACE_ABSENCE_CHECK_ERROR(85), - public static final int ENCRYPTED_IPI_NOT_FOUND = 66; + FIELD_POS_CORRECTOR_INCORRECT_HEAD_POSITION(86), - public static final int ENCRYPTED_IPI_DATA_DONT_MATCH = 67; + OVI_IR_INVISIBLE(90), - public static final int FIELD_POS_CORRECTOR_HIGHLIGHT_IR = 80; + OVI_INSUFFICIENT_AREA(91), - public static final int FIELD_POS_CORRECTOR_GLARES_IN_PHOTO_AREA = 81; + OVI_COLOR_INVARIABLE(92), - public static final int FIELD_POS_CORRECTOR_PHOTO_REPLACED = 82; + OVI_BAD_COLOR_FRONT(93), - public static final int FIELD_POS_CORRECTOR_LANDMARKS_CHECK_ERROR = 83; + OVI_BAD_COLOR_SIDE(94), - public static final int FIELD_POS_CORRECTOR_FACE_PRESENCE_CHECK_ERROR = 84; + OVI_WIDE_COLOR_SPREAD(95), - public static final int FIELD_POS_CORRECTOR_FACE_ABSENCE_CHECK_ERROR = 85; + OVI_BAD_COLOR_PERCENT(96), - public static final int FIELD_POS_CORRECTOR_INCORRECT_HEAD_POSITION = 86; + HOLOGRAM_ELEMENT_ABSENT(100), - public static final int OVI_IR_INVISIBLE = 90; + HOLOGRAM_SIDE_TOP_IMAGES_ABSENT(101), - public static final int OVI_INSUFFICIENT_AREA = 91; + HOLOGRAM_ELEMENT_PRESENT(102), - public static final int OVI_COLOR_INVARIABLE = 92; + HOLOGRAM_FRAMES_IS_ABSENT(103), - public static final int OVI_BAD_COLOR_FRONT = 93; + HOLOGRAM_HOLO_FIELD_IS_ABSENT(104), - public static final int OVI_BAD_COLOR_SIDE = 94; + PHOTO_PATTERN_INTERRUPTED(110), - public static final int OVI_WIDE_COLOR_SPREAD = 95; + PHOTO_PATTERN_SHIFTED(111), - public static final int OVI_BAD_COLOR_PERCENT = 96; + PHOTO_PATTERN_DIFFERENT_COLORS(112), - public static final int HOLOGRAM_ELEMENT_ABSENT = 100; + PHOTO_PATTERN_IR_VISIBLE(113), - public static final int HOLOGRAM_SIDE_TOP_IMAGES_ABSENT = 101; + PHOTO_PATTERN_NOT_INTERSECT(114), - public static final int HOLOGRAM_ELEMENT_PRESENT = 102; + PHOTO_SIZE_IS_WRONG(115), - public static final int HOLOGRAM_FRAMES_IS_ABSENT = 103; + PHOTO_PATTERN_INVALID_COLOR(116), - public static final int HOLOGRAM_HOLO_FIELD_IS_ABSENT = 104; + PHOTO_PATTERN_SHIFTED_VERT(117), - public static final int PHOTO_PATTERN_INTERRUPTED = 110; + PHOTO_PATTERN_PATTERN_NOT_FOUND(118), - public static final int PHOTO_PATTERN_SHIFTED = 111; + PHOTO_PATTERN_DIFFERENT_LINES_THICKNESS(119), - public static final int PHOTO_PATTERN_DIFFERENT_COLORS = 112; + PHOTO_IS_NOT_RECTANGLE(120), - public static final int PHOTO_PATTERN_IR_VISIBLE = 113; + PHOTO_CORNERS_IS_WRONG(121), - public static final int PHOTO_PATTERN_NOT_INTERSECT = 114; + DOCUMENT_IS_CANCELLING(122), - public static final int PHOTO_SIZE_IS_WRONG = 115; + TEXT_COLOR_SHOULD_BE_BLUE(130), - public static final int PHOTO_PATTERN_INVALID_COLOR = 116; + TEXT_COLOR_SHOULD_BE_GREEN(131), - public static final int PHOTO_PATTERN_SHIFTED_VERT = 117; + TEXT_COLOR_SHOULD_BE_RED(132), - public static final int PHOTO_PATTERN_PATTERN_NOT_FOUND = 118; + TEXT_SHOULD_BE_BLACK(133), - public static final int PHOTO_PATTERN_DIFFERENT_LINES_THICKNESS = 119; + BARCODE_WAS_READ_WITH_ERRORS(140), - public static final int PHOTO_IS_NOT_RECTANGLE = 120; + BARCODE_DATA_FORMAT_ERROR(141), - public static final int PHOTO_CORNERS_IS_WRONG = 121; + BARCODE_SIZE_PARAMS_ERROR(142), - public static final int DOCUMENT_IS_CANCELLING = 122; + NOT_ALL_BARCODES_READ(143), - public static final int TEXT_COLOR_SHOULD_BE_BLUE = 130; + GLARES_IN_BARCODE_AREA(144), - public static final int TEXT_COLOR_SHOULD_BE_GREEN = 131; + NO_CERTIFICATE_FOR_DIGITAL_SIGNATURE_CHECK(145), - public static final int TEXT_COLOR_SHOULD_BE_RED = 132; + PORTRAIT_COMPARISON_PORTRAITS_DIFFER(150), - public static final int TEXT_SHOULD_BE_BLACK = 133; + PORTRAIT_COMPARISON_NO_SERVICE_REPLY(151), - public static final int BARCODE_WAS_READ_WITH_ERRORS = 140; + PORTRAIT_COMPARISON_SERVICE_ERROR(152), - public static final int BARCODE_DATA_FORMAT_ERROR = 141; + PORTRAIT_COMPARISON_NOT_ENOUGH_IMAGES(153), - public static final int BARCODE_SIZE_PARAMS_ERROR = 142; + PORTRAIT_COMPARISON_NO_LIVE_PHOTO(154), - public static final int NOT_ALL_BARCODES_READ = 143; + PORTRAIT_COMPARISON_NO_SERVICE_LICENSE(155), - public static final int GLARES_IN_BARCODE_AREA = 144; + PORTRAIT_COMPARISON_NO_PORTRAIT_DETECTED(156), - public static final int NO_CERTIFICATE_FOR_DIGITAL_SIGNATURE_CHECK = 145; + MOBILE_IMAGES_UNSUITABLE_LIGHT_CONDITIONS(160), - public static final int PORTRAIT_COMPARISON_PORTRAITS_DIFFER = 150; + MOBILE_IMAGES_WHITE_UV_NO_DIFFERENCE(161), - public static final int PORTRAIT_COMPARISON_NO_SERVICE_REPLY = 151; + FINGERPRINTS_COMPARISON_MISMATCH(170), - public static final int PORTRAIT_COMPARISON_SERVICE_ERROR = 152; + HOLO_PHOTO_FACE_NOT_DETECTED(180), - public static final int PORTRAIT_COMPARISON_NOT_ENOUGH_IMAGES = 153; + HOLO_PHOTO_FACE_COMPARISON_FAILED(181), - public static final int PORTRAIT_COMPARISON_NO_LIVE_PHOTO = 154; + HOLO_PHOTO_GLARE_IN_CENTER_ABSENT(182), - public static final int PORTRAIT_COMPARISON_NO_SERVICE_LICENSE = 155; + HOLO_PHOTO_HOLO_ELEMENT_SHAPE_ERROR(183), - public static final int PORTRAIT_COMPARISON_NO_PORTRAIT_DETECTED = 156; + HOLO_PHOTO_ALGORITHMS_STEPS_ERROR(184), - public static final int MOBILE_IMAGES_UNSUITABLE_LIGHT_CONDITIONS = 160; + HOLO_PHOTO_HOLO_AREAS_NOT_LOADED(185), - public static final int MOBILE_IMAGES_WHITE_UV_NO_DIFFERENCE = 161; + HOLO_PHOTO_FINISHED_BY_TIMEOUT(186), - public static final int FINGERPRINTS_COMPARISON_MISMATCH = 170; + HOLO_PHOTO_DOCUMENT_OUTSIDE_FRAME(187), - public static final int HOLO_PHOTO_FACE_NOT_DETECTED = 180; + LIVENESS_DEPTH_CHECK_FAILED(190), - public static final int HOLO_PHOTO_FACE_COMPARISON_FAILED = 181; + MRZ_QUALITY_WRONG_SYMBOL_POSITION(200), - public static final int HOLO_PHOTO_GLARE_IN_CENTER_ABSENT = 182; + MRZ_QUALITY_WRONG_BACKGROUND(201), - public static final int HOLO_PHOTO_HOLO_ELEMENT_SHAPE_ERROR = 183; + MRZ_QUALITY_WRONG_MRZ_WIDTH(202), - public static final int HOLO_PHOTO_ALGORITHMS_STEPS_ERROR = 184; + MRZ_QUALITY_WRONG_MRZ_HEIGHT(203), - public static final int HOLO_PHOTO_HOLO_AREAS_NOT_LOADED = 185; + MRZ_QUALITY_WRONG_LINE_POSITION(204), - public static final int HOLO_PHOTO_FINISHED_BY_TIMEOUT = 186; + MRZ_QUALITY_WRONG_FONT_TYPE(205), - public static final int HOLO_PHOTO_DOCUMENT_OUTSIDE_FRAME = 187; + OCR_QUALITY_TEXT_POSITION(220), - public static final int LIVENESS_DEPTH_CHECK_FAILED = 190; + OCR_QUALITY_INVALID_FONT(221), - public static final int MRZ_QUALITY_WRONG_SYMBOL_POSITION = 200; + OCR_QUALITY_INVALID_BACKGROUND(222), - public static final int MRZ_QUALITY_WRONG_BACKGROUND = 201; + LASINK_INVALID_LINES_FREQUENCY(230), - public static final int MRZ_QUALITY_WRONG_MRZ_WIDTH = 202; + DOC_LIVENESS_BLACK_AND_WHITE_COPY_DETECTED(239), - public static final int MRZ_QUALITY_WRONG_MRZ_HEIGHT = 203; + DOC_LIVENESS_ELECTRONIC_DEVICE_DETECTED(240), - public static final int MRZ_QUALITY_WRONG_LINE_POSITION = 204; + DOC_LIVENESS_INVALID_BARCODE_BACKGROUND(241), - public static final int MRZ_QUALITY_WRONG_FONT_TYPE = 205; + CHD_ICAO_IDB_BASE32_ERROR(243), - public static final int OCR_QUALITY_TEXT_POSITION = 220; + CHD_ICAO_IDB_ZIPPED_ERROR(244), - public static final int OCR_QUALITY_INVALID_FONT = 221; + CHD_ICAO_IDB_MESSAGE_ZONE_EMPTY(245), - public static final int OCR_QUALITY_INVALID_BACKGROUND = 222; + CHD_ICAO_IDB_SIGNATURE_MUST_BE_PRESENT(246), - public static final int LASINK_INVALID_LINES_FREQUENCY = 230; + CHD_ICAO_IDB_SIGNATURE_MUST_NOT_BE_PRESENT(247), - public static final int DOC_LIVENESS_BLACK_AND_WHITE_COPY_DETECTED = 239; + CHD_ICAO_IDB_CERTIFICATE_MUST_NOT_BE_PRESENT(248), - public static final int DOC_LIVENESS_ELECTRONIC_DEVICE_DETECTED = 240; + CHD_INCORRECT_OBJECT_COLOR(250); - public static final int DOC_LIVENESS_INVALID_BARCODE_BACKGROUND = 241; + private Integer value; - public static final int CHD_ICAO_IDB_BASE32_ERROR = 243; + CheckDiagnose(Integer value) { + this.value = value; + } - public static final int CHD_ICAO_IDB_ZIPPED_ERROR = 244; + public Integer getValue() { + return value; + } - public static final int CHD_ICAO_IDB_MESSAGE_ZONE_EMPTY = 245; + @Override + public String toString() { + return String.valueOf(value); + } - public static final int CHD_ICAO_IDB_SIGNATURE_MUST_BE_PRESENT = 246; + public static CheckDiagnose fromValue(Integer value) { + for (CheckDiagnose b : CheckDiagnose.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } - public static final int CHD_ICAO_IDB_SIGNATURE_MUST_NOT_BE_PRESENT = 247; + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CheckDiagnose enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } - public static final int CHD_ICAO_IDB_CERTIFICATE_MUST_NOT_BE_PRESENT = 248; + @Override + public CheckDiagnose read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return CheckDiagnose.fromValue(value); + } + } - public static final int CHD_INCORRECT_OBJECT_COLOR = 250; + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + CheckDiagnose.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java old mode 100755 new mode 100644 index 1b1adb28..9d8a1848 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,14 +12,66 @@ package com.regula.documentreader.webclient.model; -public class CheckResult { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** 0 - result is negative; 1 - result is positive; 2 - сheck was not performed */ +@JsonAdapter(CheckResult.Adapter.class) +public enum CheckResult { /** Check was performed and result is NEGATIVE */ - public static final int ERROR = 0; + ERROR(0), /** Check was performed and result is POSITIVE */ - public static final int OK = 1; + OK(1), /** Check was NOT PERFORMED */ - public static final int WAS_NOT_DONE = 2; + WAS_NOT_DONE(2); + + private Integer value; + + CheckResult(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static CheckResult fromValue(Integer value) { + for (CheckResult b : CheckResult.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final CheckResult enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public CheckResult read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return CheckResult.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + CheckResult.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentType.java index f2c4492d..68fe935e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentType.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,59 +12,104 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Contains information about one document type candidate */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ChosenDocumentType { public static final String SERIALIZED_NAME_DOCUMENT_NAME = "DocumentName"; @SerializedName(SERIALIZED_NAME_DOCUMENT_NAME) + @javax.annotation.Nonnull private String documentName; public static final String SERIALIZED_NAME_I_D = "ID"; @SerializedName(SERIALIZED_NAME_I_D) + @javax.annotation.Nonnull private Integer ID; public static final String SERIALIZED_NAME_P = "P"; @SerializedName(SERIALIZED_NAME_P) + @javax.annotation.Nonnull private BigDecimal P; + public static final String SERIALIZED_NAME_ROTATED180 = "Rotated180"; + + @SerializedName(SERIALIZED_NAME_ROTATED180) + @javax.annotation.Nonnull + private Integer rotated180; + public static final String SERIALIZED_NAME_RF_I_D_PRESENCE = "RFID_Presence"; @SerializedName(SERIALIZED_NAME_RF_I_D_PRESENCE) - private Integer rfIDPresence; + @javax.annotation.Nonnull + private RfidLocation rfIDPresence; public static final String SERIALIZED_NAME_FD_S_I_D_LIST = "FDSIDList"; @SerializedName(SERIALIZED_NAME_FD_S_I_D_LIST) + @javax.annotation.Nonnull private FDSIDList fdSIDList; public static final String SERIALIZED_NAME_NECESSARY_LIGHTS = "NecessaryLights"; @SerializedName(SERIALIZED_NAME_NECESSARY_LIGHTS) + @javax.annotation.Nonnull private Integer necessaryLights; public static final String SERIALIZED_NAME_CHECK_AUTHENTICITY = "CheckAuthenticity"; @SerializedName(SERIALIZED_NAME_CHECK_AUTHENTICITY) + @javax.annotation.Nonnull private Integer checkAuthenticity; public static final String SERIALIZED_NAME_UV_EXP = "UVExp"; @SerializedName(SERIALIZED_NAME_UV_EXP) + @javax.annotation.Nonnull private Integer uvExp; public static final String SERIALIZED_NAME_AUTHENTICITY_NECESSARY_LIGHTS = "AuthenticityNecessaryLights"; @SerializedName(SERIALIZED_NAME_AUTHENTICITY_NECESSARY_LIGHTS) + @javax.annotation.Nonnull private Integer authenticityNecessaryLights; - public ChosenDocumentType withDocumentName(String documentName) { + public static final String SERIALIZED_NAME_OV_I_EXP = "OVIExp"; + + @SerializedName(SERIALIZED_NAME_OV_I_EXP) + @javax.annotation.Nonnull + private BigDecimal ovIExp; + + public static final String SERIALIZED_NAME_ROTATION_ANGLE = "RotationAngle"; + + @SerializedName(SERIALIZED_NAME_ROTATION_ANGLE) + @javax.annotation.Nullable + private Integer rotationAngle; + + public ChosenDocumentType() {} + + public ChosenDocumentType documentName(@javax.annotation.Nonnull String documentName) { this.documentName = documentName; return this; } @@ -74,16 +119,16 @@ public ChosenDocumentType withDocumentName(String documentName) { * * @return documentName */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public String getDocumentName() { return documentName; } - public void setDocumentName(String documentName) { + public void setDocumentName(@javax.annotation.Nonnull String documentName) { this.documentName = documentName; } - public ChosenDocumentType withID(Integer ID) { + public ChosenDocumentType ID(@javax.annotation.Nonnull Integer ID) { this.ID = ID; return this; } @@ -93,16 +138,16 @@ public ChosenDocumentType withID(Integer ID) { * * @return ID */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getID() { return ID; } - public void setID(Integer ID) { + public void setID(@javax.annotation.Nonnull Integer ID) { this.ID = ID; } - public ChosenDocumentType withP(BigDecimal P) { + public ChosenDocumentType P(@javax.annotation.Nonnull BigDecimal P) { this.P = P; return this; } @@ -113,16 +158,35 @@ public ChosenDocumentType withP(BigDecimal P) { * * @return P */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public BigDecimal getP() { return P; } - public void setP(BigDecimal P) { + public void setP(@javax.annotation.Nonnull BigDecimal P) { this.P = P; } - public ChosenDocumentType withRfIDPresence(Integer rfIDPresence) { + public ChosenDocumentType rotated180(@javax.annotation.Nonnull Integer rotated180) { + this.rotated180 = rotated180; + return this; + } + + /** + * true if the document of the given type is rotated by 180 degrees + * + * @return rotated180 + */ + @javax.annotation.Nonnull + public Integer getRotated180() { + return rotated180; + } + + public void setRotated180(@javax.annotation.Nonnull Integer rotated180) { + this.rotated180 = rotated180; + } + + public ChosenDocumentType rfIDPresence(@javax.annotation.Nonnull RfidLocation rfIDPresence) { this.rfIDPresence = rfIDPresence; return this; } @@ -132,16 +196,16 @@ public ChosenDocumentType withRfIDPresence(Integer rfIDPresence) { * * @return rfIDPresence */ - @javax.annotation.Nullable - public Integer getRfIDPresence() { + @javax.annotation.Nonnull + public RfidLocation getRfIDPresence() { return rfIDPresence; } - public void setRfIDPresence(Integer rfIDPresence) { + public void setRfIDPresence(@javax.annotation.Nonnull RfidLocation rfIDPresence) { this.rfIDPresence = rfIDPresence; } - public ChosenDocumentType withFdSIDList(FDSIDList fdSIDList) { + public ChosenDocumentType fdSIDList(@javax.annotation.Nonnull FDSIDList fdSIDList) { this.fdSIDList = fdSIDList; return this; } @@ -151,16 +215,16 @@ public ChosenDocumentType withFdSIDList(FDSIDList fdSIDList) { * * @return fdSIDList */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public FDSIDList getFdSIDList() { return fdSIDList; } - public void setFdSIDList(FDSIDList fdSIDList) { + public void setFdSIDList(@javax.annotation.Nonnull FDSIDList fdSIDList) { this.fdSIDList = fdSIDList; } - public ChosenDocumentType withNecessaryLights(Integer necessaryLights) { + public ChosenDocumentType necessaryLights(@javax.annotation.Nonnull Integer necessaryLights) { this.necessaryLights = necessaryLights; return this; } @@ -171,16 +235,16 @@ public ChosenDocumentType withNecessaryLights(Integer necessaryLights) { * * @return necessaryLights */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getNecessaryLights() { return necessaryLights; } - public void setNecessaryLights(Integer necessaryLights) { + public void setNecessaryLights(@javax.annotation.Nonnull Integer necessaryLights) { this.necessaryLights = necessaryLights; } - public ChosenDocumentType withCheckAuthenticity(Integer checkAuthenticity) { + public ChosenDocumentType checkAuthenticity(@javax.annotation.Nonnull Integer checkAuthenticity) { this.checkAuthenticity = checkAuthenticity; return this; } @@ -191,16 +255,16 @@ public ChosenDocumentType withCheckAuthenticity(Integer checkAuthenticity) { * * @return checkAuthenticity */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getCheckAuthenticity() { return checkAuthenticity; } - public void setCheckAuthenticity(Integer checkAuthenticity) { + public void setCheckAuthenticity(@javax.annotation.Nonnull Integer checkAuthenticity) { this.checkAuthenticity = checkAuthenticity; } - public ChosenDocumentType withUvExp(Integer uvExp) { + public ChosenDocumentType uvExp(@javax.annotation.Nonnull Integer uvExp) { this.uvExp = uvExp; return this; } @@ -211,16 +275,17 @@ public ChosenDocumentType withUvExp(Integer uvExp) { * * @return uvExp */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getUvExp() { return uvExp; } - public void setUvExp(Integer uvExp) { + public void setUvExp(@javax.annotation.Nonnull Integer uvExp) { this.uvExp = uvExp; } - public ChosenDocumentType withAuthenticityNecessaryLights(Integer authenticityNecessaryLights) { + public ChosenDocumentType authenticityNecessaryLights( + @javax.annotation.Nonnull Integer authenticityNecessaryLights) { this.authenticityNecessaryLights = authenticityNecessaryLights; return this; } @@ -231,17 +296,57 @@ public ChosenDocumentType withAuthenticityNecessaryLights(Integer authenticityNe * * @return authenticityNecessaryLights */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getAuthenticityNecessaryLights() { return authenticityNecessaryLights; } - public void setAuthenticityNecessaryLights(Integer authenticityNecessaryLights) { + public void setAuthenticityNecessaryLights( + @javax.annotation.Nonnull Integer authenticityNecessaryLights) { this.authenticityNecessaryLights = authenticityNecessaryLights; } + public ChosenDocumentType ovIExp(@javax.annotation.Nonnull BigDecimal ovIExp) { + this.ovIExp = ovIExp; + return this; + } + + /** + * Camera exposure value necessary when obtaining document images of the given type for AXIAL + * lighting scheme + * + * @return ovIExp + */ + @javax.annotation.Nonnull + public BigDecimal getOvIExp() { + return ovIExp; + } + + public void setOvIExp(@javax.annotation.Nonnull BigDecimal ovIExp) { + this.ovIExp = ovIExp; + } + + public ChosenDocumentType rotationAngle(@javax.annotation.Nullable Integer rotationAngle) { + this.rotationAngle = rotationAngle; + return this; + } + + /** + * Get rotationAngle + * + * @return rotationAngle + */ + @javax.annotation.Nullable + public Integer getRotationAngle() { + return rotationAngle; + } + + public void setRotationAngle(@javax.annotation.Nullable Integer rotationAngle) { + this.rotationAngle = rotationAngle; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -252,13 +357,16 @@ public boolean equals(java.lang.Object o) { return Objects.equals(this.documentName, chosenDocumentType.documentName) && Objects.equals(this.ID, chosenDocumentType.ID) && Objects.equals(this.P, chosenDocumentType.P) + && Objects.equals(this.rotated180, chosenDocumentType.rotated180) && Objects.equals(this.rfIDPresence, chosenDocumentType.rfIDPresence) && Objects.equals(this.fdSIDList, chosenDocumentType.fdSIDList) && Objects.equals(this.necessaryLights, chosenDocumentType.necessaryLights) && Objects.equals(this.checkAuthenticity, chosenDocumentType.checkAuthenticity) && Objects.equals(this.uvExp, chosenDocumentType.uvExp) && Objects.equals( - this.authenticityNecessaryLights, chosenDocumentType.authenticityNecessaryLights); + this.authenticityNecessaryLights, chosenDocumentType.authenticityNecessaryLights) + && Objects.equals(this.ovIExp, chosenDocumentType.ovIExp) + && Objects.equals(this.rotationAngle, chosenDocumentType.rotationAngle); } @Override @@ -267,12 +375,15 @@ public int hashCode() { documentName, ID, P, + rotated180, rfIDPresence, fdSIDList, necessaryLights, checkAuthenticity, uvExp, - authenticityNecessaryLights); + authenticityNecessaryLights, + ovIExp, + rotationAngle); } @Override @@ -282,6 +393,7 @@ public String toString() { sb.append(" documentName: ").append(toIndentedString(documentName)).append("\n"); sb.append(" ID: ").append(toIndentedString(ID)).append("\n"); sb.append(" P: ").append(toIndentedString(P)).append("\n"); + sb.append(" rotated180: ").append(toIndentedString(rotated180)).append("\n"); sb.append(" rfIDPresence: ").append(toIndentedString(rfIDPresence)).append("\n"); sb.append(" fdSIDList: ").append(toIndentedString(fdSIDList)).append("\n"); sb.append(" necessaryLights: ").append(toIndentedString(necessaryLights)).append("\n"); @@ -290,6 +402,8 @@ public String toString() { sb.append(" authenticityNecessaryLights: ") .append(toIndentedString(authenticityNecessaryLights)) .append("\n"); + sb.append(" ovIExp: ").append(toIndentedString(ovIExp)).append("\n"); + sb.append(" rotationAngle: ").append(toIndentedString(rotationAngle)).append("\n"); sb.append("}"); return sb.toString(); } @@ -297,10 +411,143 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("DocumentName"); + openapiFields.add("ID"); + openapiFields.add("P"); + openapiFields.add("Rotated180"); + openapiFields.add("RFID_Presence"); + openapiFields.add("FDSIDList"); + openapiFields.add("NecessaryLights"); + openapiFields.add("CheckAuthenticity"); + openapiFields.add("UVExp"); + openapiFields.add("AuthenticityNecessaryLights"); + openapiFields.add("OVIExp"); + openapiFields.add("RotationAngle"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("DocumentName"); + openapiRequiredFields.add("ID"); + openapiRequiredFields.add("P"); + openapiRequiredFields.add("Rotated180"); + openapiRequiredFields.add("RFID_Presence"); + openapiRequiredFields.add("FDSIDList"); + openapiRequiredFields.add("NecessaryLights"); + openapiRequiredFields.add("CheckAuthenticity"); + openapiRequiredFields.add("UVExp"); + openapiRequiredFields.add("AuthenticityNecessaryLights"); + openapiRequiredFields.add("OVIExp"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ChosenDocumentType + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ChosenDocumentType.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ChosenDocumentType is not found in the empty JSON string", + ChosenDocumentType.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ChosenDocumentType.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ChosenDocumentType` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ChosenDocumentType.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("DocumentName").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `DocumentName` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("DocumentName").toString())); + } + // validate the required field `RFID_Presence` + RfidLocation.validateJsonElement(jsonObj.get("RFID_Presence")); + // validate the required field `FDSIDList` + FDSIDList.validateJsonElement(jsonObj.get("FDSIDList")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ChosenDocumentType.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ChosenDocumentType' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ChosenDocumentType.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ChosenDocumentType value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ChosenDocumentType read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ChosenDocumentType given an JSON string + * + * @param jsonString JSON string + * @return An instance of ChosenDocumentType + * @throws IOException if the JSON string is invalid with respect to ChosenDocumentType + */ + public static ChosenDocumentType fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ChosenDocumentType.class); + } + + /** + * Convert an instance of ChosenDocumentType to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentTypeResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentTypeResult.java old mode 100755 new mode 100644 index d06aa777..619253ab --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentTypeResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentTypeResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,25 +12,51 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** * Contains information about the type of document that was determined based on the analysis of the * provided image */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ChosenDocumentTypeResult extends ResultItem { public static final String SERIALIZED_NAME_ONE_CANDIDATE = "OneCandidate"; @SerializedName(SERIALIZED_NAME_ONE_CANDIDATE) + @javax.annotation.Nonnull private OneCandidate oneCandidate; public static final String SERIALIZED_NAME_XM_L_BUFFER = "XML_buffer"; @SerializedName(SERIALIZED_NAME_XM_L_BUFFER) + @javax.annotation.Nullable private String xmLBuffer; - public ChosenDocumentTypeResult withOneCandidate(OneCandidate oneCandidate) { + public ChosenDocumentTypeResult() {} + + public ChosenDocumentTypeResult(String xmLBuffer) { + this(); + this.xmLBuffer = xmLBuffer; + } + + public ChosenDocumentTypeResult oneCandidate( + @javax.annotation.Nonnull OneCandidate oneCandidate) { this.oneCandidate = oneCandidate; return this; } @@ -40,12 +66,12 @@ public ChosenDocumentTypeResult withOneCandidate(OneCandidate oneCandidate) { * * @return oneCandidate */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public OneCandidate getOneCandidate() { return oneCandidate; } - public void setOneCandidate(OneCandidate oneCandidate) { + public void setOneCandidate(@javax.annotation.Nonnull OneCandidate oneCandidate) { this.oneCandidate = oneCandidate; } @@ -60,7 +86,7 @@ public String getXmLBuffer() { } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -92,10 +118,118 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("OneCandidate"); + openapiFields.add("XML_buffer"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("OneCandidate"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ChosenDocumentTypeResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ChosenDocumentTypeResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ChosenDocumentTypeResult is not found in the empty JSON string", + ChosenDocumentTypeResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ChosenDocumentTypeResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ChosenDocumentTypeResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ChosenDocumentTypeResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ChosenDocumentTypeResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ChosenDocumentTypeResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ChosenDocumentTypeResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ChosenDocumentTypeResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ChosenDocumentTypeResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ChosenDocumentTypeResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of ChosenDocumentTypeResult + * @throws IOException if the JSON string is invalid with respect to ChosenDocumentTypeResult + */ + public static ChosenDocumentTypeResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ChosenDocumentTypeResult.class); + } + + /** + * Convert an instance of ChosenDocumentTypeResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java new file mode 100644 index 00000000..10db439d --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java @@ -0,0 +1,1248 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class ContainerListListInner extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(ContainerListListInner.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ContainerListListInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ContainerListListInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterStatusResult = + gson.getDelegateAdapter(this, TypeToken.get(StatusResult.class)); + final TypeAdapter adapterTextResult = + gson.getDelegateAdapter(this, TypeToken.get(TextResult.class)); + final TypeAdapter adapterDocumentImageResult = + gson.getDelegateAdapter(this, TypeToken.get(DocumentImageResult.class)); + final TypeAdapter adapterImagesResult = + gson.getDelegateAdapter(this, TypeToken.get(ImagesResult.class)); + final TypeAdapter adapterChosenDocumentTypeResult = + gson.getDelegateAdapter(this, TypeToken.get(ChosenDocumentTypeResult.class)); + final TypeAdapter adapterDocumentTypesCandidatesResult = + gson.getDelegateAdapter(this, TypeToken.get(DocumentTypesCandidatesResult.class)); + final TypeAdapter adapterTextDataResult = + gson.getDelegateAdapter(this, TypeToken.get(TextDataResult.class)); + final TypeAdapter adapterGraphicsResult = + gson.getDelegateAdapter(this, TypeToken.get(GraphicsResult.class)); + final TypeAdapter adapterLexicalAnalysisResult = + gson.getDelegateAdapter(this, TypeToken.get(LexicalAnalysisResult.class)); + final TypeAdapter adapterAuthenticityResult = + gson.getDelegateAdapter(this, TypeToken.get(AuthenticityResult.class)); + final TypeAdapter adapterImageQualityResult = + gson.getDelegateAdapter(this, TypeToken.get(ImageQualityResult.class)); + final TypeAdapter adapterDocumentPositionResult = + gson.getDelegateAdapter(this, TypeToken.get(DocumentPositionResult.class)); + final TypeAdapter adapterDocBarCodeInfo = + gson.getDelegateAdapter(this, TypeToken.get(DocBarCodeInfo.class)); + final TypeAdapter adapterLicenseResult = + gson.getDelegateAdapter(this, TypeToken.get(LicenseResult.class)); + final TypeAdapter adapterEncryptedRCLResult = + gson.getDelegateAdapter(this, TypeToken.get(EncryptedRCLResult.class)); + final TypeAdapter adapterDocumentBinaryInfoResult = + gson.getDelegateAdapter(this, TypeToken.get(DocumentBinaryInfoResult.class)); + final TypeAdapter adapterByteArrayResult = + gson.getDelegateAdapter(this, TypeToken.get(ByteArrayResult.class)); + final TypeAdapter adapterFaceDetectionResult = + gson.getDelegateAdapter(this, TypeToken.get(FaceDetectionResult.class)); + final TypeAdapter adapterMRZDetectorResult = + gson.getDelegateAdapter(this, TypeToken.get(MRZDetectorResult.class)); + final TypeAdapter adapterMRZPositionResult = + gson.getDelegateAdapter(this, TypeToken.get(MRZPositionResult.class)); + final TypeAdapter adapterMRZTestQualityResult = + gson.getDelegateAdapter(this, TypeToken.get(MRZTestQualityResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ContainerListListInner value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `StatusResult` + if (value.getActualInstance() instanceof StatusResult) { + JsonElement element = + adapterStatusResult.toJsonTree((StatusResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `TextResult` + if (value.getActualInstance() instanceof TextResult) { + JsonElement element = + adapterTextResult.toJsonTree((TextResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `DocumentImageResult` + if (value.getActualInstance() instanceof DocumentImageResult) { + JsonElement element = + adapterDocumentImageResult.toJsonTree( + (DocumentImageResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ImagesResult` + if (value.getActualInstance() instanceof ImagesResult) { + JsonElement element = + adapterImagesResult.toJsonTree((ImagesResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ChosenDocumentTypeResult` + if (value.getActualInstance() instanceof ChosenDocumentTypeResult) { + JsonElement element = + adapterChosenDocumentTypeResult.toJsonTree( + (ChosenDocumentTypeResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `DocumentTypesCandidatesResult` + if (value.getActualInstance() instanceof DocumentTypesCandidatesResult) { + JsonElement element = + adapterDocumentTypesCandidatesResult.toJsonTree( + (DocumentTypesCandidatesResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `TextDataResult` + if (value.getActualInstance() instanceof TextDataResult) { + JsonElement element = + adapterTextDataResult.toJsonTree((TextDataResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `GraphicsResult` + if (value.getActualInstance() instanceof GraphicsResult) { + JsonElement element = + adapterGraphicsResult.toJsonTree((GraphicsResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `LexicalAnalysisResult` + if (value.getActualInstance() instanceof LexicalAnalysisResult) { + JsonElement element = + adapterLexicalAnalysisResult.toJsonTree( + (LexicalAnalysisResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `AuthenticityResult` + if (value.getActualInstance() instanceof AuthenticityResult) { + JsonElement element = + adapterAuthenticityResult.toJsonTree( + (AuthenticityResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ImageQualityResult` + if (value.getActualInstance() instanceof ImageQualityResult) { + JsonElement element = + adapterImageQualityResult.toJsonTree( + (ImageQualityResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `DocumentPositionResult` + if (value.getActualInstance() instanceof DocumentPositionResult) { + JsonElement element = + adapterDocumentPositionResult.toJsonTree( + (DocumentPositionResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `DocBarCodeInfo` + if (value.getActualInstance() instanceof DocBarCodeInfo) { + JsonElement element = + adapterDocBarCodeInfo.toJsonTree((DocBarCodeInfo) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `LicenseResult` + if (value.getActualInstance() instanceof LicenseResult) { + JsonElement element = + adapterLicenseResult.toJsonTree((LicenseResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `EncryptedRCLResult` + if (value.getActualInstance() instanceof EncryptedRCLResult) { + JsonElement element = + adapterEncryptedRCLResult.toJsonTree( + (EncryptedRCLResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `DocumentBinaryInfoResult` + if (value.getActualInstance() instanceof DocumentBinaryInfoResult) { + JsonElement element = + adapterDocumentBinaryInfoResult.toJsonTree( + (DocumentBinaryInfoResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ByteArrayResult` + if (value.getActualInstance() instanceof ByteArrayResult) { + JsonElement element = + adapterByteArrayResult.toJsonTree((ByteArrayResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `FaceDetectionResult` + if (value.getActualInstance() instanceof FaceDetectionResult) { + JsonElement element = + adapterFaceDetectionResult.toJsonTree( + (FaceDetectionResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `MRZDetectorResult` + if (value.getActualInstance() instanceof MRZDetectorResult) { + JsonElement element = + adapterMRZDetectorResult.toJsonTree( + (MRZDetectorResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `MRZPositionResult` + if (value.getActualInstance() instanceof MRZPositionResult) { + JsonElement element = + adapterMRZPositionResult.toJsonTree( + (MRZPositionResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `MRZTestQualityResult` + if (value.getActualInstance() instanceof MRZTestQualityResult) { + JsonElement element = + adapterMRZTestQualityResult.toJsonTree( + (MRZTestQualityResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException( + "Failed to serialize as the type doesn't match oneOf schemas: AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, StatusResult, TextDataResult, TextResult"); + } + + @Override + public ContainerListListInner read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize StatusResult + try { + // validate the JSON object to see if any exception is thrown + StatusResult.validateJsonElement(jsonElement); + actualAdapter = adapterStatusResult; + match++; + log.log(Level.FINER, "Input data matches schema 'StatusResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for StatusResult failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'StatusResult'", e); + } + // deserialize TextResult + try { + // validate the JSON object to see if any exception is thrown + TextResult.validateJsonElement(jsonElement); + actualAdapter = adapterTextResult; + match++; + log.log(Level.FINER, "Input data matches schema 'TextResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for TextResult failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'TextResult'", e); + } + // deserialize DocumentImageResult + try { + // validate the JSON object to see if any exception is thrown + DocumentImageResult.validateJsonElement(jsonElement); + actualAdapter = adapterDocumentImageResult; + match++; + log.log(Level.FINER, "Input data matches schema 'DocumentImageResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for DocumentImageResult failed with `%s`.", + e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'DocumentImageResult'", e); + } + // deserialize ImagesResult + try { + // validate the JSON object to see if any exception is thrown + ImagesResult.validateJsonElement(jsonElement); + actualAdapter = adapterImagesResult; + match++; + log.log(Level.FINER, "Input data matches schema 'ImagesResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for ImagesResult failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ImagesResult'", e); + } + // deserialize ChosenDocumentTypeResult + try { + // validate the JSON object to see if any exception is thrown + ChosenDocumentTypeResult.validateJsonElement(jsonElement); + actualAdapter = adapterChosenDocumentTypeResult; + match++; + log.log(Level.FINER, "Input data matches schema 'ChosenDocumentTypeResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for ChosenDocumentTypeResult failed with `%s`.", + e.getMessage())); + log.log( + Level.FINER, "Input data does not match schema 'ChosenDocumentTypeResult'", e); + } + // deserialize DocumentTypesCandidatesResult + try { + // validate the JSON object to see if any exception is thrown + DocumentTypesCandidatesResult.validateJsonElement(jsonElement); + actualAdapter = adapterDocumentTypesCandidatesResult; + match++; + log.log(Level.FINER, "Input data matches schema 'DocumentTypesCandidatesResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for DocumentTypesCandidatesResult failed with `%s`.", + e.getMessage())); + log.log( + Level.FINER, + "Input data does not match schema 'DocumentTypesCandidatesResult'", + e); + } + // deserialize TextDataResult + try { + // validate the JSON object to see if any exception is thrown + TextDataResult.validateJsonElement(jsonElement); + actualAdapter = adapterTextDataResult; + match++; + log.log(Level.FINER, "Input data matches schema 'TextDataResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for TextDataResult failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'TextDataResult'", e); + } + // deserialize GraphicsResult + try { + // validate the JSON object to see if any exception is thrown + GraphicsResult.validateJsonElement(jsonElement); + actualAdapter = adapterGraphicsResult; + match++; + log.log(Level.FINER, "Input data matches schema 'GraphicsResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for GraphicsResult failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'GraphicsResult'", e); + } + // deserialize LexicalAnalysisResult + try { + // validate the JSON object to see if any exception is thrown + LexicalAnalysisResult.validateJsonElement(jsonElement); + actualAdapter = adapterLexicalAnalysisResult; + match++; + log.log(Level.FINER, "Input data matches schema 'LexicalAnalysisResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for LexicalAnalysisResult failed with `%s`.", + e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'LexicalAnalysisResult'", e); + } + // deserialize AuthenticityResult + try { + // validate the JSON object to see if any exception is thrown + AuthenticityResult.validateJsonElement(jsonElement); + actualAdapter = adapterAuthenticityResult; + match++; + log.log(Level.FINER, "Input data matches schema 'AuthenticityResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for AuthenticityResult failed with `%s`.", + e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'AuthenticityResult'", e); + } + // deserialize ImageQualityResult + try { + // validate the JSON object to see if any exception is thrown + ImageQualityResult.validateJsonElement(jsonElement); + actualAdapter = adapterImageQualityResult; + match++; + log.log(Level.FINER, "Input data matches schema 'ImageQualityResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for ImageQualityResult failed with `%s`.", + e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ImageQualityResult'", e); + } + // deserialize DocumentPositionResult + try { + // validate the JSON object to see if any exception is thrown + DocumentPositionResult.validateJsonElement(jsonElement); + actualAdapter = adapterDocumentPositionResult; + match++; + log.log(Level.FINER, "Input data matches schema 'DocumentPositionResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for DocumentPositionResult failed with `%s`.", + e.getMessage())); + log.log( + Level.FINER, "Input data does not match schema 'DocumentPositionResult'", e); + } + // deserialize DocBarCodeInfo + try { + // validate the JSON object to see if any exception is thrown + DocBarCodeInfo.validateJsonElement(jsonElement); + actualAdapter = adapterDocBarCodeInfo; + match++; + log.log(Level.FINER, "Input data matches schema 'DocBarCodeInfo'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for DocBarCodeInfo failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'DocBarCodeInfo'", e); + } + // deserialize LicenseResult + try { + // validate the JSON object to see if any exception is thrown + LicenseResult.validateJsonElement(jsonElement); + actualAdapter = adapterLicenseResult; + match++; + log.log(Level.FINER, "Input data matches schema 'LicenseResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for LicenseResult failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'LicenseResult'", e); + } + // deserialize EncryptedRCLResult + try { + // validate the JSON object to see if any exception is thrown + EncryptedRCLResult.validateJsonElement(jsonElement); + actualAdapter = adapterEncryptedRCLResult; + match++; + log.log(Level.FINER, "Input data matches schema 'EncryptedRCLResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for EncryptedRCLResult failed with `%s`.", + e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'EncryptedRCLResult'", e); + } + // deserialize DocumentBinaryInfoResult + try { + // validate the JSON object to see if any exception is thrown + DocumentBinaryInfoResult.validateJsonElement(jsonElement); + actualAdapter = adapterDocumentBinaryInfoResult; + match++; + log.log(Level.FINER, "Input data matches schema 'DocumentBinaryInfoResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for DocumentBinaryInfoResult failed with `%s`.", + e.getMessage())); + log.log( + Level.FINER, "Input data does not match schema 'DocumentBinaryInfoResult'", e); + } + // deserialize ByteArrayResult + try { + // validate the JSON object to see if any exception is thrown + ByteArrayResult.validateJsonElement(jsonElement); + actualAdapter = adapterByteArrayResult; + match++; + log.log(Level.FINER, "Input data matches schema 'ByteArrayResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for ByteArrayResult failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ByteArrayResult'", e); + } + // deserialize FaceDetectionResult + try { + // validate the JSON object to see if any exception is thrown + FaceDetectionResult.validateJsonElement(jsonElement); + actualAdapter = adapterFaceDetectionResult; + match++; + log.log(Level.FINER, "Input data matches schema 'FaceDetectionResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for FaceDetectionResult failed with `%s`.", + e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'FaceDetectionResult'", e); + } + // deserialize MRZDetectorResult + try { + // validate the JSON object to see if any exception is thrown + MRZDetectorResult.validateJsonElement(jsonElement); + actualAdapter = adapterMRZDetectorResult; + match++; + log.log(Level.FINER, "Input data matches schema 'MRZDetectorResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for MRZDetectorResult failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'MRZDetectorResult'", e); + } + // deserialize MRZPositionResult + try { + // validate the JSON object to see if any exception is thrown + MRZPositionResult.validateJsonElement(jsonElement); + actualAdapter = adapterMRZPositionResult; + match++; + log.log(Level.FINER, "Input data matches schema 'MRZPositionResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for MRZPositionResult failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'MRZPositionResult'", e); + } + // deserialize MRZTestQualityResult + try { + // validate the JSON object to see if any exception is thrown + MRZTestQualityResult.validateJsonElement(jsonElement); + actualAdapter = adapterMRZTestQualityResult; + match++; + log.log(Level.FINER, "Input data matches schema 'MRZTestQualityResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for MRZTestQualityResult failed with `%s`.", + e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'MRZTestQualityResult'", e); + } + + if (match == 1) { + ContainerListListInner ret = new ContainerListListInner(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException( + String.format( + "Failed deserialization for ContainerListListInner: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public ContainerListListInner() { + super("oneOf", Boolean.FALSE); + } + + public ContainerListListInner(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("StatusResult", StatusResult.class); + schemas.put("TextResult", TextResult.class); + schemas.put("DocumentImageResult", DocumentImageResult.class); + schemas.put("ImagesResult", ImagesResult.class); + schemas.put("ChosenDocumentTypeResult", ChosenDocumentTypeResult.class); + schemas.put("DocumentTypesCandidatesResult", DocumentTypesCandidatesResult.class); + schemas.put("TextDataResult", TextDataResult.class); + schemas.put("GraphicsResult", GraphicsResult.class); + schemas.put("LexicalAnalysisResult", LexicalAnalysisResult.class); + schemas.put("AuthenticityResult", AuthenticityResult.class); + schemas.put("ImageQualityResult", ImageQualityResult.class); + schemas.put("DocumentPositionResult", DocumentPositionResult.class); + schemas.put("DocBarCodeInfo", DocBarCodeInfo.class); + schemas.put("LicenseResult", LicenseResult.class); + schemas.put("EncryptedRCLResult", EncryptedRCLResult.class); + schemas.put("DocumentBinaryInfoResult", DocumentBinaryInfoResult.class); + schemas.put("ByteArrayResult", ByteArrayResult.class); + schemas.put("FaceDetectionResult", FaceDetectionResult.class); + schemas.put("MRZDetectorResult", MRZDetectorResult.class); + schemas.put("MRZPositionResult", MRZPositionResult.class); + schemas.put("MRZTestQualityResult", MRZTestQualityResult.class); + } + + @Override + public Map> getSchemas() { + return ContainerListListInner.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, + * DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, + * DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, + * ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, + * MRZPositionResult, MRZTestQualityResult, StatusResult, TextDataResult, TextResult + * + *

It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof StatusResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof TextResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof DocumentImageResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ImagesResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ChosenDocumentTypeResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof DocumentTypesCandidatesResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof TextDataResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof GraphicsResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof LexicalAnalysisResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof AuthenticityResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ImageQualityResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof DocumentPositionResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof DocBarCodeInfo) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof LicenseResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof EncryptedRCLResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof DocumentBinaryInfoResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ByteArrayResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof FaceDetectionResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof MRZDetectorResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof MRZPositionResult) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof MRZTestQualityResult) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException( + "Invalid instance type. Must be AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, StatusResult, TextDataResult, TextResult"); + } + + /** + * Get the actual instance, which can be the following: AuthenticityResult, ByteArrayResult, + * ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, + * DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, + * GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, + * MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, StatusResult, TextDataResult, + * TextResult + * + * @return The actual instance (AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, + * DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, + * DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, + * ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, + * MRZPositionResult, MRZTestQualityResult, StatusResult, TextDataResult, TextResult) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `StatusResult`. If the actual instance is not `StatusResult`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `StatusResult` + * @throws ClassCastException if the instance is not `StatusResult` + */ + public StatusResult getStatusResult() throws ClassCastException { + return (StatusResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `TextResult`. If the actual instance is not `TextResult`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `TextResult` + * @throws ClassCastException if the instance is not `TextResult` + */ + public TextResult getTextResult() throws ClassCastException { + return (TextResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `DocumentImageResult`. If the actual instance is not + * `DocumentImageResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `DocumentImageResult` + * @throws ClassCastException if the instance is not `DocumentImageResult` + */ + public DocumentImageResult getDocumentImageResult() throws ClassCastException { + return (DocumentImageResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `ImagesResult`. If the actual instance is not `ImagesResult`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `ImagesResult` + * @throws ClassCastException if the instance is not `ImagesResult` + */ + public ImagesResult getImagesResult() throws ClassCastException { + return (ImagesResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `ChosenDocumentTypeResult`. If the actual instance is not + * `ChosenDocumentTypeResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `ChosenDocumentTypeResult` + * @throws ClassCastException if the instance is not `ChosenDocumentTypeResult` + */ + public ChosenDocumentTypeResult getChosenDocumentTypeResult() throws ClassCastException { + return (ChosenDocumentTypeResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `DocumentTypesCandidatesResult`. If the actual instance is not + * `DocumentTypesCandidatesResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `DocumentTypesCandidatesResult` + * @throws ClassCastException if the instance is not `DocumentTypesCandidatesResult` + */ + public DocumentTypesCandidatesResult getDocumentTypesCandidatesResult() + throws ClassCastException { + return (DocumentTypesCandidatesResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `TextDataResult`. If the actual instance is not `TextDataResult`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `TextDataResult` + * @throws ClassCastException if the instance is not `TextDataResult` + */ + public TextDataResult getTextDataResult() throws ClassCastException { + return (TextDataResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `GraphicsResult`. If the actual instance is not `GraphicsResult`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `GraphicsResult` + * @throws ClassCastException if the instance is not `GraphicsResult` + */ + public GraphicsResult getGraphicsResult() throws ClassCastException { + return (GraphicsResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `LexicalAnalysisResult`. If the actual instance is not + * `LexicalAnalysisResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `LexicalAnalysisResult` + * @throws ClassCastException if the instance is not `LexicalAnalysisResult` + */ + public LexicalAnalysisResult getLexicalAnalysisResult() throws ClassCastException { + return (LexicalAnalysisResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `AuthenticityResult`. If the actual instance is not + * `AuthenticityResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `AuthenticityResult` + * @throws ClassCastException if the instance is not `AuthenticityResult` + */ + public AuthenticityResult getAuthenticityResult() throws ClassCastException { + return (AuthenticityResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `ImageQualityResult`. If the actual instance is not + * `ImageQualityResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `ImageQualityResult` + * @throws ClassCastException if the instance is not `ImageQualityResult` + */ + public ImageQualityResult getImageQualityResult() throws ClassCastException { + return (ImageQualityResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `DocumentPositionResult`. If the actual instance is not + * `DocumentPositionResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `DocumentPositionResult` + * @throws ClassCastException if the instance is not `DocumentPositionResult` + */ + public DocumentPositionResult getDocumentPositionResult() throws ClassCastException { + return (DocumentPositionResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `DocBarCodeInfo`. If the actual instance is not `DocBarCodeInfo`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `DocBarCodeInfo` + * @throws ClassCastException if the instance is not `DocBarCodeInfo` + */ + public DocBarCodeInfo getDocBarCodeInfo() throws ClassCastException { + return (DocBarCodeInfo) super.getActualInstance(); + } + + /** + * Get the actual instance of `LicenseResult`. If the actual instance is not `LicenseResult`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `LicenseResult` + * @throws ClassCastException if the instance is not `LicenseResult` + */ + public LicenseResult getLicenseResult() throws ClassCastException { + return (LicenseResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `EncryptedRCLResult`. If the actual instance is not + * `EncryptedRCLResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `EncryptedRCLResult` + * @throws ClassCastException if the instance is not `EncryptedRCLResult` + */ + public EncryptedRCLResult getEncryptedRCLResult() throws ClassCastException { + return (EncryptedRCLResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `DocumentBinaryInfoResult`. If the actual instance is not + * `DocumentBinaryInfoResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `DocumentBinaryInfoResult` + * @throws ClassCastException if the instance is not `DocumentBinaryInfoResult` + */ + public DocumentBinaryInfoResult getDocumentBinaryInfoResult() throws ClassCastException { + return (DocumentBinaryInfoResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `ByteArrayResult`. If the actual instance is not `ByteArrayResult`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `ByteArrayResult` + * @throws ClassCastException if the instance is not `ByteArrayResult` + */ + public ByteArrayResult getByteArrayResult() throws ClassCastException { + return (ByteArrayResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `FaceDetectionResult`. If the actual instance is not + * `FaceDetectionResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `FaceDetectionResult` + * @throws ClassCastException if the instance is not `FaceDetectionResult` + */ + public FaceDetectionResult getFaceDetectionResult() throws ClassCastException { + return (FaceDetectionResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `MRZDetectorResult`. If the actual instance is not + * `MRZDetectorResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `MRZDetectorResult` + * @throws ClassCastException if the instance is not `MRZDetectorResult` + */ + public MRZDetectorResult getMRZDetectorResult() throws ClassCastException { + return (MRZDetectorResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `MRZPositionResult`. If the actual instance is not + * `MRZPositionResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `MRZPositionResult` + * @throws ClassCastException if the instance is not `MRZPositionResult` + */ + public MRZPositionResult getMRZPositionResult() throws ClassCastException { + return (MRZPositionResult) super.getActualInstance(); + } + + /** + * Get the actual instance of `MRZTestQualityResult`. If the actual instance is not + * `MRZTestQualityResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `MRZTestQualityResult` + * @throws ClassCastException if the instance is not `MRZTestQualityResult` + */ + public MRZTestQualityResult getMRZTestQualityResult() throws ClassCastException { + return (MRZTestQualityResult) super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ContainerListListInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with StatusResult + try { + StatusResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for StatusResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with TextResult + try { + TextResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for TextResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with DocumentImageResult + try { + DocumentImageResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for DocumentImageResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ImagesResult + try { + ImagesResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for ImagesResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ChosenDocumentTypeResult + try { + ChosenDocumentTypeResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for ChosenDocumentTypeResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with DocumentTypesCandidatesResult + try { + DocumentTypesCandidatesResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for DocumentTypesCandidatesResult failed with `%s`.", + e.getMessage())); + // continue to the next one + } + // validate the json string with TextDataResult + try { + TextDataResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for TextDataResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with GraphicsResult + try { + GraphicsResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for GraphicsResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with LexicalAnalysisResult + try { + LexicalAnalysisResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for LexicalAnalysisResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with AuthenticityResult + try { + AuthenticityResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for AuthenticityResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ImageQualityResult + try { + ImageQualityResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for ImageQualityResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with DocumentPositionResult + try { + DocumentPositionResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for DocumentPositionResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with DocBarCodeInfo + try { + DocBarCodeInfo.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for DocBarCodeInfo failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with LicenseResult + try { + LicenseResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for LicenseResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with EncryptedRCLResult + try { + EncryptedRCLResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for EncryptedRCLResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with DocumentBinaryInfoResult + try { + DocumentBinaryInfoResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for DocumentBinaryInfoResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ByteArrayResult + try { + ByteArrayResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for ByteArrayResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with FaceDetectionResult + try { + FaceDetectionResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for FaceDetectionResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with MRZDetectorResult + try { + MRZDetectorResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for MRZDetectorResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with MRZPositionResult + try { + MRZPositionResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for MRZPositionResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with MRZTestQualityResult + try { + MRZTestQualityResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for MRZTestQualityResult failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException( + String.format( + "The JSON string is invalid for ContainerListListInner with oneOf schemas: AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, StatusResult, TextDataResult, TextResult. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of ContainerListListInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of ContainerListListInner + * @throws IOException if the JSON string is invalid with respect to ContainerListListInner + */ + public static ContainerListListInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ContainerListListInner.class); + } + + /** + * Convert an instance of ContainerListListInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Critical.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Critical.java index 7850c236..589d4b4f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Critical.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Critical.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,11 +12,62 @@ package com.regula.documentreader.webclient.model; -public class Critical { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Enumeration contains identifiers determining the criticality of the security element */ +@JsonAdapter(Critical.Adapter.class) +public enum Critical { /** Security element may be absent in a valid document */ - public static final int NOT_CRITICAL = 0; + NOT_CRITICAL(0), /** Security element must be present in a valid document */ - public static final int CRITICAL = 1; + CRITICAL(1); + + private Integer value; + + Critical(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static Critical fromValue(Integer value) { + for (Critical b : Critical.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final Critical enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public Critical read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return Critical.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + Critical.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/CrossSourceValueComparison.java b/client/src/main/generated/com/regula/documentreader/webclient/model/CrossSourceValueComparison.java old mode 100755 new mode 100644 index c8c979b2..e4527c75 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/CrossSourceValueComparison.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/CrossSourceValueComparison.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,27 +12,48 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** CrossSourceValueComparison */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class CrossSourceValueComparison { public static final String SERIALIZED_NAME_SOURCE_LEFT = "sourceLeft"; @SerializedName(SERIALIZED_NAME_SOURCE_LEFT) - private String sourceLeft; + @javax.annotation.Nonnull + private Source sourceLeft; public static final String SERIALIZED_NAME_SOURCE_RIGHT = "sourceRight"; @SerializedName(SERIALIZED_NAME_SOURCE_RIGHT) - private String sourceRight; + @javax.annotation.Nonnull + private Source sourceRight; public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) - private Integer status; + @javax.annotation.Nonnull + private CheckResult status; - public CrossSourceValueComparison withSourceLeft(String sourceLeft) { + public CrossSourceValueComparison() {} + + public CrossSourceValueComparison sourceLeft(@javax.annotation.Nonnull Source sourceLeft) { this.sourceLeft = sourceLeft; return this; } @@ -42,15 +63,16 @@ public CrossSourceValueComparison withSourceLeft(String sourceLeft) { * * @return sourceLeft */ - public String getSourceLeft() { + @javax.annotation.Nonnull + public Source getSourceLeft() { return sourceLeft; } - public void setSourceLeft(String sourceLeft) { + public void setSourceLeft(@javax.annotation.Nonnull Source sourceLeft) { this.sourceLeft = sourceLeft; } - public CrossSourceValueComparison withSourceRight(String sourceRight) { + public CrossSourceValueComparison sourceRight(@javax.annotation.Nonnull Source sourceRight) { this.sourceRight = sourceRight; return this; } @@ -60,15 +82,16 @@ public CrossSourceValueComparison withSourceRight(String sourceRight) { * * @return sourceRight */ - public String getSourceRight() { + @javax.annotation.Nonnull + public Source getSourceRight() { return sourceRight; } - public void setSourceRight(String sourceRight) { + public void setSourceRight(@javax.annotation.Nonnull Source sourceRight) { this.sourceRight = sourceRight; } - public CrossSourceValueComparison withStatus(Integer status) { + public CrossSourceValueComparison status(@javax.annotation.Nonnull CheckResult status) { this.status = status; return this; } @@ -78,16 +101,17 @@ public CrossSourceValueComparison withStatus(Integer status) { * * @return status */ - public Integer getStatus() { + @javax.annotation.Nonnull + public CheckResult getStatus() { return status; } - public void setStatus(Integer status) { + public void setStatus(@javax.annotation.Nonnull CheckResult status) { this.status = status; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -119,10 +143,122 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("sourceLeft"); + openapiFields.add("sourceRight"); + openapiFields.add("status"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("sourceLeft"); + openapiRequiredFields.add("sourceRight"); + openapiRequiredFields.add("status"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CrossSourceValueComparison + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CrossSourceValueComparison.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in CrossSourceValueComparison is not found in the empty JSON string", + CrossSourceValueComparison.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CrossSourceValueComparison.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `CrossSourceValueComparison` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : CrossSourceValueComparison.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `sourceLeft` + Source.validateJsonElement(jsonObj.get("sourceLeft")); + // validate the required field `sourceRight` + Source.validateJsonElement(jsonObj.get("sourceRight")); + // validate the required field `status` + CheckResult.validateJsonElement(jsonObj.get("status")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CrossSourceValueComparison.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CrossSourceValueComparison' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(CrossSourceValueComparison.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, CrossSourceValueComparison value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CrossSourceValueComparison read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of CrossSourceValueComparison given an JSON string + * + * @param jsonString JSON string + * @return An instance of CrossSourceValueComparison + * @throws IOException if the JSON string is invalid with respect to CrossSourceValueComparison + */ + public static CrossSourceValueComparison fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CrossSourceValueComparison.class); + } + + /** + * Convert an instance of CrossSourceValueComparison to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DataModule.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DataModule.java index 981cfa20..732dfa35 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DataModule.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DataModule.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,37 +12,60 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** DataModule */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DataModule { public static final String SERIALIZED_NAME_M_DATA = "mData"; @SerializedName(SERIALIZED_NAME_M_DATA) + @javax.annotation.Nonnull private String mData; public static final String SERIALIZED_NAME_M_LENGTH = "mLength"; @SerializedName(SERIALIZED_NAME_M_LENGTH) + @javax.annotation.Nonnull private Integer mLength; public static final String SERIALIZED_NAME_M_RESERVED1 = "mReserved1"; @SerializedName(SERIALIZED_NAME_M_RESERVED1) + @javax.annotation.Nullable private Integer mReserved1; public static final String SERIALIZED_NAME_M_RESERVER2 = "mReserver2"; @SerializedName(SERIALIZED_NAME_M_RESERVER2) + @javax.annotation.Nullable private Integer mReserver2; public static final String SERIALIZED_NAME_M_TYPE = "mType"; @SerializedName(SERIALIZED_NAME_M_TYPE) - private Integer mType; + @javax.annotation.Nonnull + private BarCodeModuleType mType; + + public DataModule() {} - public DataModule withMData(String mData) { + public DataModule mData(@javax.annotation.Nonnull String mData) { this.mData = mData; return this; } @@ -52,16 +75,16 @@ public DataModule withMData(String mData) { * * @return mData */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public String getmData() { return mData; } - public void setmData(String mData) { + public void setmData(@javax.annotation.Nonnull String mData) { this.mData = mData; } - public DataModule withMLength(Integer mLength) { + public DataModule mLength(@javax.annotation.Nonnull Integer mLength) { this.mLength = mLength; return this; } @@ -71,16 +94,16 @@ public DataModule withMLength(Integer mLength) { * * @return mLength */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getmLength() { return mLength; } - public void setmLength(Integer mLength) { + public void setmLength(@javax.annotation.Nonnull Integer mLength) { this.mLength = mLength; } - public DataModule withMReserved1(Integer mReserved1) { + public DataModule mReserved1(@javax.annotation.Nullable Integer mReserved1) { this.mReserved1 = mReserved1; return this; } @@ -95,11 +118,11 @@ public Integer getmReserved1() { return mReserved1; } - public void setmReserved1(Integer mReserved1) { + public void setmReserved1(@javax.annotation.Nullable Integer mReserved1) { this.mReserved1 = mReserved1; } - public DataModule withMReserver2(Integer mReserver2) { + public DataModule mReserver2(@javax.annotation.Nullable Integer mReserver2) { this.mReserver2 = mReserver2; return this; } @@ -114,11 +137,11 @@ public Integer getmReserver2() { return mReserver2; } - public void setmReserver2(Integer mReserver2) { + public void setmReserver2(@javax.annotation.Nullable Integer mReserver2) { this.mReserver2 = mReserver2; } - public DataModule withMType(Integer mType) { + public DataModule mType(@javax.annotation.Nonnull BarCodeModuleType mType) { this.mType = mType; return this; } @@ -128,17 +151,17 @@ public DataModule withMType(Integer mType) { * * @return mType */ - @javax.annotation.Nullable - public Integer getmType() { + @javax.annotation.Nonnull + public BarCodeModuleType getmType() { return mType; } - public void setmType(Integer mType) { + public void setmType(@javax.annotation.Nonnull BarCodeModuleType mType) { this.mType = mType; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -174,10 +197,126 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("mData"); + openapiFields.add("mLength"); + openapiFields.add("mReserved1"); + openapiFields.add("mReserver2"); + openapiFields.add("mType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("mData"); + openapiRequiredFields.add("mLength"); + openapiRequiredFields.add("mType"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DataModule + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DataModule.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DataModule is not found in the empty JSON string", + DataModule.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DataModule.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DataModule` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DataModule.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("mData").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `mData` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("mData").toString())); + } + // validate the required field `mType` + BarCodeModuleType.validateJsonElement(jsonObj.get("mType")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DataModule.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DataModule' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DataModule.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DataModule value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DataModule read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DataModule given an JSON string + * + * @param jsonString JSON string + * @return An instance of DataModule + * @throws IOException if the JSON string is invalid with respect to DataModule + */ + public static DataModule fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DataModule.class); + } + + /** + * Convert an instance of DataModule to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsOptical.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsOptical.java old mode 100755 new mode 100644 index bfeb2fd9..5ee5cf43 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsOptical.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsOptical.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,52 +12,84 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; -/** DetailsOptical */ +/** Details on performed optical checks */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DetailsOptical { public static final String SERIALIZED_NAME_OVERALL_STATUS = "overallStatus"; @SerializedName(SERIALIZED_NAME_OVERALL_STATUS) - private Integer overallStatus; + @javax.annotation.Nonnull + private CheckResult overallStatus; public static final String SERIALIZED_NAME_DOC_TYPE = "docType"; @SerializedName(SERIALIZED_NAME_DOC_TYPE) - private Integer docType; + @javax.annotation.Nonnull + private CheckResult docType; public static final String SERIALIZED_NAME_EXPIRY = "expiry"; @SerializedName(SERIALIZED_NAME_EXPIRY) - private Integer expiry; + @javax.annotation.Nonnull + private CheckResult expiry; public static final String SERIALIZED_NAME_IMAGE_Q_A = "imageQA"; @SerializedName(SERIALIZED_NAME_IMAGE_Q_A) - private Integer imageQA; + @javax.annotation.Nonnull + private CheckResult imageQA; public static final String SERIALIZED_NAME_MRZ = "mrz"; @SerializedName(SERIALIZED_NAME_MRZ) - private Integer mrz; + @javax.annotation.Nonnull + private CheckResult mrz; public static final String SERIALIZED_NAME_PAGES_COUNT = "pagesCount"; @SerializedName(SERIALIZED_NAME_PAGES_COUNT) + @javax.annotation.Nonnull private Integer pagesCount; public static final String SERIALIZED_NAME_SECURITY = "security"; @SerializedName(SERIALIZED_NAME_SECURITY) - private Integer security; + @javax.annotation.Nonnull + private CheckResult security; public static final String SERIALIZED_NAME_TEXT = "text"; @SerializedName(SERIALIZED_NAME_TEXT) - private Integer text; + @javax.annotation.Nonnull + private CheckResult text; - public DetailsOptical withOverallStatus(Integer overallStatus) { + public static final String SERIALIZED_NAME_VDS = "vds"; + + @SerializedName(SERIALIZED_NAME_VDS) + @javax.annotation.Nullable + private Integer vds; + + public DetailsOptical() {} + + public DetailsOptical overallStatus(@javax.annotation.Nonnull CheckResult overallStatus) { this.overallStatus = overallStatus; return this; } @@ -67,15 +99,16 @@ public DetailsOptical withOverallStatus(Integer overallStatus) { * * @return overallStatus */ - public Integer getOverallStatus() { + @javax.annotation.Nonnull + public CheckResult getOverallStatus() { return overallStatus; } - public void setOverallStatus(Integer overallStatus) { + public void setOverallStatus(@javax.annotation.Nonnull CheckResult overallStatus) { this.overallStatus = overallStatus; } - public DetailsOptical withDocType(Integer docType) { + public DetailsOptical docType(@javax.annotation.Nonnull CheckResult docType) { this.docType = docType; return this; } @@ -85,15 +118,16 @@ public DetailsOptical withDocType(Integer docType) { * * @return docType */ - public Integer getDocType() { + @javax.annotation.Nonnull + public CheckResult getDocType() { return docType; } - public void setDocType(Integer docType) { + public void setDocType(@javax.annotation.Nonnull CheckResult docType) { this.docType = docType; } - public DetailsOptical withExpiry(Integer expiry) { + public DetailsOptical expiry(@javax.annotation.Nonnull CheckResult expiry) { this.expiry = expiry; return this; } @@ -103,15 +137,16 @@ public DetailsOptical withExpiry(Integer expiry) { * * @return expiry */ - public Integer getExpiry() { + @javax.annotation.Nonnull + public CheckResult getExpiry() { return expiry; } - public void setExpiry(Integer expiry) { + public void setExpiry(@javax.annotation.Nonnull CheckResult expiry) { this.expiry = expiry; } - public DetailsOptical withImageQA(Integer imageQA) { + public DetailsOptical imageQA(@javax.annotation.Nonnull CheckResult imageQA) { this.imageQA = imageQA; return this; } @@ -121,15 +156,16 @@ public DetailsOptical withImageQA(Integer imageQA) { * * @return imageQA */ - public Integer getImageQA() { + @javax.annotation.Nonnull + public CheckResult getImageQA() { return imageQA; } - public void setImageQA(Integer imageQA) { + public void setImageQA(@javax.annotation.Nonnull CheckResult imageQA) { this.imageQA = imageQA; } - public DetailsOptical withMrz(Integer mrz) { + public DetailsOptical mrz(@javax.annotation.Nonnull CheckResult mrz) { this.mrz = mrz; return this; } @@ -139,15 +175,16 @@ public DetailsOptical withMrz(Integer mrz) { * * @return mrz */ - public Integer getMrz() { + @javax.annotation.Nonnull + public CheckResult getMrz() { return mrz; } - public void setMrz(Integer mrz) { + public void setMrz(@javax.annotation.Nonnull CheckResult mrz) { this.mrz = mrz; } - public DetailsOptical withPagesCount(Integer pagesCount) { + public DetailsOptical pagesCount(@javax.annotation.Nonnull Integer pagesCount) { this.pagesCount = pagesCount; return this; } @@ -157,15 +194,16 @@ public DetailsOptical withPagesCount(Integer pagesCount) { * * @return pagesCount */ + @javax.annotation.Nonnull public Integer getPagesCount() { return pagesCount; } - public void setPagesCount(Integer pagesCount) { + public void setPagesCount(@javax.annotation.Nonnull Integer pagesCount) { this.pagesCount = pagesCount; } - public DetailsOptical withSecurity(Integer security) { + public DetailsOptical security(@javax.annotation.Nonnull CheckResult security) { this.security = security; return this; } @@ -175,15 +213,16 @@ public DetailsOptical withSecurity(Integer security) { * * @return security */ - public Integer getSecurity() { + @javax.annotation.Nonnull + public CheckResult getSecurity() { return security; } - public void setSecurity(Integer security) { + public void setSecurity(@javax.annotation.Nonnull CheckResult security) { this.security = security; } - public DetailsOptical withText(Integer text) { + public DetailsOptical text(@javax.annotation.Nonnull CheckResult text) { this.text = text; return this; } @@ -193,16 +232,36 @@ public DetailsOptical withText(Integer text) { * * @return text */ - public Integer getText() { + @javax.annotation.Nonnull + public CheckResult getText() { return text; } - public void setText(Integer text) { + public void setText(@javax.annotation.Nonnull CheckResult text) { this.text = text; } + public DetailsOptical vds(@javax.annotation.Nullable Integer vds) { + this.vds = vds; + return this; + } + + /** + * Get vds + * + * @return vds + */ + @javax.annotation.Nullable + public Integer getVds() { + return vds; + } + + public void setVds(@javax.annotation.Nullable Integer vds) { + this.vds = vds; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -217,12 +276,14 @@ public boolean equals(java.lang.Object o) { && Objects.equals(this.mrz, detailsOptical.mrz) && Objects.equals(this.pagesCount, detailsOptical.pagesCount) && Objects.equals(this.security, detailsOptical.security) - && Objects.equals(this.text, detailsOptical.text); + && Objects.equals(this.text, detailsOptical.text) + && Objects.equals(this.vds, detailsOptical.vds); } @Override public int hashCode() { - return Objects.hash(overallStatus, docType, expiry, imageQA, mrz, pagesCount, security, text); + return Objects.hash( + overallStatus, docType, expiry, imageQA, mrz, pagesCount, security, text, vds); } @Override @@ -237,6 +298,7 @@ public String toString() { sb.append(" pagesCount: ").append(toIndentedString(pagesCount)).append("\n"); sb.append(" security: ").append(toIndentedString(security)).append("\n"); sb.append(" text: ").append(toIndentedString(text)).append("\n"); + sb.append(" vds: ").append(toIndentedString(vds)).append("\n"); sb.append("}"); return sb.toString(); } @@ -244,10 +306,141 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("overallStatus"); + openapiFields.add("docType"); + openapiFields.add("expiry"); + openapiFields.add("imageQA"); + openapiFields.add("mrz"); + openapiFields.add("pagesCount"); + openapiFields.add("security"); + openapiFields.add("text"); + openapiFields.add("vds"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("overallStatus"); + openapiRequiredFields.add("docType"); + openapiRequiredFields.add("expiry"); + openapiRequiredFields.add("imageQA"); + openapiRequiredFields.add("mrz"); + openapiRequiredFields.add("pagesCount"); + openapiRequiredFields.add("security"); + openapiRequiredFields.add("text"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DetailsOptical + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DetailsOptical.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DetailsOptical is not found in the empty JSON string", + DetailsOptical.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DetailsOptical.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DetailsOptical` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DetailsOptical.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `overallStatus` + CheckResult.validateJsonElement(jsonObj.get("overallStatus")); + // validate the required field `docType` + CheckResult.validateJsonElement(jsonObj.get("docType")); + // validate the required field `expiry` + CheckResult.validateJsonElement(jsonObj.get("expiry")); + // validate the required field `imageQA` + CheckResult.validateJsonElement(jsonObj.get("imageQA")); + // validate the required field `mrz` + CheckResult.validateJsonElement(jsonObj.get("mrz")); + // validate the required field `security` + CheckResult.validateJsonElement(jsonObj.get("security")); + // validate the required field `text` + CheckResult.validateJsonElement(jsonObj.get("text")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DetailsOptical.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DetailsOptical' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DetailsOptical.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DetailsOptical value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DetailsOptical read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DetailsOptical given an JSON string + * + * @param jsonString JSON string + * @return An instance of DetailsOptical + * @throws IOException if the JSON string is invalid with respect to DetailsOptical + */ + public static DetailsOptical fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DetailsOptical.class); + } + + /** + * Convert an instance of DetailsOptical to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsRFID.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsRFID.java old mode 100755 new mode 100644 index 0876f884..45a23785 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsRFID.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsRFID.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,47 +12,72 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; -/** DetailsRFID */ +/** Details on performed RFID checks */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DetailsRFID { public static final String SERIALIZED_NAME_OVERALL_STATUS = "overallStatus"; @SerializedName(SERIALIZED_NAME_OVERALL_STATUS) - private Integer overallStatus; + @javax.annotation.Nonnull + private CheckResult overallStatus; public static final String SERIALIZED_NAME_A_A = "AA"; @SerializedName(SERIALIZED_NAME_A_A) - private Integer AA; + @javax.annotation.Nonnull + private CheckResult AA; public static final String SERIALIZED_NAME_B_A_C = "BAC"; @SerializedName(SERIALIZED_NAME_B_A_C) - private Integer BAC; + @javax.annotation.Nonnull + private CheckResult BAC; public static final String SERIALIZED_NAME_C_A = "CA"; @SerializedName(SERIALIZED_NAME_C_A) - private Integer CA; + @javax.annotation.Nonnull + private CheckResult CA; public static final String SERIALIZED_NAME_P_A = "PA"; @SerializedName(SERIALIZED_NAME_P_A) - private Integer PA; + @javax.annotation.Nonnull + private CheckResult PA; public static final String SERIALIZED_NAME_P_A_C_E = "PACE"; @SerializedName(SERIALIZED_NAME_P_A_C_E) - private Integer PACE; + @javax.annotation.Nonnull + private CheckResult PACE; public static final String SERIALIZED_NAME_T_A = "TA"; @SerializedName(SERIALIZED_NAME_T_A) - private Integer TA; + @javax.annotation.Nonnull + private CheckResult TA; - public DetailsRFID withOverallStatus(Integer overallStatus) { + public DetailsRFID() {} + + public DetailsRFID overallStatus(@javax.annotation.Nonnull CheckResult overallStatus) { this.overallStatus = overallStatus; return this; } @@ -62,15 +87,16 @@ public DetailsRFID withOverallStatus(Integer overallStatus) { * * @return overallStatus */ - public Integer getOverallStatus() { + @javax.annotation.Nonnull + public CheckResult getOverallStatus() { return overallStatus; } - public void setOverallStatus(Integer overallStatus) { + public void setOverallStatus(@javax.annotation.Nonnull CheckResult overallStatus) { this.overallStatus = overallStatus; } - public DetailsRFID withAA(Integer AA) { + public DetailsRFID AA(@javax.annotation.Nonnull CheckResult AA) { this.AA = AA; return this; } @@ -80,15 +106,16 @@ public DetailsRFID withAA(Integer AA) { * * @return AA */ - public Integer getAA() { + @javax.annotation.Nonnull + public CheckResult getAA() { return AA; } - public void setAA(Integer AA) { + public void setAA(@javax.annotation.Nonnull CheckResult AA) { this.AA = AA; } - public DetailsRFID withBAC(Integer BAC) { + public DetailsRFID BAC(@javax.annotation.Nonnull CheckResult BAC) { this.BAC = BAC; return this; } @@ -98,15 +125,16 @@ public DetailsRFID withBAC(Integer BAC) { * * @return BAC */ - public Integer getBAC() { + @javax.annotation.Nonnull + public CheckResult getBAC() { return BAC; } - public void setBAC(Integer BAC) { + public void setBAC(@javax.annotation.Nonnull CheckResult BAC) { this.BAC = BAC; } - public DetailsRFID withCA(Integer CA) { + public DetailsRFID CA(@javax.annotation.Nonnull CheckResult CA) { this.CA = CA; return this; } @@ -116,15 +144,16 @@ public DetailsRFID withCA(Integer CA) { * * @return CA */ - public Integer getCA() { + @javax.annotation.Nonnull + public CheckResult getCA() { return CA; } - public void setCA(Integer CA) { + public void setCA(@javax.annotation.Nonnull CheckResult CA) { this.CA = CA; } - public DetailsRFID withPA(Integer PA) { + public DetailsRFID PA(@javax.annotation.Nonnull CheckResult PA) { this.PA = PA; return this; } @@ -134,15 +163,16 @@ public DetailsRFID withPA(Integer PA) { * * @return PA */ - public Integer getPA() { + @javax.annotation.Nonnull + public CheckResult getPA() { return PA; } - public void setPA(Integer PA) { + public void setPA(@javax.annotation.Nonnull CheckResult PA) { this.PA = PA; } - public DetailsRFID withPACE(Integer PACE) { + public DetailsRFID PACE(@javax.annotation.Nonnull CheckResult PACE) { this.PACE = PACE; return this; } @@ -152,15 +182,16 @@ public DetailsRFID withPACE(Integer PACE) { * * @return PACE */ - public Integer getPACE() { + @javax.annotation.Nonnull + public CheckResult getPACE() { return PACE; } - public void setPACE(Integer PACE) { + public void setPACE(@javax.annotation.Nonnull CheckResult PACE) { this.PACE = PACE; } - public DetailsRFID withTA(Integer TA) { + public DetailsRFID TA(@javax.annotation.Nonnull CheckResult TA) { this.TA = TA; return this; } @@ -170,16 +201,17 @@ public DetailsRFID withTA(Integer TA) { * * @return TA */ - public Integer getTA() { + @javax.annotation.Nonnull + public CheckResult getTA() { return TA; } - public void setTA(Integer TA) { + public void setTA(@javax.annotation.Nonnull CheckResult TA) { this.TA = TA; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -219,10 +251,138 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("overallStatus"); + openapiFields.add("AA"); + openapiFields.add("BAC"); + openapiFields.add("CA"); + openapiFields.add("PA"); + openapiFields.add("PACE"); + openapiFields.add("TA"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("overallStatus"); + openapiRequiredFields.add("AA"); + openapiRequiredFields.add("BAC"); + openapiRequiredFields.add("CA"); + openapiRequiredFields.add("PA"); + openapiRequiredFields.add("PACE"); + openapiRequiredFields.add("TA"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DetailsRFID + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DetailsRFID.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DetailsRFID is not found in the empty JSON string", + DetailsRFID.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DetailsRFID.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DetailsRFID` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DetailsRFID.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `overallStatus` + CheckResult.validateJsonElement(jsonObj.get("overallStatus")); + // validate the required field `AA` + CheckResult.validateJsonElement(jsonObj.get("AA")); + // validate the required field `BAC` + CheckResult.validateJsonElement(jsonObj.get("BAC")); + // validate the required field `CA` + CheckResult.validateJsonElement(jsonObj.get("CA")); + // validate the required field `PA` + CheckResult.validateJsonElement(jsonObj.get("PA")); + // validate the required field `PACE` + CheckResult.validateJsonElement(jsonObj.get("PACE")); + // validate the required field `TA` + CheckResult.validateJsonElement(jsonObj.get("TA")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DetailsRFID.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DetailsRFID' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DetailsRFID.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DetailsRFID value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DetailsRFID read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DetailsRFID given an JSON string + * + * @param jsonString JSON string + * @return An instance of DetailsRFID + * @throws IOException if the JSON string is invalid with respect to DetailsRFID + */ + public static DetailsRFID fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DetailsRFID.class); + } + + /** + * Convert an instance of DetailsRFID to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DeviceInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DeviceInfo.java index e15bda56..512092d9 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DeviceInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DeviceInfo.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,43 +12,67 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; -import org.threeten.bp.OffsetDateTime; +import java.util.Set; /** DeviceInfo */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DeviceInfo { public static final String SERIALIZED_NAME_APP_NAME = "app-name"; @SerializedName(SERIALIZED_NAME_APP_NAME) + @javax.annotation.Nullable private String appName; public static final String SERIALIZED_NAME_VERSION = "version"; @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable private String version; public static final String SERIALIZED_NAME_LICENSE_ID = "license-id"; @SerializedName(SERIALIZED_NAME_LICENSE_ID) + @javax.annotation.Nullable private String licenseId; public static final String SERIALIZED_NAME_LICENSE_SERIAL = "license-serial"; @SerializedName(SERIALIZED_NAME_LICENSE_SERIAL) + @javax.annotation.Nullable private String licenseSerial; public static final String SERIALIZED_NAME_VALID_UNTIL = "valid-until"; @SerializedName(SERIALIZED_NAME_VALID_UNTIL) + @javax.annotation.Nullable private OffsetDateTime validUntil; public static final String SERIALIZED_NAME_SERVER_TIME = "server-time"; @SerializedName(SERIALIZED_NAME_SERVER_TIME) + @javax.annotation.Nullable private OffsetDateTime serverTime; - public DeviceInfo withAppName(String appName) { + public DeviceInfo() {} + + public DeviceInfo appName(@javax.annotation.Nullable String appName) { this.appName = appName; return this; } @@ -63,11 +87,11 @@ public String getAppName() { return appName; } - public void setAppName(String appName) { + public void setAppName(@javax.annotation.Nullable String appName) { this.appName = appName; } - public DeviceInfo withVersion(String version) { + public DeviceInfo version(@javax.annotation.Nullable String version) { this.version = version; return this; } @@ -82,11 +106,11 @@ public String getVersion() { return version; } - public void setVersion(String version) { + public void setVersion(@javax.annotation.Nullable String version) { this.version = version; } - public DeviceInfo withLicenseId(String licenseId) { + public DeviceInfo licenseId(@javax.annotation.Nullable String licenseId) { this.licenseId = licenseId; return this; } @@ -101,11 +125,11 @@ public String getLicenseId() { return licenseId; } - public void setLicenseId(String licenseId) { + public void setLicenseId(@javax.annotation.Nullable String licenseId) { this.licenseId = licenseId; } - public DeviceInfo withLicenseSerial(String licenseSerial) { + public DeviceInfo licenseSerial(@javax.annotation.Nullable String licenseSerial) { this.licenseSerial = licenseSerial; return this; } @@ -120,11 +144,11 @@ public String getLicenseSerial() { return licenseSerial; } - public void setLicenseSerial(String licenseSerial) { + public void setLicenseSerial(@javax.annotation.Nullable String licenseSerial) { this.licenseSerial = licenseSerial; } - public DeviceInfo withValidUntil(OffsetDateTime validUntil) { + public DeviceInfo validUntil(@javax.annotation.Nullable OffsetDateTime validUntil) { this.validUntil = validUntil; return this; } @@ -139,11 +163,11 @@ public OffsetDateTime getValidUntil() { return validUntil; } - public void setValidUntil(OffsetDateTime validUntil) { + public void setValidUntil(@javax.annotation.Nullable OffsetDateTime validUntil) { this.validUntil = validUntil; } - public DeviceInfo withServerTime(OffsetDateTime serverTime) { + public DeviceInfo serverTime(@javax.annotation.Nullable OffsetDateTime serverTime) { this.serverTime = serverTime; return this; } @@ -158,12 +182,12 @@ public OffsetDateTime getServerTime() { return serverTime; } - public void setServerTime(OffsetDateTime serverTime) { + public void setServerTime(@javax.annotation.Nullable OffsetDateTime serverTime) { this.serverTime = serverTime; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -201,10 +225,134 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("app-name"); + openapiFields.add("version"); + openapiFields.add("license-id"); + openapiFields.add("license-serial"); + openapiFields.add("valid-until"); + openapiFields.add("server-time"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DeviceInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DeviceInfo.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DeviceInfo is not found in the empty JSON string", + DeviceInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DeviceInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DeviceInfo` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("app-name") != null && !jsonObj.get("app-name").isJsonNull()) + && !jsonObj.get("app-name").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `app-name` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("app-name").toString())); + } + if ((jsonObj.get("version") != null && !jsonObj.get("version").isJsonNull()) + && !jsonObj.get("version").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `version` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("version").toString())); + } + if ((jsonObj.get("license-id") != null && !jsonObj.get("license-id").isJsonNull()) + && !jsonObj.get("license-id").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `license-id` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("license-id").toString())); + } + if ((jsonObj.get("license-serial") != null && !jsonObj.get("license-serial").isJsonNull()) + && !jsonObj.get("license-serial").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `license-serial` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("license-serial").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DeviceInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DeviceInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DeviceInfo.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DeviceInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DeviceInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DeviceInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of DeviceInfo + * @throws IOException if the JSON string is invalid with respect to DeviceInfo + */ + public static DeviceInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DeviceInfo.class); + } + + /** + * Convert an instance of DeviceInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfo.java index 6cdc6148..d775f05b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfo.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,37 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Raw data from BarCodes */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DocBarCodeInfo extends ResultItem { public static final String SERIALIZED_NAME_DOC_BAR_CODE_INFO = "DocBarCodeInfo"; @SerializedName(SERIALIZED_NAME_DOC_BAR_CODE_INFO) + @javax.annotation.Nonnull private DocBarCodeInfoFieldsList docBarCodeInfo; - public DocBarCodeInfo withDocBarCodeInfo(DocBarCodeInfoFieldsList docBarCodeInfo) { + public DocBarCodeInfo() {} + + public DocBarCodeInfo docBarCodeInfo( + @javax.annotation.Nonnull DocBarCodeInfoFieldsList docBarCodeInfo) { this.docBarCodeInfo = docBarCodeInfo; return this; } @@ -32,17 +52,17 @@ public DocBarCodeInfo withDocBarCodeInfo(DocBarCodeInfoFieldsList docBarCodeInfo * * @return docBarCodeInfo */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public DocBarCodeInfoFieldsList getDocBarCodeInfo() { return docBarCodeInfo; } - public void setDocBarCodeInfo(DocBarCodeInfoFieldsList docBarCodeInfo) { + public void setDocBarCodeInfo(@javax.annotation.Nonnull DocBarCodeInfoFieldsList docBarCodeInfo) { this.docBarCodeInfo = docBarCodeInfo; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -71,10 +91,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("DocBarCodeInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("DocBarCodeInfo"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocBarCodeInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocBarCodeInfo.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocBarCodeInfo is not found in the empty JSON string", + DocBarCodeInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocBarCodeInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocBarCodeInfo` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocBarCodeInfo.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocBarCodeInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocBarCodeInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocBarCodeInfo.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocBarCodeInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocBarCodeInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocBarCodeInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocBarCodeInfo + * @throws IOException if the JSON string is invalid with respect to DocBarCodeInfo + */ + public static DocBarCodeInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocBarCodeInfo.class); + } + + /** + * Convert an instance of DocBarCodeInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoFieldsList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoFieldsList.java index 34a5f5e7..b3f0f2b2 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoFieldsList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoFieldsList.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,24 +12,45 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** DocBarCodeInfoFieldsList */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DocBarCodeInfoFieldsList { public static final String SERIALIZED_NAME_N_FIELDS = "nFields"; @SerializedName(SERIALIZED_NAME_N_FIELDS) + @javax.annotation.Nonnull private Integer nFields; public static final String SERIALIZED_NAME_P_ARRAY_FIELDS = "pArrayFields"; @SerializedName(SERIALIZED_NAME_P_ARRAY_FIELDS) - private List pArrayFields = null; + @javax.annotation.Nonnull + private List pArrayFields; - public DocBarCodeInfoFieldsList withNFields(Integer nFields) { + public DocBarCodeInfoFieldsList() {} + + public DocBarCodeInfoFieldsList nFields(@javax.annotation.Nonnull Integer nFields) { this.nFields = nFields; return this; } @@ -39,23 +60,24 @@ public DocBarCodeInfoFieldsList withNFields(Integer nFields) { * * @return nFields */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getnFields() { return nFields; } - public void setnFields(Integer nFields) { + public void setnFields(@javax.annotation.Nonnull Integer nFields) { this.nFields = nFields; } - public DocBarCodeInfoFieldsList withPArrayFields(List pArrayFields) { + public DocBarCodeInfoFieldsList pArrayFields( + @javax.annotation.Nonnull List pArrayFields) { this.pArrayFields = pArrayFields; return this; } public DocBarCodeInfoFieldsList addPArrayFieldsItem(PArrayField pArrayFieldsItem) { if (this.pArrayFields == null) { - this.pArrayFields = new ArrayList(); + this.pArrayFields = new ArrayList<>(); } this.pArrayFields.add(pArrayFieldsItem); return this; @@ -66,17 +88,17 @@ public DocBarCodeInfoFieldsList addPArrayFieldsItem(PArrayField pArrayFieldsItem * * @return pArrayFields */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getpArrayFields() { return pArrayFields; } - public void setpArrayFields(List pArrayFields) { + public void setpArrayFields(@javax.annotation.Nonnull List pArrayFields) { this.pArrayFields = pArrayFields; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -106,10 +128,128 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("nFields"); + openapiFields.add("pArrayFields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("nFields"); + openapiRequiredFields.add("pArrayFields"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocBarCodeInfoFieldsList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocBarCodeInfoFieldsList.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocBarCodeInfoFieldsList is not found in the empty JSON string", + DocBarCodeInfoFieldsList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocBarCodeInfoFieldsList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocBarCodeInfoFieldsList` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocBarCodeInfoFieldsList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("pArrayFields").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `pArrayFields` to be an array in the JSON string but got `%s`", + jsonObj.get("pArrayFields").toString())); + } + + JsonArray jsonArraypArrayFields = jsonObj.getAsJsonArray("pArrayFields"); + // validate the required field `pArrayFields` (array) + for (int i = 0; i < jsonArraypArrayFields.size(); i++) { + PArrayField.validateJsonElement(jsonArraypArrayFields.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocBarCodeInfoFieldsList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocBarCodeInfoFieldsList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocBarCodeInfoFieldsList.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocBarCodeInfoFieldsList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocBarCodeInfoFieldsList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocBarCodeInfoFieldsList given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocBarCodeInfoFieldsList + * @throws IOException if the JSON string is invalid with respect to DocBarCodeInfoFieldsList + */ + public static DocBarCodeInfoFieldsList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocBarCodeInfoFieldsList.class); + } + + /** + * Convert an instance of DocBarCodeInfoFieldsList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java old mode 100755 new mode 100644 index cbde45f5..57e35d1f --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,54 +12,123 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import com.google.gson.annotations.SerializedName; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Objects; /** DocVisualExtendedField */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DocVisualExtendedField { + public static final String SERIALIZED_NAME_FIELD_TYPE = "FieldType"; + + @SerializedName(SERIALIZED_NAME_FIELD_TYPE) + @javax.annotation.Nonnull + private Integer fieldType; + public static final String SERIALIZED_NAME_W_FIELD_TYPE = "wFieldType"; @SerializedName(SERIALIZED_NAME_W_FIELD_TYPE) - private Integer wFieldType; + @javax.annotation.Nonnull + private TextFieldType wFieldType; public static final String SERIALIZED_NAME_FIELD_NAME = "FieldName"; @SerializedName(SERIALIZED_NAME_FIELD_NAME) + @javax.annotation.Nonnull private String fieldName; - public static final String SERIALIZED_NAME_W_L_C_I_D = "wLCID"; + public static final String SERIALIZED_NAME_STRINGS_COUNT = "StringsCount"; - @SerializedName(SERIALIZED_NAME_W_L_C_I_D) - private Integer wLCID; + @SerializedName(SERIALIZED_NAME_STRINGS_COUNT) + @javax.annotation.Nonnull + private BigDecimal stringsCount; public static final String SERIALIZED_NAME_STRINGS_RESULT = "StringsResult"; @SerializedName(SERIALIZED_NAME_STRINGS_RESULT) - private List stringsResult = null; + @javax.annotation.Nonnull + private List stringsResult; + + public static final String SERIALIZED_NAME_BUF_LENGTH = "Buf_Length"; + + @SerializedName(SERIALIZED_NAME_BUF_LENGTH) + @javax.annotation.Nonnull + private BigDecimal bufLength; public static final String SERIALIZED_NAME_BUF_TEXT = "Buf_Text"; @SerializedName(SERIALIZED_NAME_BUF_TEXT) + @javax.annotation.Nonnull private String bufText; - public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; + public static final String SERIALIZED_NAME_FIELD_MASK = "FieldMask"; + + @SerializedName(SERIALIZED_NAME_FIELD_MASK) + @javax.annotation.Nullable + private String fieldMask; + + public static final String SERIALIZED_NAME_VALIDITY = "Validity"; + + @SerializedName(SERIALIZED_NAME_VALIDITY) + @javax.annotation.Nullable + private Integer validity; + + public static final String SERIALIZED_NAME_IN_COMPARISON = "InComparison"; + + @SerializedName(SERIALIZED_NAME_IN_COMPARISON) + @javax.annotation.Nullable + private Integer inComparison; + + public static final String SERIALIZED_NAME_W_L_C_I_D = "wLCID"; + + @SerializedName(SERIALIZED_NAME_W_L_C_I_D) + @javax.annotation.Nullable + private Integer wLCID; - @SerializedName(SERIALIZED_NAME_FIELD_RECT) - private RectangleCoordinates fieldRect; + public static final String SERIALIZED_NAME_RESERVED2 = "Reserved2"; - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G = "RFID_OriginDG"; + @SerializedName(SERIALIZED_NAME_RESERVED2) + @javax.annotation.Nullable + private Integer reserved2; - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G) - private Integer rfIDOriginDG; + public static final String SERIALIZED_NAME_RESERVED3 = "Reserved3"; - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY = "RFID_OriginTagEntry"; + @SerializedName(SERIALIZED_NAME_RESERVED3) + @javax.annotation.Nullable + private Integer reserved3; + + public DocVisualExtendedField() {} + + public DocVisualExtendedField fieldType(@javax.annotation.Nonnull Integer fieldType) { + this.fieldType = fieldType; + return this; + } + + /** + * Get fieldType + * + * @return fieldType + */ + @javax.annotation.Nonnull + public Integer getFieldType() { + return fieldType; + } - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY) - private Integer rfIDOriginTagEntry; + public void setFieldType(@javax.annotation.Nonnull Integer fieldType) { + this.fieldType = fieldType; + } - public DocVisualExtendedField withWFieldType(Integer wFieldType) { + public DocVisualExtendedField wFieldType(@javax.annotation.Nonnull TextFieldType wFieldType) { this.wFieldType = wFieldType; return this; } @@ -69,59 +138,62 @@ public DocVisualExtendedField withWFieldType(Integer wFieldType) { * * @return wFieldType */ - public Integer getwFieldType() { + @javax.annotation.Nonnull + public TextFieldType getwFieldType() { return wFieldType; } - public void setwFieldType(Integer wFieldType) { + public void setwFieldType(@javax.annotation.Nonnull TextFieldType wFieldType) { this.wFieldType = wFieldType; } - public DocVisualExtendedField withFieldName(String fieldName) { + public DocVisualExtendedField fieldName(@javax.annotation.Nonnull String fieldName) { this.fieldName = fieldName; return this; } /** - * Field name. Only use to search values for fields with fieldType=50(other). In general, use - * wFieldType for lookup. + * Field symbolic name (null-terminated string) * * @return fieldName */ + @javax.annotation.Nonnull public String getFieldName() { return fieldName; } - public void setFieldName(String fieldName) { + public void setFieldName(@javax.annotation.Nonnull String fieldName) { this.fieldName = fieldName; } - public DocVisualExtendedField withWLCID(Integer wLCID) { - this.wLCID = wLCID; + public DocVisualExtendedField stringsCount(@javax.annotation.Nonnull BigDecimal stringsCount) { + this.stringsCount = stringsCount; return this; } /** - * Get wLCID + * Number of StringsResult array elements * - * @return wLCID + * @return stringsCount */ - public Integer getwLCID() { - return wLCID; + @javax.annotation.Nonnull + public BigDecimal getStringsCount() { + return stringsCount; } - public void setwLCID(Integer wLCID) { - this.wLCID = wLCID; + public void setStringsCount(@javax.annotation.Nonnull BigDecimal stringsCount) { + this.stringsCount = stringsCount; } - public DocVisualExtendedField withStringsResult(List stringsResult) { + public DocVisualExtendedField stringsResult( + @javax.annotation.Nonnull List stringsResult) { this.stringsResult = stringsResult; return this; } public DocVisualExtendedField addStringsResultItem(StringRecognitionResult stringsResultItem) { if (this.stringsResult == null) { - this.stringsResult = new ArrayList(); + this.stringsResult = new ArrayList<>(); } this.stringsResult.add(stringsResultItem); return this; @@ -133,16 +205,36 @@ public DocVisualExtendedField addStringsResultItem(StringRecognitionResult strin * * @return stringsResult */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getStringsResult() { return stringsResult; } - public void setStringsResult(List stringsResult) { + public void setStringsResult( + @javax.annotation.Nonnull List stringsResult) { this.stringsResult = stringsResult; } - public DocVisualExtendedField withBufText(String bufText) { + public DocVisualExtendedField bufLength(@javax.annotation.Nonnull BigDecimal bufLength) { + this.bufLength = bufLength; + return this; + } + + /** + * Buf_Text text string length + * + * @return bufLength + */ + @javax.annotation.Nonnull + public BigDecimal getBufLength() { + return bufLength; + } + + public void setBufLength(@javax.annotation.Nonnull BigDecimal bufLength) { + this.bufLength = bufLength; + } + + public DocVisualExtendedField bufText(@javax.annotation.Nonnull String bufText) { this.bufText = bufText; return this; } @@ -153,74 +245,131 @@ public DocVisualExtendedField withBufText(String bufText) { * * @return bufText */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public String getBufText() { return bufText; } - public void setBufText(String bufText) { + public void setBufText(@javax.annotation.Nonnull String bufText) { this.bufText = bufText; } - public DocVisualExtendedField withFieldRect(RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; + public DocVisualExtendedField fieldMask(@javax.annotation.Nullable String fieldMask) { + this.fieldMask = fieldMask; + return this; + } + + /** + * Get fieldMask + * + * @return fieldMask + */ + @javax.annotation.Nullable + public String getFieldMask() { + return fieldMask; + } + + public void setFieldMask(@javax.annotation.Nullable String fieldMask) { + this.fieldMask = fieldMask; + } + + public DocVisualExtendedField validity(@javax.annotation.Nullable Integer validity) { + this.validity = validity; + return this; + } + + /** + * Get validity + * + * @return validity + */ + @javax.annotation.Nullable + public Integer getValidity() { + return validity; + } + + public void setValidity(@javax.annotation.Nullable Integer validity) { + this.validity = validity; + } + + public DocVisualExtendedField inComparison(@javax.annotation.Nullable Integer inComparison) { + this.inComparison = inComparison; + return this; + } + + /** + * Get inComparison + * + * @return inComparison + */ + @javax.annotation.Nullable + public Integer getInComparison() { + return inComparison; + } + + public void setInComparison(@javax.annotation.Nullable Integer inComparison) { + this.inComparison = inComparison; + } + + public DocVisualExtendedField wLCID(@javax.annotation.Nullable Integer wLCID) { + this.wLCID = wLCID; return this; } /** - * Get fieldRect + * Get wLCID * - * @return fieldRect + * @return wLCID */ @javax.annotation.Nullable - public RectangleCoordinates getFieldRect() { - return fieldRect; + public Integer getwLCID() { + return wLCID; } - public void setFieldRect(RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; + public void setwLCID(@javax.annotation.Nullable Integer wLCID) { + this.wLCID = wLCID; } - public DocVisualExtendedField withRfIDOriginDG(Integer rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; + public DocVisualExtendedField reserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; return this; } /** - * Origin data group information. Only for Result.RFID_TEXT results. + * Get reserved2 * - * @return rfIDOriginDG + * @return reserved2 */ @javax.annotation.Nullable - public Integer getRfIDOriginDG() { - return rfIDOriginDG; + public Integer getReserved2() { + return reserved2; } - public void setRfIDOriginDG(Integer rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; + public void setReserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; } - public DocVisualExtendedField withRfIDOriginTagEntry(Integer rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; + public DocVisualExtendedField reserved3(@javax.annotation.Nullable Integer reserved3) { + this.reserved3 = reserved3; return this; } /** - * Index of the text field record in origin data group. Only for Result.RFID_TEXT results. + * Get reserved3 * - * @return rfIDOriginTagEntry + * @return reserved3 */ @javax.annotation.Nullable - public Integer getRfIDOriginTagEntry() { - return rfIDOriginTagEntry; + public Integer getReserved3() { + return reserved3; } - public void setRfIDOriginTagEntry(Integer rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; + public void setReserved3(@javax.annotation.Nullable Integer reserved3) { + this.reserved3 = reserved3; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -228,41 +377,56 @@ public boolean equals(java.lang.Object o) { return false; } DocVisualExtendedField docVisualExtendedField = (DocVisualExtendedField) o; - return Objects.equals(this.wFieldType, docVisualExtendedField.wFieldType) + return Objects.equals(this.fieldType, docVisualExtendedField.fieldType) + && Objects.equals(this.wFieldType, docVisualExtendedField.wFieldType) && Objects.equals(this.fieldName, docVisualExtendedField.fieldName) - && Objects.equals(this.wLCID, docVisualExtendedField.wLCID) + && Objects.equals(this.stringsCount, docVisualExtendedField.stringsCount) && Objects.equals(this.stringsResult, docVisualExtendedField.stringsResult) + && Objects.equals(this.bufLength, docVisualExtendedField.bufLength) && Objects.equals(this.bufText, docVisualExtendedField.bufText) - && Objects.equals(this.fieldRect, docVisualExtendedField.fieldRect) - && Objects.equals(this.rfIDOriginDG, docVisualExtendedField.rfIDOriginDG) - && Objects.equals(this.rfIDOriginTagEntry, docVisualExtendedField.rfIDOriginTagEntry); + && Objects.equals(this.fieldMask, docVisualExtendedField.fieldMask) + && Objects.equals(this.validity, docVisualExtendedField.validity) + && Objects.equals(this.inComparison, docVisualExtendedField.inComparison) + && Objects.equals(this.wLCID, docVisualExtendedField.wLCID) + && Objects.equals(this.reserved2, docVisualExtendedField.reserved2) + && Objects.equals(this.reserved3, docVisualExtendedField.reserved3); } @Override public int hashCode() { return Objects.hash( + fieldType, wFieldType, fieldName, - wLCID, + stringsCount, stringsResult, + bufLength, bufText, - fieldRect, - rfIDOriginDG, - rfIDOriginTagEntry); + fieldMask, + validity, + inComparison, + wLCID, + reserved2, + reserved3); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class DocVisualExtendedField {\n"); + sb.append(" fieldType: ").append(toIndentedString(fieldType)).append("\n"); sb.append(" wFieldType: ").append(toIndentedString(wFieldType)).append("\n"); sb.append(" fieldName: ").append(toIndentedString(fieldName)).append("\n"); - sb.append(" wLCID: ").append(toIndentedString(wLCID)).append("\n"); + sb.append(" stringsCount: ").append(toIndentedString(stringsCount)).append("\n"); sb.append(" stringsResult: ").append(toIndentedString(stringsResult)).append("\n"); + sb.append(" bufLength: ").append(toIndentedString(bufLength)).append("\n"); sb.append(" bufText: ").append(toIndentedString(bufText)).append("\n"); - sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); - sb.append(" rfIDOriginDG: ").append(toIndentedString(rfIDOriginDG)).append("\n"); - sb.append(" rfIDOriginTagEntry: ").append(toIndentedString(rfIDOriginTagEntry)).append("\n"); + sb.append(" fieldMask: ").append(toIndentedString(fieldMask)).append("\n"); + sb.append(" validity: ").append(toIndentedString(validity)).append("\n"); + sb.append(" inComparison: ").append(toIndentedString(inComparison)).append("\n"); + sb.append(" wLCID: ").append(toIndentedString(wLCID)).append("\n"); + sb.append(" reserved2: ").append(toIndentedString(reserved2)).append("\n"); + sb.append(" reserved3: ").append(toIndentedString(reserved3)).append("\n"); sb.append("}"); return sb.toString(); } @@ -270,10 +434,115 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldType"); + openapiFields.add("wFieldType"); + openapiFields.add("FieldName"); + openapiFields.add("StringsCount"); + openapiFields.add("StringsResult"); + openapiFields.add("Buf_Length"); + openapiFields.add("Buf_Text"); + openapiFields.add("FieldMask"); + openapiFields.add("Validity"); + openapiFields.add("InComparison"); + openapiFields.add("wLCID"); + openapiFields.add("Reserved2"); + openapiFields.add("Reserved3"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FieldType"); + openapiRequiredFields.add("wFieldType"); + openapiRequiredFields.add("FieldName"); + openapiRequiredFields.add("StringsCount"); + openapiRequiredFields.add("StringsResult"); + openapiRequiredFields.add("Buf_Length"); + openapiRequiredFields.add("Buf_Text"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocVisualExtendedField + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocVisualExtendedField.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocVisualExtendedField is not found in the empty JSON string", + DocVisualExtendedField.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `wFieldType` + TextFieldType.validateJsonElement(jsonObj.get("wFieldType")); + if (!jsonObj.get("FieldName").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `FieldName` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("FieldName").toString())); + } + // ensure the json data is an array + if (!jsonObj.get("StringsResult").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `StringsResult` to be an array in the JSON string but got `%s`", + jsonObj.get("StringsResult").toString())); + } + + JsonArray jsonArraystringsResult = jsonObj.getAsJsonArray("StringsResult"); + // validate the required field `StringsResult` (array) + for (int i = 0; i < jsonArraystringsResult.size(); i++) { + StringRecognitionResult.validateJsonElement(jsonArraystringsResult.get(i)); + } + ; + if (!jsonObj.get("Buf_Text").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Buf_Text` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Buf_Text").toString())); + } + if ((jsonObj.get("FieldMask") != null && !jsonObj.get("FieldMask").isJsonNull()) + && !jsonObj.get("FieldMask").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `FieldMask` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("FieldMask").toString())); + } + } + + /** + * Create an instance of DocVisualExtendedField given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocVisualExtendedField + * @throws IOException if the JSON string is invalid with respect to DocVisualExtendedField + */ + public static DocVisualExtendedField fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocVisualExtendedField.class); + } + + /** + * Convert an instance of DocVisualExtendedField to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java new file mode 100644 index 00000000..b31ef7ab --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java @@ -0,0 +1,228 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure and serves for storing information from one text data field. Variant with field logical + * type and field rectangular area coordinates on the image. + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class DocVisualExtendedFieldRect extends DocVisualExtendedField { + public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; + + @SerializedName(SERIALIZED_NAME_FIELD_RECT) + @javax.annotation.Nullable + private RectangleCoordinates fieldRect; + + public DocVisualExtendedFieldRect() {} + + public DocVisualExtendedFieldRect fieldRect( + @javax.annotation.Nullable RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + return this; + } + + /** + * Get fieldRect + * + * @return fieldRect + */ + @javax.annotation.Nullable + public RectangleCoordinates getFieldRect() { + return fieldRect; + } + + public void setFieldRect(@javax.annotation.Nullable RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocVisualExtendedFieldRect docVisualExtendedFieldRect = (DocVisualExtendedFieldRect) o; + return Objects.equals(this.fieldRect, docVisualExtendedFieldRect.fieldRect) && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(fieldRect, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DocVisualExtendedFieldRect {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldType"); + openapiFields.add("wFieldType"); + openapiFields.add("FieldName"); + openapiFields.add("StringsCount"); + openapiFields.add("StringsResult"); + openapiFields.add("Buf_Length"); + openapiFields.add("Buf_Text"); + openapiFields.add("FieldMask"); + openapiFields.add("Validity"); + openapiFields.add("InComparison"); + openapiFields.add("wLCID"); + openapiFields.add("Reserved2"); + openapiFields.add("Reserved3"); + openapiFields.add("FieldRect"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FieldType"); + openapiRequiredFields.add("wFieldType"); + openapiRequiredFields.add("FieldName"); + openapiRequiredFields.add("StringsCount"); + openapiRequiredFields.add("StringsResult"); + openapiRequiredFields.add("Buf_Length"); + openapiRequiredFields.add("Buf_Text"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocVisualExtendedFieldRect + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocVisualExtendedFieldRect.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocVisualExtendedFieldRect is not found in the empty JSON string", + DocVisualExtendedFieldRect.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocVisualExtendedFieldRect.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocVisualExtendedFieldRect` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocVisualExtendedFieldRect.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `FieldRect` + if (jsonObj.get("FieldRect") != null && !jsonObj.get("FieldRect").isJsonNull()) { + RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocVisualExtendedFieldRect.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocVisualExtendedFieldRect' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldRect.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocVisualExtendedFieldRect value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocVisualExtendedFieldRect read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocVisualExtendedFieldRect given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocVisualExtendedFieldRect + * @throws IOException if the JSON string is invalid with respect to DocVisualExtendedFieldRect + */ + public static DocVisualExtendedFieldRect fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocVisualExtendedFieldRect.class); + } + + /** + * Convert an instance of DocVisualExtendedFieldRect to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java new file mode 100644 index 00000000..ec14dd05 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java @@ -0,0 +1,320 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure and serves for storing information from one text data field. Variant with field logical + * type and RFID data. + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class DocVisualExtendedFieldRfid extends DocVisualExtendedField { + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G = "RFID_OriginDG"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G) + @javax.annotation.Nonnull + private RfidDataGroupTypeTag rfIDOriginDG; + + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG = "RFID_OriginDGTag"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG) + @javax.annotation.Nullable + private Integer rfIDOriginDGTag; + + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY = "RFID_OriginTagEntry"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY) + @javax.annotation.Nonnull + private BigDecimal rfIDOriginTagEntry; + + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW = "RFID_OriginEntryView"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW) + @javax.annotation.Nullable + private Integer rfIDOriginEntryView; + + public DocVisualExtendedFieldRfid() {} + + public DocVisualExtendedFieldRfid rfIDOriginDG( + @javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { + this.rfIDOriginDG = rfIDOriginDG; + return this; + } + + /** + * Get rfIDOriginDG + * + * @return rfIDOriginDG + */ + @javax.annotation.Nonnull + public RfidDataGroupTypeTag getRfIDOriginDG() { + return rfIDOriginDG; + } + + public void setRfIDOriginDG(@javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { + this.rfIDOriginDG = rfIDOriginDG; + } + + public DocVisualExtendedFieldRfid rfIDOriginDGTag( + @javax.annotation.Nullable Integer rfIDOriginDGTag) { + this.rfIDOriginDGTag = rfIDOriginDGTag; + return this; + } + + /** + * Get rfIDOriginDGTag + * + * @return rfIDOriginDGTag + */ + @javax.annotation.Nullable + public Integer getRfIDOriginDGTag() { + return rfIDOriginDGTag; + } + + public void setRfIDOriginDGTag(@javax.annotation.Nullable Integer rfIDOriginDGTag) { + this.rfIDOriginDGTag = rfIDOriginDGTag; + } + + public DocVisualExtendedFieldRfid rfIDOriginTagEntry( + @javax.annotation.Nonnull BigDecimal rfIDOriginTagEntry) { + this.rfIDOriginTagEntry = rfIDOriginTagEntry; + return this; + } + + /** + * Record index of the text field source in the data group + * + * @return rfIDOriginTagEntry + */ + @javax.annotation.Nonnull + public BigDecimal getRfIDOriginTagEntry() { + return rfIDOriginTagEntry; + } + + public void setRfIDOriginTagEntry(@javax.annotation.Nonnull BigDecimal rfIDOriginTagEntry) { + this.rfIDOriginTagEntry = rfIDOriginTagEntry; + } + + public DocVisualExtendedFieldRfid rfIDOriginEntryView( + @javax.annotation.Nullable Integer rfIDOriginEntryView) { + this.rfIDOriginEntryView = rfIDOriginEntryView; + return this; + } + + /** + * Get rfIDOriginEntryView + * + * @return rfIDOriginEntryView + */ + @javax.annotation.Nullable + public Integer getRfIDOriginEntryView() { + return rfIDOriginEntryView; + } + + public void setRfIDOriginEntryView(@javax.annotation.Nullable Integer rfIDOriginEntryView) { + this.rfIDOriginEntryView = rfIDOriginEntryView; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocVisualExtendedFieldRfid docVisualExtendedFieldRfid = (DocVisualExtendedFieldRfid) o; + return Objects.equals(this.rfIDOriginDG, docVisualExtendedFieldRfid.rfIDOriginDG) + && Objects.equals(this.rfIDOriginDGTag, docVisualExtendedFieldRfid.rfIDOriginDGTag) + && Objects.equals(this.rfIDOriginTagEntry, docVisualExtendedFieldRfid.rfIDOriginTagEntry) + && Objects.equals(this.rfIDOriginEntryView, docVisualExtendedFieldRfid.rfIDOriginEntryView) + && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash( + rfIDOriginDG, rfIDOriginDGTag, rfIDOriginTagEntry, rfIDOriginEntryView, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DocVisualExtendedFieldRfid {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" rfIDOriginDG: ").append(toIndentedString(rfIDOriginDG)).append("\n"); + sb.append(" rfIDOriginDGTag: ").append(toIndentedString(rfIDOriginDGTag)).append("\n"); + sb.append(" rfIDOriginTagEntry: ").append(toIndentedString(rfIDOriginTagEntry)).append("\n"); + sb.append(" rfIDOriginEntryView: ") + .append(toIndentedString(rfIDOriginEntryView)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldType"); + openapiFields.add("wFieldType"); + openapiFields.add("FieldName"); + openapiFields.add("StringsCount"); + openapiFields.add("StringsResult"); + openapiFields.add("Buf_Length"); + openapiFields.add("Buf_Text"); + openapiFields.add("FieldMask"); + openapiFields.add("Validity"); + openapiFields.add("InComparison"); + openapiFields.add("wLCID"); + openapiFields.add("Reserved2"); + openapiFields.add("Reserved3"); + openapiFields.add("RFID_OriginDG"); + openapiFields.add("RFID_OriginDGTag"); + openapiFields.add("RFID_OriginTagEntry"); + openapiFields.add("RFID_OriginEntryView"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("RFID_OriginDG"); + openapiRequiredFields.add("RFID_OriginTagEntry"); + openapiRequiredFields.add("FieldType"); + openapiRequiredFields.add("wFieldType"); + openapiRequiredFields.add("FieldName"); + openapiRequiredFields.add("StringsCount"); + openapiRequiredFields.add("StringsResult"); + openapiRequiredFields.add("Buf_Length"); + openapiRequiredFields.add("Buf_Text"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocVisualExtendedFieldRfid + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocVisualExtendedFieldRfid.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocVisualExtendedFieldRfid is not found in the empty JSON string", + DocVisualExtendedFieldRfid.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocVisualExtendedFieldRfid.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocVisualExtendedFieldRfid` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocVisualExtendedFieldRfid.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `RFID_OriginDG` + RfidDataGroupTypeTag.validateJsonElement(jsonObj.get("RFID_OriginDG")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocVisualExtendedFieldRfid.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocVisualExtendedFieldRfid' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldRfid.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocVisualExtendedFieldRfid value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocVisualExtendedFieldRfid read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocVisualExtendedFieldRfid given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocVisualExtendedFieldRfid + * @throws IOException if the JSON string is invalid with respect to DocVisualExtendedFieldRfid + */ + public static DocVisualExtendedFieldRfid fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocVisualExtendedFieldRfid.class); + } + + /** + * Convert an instance of DocVisualExtendedFieldRfid to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java new file mode 100644 index 00000000..194af490 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java @@ -0,0 +1,281 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class DocVisualExtendedInfoPArrayFieldsInner extends AbstractOpenApiSchema { + private static final Logger log = + Logger.getLogger(DocVisualExtendedInfoPArrayFieldsInner.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocVisualExtendedInfoPArrayFieldsInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocVisualExtendedInfoPArrayFieldsInner' and its + // subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterDocVisualExtendedFieldRect = + gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldRect.class)); + final TypeAdapter adapterDocVisualExtendedFieldRfid = + gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldRfid.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocVisualExtendedInfoPArrayFieldsInner value) + throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `DocVisualExtendedFieldRect` + if (value.getActualInstance() instanceof DocVisualExtendedFieldRect) { + JsonElement element = + adapterDocVisualExtendedFieldRect.toJsonTree( + (DocVisualExtendedFieldRect) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `DocVisualExtendedFieldRfid` + if (value.getActualInstance() instanceof DocVisualExtendedFieldRfid) { + JsonElement element = + adapterDocVisualExtendedFieldRfid.toJsonTree( + (DocVisualExtendedFieldRfid) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException( + "Failed to serialize as the type doesn't match oneOf schemas: DocVisualExtendedFieldRect, DocVisualExtendedFieldRfid"); + } + + @Override + public DocVisualExtendedInfoPArrayFieldsInner read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize DocVisualExtendedFieldRect + try { + // validate the JSON object to see if any exception is thrown + DocVisualExtendedFieldRect.validateJsonElement(jsonElement); + actualAdapter = adapterDocVisualExtendedFieldRect; + match++; + log.log(Level.FINER, "Input data matches schema 'DocVisualExtendedFieldRect'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for DocVisualExtendedFieldRect failed with `%s`.", + e.getMessage())); + log.log( + Level.FINER, + "Input data does not match schema 'DocVisualExtendedFieldRect'", + e); + } + // deserialize DocVisualExtendedFieldRfid + try { + // validate the JSON object to see if any exception is thrown + DocVisualExtendedFieldRfid.validateJsonElement(jsonElement); + actualAdapter = adapterDocVisualExtendedFieldRfid; + match++; + log.log(Level.FINER, "Input data matches schema 'DocVisualExtendedFieldRfid'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for DocVisualExtendedFieldRfid failed with `%s`.", + e.getMessage())); + log.log( + Level.FINER, + "Input data does not match schema 'DocVisualExtendedFieldRfid'", + e); + } + + if (match == 1) { + DocVisualExtendedInfoPArrayFieldsInner ret = + new DocVisualExtendedInfoPArrayFieldsInner(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException( + String.format( + "Failed deserialization for DocVisualExtendedInfoPArrayFieldsInner: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public DocVisualExtendedInfoPArrayFieldsInner() { + super("oneOf", Boolean.FALSE); + } + + public DocVisualExtendedInfoPArrayFieldsInner(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("DocVisualExtendedFieldRect", DocVisualExtendedFieldRect.class); + schemas.put("DocVisualExtendedFieldRfid", DocVisualExtendedFieldRfid.class); + } + + @Override + public Map> getSchemas() { + return DocVisualExtendedInfoPArrayFieldsInner.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: DocVisualExtendedFieldRect, DocVisualExtendedFieldRfid + * + *

It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof DocVisualExtendedFieldRect) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof DocVisualExtendedFieldRfid) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException( + "Invalid instance type. Must be DocVisualExtendedFieldRect, DocVisualExtendedFieldRfid"); + } + + /** + * Get the actual instance, which can be the following: DocVisualExtendedFieldRect, + * DocVisualExtendedFieldRfid + * + * @return The actual instance (DocVisualExtendedFieldRect, DocVisualExtendedFieldRfid) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `DocVisualExtendedFieldRect`. If the actual instance is not + * `DocVisualExtendedFieldRect`, the ClassCastException will be thrown. + * + * @return The actual instance of `DocVisualExtendedFieldRect` + * @throws ClassCastException if the instance is not `DocVisualExtendedFieldRect` + */ + public DocVisualExtendedFieldRect getDocVisualExtendedFieldRect() throws ClassCastException { + return (DocVisualExtendedFieldRect) super.getActualInstance(); + } + + /** + * Get the actual instance of `DocVisualExtendedFieldRfid`. If the actual instance is not + * `DocVisualExtendedFieldRfid`, the ClassCastException will be thrown. + * + * @return The actual instance of `DocVisualExtendedFieldRfid` + * @throws ClassCastException if the instance is not `DocVisualExtendedFieldRfid` + */ + public DocVisualExtendedFieldRfid getDocVisualExtendedFieldRfid() throws ClassCastException { + return (DocVisualExtendedFieldRfid) super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * DocVisualExtendedInfoPArrayFieldsInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with DocVisualExtendedFieldRect + try { + DocVisualExtendedFieldRect.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for DocVisualExtendedFieldRect failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with DocVisualExtendedFieldRfid + try { + DocVisualExtendedFieldRfid.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for DocVisualExtendedFieldRfid failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException( + String.format( + "The JSON string is invalid for DocVisualExtendedInfoPArrayFieldsInner with oneOf schemas: DocVisualExtendedFieldRect, DocVisualExtendedFieldRfid. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of DocVisualExtendedInfoPArrayFieldsInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocVisualExtendedInfoPArrayFieldsInner + * @throws IOException if the JSON string is invalid with respect to + * DocVisualExtendedInfoPArrayFieldsInner + */ + public static DocVisualExtendedInfoPArrayFieldsInner fromJson(String jsonString) + throws IOException { + return JSON.getGson().fromJson(jsonString, DocVisualExtendedInfoPArrayFieldsInner.class); + } + + /** + * Convert an instance of DocVisualExtendedInfoPArrayFieldsInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java new file mode 100644 index 00000000..6b4bdab1 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java @@ -0,0 +1,208 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** DocumentBinaryInfoResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class DocumentBinaryInfoResult extends ResultItem { + public static final String SERIALIZED_NAME_TDOC_BINARY_INFO = "TDocBinaryInfo"; + + @SerializedName(SERIALIZED_NAME_TDOC_BINARY_INFO) + @javax.annotation.Nonnull + private TDocBinaryInfo tdocBinaryInfo; + + public DocumentBinaryInfoResult() {} + + public DocumentBinaryInfoResult tdocBinaryInfo( + @javax.annotation.Nonnull TDocBinaryInfo tdocBinaryInfo) { + this.tdocBinaryInfo = tdocBinaryInfo; + return this; + } + + /** + * Get tdocBinaryInfo + * + * @return tdocBinaryInfo + */ + @javax.annotation.Nonnull + public TDocBinaryInfo getTdocBinaryInfo() { + return tdocBinaryInfo; + } + + public void setTdocBinaryInfo(@javax.annotation.Nonnull TDocBinaryInfo tdocBinaryInfo) { + this.tdocBinaryInfo = tdocBinaryInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocumentBinaryInfoResult documentBinaryInfoResult = (DocumentBinaryInfoResult) o; + return Objects.equals(this.tdocBinaryInfo, documentBinaryInfoResult.tdocBinaryInfo) + && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(tdocBinaryInfo, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DocumentBinaryInfoResult {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" tdocBinaryInfo: ").append(toIndentedString(tdocBinaryInfo)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("TDocBinaryInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("TDocBinaryInfo"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocumentBinaryInfoResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocumentBinaryInfoResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocumentBinaryInfoResult is not found in the empty JSON string", + DocumentBinaryInfoResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocumentBinaryInfoResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocumentBinaryInfoResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocumentBinaryInfoResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocumentBinaryInfoResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocumentBinaryInfoResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocumentBinaryInfoResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocumentBinaryInfoResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocumentBinaryInfoResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocumentBinaryInfoResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocumentBinaryInfoResult + * @throws IOException if the JSON string is invalid with respect to DocumentBinaryInfoResult + */ + public static DocumentBinaryInfoResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocumentBinaryInfoResult.class); + } + + /** + * Convert an instance of DocumentBinaryInfoResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java old mode 100755 new mode 100644 index 484c81f7..90bed646 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,47 +12,102 @@ package com.regula.documentreader.webclient.model; -public class DocumentFormat { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Defining the geometric format of documents in accordance with ISO / IEC 7810 */ +@JsonAdapter(DocumentFormat.Adapter.class) +public enum DocumentFormat { + + /** Unknown document format */ + UNKNOWN(-1), /** ID1 document format */ - public static final int ID1 = 0; + ID1(0), /** ID2 document format */ - public static final int ID2 = 1; + ID2(1), /** ID3 document format */ - public static final int ID3 = 2; + ID3(2), /** Undefined document format */ - public static final int NON = 3; + NON(3), /** A4 document format */ - public static final int A4 = 4; + A4(4), /** ID3 double document format */ - public static final int ID3_X2 = 5; + ID3_X2(5), /** ID1 format document rotated 90 ° */ - public static final int ID1_90 = 10; + ID1_90(10), /** ID1 format document rotated 180 ° */ - public static final int ID1_180 = 11; + ID1_180(11), /** ID1 format document rotated 270 ° */ - public static final int ID1_270 = 12; + ID1_270(12), /** ID2 format document rotated 90 ° */ - public static final int ID2_180 = 13; + ID2_180(13), /** ID3 format document rotated 180 ° */ - public static final int ID3_180 = 14; + ID3_180(14), /** Arbitrary format */ - public static final int CUSTOM = 1000; + CUSTOM(1000), /** * Flexible format. Standard formats can be resized during cropping, depending on various factors: * light, background... */ - public static final int FLEXIBLE = 1002; + FLEXIBLE(1002); + + private Integer value; + + DocumentFormat(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DocumentFormat fromValue(Integer value) { + for (DocumentFormat b : DocumentFormat.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DocumentFormat enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DocumentFormat read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return DocumentFormat.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + DocumentFormat.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImage.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImage.java index 4577bafb..c0f6840d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImage.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImage.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,22 +12,42 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** DocumentImage */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DocumentImage { public static final String SERIALIZED_NAME_IMAGE = "image"; @SerializedName(SERIALIZED_NAME_IMAGE) + @javax.annotation.Nonnull private String image; public static final String SERIALIZED_NAME_FORMAT = "format"; @SerializedName(SERIALIZED_NAME_FORMAT) + @javax.annotation.Nullable private String format; - public DocumentImage withImage(String image) { + public DocumentImage() {} + + public DocumentImage image(@javax.annotation.Nonnull String image) { this.image = image; return this; } @@ -37,15 +57,16 @@ public DocumentImage withImage(String image) { * * @return image */ + @javax.annotation.Nonnull public String getImage() { return image; } - public void setImage(String image) { + public void setImage(@javax.annotation.Nonnull String image) { this.image = image; } - public DocumentImage withFormat(String format) { + public DocumentImage format(@javax.annotation.Nullable String format) { this.format = format; return this; } @@ -60,12 +81,12 @@ public String getFormat() { return format; } - public void setFormat(String format) { + public void setFormat(@javax.annotation.Nullable String format) { this.format = format; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -95,10 +116,126 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("image"); + openapiFields.add("format"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("image"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocumentImage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocumentImage.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocumentImage is not found in the empty JSON string", + DocumentImage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocumentImage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocumentImage` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocumentImage.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("image").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `image` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("image").toString())); + } + if ((jsonObj.get("format") != null && !jsonObj.get("format").isJsonNull()) + && !jsonObj.get("format").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `format` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("format").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocumentImage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocumentImage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocumentImage.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocumentImage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocumentImage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocumentImage given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocumentImage + * @throws IOException if the JSON string is invalid with respect to DocumentImage + */ + public static DocumentImage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocumentImage.class); + } + + /** + * Convert an instance of DocumentImage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImageResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImageResult.java old mode 100755 new mode 100644 index 08a5cf40..4782b668 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImageResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImageResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,37 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Contains document image. */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DocumentImageResult extends ResultItem { public static final String SERIALIZED_NAME_RAW_IMAGE_CONTAINER = "RawImageContainer"; @SerializedName(SERIALIZED_NAME_RAW_IMAGE_CONTAINER) + @javax.annotation.Nonnull private ImageData rawImageContainer; - public DocumentImageResult withRawImageContainer(ImageData rawImageContainer) { + public DocumentImageResult() {} + + public DocumentImageResult rawImageContainer( + @javax.annotation.Nonnull ImageData rawImageContainer) { this.rawImageContainer = rawImageContainer; return this; } @@ -32,16 +52,17 @@ public DocumentImageResult withRawImageContainer(ImageData rawImageContainer) { * * @return rawImageContainer */ + @javax.annotation.Nonnull public ImageData getRawImageContainer() { return rawImageContainer; } - public void setRawImageContainer(ImageData rawImageContainer) { + public void setRawImageContainer(@javax.annotation.Nonnull ImageData rawImageContainer) { this.rawImageContainer = rawImageContainer; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -71,10 +92,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("RawImageContainer"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("RawImageContainer"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocumentImageResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocumentImageResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocumentImageResult is not found in the empty JSON string", + DocumentImageResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocumentImageResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocumentImageResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocumentImageResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocumentImageResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocumentImageResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocumentImageResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocumentImageResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocumentImageResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocumentImageResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocumentImageResult + * @throws IOException if the JSON string is invalid with respect to DocumentImageResult + */ + public static DocumentImageResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocumentImageResult.class); + } + + /** + * Convert an instance of DocumentImageResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPosition.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPosition.java index e7babc31..efc82ca1 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPosition.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPosition.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,63 +12,121 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** DocumentPosition */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DocumentPosition { public static final String SERIALIZED_NAME_DOC_FORMAT = "docFormat"; @SerializedName(SERIALIZED_NAME_DOC_FORMAT) - private Integer docFormat; + @javax.annotation.Nonnull + private DocumentFormat docFormat; public static final String SERIALIZED_NAME_ANGLE = "Angle"; @SerializedName(SERIALIZED_NAME_ANGLE) + @javax.annotation.Nonnull private BigDecimal angle; public static final String SERIALIZED_NAME_WIDTH = "Width"; @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nonnull private Integer width; public static final String SERIALIZED_NAME_HEIGHT = "Height"; @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nonnull private Integer height; public static final String SERIALIZED_NAME_CENTER = "Center"; @SerializedName(SERIALIZED_NAME_CENTER) + @javax.annotation.Nonnull private Point center; public static final String SERIALIZED_NAME_LEFT_BOTTOM = "LeftBottom"; @SerializedName(SERIALIZED_NAME_LEFT_BOTTOM) + @javax.annotation.Nonnull private Point leftBottom; public static final String SERIALIZED_NAME_LEFT_TOP = "LeftTop"; @SerializedName(SERIALIZED_NAME_LEFT_TOP) + @javax.annotation.Nonnull private Point leftTop; public static final String SERIALIZED_NAME_RIGHT_BOTTOM = "RightBottom"; @SerializedName(SERIALIZED_NAME_RIGHT_BOTTOM) + @javax.annotation.Nonnull private Point rightBottom; public static final String SERIALIZED_NAME_RIGHT_TOP = "RightTop"; @SerializedName(SERIALIZED_NAME_RIGHT_TOP) + @javax.annotation.Nonnull private Point rightTop; public static final String SERIALIZED_NAME_DPI = "Dpi"; @SerializedName(SERIALIZED_NAME_DPI) + @javax.annotation.Nonnull private Integer dpi; - public DocumentPosition withDocFormat(Integer docFormat) { + public static final String SERIALIZED_NAME_INVERSE = "Inverse"; + + @SerializedName(SERIALIZED_NAME_INVERSE) + @javax.annotation.Nullable + private Integer inverse; + + public static final String SERIALIZED_NAME_OBJ_AREA = "ObjArea"; + + @SerializedName(SERIALIZED_NAME_OBJ_AREA) + @javax.annotation.Nullable + private Integer objArea; + + public static final String SERIALIZED_NAME_OBJ_INT_ANGLE_DEV = "ObjIntAngleDev"; + + @SerializedName(SERIALIZED_NAME_OBJ_INT_ANGLE_DEV) + @javax.annotation.Nullable + private Integer objIntAngleDev; + + public static final String SERIALIZED_NAME_PERSPECTIVE_TR = "PerspectiveTr"; + + @SerializedName(SERIALIZED_NAME_PERSPECTIVE_TR) + @javax.annotation.Nullable + private Integer perspectiveTr; + + public static final String SERIALIZED_NAME_RESULT_STATUS = "ResultStatus"; + + @SerializedName(SERIALIZED_NAME_RESULT_STATUS) + @javax.annotation.Nullable + private Integer resultStatus; + + public DocumentPosition() {} + + public DocumentPosition docFormat(@javax.annotation.Nonnull DocumentFormat docFormat) { this.docFormat = docFormat; return this; } @@ -78,73 +136,73 @@ public DocumentPosition withDocFormat(Integer docFormat) { * * @return docFormat */ - @javax.annotation.Nullable - public Integer getDocFormat() { + @javax.annotation.Nonnull + public DocumentFormat getDocFormat() { return docFormat; } - public void setDocFormat(Integer docFormat) { + public void setDocFormat(@javax.annotation.Nonnull DocumentFormat docFormat) { this.docFormat = docFormat; } - public DocumentPosition withAngle(BigDecimal angle) { + public DocumentPosition angle(@javax.annotation.Nonnull BigDecimal angle) { this.angle = angle; return this; } /** - * Get angle + * Document rotation angle * * @return angle */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public BigDecimal getAngle() { return angle; } - public void setAngle(BigDecimal angle) { + public void setAngle(@javax.annotation.Nonnull BigDecimal angle) { this.angle = angle; } - public DocumentPosition withWidth(Integer width) { + public DocumentPosition width(@javax.annotation.Nonnull Integer width) { this.width = width; return this; } /** - * Get width + * Document width * * @return width */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getWidth() { return width; } - public void setWidth(Integer width) { + public void setWidth(@javax.annotation.Nonnull Integer width) { this.width = width; } - public DocumentPosition withHeight(Integer height) { + public DocumentPosition height(@javax.annotation.Nonnull Integer height) { this.height = height; return this; } /** - * Get height + * Document height * * @return height */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getHeight() { return height; } - public void setHeight(Integer height) { + public void setHeight(@javax.annotation.Nonnull Integer height) { this.height = height; } - public DocumentPosition withCenter(Point center) { + public DocumentPosition center(@javax.annotation.Nonnull Point center) { this.center = center; return this; } @@ -154,16 +212,16 @@ public DocumentPosition withCenter(Point center) { * * @return center */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Point getCenter() { return center; } - public void setCenter(Point center) { + public void setCenter(@javax.annotation.Nonnull Point center) { this.center = center; } - public DocumentPosition withLeftBottom(Point leftBottom) { + public DocumentPosition leftBottom(@javax.annotation.Nonnull Point leftBottom) { this.leftBottom = leftBottom; return this; } @@ -173,16 +231,16 @@ public DocumentPosition withLeftBottom(Point leftBottom) { * * @return leftBottom */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Point getLeftBottom() { return leftBottom; } - public void setLeftBottom(Point leftBottom) { + public void setLeftBottom(@javax.annotation.Nonnull Point leftBottom) { this.leftBottom = leftBottom; } - public DocumentPosition withLeftTop(Point leftTop) { + public DocumentPosition leftTop(@javax.annotation.Nonnull Point leftTop) { this.leftTop = leftTop; return this; } @@ -192,16 +250,16 @@ public DocumentPosition withLeftTop(Point leftTop) { * * @return leftTop */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Point getLeftTop() { return leftTop; } - public void setLeftTop(Point leftTop) { + public void setLeftTop(@javax.annotation.Nonnull Point leftTop) { this.leftTop = leftTop; } - public DocumentPosition withRightBottom(Point rightBottom) { + public DocumentPosition rightBottom(@javax.annotation.Nonnull Point rightBottom) { this.rightBottom = rightBottom; return this; } @@ -211,16 +269,16 @@ public DocumentPosition withRightBottom(Point rightBottom) { * * @return rightBottom */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Point getRightBottom() { return rightBottom; } - public void setRightBottom(Point rightBottom) { + public void setRightBottom(@javax.annotation.Nonnull Point rightBottom) { this.rightBottom = rightBottom; } - public DocumentPosition withRightTop(Point rightTop) { + public DocumentPosition rightTop(@javax.annotation.Nonnull Point rightTop) { this.rightTop = rightTop; return this; } @@ -230,16 +288,16 @@ public DocumentPosition withRightTop(Point rightTop) { * * @return rightTop */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Point getRightTop() { return rightTop; } - public void setRightTop(Point rightTop) { + public void setRightTop(@javax.annotation.Nonnull Point rightTop) { this.rightTop = rightTop; } - public DocumentPosition withDpi(Integer dpi) { + public DocumentPosition dpi(@javax.annotation.Nonnull Integer dpi) { this.dpi = dpi; return this; } @@ -249,17 +307,112 @@ public DocumentPosition withDpi(Integer dpi) { * * @return dpi */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getDpi() { return dpi; } - public void setDpi(Integer dpi) { + public void setDpi(@javax.annotation.Nonnull Integer dpi) { this.dpi = dpi; } + public DocumentPosition inverse(@javax.annotation.Nullable Integer inverse) { + this.inverse = inverse; + return this; + } + + /** + * Get inverse + * + * @return inverse + */ + @javax.annotation.Nullable + public Integer getInverse() { + return inverse; + } + + public void setInverse(@javax.annotation.Nullable Integer inverse) { + this.inverse = inverse; + } + + public DocumentPosition objArea(@javax.annotation.Nullable Integer objArea) { + this.objArea = objArea; + return this; + } + + /** + * Get objArea + * + * @return objArea + */ + @javax.annotation.Nullable + public Integer getObjArea() { + return objArea; + } + + public void setObjArea(@javax.annotation.Nullable Integer objArea) { + this.objArea = objArea; + } + + public DocumentPosition objIntAngleDev(@javax.annotation.Nullable Integer objIntAngleDev) { + this.objIntAngleDev = objIntAngleDev; + return this; + } + + /** + * Get objIntAngleDev + * + * @return objIntAngleDev + */ + @javax.annotation.Nullable + public Integer getObjIntAngleDev() { + return objIntAngleDev; + } + + public void setObjIntAngleDev(@javax.annotation.Nullable Integer objIntAngleDev) { + this.objIntAngleDev = objIntAngleDev; + } + + public DocumentPosition perspectiveTr(@javax.annotation.Nullable Integer perspectiveTr) { + this.perspectiveTr = perspectiveTr; + return this; + } + + /** + * Get perspectiveTr + * + * @return perspectiveTr + */ + @javax.annotation.Nullable + public Integer getPerspectiveTr() { + return perspectiveTr; + } + + public void setPerspectiveTr(@javax.annotation.Nullable Integer perspectiveTr) { + this.perspectiveTr = perspectiveTr; + } + + public DocumentPosition resultStatus(@javax.annotation.Nullable Integer resultStatus) { + this.resultStatus = resultStatus; + return this; + } + + /** + * Get resultStatus + * + * @return resultStatus + */ + @javax.annotation.Nullable + public Integer getResultStatus() { + return resultStatus; + } + + public void setResultStatus(@javax.annotation.Nullable Integer resultStatus) { + this.resultStatus = resultStatus; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -276,13 +429,32 @@ public boolean equals(java.lang.Object o) { && Objects.equals(this.leftTop, documentPosition.leftTop) && Objects.equals(this.rightBottom, documentPosition.rightBottom) && Objects.equals(this.rightTop, documentPosition.rightTop) - && Objects.equals(this.dpi, documentPosition.dpi); + && Objects.equals(this.dpi, documentPosition.dpi) + && Objects.equals(this.inverse, documentPosition.inverse) + && Objects.equals(this.objArea, documentPosition.objArea) + && Objects.equals(this.objIntAngleDev, documentPosition.objIntAngleDev) + && Objects.equals(this.perspectiveTr, documentPosition.perspectiveTr) + && Objects.equals(this.resultStatus, documentPosition.resultStatus); } @Override public int hashCode() { return Objects.hash( - docFormat, angle, width, height, center, leftBottom, leftTop, rightBottom, rightTop, dpi); + docFormat, + angle, + width, + height, + center, + leftBottom, + leftTop, + rightBottom, + rightTop, + dpi, + inverse, + objArea, + objIntAngleDev, + perspectiveTr, + resultStatus); } @Override @@ -299,6 +471,11 @@ public String toString() { sb.append(" rightBottom: ").append(toIndentedString(rightBottom)).append("\n"); sb.append(" rightTop: ").append(toIndentedString(rightTop)).append("\n"); sb.append(" dpi: ").append(toIndentedString(dpi)).append("\n"); + sb.append(" inverse: ").append(toIndentedString(inverse)).append("\n"); + sb.append(" objArea: ").append(toIndentedString(objArea)).append("\n"); + sb.append(" objIntAngleDev: ").append(toIndentedString(objIntAngleDev)).append("\n"); + sb.append(" perspectiveTr: ").append(toIndentedString(perspectiveTr)).append("\n"); + sb.append(" resultStatus: ").append(toIndentedString(resultStatus)).append("\n"); sb.append("}"); return sb.toString(); } @@ -306,10 +483,147 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("docFormat"); + openapiFields.add("Angle"); + openapiFields.add("Width"); + openapiFields.add("Height"); + openapiFields.add("Center"); + openapiFields.add("LeftBottom"); + openapiFields.add("LeftTop"); + openapiFields.add("RightBottom"); + openapiFields.add("RightTop"); + openapiFields.add("Dpi"); + openapiFields.add("Inverse"); + openapiFields.add("ObjArea"); + openapiFields.add("ObjIntAngleDev"); + openapiFields.add("PerspectiveTr"); + openapiFields.add("ResultStatus"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("docFormat"); + openapiRequiredFields.add("Angle"); + openapiRequiredFields.add("Width"); + openapiRequiredFields.add("Height"); + openapiRequiredFields.add("Center"); + openapiRequiredFields.add("LeftBottom"); + openapiRequiredFields.add("LeftTop"); + openapiRequiredFields.add("RightBottom"); + openapiRequiredFields.add("RightTop"); + openapiRequiredFields.add("Dpi"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocumentPosition + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocumentPosition.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocumentPosition is not found in the empty JSON string", + DocumentPosition.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocumentPosition.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocumentPosition` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocumentPosition.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `docFormat` + DocumentFormat.validateJsonElement(jsonObj.get("docFormat")); + // validate the required field `Center` + Point.validateJsonElement(jsonObj.get("Center")); + // validate the required field `LeftBottom` + Point.validateJsonElement(jsonObj.get("LeftBottom")); + // validate the required field `LeftTop` + Point.validateJsonElement(jsonObj.get("LeftTop")); + // validate the required field `RightBottom` + Point.validateJsonElement(jsonObj.get("RightBottom")); + // validate the required field `RightTop` + Point.validateJsonElement(jsonObj.get("RightTop")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocumentPosition.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocumentPosition' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocumentPosition.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocumentPosition value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocumentPosition read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocumentPosition given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocumentPosition + * @throws IOException if the JSON string is invalid with respect to DocumentPosition + */ + public static DocumentPosition fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocumentPosition.class); + } + + /** + * Convert an instance of DocumentPosition to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionResult.java index f802daa9..65057dd4 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,37 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Contains information about document position on the input image, its center, angle, etc */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DocumentPositionResult extends ResultItem { public static final String SERIALIZED_NAME_DOCUMENT_POSITION = "DocumentPosition"; @SerializedName(SERIALIZED_NAME_DOCUMENT_POSITION) + @javax.annotation.Nonnull private DocumentPosition documentPosition; - public DocumentPositionResult withDocumentPosition(DocumentPosition documentPosition) { + public DocumentPositionResult() {} + + public DocumentPositionResult documentPosition( + @javax.annotation.Nonnull DocumentPosition documentPosition) { this.documentPosition = documentPosition; return this; } @@ -32,17 +52,17 @@ public DocumentPositionResult withDocumentPosition(DocumentPosition documentPosi * * @return documentPosition */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public DocumentPosition getDocumentPosition() { return documentPosition; } - public void setDocumentPosition(DocumentPosition documentPosition) { + public void setDocumentPosition(@javax.annotation.Nonnull DocumentPosition documentPosition) { this.documentPosition = documentPosition; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -72,10 +92,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("DocumentPosition"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("DocumentPosition"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocumentPositionResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocumentPositionResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocumentPositionResult is not found in the empty JSON string", + DocumentPositionResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocumentPositionResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocumentPositionResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocumentPositionResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocumentPositionResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocumentPositionResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocumentPositionResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocumentPositionResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocumentPositionResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocumentPositionResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocumentPositionResult + * @throws IOException if the JSON string is invalid with respect to DocumentPositionResult + */ + public static DocumentPositionResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocumentPositionResult.class); + } + + /** + * Convert an instance of DocumentPositionResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentType.java old mode 100755 new mode 100644 index 5b947aa6..8ad5c9b2 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentType.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,695 +12,747 @@ package com.regula.documentreader.webclient.model; -public class DocumentType { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Possible values for document types */ +@JsonAdapter(DocumentType.Adapter.class) +public enum DocumentType { /** Not defined */ - public static final int NOT_DEFINED = 0; + NOT_DEFINED(0), /** Passport */ - public static final int PASSPORT = 11; + PASSPORT(11), /** Identity card */ - public static final int IDENTITY_CARD = 12; + IDENTITY_CARD(12), /** Diplomatic passport */ - public static final int DIPLOMATIC_PASSPORT = 13; + DIPLOMATIC_PASSPORT(13), /** Service passport */ - public static final int SERVICE_PASSPORT = 14; + SERVICE_PASSPORT(14), /** Seamans identity document */ - public static final int SEAMANS_IDENTITY_DOCUMENT = 15; + SEAMANS_IDENTITY_DOCUMENT(15), /** Identity card for residence */ - public static final int IDENTITY_CARD_FOR_RESIDENCE = 16; + IDENTITY_CARD_FOR_RESIDENCE(16), /** Travel document */ - public static final int TRAVEL_DOCUMENT = 17; + TRAVEL_DOCUMENT(17), /** National identity card */ - public static final int NATIONAL_IDENTITY_CARD = 20; + NATIONAL_IDENTITY_CARD(20), /** Social identity card */ - public static final int SOCIAL_IDENTITY_CARD = 21; + SOCIAL_IDENTITY_CARD(21), /** Alien's identity card */ - public static final int ALIENS_IDENTITY_CARD = 22; + ALIENS_IDENTITY_CARD(22), /** Privileged identity card */ - public static final int PRIVILEGED_IDENTITY_CARD = 23; + PRIVILEGED_IDENTITY_CARD(23), /** Residence permit identity card */ - public static final int RESIDENCE_PERMIT_IDENTITY_CARD = 24; + RESIDENCE_PERMIT_IDENTITY_CARD(24), /** Origin card */ - public static final int ORIGIN_CARD = 25; + ORIGIN_CARD(25), /** Emergency passport */ - public static final int EMERGENCY_PASSPORT = 26; + EMERGENCY_PASSPORT(26), /** Alien's passport */ - public static final int ALIENS_PASSPORT = 27; + ALIENS_PASSPORT(27), /** Alternative identity card */ - public static final int ALTERNATIVE_IDENTITY_CARD = 28; + ALTERNATIVE_IDENTITY_CARD(28), /** Visa ID2 */ - public static final int VISA_ID2 = 29; + VISA_ID2(29), /** Visa ID3 */ - public static final int VISA_ID3 = 30; + VISA_ID3(30), /** Authorization card */ - public static final int AUTHORIZATION_CARD = 32; + AUTHORIZATION_CARD(32), /** Beginner permit */ - public static final int BEGINNER_PERMIT = 33; + BEGINNER_PERMIT(33), /** Border crossing card */ - public static final int BORDER_CROSSING_CARD = 34; + BORDER_CROSSING_CARD(34), /** Chauffeur license */ - public static final int CHAUFFEUR_LICENSE = 35; + CHAUFFEUR_LICENSE(35), /** Chauffeur license under 18 */ - public static final int CHAUFFEUR_LICENSE_UNDER_18 = 36; + CHAUFFEUR_LICENSE_UNDER_18(36), /** Chauffeur license under 21 */ - public static final int CHAUFFEUR_LICENSE_UNDER_21 = 37; + CHAUFFEUR_LICENSE_UNDER_21(37), /** Commercial driving license */ - public static final int COMMERCIAL_DRIVING_LICENSE = 38; + COMMERCIAL_DRIVING_LICENSE(38), /** Commercial driving license instructional permit */ - public static final int COMMERCIAL_DRIVING_LICENSE_INSTRUCTIONAL_PERMIT = 39; + COMMERCIAL_DRIVING_LICENSE_INSTRUCTIONAL_PERMIT(39), /** Commercial driving license under 18 */ - public static final int COMMERCIAL_DRIVING_LICENSE_UNDER_18 = 40; + COMMERCIAL_DRIVING_LICENSE_UNDER_18(40), /** Commercial driving license under 21 */ - public static final int COMMERCIAL_DRIVING_LICENSE_UNDER_21 = 41; + COMMERCIAL_DRIVING_LICENSE_UNDER_21(41), /** Commercial instruction permit */ - public static final int COMMERCIAL_INSTRUCTION_PERMIT = 42; + COMMERCIAL_INSTRUCTION_PERMIT(42), /** Commercial new permit */ - public static final int COMMERCIAL_NEW_PERMIT = 43; + COMMERCIAL_NEW_PERMIT(43), /** Concealed carry license */ - public static final int CONCEALED_CARRY_LICENSE = 44; + CONCEALED_CARRY_LICENSE(44), /** Concealed firearm permit */ - public static final int CONCEALED_FIREARM_PERMIT = 45; + CONCEALED_FIREARM_PERMIT(45), /** Conditional driving license */ - public static final int CONDITIONAL_DRIVING_LICENSE = 46; + CONDITIONAL_DRIVING_LICENSE(46), /** Department of veterans affairs identity card */ - public static final int DEPARTMENT_OF_VETERANS_AFFAIRS_IDENTITY_CARD = 47; + DEPARTMENT_OF_VETERANS_AFFAIRS_IDENTITY_CARD(47), /** Diplomatic driving license */ - public static final int DIPLOMATIC_DRIVING_LICENSE = 48; + DIPLOMATIC_DRIVING_LICENSE(48), /** Driving license */ - public static final int DRIVING_LICENSE = 49; + DRIVING_LICENSE(49), /** Driving license instructional permit */ - public static final int DRIVING_LICENSE_INSTRUCTIONAL_PERMIT = 50; + DRIVING_LICENSE_INSTRUCTIONAL_PERMIT(50), /** Driving license instructional permit under 18 */ - public static final int DRIVING_LICENSE_INSTRUCTIONAL_PERMIT_UNDER_18 = 51; + DRIVING_LICENSE_INSTRUCTIONAL_PERMIT_UNDER_18(51), /** Driving license instructional permit under 21 */ - public static final int DRIVING_LICENSE_INSTRUCTIONAL_PERMIT_UNDER_21 = 52; + DRIVING_LICENSE_INSTRUCTIONAL_PERMIT_UNDER_21(52), /** Driving license learners permit */ - public static final int DRIVING_LICENSE_LEARNERS_PERMIT = 53; + DRIVING_LICENSE_LEARNERS_PERMIT(53), /** Driving license learners permit under 18 */ - public static final int DRIVING_LICENSE_LEARNERS_PERMIT_UNDER_18 = 54; + DRIVING_LICENSE_LEARNERS_PERMIT_UNDER_18(54), /** Driving license learners permit under 21 */ - public static final int DRIVING_LICENSE_LEARNERS_PERMIT_UNDER_21 = 55; + DRIVING_LICENSE_LEARNERS_PERMIT_UNDER_21(55), /** Driving license novice */ - public static final int DRIVING_LICENSE_NOVICE = 56; + DRIVING_LICENSE_NOVICE(56), /** Driving license novice under 18 */ - public static final int DRIVING_LICENSE_NOVICE_UNDER_18 = 57; + DRIVING_LICENSE_NOVICE_UNDER_18(57), /** Driving license novice under 21 */ - public static final int DRIVING_LICENSE_NOVICE_UNDER_21 = 58; + DRIVING_LICENSE_NOVICE_UNDER_21(58), /** Driving license registered offender */ - public static final int DRIVING_LICENSE_REGISTERED_OFFENDER = 59; + DRIVING_LICENSE_REGISTERED_OFFENDER(59), /** Driving license restricted under 18 */ - public static final int DRIVING_LICENSE_RESTRICTED_UNDER_18 = 60; + DRIVING_LICENSE_RESTRICTED_UNDER_18(60), /** Driving license restricted under 21 */ - public static final int DRIVING_LICENSE_RESTRICTED_UNDER_21 = 61; + DRIVING_LICENSE_RESTRICTED_UNDER_21(61), /** Driving license temporary visitor */ - public static final int DRIVING_LICENSE_TEMPORARY_VISITOR = 62; + DRIVING_LICENSE_TEMPORARY_VISITOR(62), /** Driving license temporary visitor under 18 */ - public static final int DRIVING_LICENSE_TEMPORARY_VISITOR_UNDER_18 = 63; + DRIVING_LICENSE_TEMPORARY_VISITOR_UNDER_18(63), /** Driving license temporary visitor under 21 */ - public static final int DRIVING_LICENSE_TEMPORARY_VISITOR_UNDER_21 = 64; + DRIVING_LICENSE_TEMPORARY_VISITOR_UNDER_21(64), /** Driving license under 18 */ - public static final int DRIVING_LICENSE_UNDER_18 = 65; + DRIVING_LICENSE_UNDER_18(65), /** Driving license under 21 */ - public static final int DRIVING_LICENSE_UNDER_21 = 66; + DRIVING_LICENSE_UNDER_21(66), /** Employment driving permit */ - public static final int EMPLOYMENT_DRIVING_PERMIT = 67; + EMPLOYMENT_DRIVING_PERMIT(67), /** Enhanced chauffeur license */ - public static final int ENHANCED_CHAUFFEUR_LICENSE = 68; + ENHANCED_CHAUFFEUR_LICENSE(68), /** Enhanced chauffeur license under 18 */ - public static final int ENHANCED_CHAUFFEUR_LICENSE_UNDER_18 = 69; + ENHANCED_CHAUFFEUR_LICENSE_UNDER_18(69), /** Enhanced chauffeur license under 21 */ - public static final int ENHANCED_CHAUFFEUR_LICENSE_UNDER_21 = 70; + ENHANCED_CHAUFFEUR_LICENSE_UNDER_21(70), /** Enhanced commercial driving license */ - public static final int ENHANCED_COMMERCIAL_DRIVING_LICENSE = 71; + ENHANCED_COMMERCIAL_DRIVING_LICENSE(71), /** Enhanced driving license */ - public static final int ENHANCED_DRIVING_LICENSE = 72; + ENHANCED_DRIVING_LICENSE(72), /** Enhanced driving license under 18 */ - public static final int ENHANCED_DRIVING_LICENSE_UNDER_18 = 73; + ENHANCED_DRIVING_LICENSE_UNDER_18(73), /** Enhanced driving license under 21 */ - public static final int ENHANCED_DRIVING_LICENSE_UNDER_21 = 74; + ENHANCED_DRIVING_LICENSE_UNDER_21(74), /** Enhanced identity card */ - public static final int ENHANCED_IDENTITY_CARD = 75; + ENHANCED_IDENTITY_CARD(75), /** Enhanced identity card under 18 */ - public static final int ENHANCED_IDENTITY_CARD_UNDER_18 = 76; + ENHANCED_IDENTITY_CARD_UNDER_18(76), /** Enhanced identity card under 21 */ - public static final int ENHANCED_IDENTITY_CARD_UNDER_21 = 77; + ENHANCED_IDENTITY_CARD_UNDER_21(77), /** Enhanced operators license */ - public static final int ENHANCED_OPERATORS_LICENSE = 78; + ENHANCED_OPERATORS_LICENSE(78), /** Firearms permit */ - public static final int FIREARMS_PERMIT = 79; + FIREARMS_PERMIT(79), /** Full provisional license */ - public static final int FULL_PROVISIONAL_LICENSE = 80; + FULL_PROVISIONAL_LICENSE(80), /** Full provisional license under 18 */ - public static final int FULL_PROVISIONAL_LICENSE_UNDER_18 = 81; + FULL_PROVISIONAL_LICENSE_UNDER_18(81), /** Full provisional license under 21 */ - public static final int FULL_PROVISIONAL_LICENSE_UNDER_21 = 82; + FULL_PROVISIONAL_LICENSE_UNDER_21(82), /** Geneva conventions identity card */ - public static final int GENEVA_CONVENTIONS_IDENTITY_CARD = 83; + GENEVA_CONVENTIONS_IDENTITY_CARD(83), /** Graduated driving license under 18 */ - public static final int GRADUATED_DRIVING_LICENSE_UNDER_18 = 84; + GRADUATED_DRIVING_LICENSE_UNDER_18(84), /** Graduated driving license under 21 */ - public static final int GRADUATED_DRIVING_LICENSE_UNDER_21 = 85; + GRADUATED_DRIVING_LICENSE_UNDER_21(85), /** Graduated instruction permit under 18 */ - public static final int GRADUATED_INSTRUCTION_PERMIT_UNDER_18 = 86; + GRADUATED_INSTRUCTION_PERMIT_UNDER_18(86), /** Graduated instruction permit under 21 */ - public static final int GRADUATED_INSTRUCTION_PERMIT_UNDER_21 = 87; + GRADUATED_INSTRUCTION_PERMIT_UNDER_21(87), /** Graduated license under 18 */ - public static final int GRADUATED_LICENSE_UNDER_18 = 88; + GRADUATED_LICENSE_UNDER_18(88), /** Graduated license under 21 */ - public static final int GRADUATED_LICENSE_UNDER_21 = 89; + GRADUATED_LICENSE_UNDER_21(89), /** Handgun carry permit */ - public static final int HANDGUN_CARRY_PERMIT = 90; + HANDGUN_CARRY_PERMIT(90), /** Identity and privilege card */ - public static final int IDENTITY_AND_PRIVILEGE_CARD = 91; + IDENTITY_AND_PRIVILEGE_CARD(91), /** Identity card mobility impaired */ - public static final int IDENTITY_CARD_MOBILITY_IMPAIRED = 92; + IDENTITY_CARD_MOBILITY_IMPAIRED(92), /** Identity card registered offender */ - public static final int IDENTITY_CARD_REGISTERED_OFFENDER = 93; + IDENTITY_CARD_REGISTERED_OFFENDER(93), /** Identity card temporary visitor */ - public static final int IDENTITY_CARD_TEMPORARY_VISITOR = 94; + IDENTITY_CARD_TEMPORARY_VISITOR(94), /** Identity card temporary visitor under 18 */ - public static final int IDENTITY_CARD_TEMPORARY_VISITOR_UNDER_18 = 95; + IDENTITY_CARD_TEMPORARY_VISITOR_UNDER_18(95), /** Identity card temporary visitor under 21 */ - public static final int IDENTITY_CARD_TEMPORARY_VISITOR_UNDER_21 = 96; + IDENTITY_CARD_TEMPORARY_VISITOR_UNDER_21(96), /** Identity card under 18 */ - public static final int IDENTITY_CARD_UNDER_18 = 97; + IDENTITY_CARD_UNDER_18(97), /** Identity card under 21 */ - public static final int IDENTITY_CARD_UNDER_21 = 98; + IDENTITY_CARD_UNDER_21(98), /** Other */ - public static final int OTHER = 99; + OTHER(99), /** Ignition interlock permit */ - public static final int IGNITION_INTERLOCK_PERMIT = 100; + IGNITION_INTERLOCK_PERMIT(100), /** Immigrant visa */ - public static final int IMMIGRANT_VISA = 101; + IMMIGRANT_VISA(101), /** Instruction permit */ - public static final int INSTRUCTION_PERMIT = 102; + INSTRUCTION_PERMIT(102), /** Instruction permit under 18 */ - public static final int INSTRUCTION_PERMIT_UNDER_18 = 103; + INSTRUCTION_PERMIT_UNDER_18(103), /** Instruction permit under 21 */ - public static final int INSTRUCTION_PERMIT_UNDER_21 = 104; + INSTRUCTION_PERMIT_UNDER_21(104), /** Interim driving license */ - public static final int INTERIM_DRIVING_LICENSE = 105; + INTERIM_DRIVING_LICENSE(105), /** Interim identity card */ - public static final int INTERIM_IDENTITY_CARD = 106; + INTERIM_IDENTITY_CARD(106), /** Intermediate driving license */ - public static final int INTERMEDIATE_DRIVING_LICENSE = 107; + INTERMEDIATE_DRIVING_LICENSE(107), /** Intermediate driving license under 18 */ - public static final int INTERMEDIATE_DRIVING_LICENSE_UNDER_18 = 108; + INTERMEDIATE_DRIVING_LICENSE_UNDER_18(108), /** Intermediate driving license under 21 */ - public static final int INTERMEDIATE_DRIVING_LICENSE_UNDER_21 = 109; + INTERMEDIATE_DRIVING_LICENSE_UNDER_21(109), /** Junior driving license */ - public static final int JUNIOR_DRIVING_LICENSE = 110; + JUNIOR_DRIVING_LICENSE(110), /** Learner instructional permit */ - public static final int LEARNER_INSTRUCTIONAL_PERMIT = 111; + LEARNER_INSTRUCTIONAL_PERMIT(111), /** Learner license */ - public static final int LEARNER_LICENSE = 112; + LEARNER_LICENSE(112), /** Learner license under 18 */ - public static final int LEARNER_LICENSE_UNDER_18 = 113; + LEARNER_LICENSE_UNDER_18(113), /** Learner license under 21 */ - public static final int LEARNER_LICENSE_UNDER_21 = 114; + LEARNER_LICENSE_UNDER_21(114), /** Learner permit */ - public static final int LEARNER_PERMIT = 115; + LEARNER_PERMIT(115), /** Learner permit under 18 */ - public static final int LEARNER_PERMIT_UNDER_18 = 116; + LEARNER_PERMIT_UNDER_18(116), /** Learner permit under 21 */ - public static final int LEARNER_PERMIT_UNDER_21 = 117; + LEARNER_PERMIT_UNDER_21(117), /** Limited license */ - public static final int LIMITED_LICENSE = 118; + LIMITED_LICENSE(118), /** Limited permit */ - public static final int LIMITED_PERMIT = 119; + LIMITED_PERMIT(119), /** Limited term driving license */ - public static final int LIMITED_TERM_DRIVING_LICENSE = 120; + LIMITED_TERM_DRIVING_LICENSE(120), /** Limited term identity card */ - public static final int LIMITED_TERM_IDENTITY_CARD = 121; + LIMITED_TERM_IDENTITY_CARD(121), /** Liquor identity card */ - public static final int LIQUOR_IDENTITY_CARD = 122; + LIQUOR_IDENTITY_CARD(122), /** New permit */ - public static final int NEW_PERMIT = 123; + NEW_PERMIT(123), /** New permit under 18 */ - public static final int NEW_PERMIT_UNDER_18 = 124; + NEW_PERMIT_UNDER_18(124), /** New permit under 21 */ - public static final int NEW_PERMIT_UNDER_21 = 125; + NEW_PERMIT_UNDER_21(125), /** Non-US citizen driving license */ - public static final int NON_US_CITIZEN_DRIVING_LICENSE = 126; + NON_US_CITIZEN_DRIVING_LICENSE(126), /** Occupational driving license */ - public static final int OCCUPATIONAL_DRIVING_LICENSE = 127; + OCCUPATIONAL_DRIVING_LICENSE(127), /** Oneida tribe of indians identity card */ - public static final int ONEIDA_TRIBE_OF_INDIANS_IDENTITY_CARD = 128; + ONEIDA_TRIBE_OF_INDIANS_IDENTITY_CARD(128), /** Operator license */ - public static final int OPERATOR_LICENSE = 129; + OPERATOR_LICENSE(129), /** Operator license under 18 */ - public static final int OPERATOR_LICENSE_UNDER_18 = 130; + OPERATOR_LICENSE_UNDER_18(130), /** Operator license under 21 */ - public static final int OPERATOR_LICENSE_UNDER_21 = 131; + OPERATOR_LICENSE_UNDER_21(131), /** Permanent driving license */ - public static final int PERMANENT_DRIVING_LICENSE = 132; + PERMANENT_DRIVING_LICENSE(132), /** Permit to re-enter */ - public static final int PERMIT_TO_REENTER = 133; + PERMIT_TO_REENTER(133), /** Probationary auto license */ - public static final int PROBATIONARY_AUTO_LICENSE = 134; + PROBATIONARY_AUTO_LICENSE(134), /** Probationary driving license under 18 */ - public static final int PROBATIONARY_DRIVING_LICENSE_UNDER_18 = 135; + PROBATIONARY_DRIVING_LICENSE_UNDER_18(135), /** Probationary driving license under 21 */ - public static final int PROBATIONARY_DRIVING_LICENSE_UNDER_21 = 136; + PROBATIONARY_DRIVING_LICENSE_UNDER_21(136), /** Probationary vehicle sales person license */ - public static final int PROBATIONARY_VEHICLE_SALES_PERSON_LICENSE = 137; + PROBATIONARY_VEHICLE_SALES_PERSON_LICENSE(137), /** Provisional driving license */ - public static final int PROVISIONAL_DRIVING_LICENSE = 138; + PROVISIONAL_DRIVING_LICENSE(138), /** Provisional driving license under 18 */ - public static final int PROVISIONAL_DRIVING_LICENSE_UNDER_18 = 139; + PROVISIONAL_DRIVING_LICENSE_UNDER_18(139), /** Provisional driving license under 21 */ - public static final int PROVISIONAL_DRIVING_LICENSE_UNDER_21 = 140; + PROVISIONAL_DRIVING_LICENSE_UNDER_21(140), /** Provisional license */ - public static final int PROVISIONAL_LICENSE = 141; + PROVISIONAL_LICENSE(141), /** Provisional license under 18 */ - public static final int PROVISIONAL_LICENSE_UNDER_18 = 142; + PROVISIONAL_LICENSE_UNDER_18(142), /** Provisional license under 21 */ - public static final int PROVISIONAL_LICENSE_UNDER_21 = 143; + PROVISIONAL_LICENSE_UNDER_21(143), /** Public passenger chauffeur license */ - public static final int PUBLIC_PASSENGER_CHAUFFEUR_LICENSE = 144; + PUBLIC_PASSENGER_CHAUFFEUR_LICENSE(144), /** Racing and gaming comission card */ - public static final int RACING_AND_GAMING_COMISSION_CARD = 145; + RACING_AND_GAMING_COMISSION_CARD(145), /** Refugee travel document */ - public static final int REFUGEE_TRAVEL_DOCUMENT = 146; + REFUGEE_TRAVEL_DOCUMENT(146), /** Renewal permit */ - public static final int RENEWAL_PERMIT = 147; + RENEWAL_PERMIT(147), /** Restricted commercial driver license */ - public static final int RESTRICTED_COMMERCIAL_DRIVER_LICENSE = 148; + RESTRICTED_COMMERCIAL_DRIVER_LICENSE(148), /** Restricted driver license */ - public static final int RESTRICTED_DRIVER_LICENSE = 149; + RESTRICTED_DRIVER_LICENSE(149), /** Restricted permit */ - public static final int RESTRICTED_PERMIT = 150; + RESTRICTED_PERMIT(150), /** Seasonal permit */ - public static final int SEASONAL_PERMIT = 151; + SEASONAL_PERMIT(151), /** Seasonal resident identity card */ - public static final int SEASONAL_RESIDENT_IDENTITY_CARD = 152; + SEASONAL_RESIDENT_IDENTITY_CARD(152), /** Seasonal citizen identity card */ - public static final int SEASONAL_CITIZEN_IDENTITY_CARD = 153; + SEASONAL_CITIZEN_IDENTITY_CARD(153), /** Sex offender */ - public static final int SEX_OFFENDER = 154; + SEX_OFFENDER(154), /** Social security card */ - public static final int SOCIAL_SECURITY_CARD = 155; + SOCIAL_SECURITY_CARD(155), /** Temporary driving license */ - public static final int TEMPORARY_DRIVING_LICENSE = 156; + TEMPORARY_DRIVING_LICENSE(156), /** Temporary driving license under 18 */ - public static final int TEMPORARY_DRIVING_LICENSE_UNDER_18 = 157; + TEMPORARY_DRIVING_LICENSE_UNDER_18(157), /** Temporary driving license under 21 */ - public static final int TEMPORARY_DRIVING_LICENSE_UNDER_21 = 158; + TEMPORARY_DRIVING_LICENSE_UNDER_21(158), /** Temporary identity card */ - public static final int TEMPORARY_IDENTITY_CARD = 159; + TEMPORARY_IDENTITY_CARD(159), /** Temporary instruction permit identity card */ - public static final int TEMPORARY_INSTRUCTION_PERMIT_IDENTITY_CARD = 160; + TEMPORARY_INSTRUCTION_PERMIT_IDENTITY_CARD(160), /** Temporary instruction permit identity card under 18 */ - public static final int TEMPORARY_INSTRUCTION_PERMIT_IDENTITY_CARD_UNDER_18 = 161; + TEMPORARY_INSTRUCTION_PERMIT_IDENTITY_CARD_UNDER_18(161), /** Temporary instruction permit identity card under 21 */ - public static final int TEMPORARY_INSTRUCTION_PERMIT_IDENTITY_CARD_UNDER_21 = 162; + TEMPORARY_INSTRUCTION_PERMIT_IDENTITY_CARD_UNDER_21(162), /** Temporary visitor driving license */ - public static final int TEMPORARY_VISITOR_DRIVING_LICENSE = 163; + TEMPORARY_VISITOR_DRIVING_LICENSE(163), /** Temporary visitor driving license under 18 */ - public static final int TEMPORARY_VISITOR_DRIVING_LICENSE_UNDER_18 = 164; + TEMPORARY_VISITOR_DRIVING_LICENSE_UNDER_18(164), /** Temporary visitor driving license under 21 */ - public static final int TEMPORARY_VISITOR_DRIVING_LICENSE_UNDER_21 = 165; + TEMPORARY_VISITOR_DRIVING_LICENSE_UNDER_21(165), /** Uniformed services identity card */ - public static final int UNIFORMED_SERVICES_IDENTITY_CARD = 166; + UNIFORMED_SERVICES_IDENTITY_CARD(166), /** Vehicle sales person license */ - public static final int VEHICLE_SALES_PERSON_LICENSE = 167; + VEHICLE_SALES_PERSON_LICENSE(167), /** Worker identification credential */ - public static final int WORKER_IDENTIFICATION_CREDENTIAL = 168; + WORKER_IDENTIFICATION_CREDENTIAL(168), /** Commercial driving license novice */ - public static final int COMMERCIAL_DRIVING_LICENSE_NOVICE = 169; + COMMERCIAL_DRIVING_LICENSE_NOVICE(169), /** Commercial driving license novice under 18 */ - public static final int COMMERCIAL_DRIVING_LICENSE_NOVICE_UNDER_18 = 170; + COMMERCIAL_DRIVING_LICENSE_NOVICE_UNDER_18(170), /** Commercial driving license novice under 21 */ - public static final int COMMERCIAL_DRIVING_LICENSE_NOVICE_UNDER_21 = 171; + COMMERCIAL_DRIVING_LICENSE_NOVICE_UNDER_21(171), /** Passport card */ - public static final int PASSPORT_CARD = 172; + PASSPORT_CARD(172), /** Passport resident card */ - public static final int PASSPORT_RESIDENT_CARD = 173; + PASSPORT_RESIDENT_CARD(173), /** Personal identification verification */ - public static final int PERSONAL_IDENTIFICATION_VERIFICATION = 174; + PERSONAL_IDENTIFICATION_VERIFICATION(174), /** Temporary operator license */ - public static final int TEMPORARY_OPERATOR_LICENSE = 175; + TEMPORARY_OPERATOR_LICENSE(175), /** Driving license under 19 */ - public static final int DRIVING_LICENSE_UNDER_19 = 176; + DRIVING_LICENSE_UNDER_19(176), /** Identity card under 19 */ - public static final int IDENTITY_CARD_UNDER_19 = 177; + IDENTITY_CARD_UNDER_19(177), /** Visa */ - public static final int VISA = 178; + VISA(178), /** Temporary passport */ - public static final int TEMPORARY_PASSPORT = 179; + TEMPORARY_PASSPORT(179), /** Voting card */ - public static final int VOTING_CARD = 180; + VOTING_CARD(180), /** Health card */ - public static final int HEALTH_CARD = 181; + HEALTH_CARD(181), /** Certificate of citizenship */ - public static final int CERTIFICATE_OF_CITIZENSHIP = 182; + CERTIFICATE_OF_CITIZENSHIP(182), /** Address card */ - public static final int ADDRESS_CARD = 183; + ADDRESS_CARD(183), /** Airport immigration card */ - public static final int AIRPORT_IMMIGRATION_CARD = 184; + AIRPORT_IMMIGRATION_CARD(184), /** Alien registration card */ - public static final int ALIEN_REGISTRATION_CARD = 185; + ALIEN_REGISTRATION_CARD(185), /** APEH card */ - public static final int APEH_CARD = 186; + APEH_CARD(186), /** Coupon to driving license */ - public static final int COUPON_TO_DRIVING_LICENSE = 187; + COUPON_TO_DRIVING_LICENSE(187), /** Crew member certificate */ - public static final int CREW_MEMBER_CERTIFICATE = 188; + CREW_MEMBER_CERTIFICATE(188), /** Document for return */ - public static final int DOCUMENT_FOR_RETURN = 189; + DOCUMENT_FOR_RETURN(189), /** E-card */ - public static final int E_CARD = 190; + E_CARD(190), /** Employment card */ - public static final int EMPLOYMENT_CARD = 191; + EMPLOYMENT_CARD(191), /** HKSAR immigration form */ - public static final int HKSAR_IMMIGRATION_FORM = 192; + HKSAR_IMMIGRATION_FORM(192), /** Immigrant card */ - public static final int IMMIGRANT_CARD = 193; + IMMIGRANT_CARD(193), /** Labour card */ - public static final int LABOUR_CARD = 194; + LABOUR_CARD(194), /** Laissez passer */ - public static final int LAISSEZ_PASSER = 195; + LAISSEZ_PASSER(195), /** Lawyer identity certificate */ - public static final int LAWYER_IDENTITY_CERTIFICATE = 196; + LAWYER_IDENTITY_CERTIFICATE(196), /** License card */ - public static final int LICENSE_CARD = 197; + LICENSE_CARD(197), /** Passport stateless */ - public static final int PASSPORT_STATELESS = 198; + PASSPORT_STATELESS(198), /** Passport child */ - public static final int PASSPORT_CHILD = 199; + PASSPORT_CHILD(199), /** Passport consular */ - public static final int PASSPORT_CONSULAR = 200; + PASSPORT_CONSULAR(200), /** Passport diplomatic service */ - public static final int PASSPORT_DIPLOMATIC_SERVICE = 201; + PASSPORT_DIPLOMATIC_SERVICE(201), /** Passport official */ - public static final int PASSPORT_OFFICIAL = 202; + PASSPORT_OFFICIAL(202), /** Passport provisional */ - public static final int PASSPORT_PROVISIONAL = 203; + PASSPORT_PROVISIONAL(203), /** Passport special */ - public static final int PASSPORT_SPECIAL = 204; + PASSPORT_SPECIAL(204), /** Permission to the local border traffic */ - public static final int PERMISSION_TO_THE_LOCAL_BORDER_TRAFFIC = 205; + PERMISSION_TO_THE_LOCAL_BORDER_TRAFFIC(205), /** Registration certificate */ - public static final int REGISTRATION_CERTIFICATE = 206; + REGISTRATION_CERTIFICATE(206), /** Sedesol card */ - public static final int SEDESOL_CARD = 207; + SEDESOL_CARD(207), /** Social card */ - public static final int SOCIAL_CARD = 208; + SOCIAL_CARD(208), /** TB card */ - public static final int TB_CARD = 209; + TB_CARD(209), /** Vehicle passport */ - public static final int VEHICLE_PASSPORT = 210; + VEHICLE_PASSPORT(210), /** W document */ - public static final int W_DOCUMENT = 211; + W_DOCUMENT(211), /** Diplomatic identity card */ - public static final int DIPLOMATIC_IDENTITY_CARD = 212; + DIPLOMATIC_IDENTITY_CARD(212), /** Consular identity card */ - public static final int CONSULAR_IDENTITY_CARD = 213; + CONSULAR_IDENTITY_CARD(213), /** Income tax card */ - public static final int INCOME_TAX_CARD = 214; + INCOME_TAX_CARD(214), /** Residence permit */ - public static final int RESIDENCE_PERMIT = 215; + RESIDENCE_PERMIT(215), /** Document of identity */ - public static final int DOCUMENT_OF_IDENTITY = 216; + DOCUMENT_OF_IDENTITY(216), /** Border crossing permit */ - public static final int BORDER_CROSSING_PERMIT = 217; + BORDER_CROSSING_PERMIT(217), /** Passport limited validity */ - public static final int PASSPORT_LIMITED_VALIDITY = 218; + PASSPORT_LIMITED_VALIDITY(218), /** Sim card */ - public static final int SIM_CARD = 219; + SIM_CARD(219), /** Tax card */ - public static final int TAX_CARD = 220; + TAX_CARD(220), /** Company card */ - public static final int COMPANY_CARD = 221; + COMPANY_CARD(221), /** Domestic passport */ - public static final int DOMESTIC_PASSPORT = 222; + DOMESTIC_PASSPORT(222), /** Identity certificate */ - public static final int IDENTITY_CERTIFICATE = 223; + IDENTITY_CERTIFICATE(223), /** Resident id card */ - public static final int RESIDENT_ID_CARD = 224; + RESIDENT_ID_CARD(224), /** Armed forces identity card */ - public static final int ARMED_FORCES_IDENTITY_CARD = 225; + ARMED_FORCES_IDENTITY_CARD(225), /** Professional card */ - public static final int PROFESSIONAL_CARD = 226; + PROFESSIONAL_CARD(226), /** Registration stamp */ - public static final int REGISTRATION_STAMP = 227; + REGISTRATION_STAMP(227), /** Driver card */ - public static final int DRIVER_CARD = 228; + DRIVER_CARD(228), /** Driver training certificate */ - public static final int DRIVER_TRAINING_CERTIFICATE = 229; + DRIVER_TRAINING_CERTIFICATE(229), /** Qualification driving license */ - public static final int QUALIFICATION_DRIVING_LICENSE = 230; + QUALIFICATION_DRIVING_LICENSE(230), /** Membership card */ - public static final int MEMBERSHIP_CARD = 231; + MEMBERSHIP_CARD(231), /** Public vehicle driver authority card */ - public static final int PUBLIC_VEHICLE_DRIVER_AUTHORITY_CARD = 232; + PUBLIC_VEHICLE_DRIVER_AUTHORITY_CARD(232), /** Marine license */ - public static final int MARINE_LICENSE = 233; + MARINE_LICENSE(233), /** Temporary learner license */ - public static final int TEMPORARY_LEARNER_LICENSE = 234; + TEMPORARY_LEARNER_LICENSE(234), /** Temporary commercial driving license */ - public static final int TEMPORARY_COMMERCIAL_DRIVING_LICENSE = 235; + TEMPORARY_COMMERCIAL_DRIVING_LICENSE(235), /** Interim instructional permit */ - public static final int INTERIM_INSTRUCTIONAL_PERMIT = 236; + INTERIM_INSTRUCTIONAL_PERMIT(236), /** Certificate of competency */ - public static final int CERTIFICATE_OF_COMPETENCY = 237; + CERTIFICATE_OF_COMPETENCY(237), /** Certificate of proficiency */ - public static final int CERTIFICATE_OF_PROFICIENCY = 238; + CERTIFICATE_OF_PROFICIENCY(238), /** Trade license */ - public static final int TRADE_LICENSE = 239; + TRADE_LICENSE(239), /** Passport page */ - public static final int PASSPORT_PAGE = 240; + PASSPORT_PAGE(240), /** Invoice */ - public static final int INVOICE = 241; + INVOICE(241), /** Passenger locator form */ - public static final int PASSENGER_LOCATOR_FORM = 242; + PASSENGER_LOCATOR_FORM(242); + + private Integer value; + + DocumentType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DocumentType fromValue(Integer value) { + for (DocumentType b : DocumentType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DocumentType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DocumentType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return DocumentType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + DocumentType.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypeRecognitionResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypeRecognitionResult.java old mode 100755 new mode 100644 index ae410450..bdfb643d --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypeRecognitionResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypeRecognitionResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,69 @@ package com.regula.documentreader.webclient.model; -public class DocumentTypeRecognitionResult { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Gets or Sets DocumentTypeRecognitionResult */ +@JsonAdapter(DocumentTypeRecognitionResult.Adapter.class) +public enum DocumentTypeRecognitionResult { /** Document type determined. The first element in candidates array is recognition result */ - public static final int OK = 0; + OK(0), /** Document type was not determined. Ongoing processing is not possible */ - public static final int UNKNOWN = 15; + UNKNOWN(15), /** * To determine document type user should provide more images with different light sources (UV, * for example) */ - public static final int NEED_MORE_IMAGES = 29; + NEED_MORE_IMAGES(29); + + private Integer value; + + DocumentTypeRecognitionResult(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static DocumentTypeRecognitionResult fromValue(Integer value) { + for (DocumentTypeRecognitionResult b : DocumentTypeRecognitionResult.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final DocumentTypeRecognitionResult enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public DocumentTypeRecognitionResult read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return DocumentTypeRecognitionResult.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + DocumentTypeRecognitionResult.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidates.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidates.java index ca60dad5..59bee11b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidates.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidates.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,24 +12,46 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** DocumentTypesCandidates */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DocumentTypesCandidates { public static final String SERIALIZED_NAME_REC_RESULT = "RecResult"; @SerializedName(SERIALIZED_NAME_REC_RESULT) - private Integer recResult; + @javax.annotation.Nullable + private DocumentTypeRecognitionResult recResult; public static final String SERIALIZED_NAME_CANDIDATES = "Candidates"; @SerializedName(SERIALIZED_NAME_CANDIDATES) - private List candidates = null; + @javax.annotation.Nullable + private List candidates; - public DocumentTypesCandidates withRecResult(Integer recResult) { + public DocumentTypesCandidates() {} + + public DocumentTypesCandidates recResult( + @javax.annotation.Nullable DocumentTypeRecognitionResult recResult) { this.recResult = recResult; return this; } @@ -40,22 +62,23 @@ public DocumentTypesCandidates withRecResult(Integer recResult) { * @return recResult */ @javax.annotation.Nullable - public Integer getRecResult() { + public DocumentTypeRecognitionResult getRecResult() { return recResult; } - public void setRecResult(Integer recResult) { + public void setRecResult(@javax.annotation.Nullable DocumentTypeRecognitionResult recResult) { this.recResult = recResult; } - public DocumentTypesCandidates withCandidates(List candidates) { + public DocumentTypesCandidates candidates( + @javax.annotation.Nullable List candidates) { this.candidates = candidates; return this; } public DocumentTypesCandidates addCandidatesItem(OneCandidate candidatesItem) { if (this.candidates == null) { - this.candidates = new ArrayList(); + this.candidates = new ArrayList<>(); } this.candidates.add(candidatesItem); return this; @@ -71,12 +94,12 @@ public List getCandidates() { return candidates; } - public void setCandidates(List candidates) { + public void setCandidates(@javax.annotation.Nullable List candidates) { this.candidates = candidates; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -106,10 +129,124 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RecResult"); + openapiFields.add("Candidates"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocumentTypesCandidates + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocumentTypesCandidates.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocumentTypesCandidates is not found in the empty JSON string", + DocumentTypesCandidates.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocumentTypesCandidates.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocumentTypesCandidates` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `RecResult` + if (jsonObj.get("RecResult") != null && !jsonObj.get("RecResult").isJsonNull()) { + DocumentTypeRecognitionResult.validateJsonElement(jsonObj.get("RecResult")); + } + if (jsonObj.get("Candidates") != null && !jsonObj.get("Candidates").isJsonNull()) { + JsonArray jsonArraycandidates = jsonObj.getAsJsonArray("Candidates"); + if (jsonArraycandidates != null) { + // ensure the json data is an array + if (!jsonObj.get("Candidates").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Candidates` to be an array in the JSON string but got `%s`", + jsonObj.get("Candidates").toString())); + } + + // validate the optional field `Candidates` (array) + for (int i = 0; i < jsonArraycandidates.size(); i++) { + OneCandidate.validateJsonElement(jsonArraycandidates.get(i)); + } + ; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocumentTypesCandidates.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocumentTypesCandidates' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocumentTypesCandidates.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocumentTypesCandidates value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocumentTypesCandidates read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocumentTypesCandidates given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocumentTypesCandidates + * @throws IOException if the JSON string is invalid with respect to DocumentTypesCandidates + */ + public static DocumentTypesCandidates fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocumentTypesCandidates.class); + } + + /** + * Convert an instance of DocumentTypesCandidates to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesList.java old mode 100755 new mode 100644 index e34aa2cb..be28a956 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesList.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,24 +12,46 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** DocumentTypesCandidatesList */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DocumentTypesCandidatesList { public static final String SERIALIZED_NAME_REC_RESULT = "RecResult"; @SerializedName(SERIALIZED_NAME_REC_RESULT) - private Integer recResult; + @javax.annotation.Nullable + private DocumentTypeRecognitionResult recResult; public static final String SERIALIZED_NAME_CANDIDATES = "Candidates"; @SerializedName(SERIALIZED_NAME_CANDIDATES) - private List candidates = null; + @javax.annotation.Nullable + private List candidates; - public DocumentTypesCandidatesList withRecResult(Integer recResult) { + public DocumentTypesCandidatesList() {} + + public DocumentTypesCandidatesList recResult( + @javax.annotation.Nullable DocumentTypeRecognitionResult recResult) { this.recResult = recResult; return this; } @@ -40,22 +62,23 @@ public DocumentTypesCandidatesList withRecResult(Integer recResult) { * @return recResult */ @javax.annotation.Nullable - public Integer getRecResult() { + public DocumentTypeRecognitionResult getRecResult() { return recResult; } - public void setRecResult(Integer recResult) { + public void setRecResult(@javax.annotation.Nullable DocumentTypeRecognitionResult recResult) { this.recResult = recResult; } - public DocumentTypesCandidatesList withCandidates(List candidates) { + public DocumentTypesCandidatesList candidates( + @javax.annotation.Nullable List candidates) { this.candidates = candidates; return this; } public DocumentTypesCandidatesList addCandidatesItem(OneCandidate candidatesItem) { if (this.candidates == null) { - this.candidates = new ArrayList(); + this.candidates = new ArrayList<>(); } this.candidates.add(candidatesItem); return this; @@ -71,12 +94,12 @@ public List getCandidates() { return candidates; } - public void setCandidates(List candidates) { + public void setCandidates(@javax.annotation.Nullable List candidates) { this.candidates = candidates; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -106,10 +129,125 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RecResult"); + openapiFields.add("Candidates"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocumentTypesCandidatesList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocumentTypesCandidatesList.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocumentTypesCandidatesList is not found in the empty JSON string", + DocumentTypesCandidatesList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocumentTypesCandidatesList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocumentTypesCandidatesList` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `RecResult` + if (jsonObj.get("RecResult") != null && !jsonObj.get("RecResult").isJsonNull()) { + DocumentTypeRecognitionResult.validateJsonElement(jsonObj.get("RecResult")); + } + if (jsonObj.get("Candidates") != null && !jsonObj.get("Candidates").isJsonNull()) { + JsonArray jsonArraycandidates = jsonObj.getAsJsonArray("Candidates"); + if (jsonArraycandidates != null) { + // ensure the json data is an array + if (!jsonObj.get("Candidates").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Candidates` to be an array in the JSON string but got `%s`", + jsonObj.get("Candidates").toString())); + } + + // validate the optional field `Candidates` (array) + for (int i = 0; i < jsonArraycandidates.size(); i++) { + OneCandidate.validateJsonElement(jsonArraycandidates.get(i)); + } + ; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocumentTypesCandidatesList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocumentTypesCandidatesList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocumentTypesCandidatesList.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocumentTypesCandidatesList value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocumentTypesCandidatesList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocumentTypesCandidatesList given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocumentTypesCandidatesList + * @throws IOException if the JSON string is invalid with respect to DocumentTypesCandidatesList + */ + public static DocumentTypesCandidatesList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocumentTypesCandidatesList.class); + } + + /** + * Convert an instance of DocumentTypesCandidatesList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesResult.java old mode 100755 new mode 100644 index 37cfadf9..c3c9ae05 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,18 +12,37 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** DocumentTypesCandidatesResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DocumentTypesCandidatesResult extends ResultItem { public static final String SERIALIZED_NAME_CANDIDATES_LIST = "CandidatesList"; @SerializedName(SERIALIZED_NAME_CANDIDATES_LIST) + @javax.annotation.Nullable private DocumentTypesCandidatesList candidatesList; - public DocumentTypesCandidatesResult withCandidatesList( - DocumentTypesCandidatesList candidatesList) { + public DocumentTypesCandidatesResult() {} + + public DocumentTypesCandidatesResult candidatesList( + @javax.annotation.Nullable DocumentTypesCandidatesList candidatesList) { this.candidatesList = candidatesList; return this; } @@ -38,12 +57,13 @@ public DocumentTypesCandidatesList getCandidatesList() { return candidatesList; } - public void setCandidatesList(DocumentTypesCandidatesList candidatesList) { + public void setCandidatesList( + @javax.annotation.Nullable DocumentTypesCandidatesList candidatesList) { this.candidatesList = candidatesList; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -73,10 +93,118 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("CandidatesList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * DocumentTypesCandidatesResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocumentTypesCandidatesResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocumentTypesCandidatesResult is not found in the empty JSON string", + DocumentTypesCandidatesResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocumentTypesCandidatesResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocumentTypesCandidatesResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocumentTypesCandidatesResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocumentTypesCandidatesResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocumentTypesCandidatesResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocumentTypesCandidatesResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocumentTypesCandidatesResult value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocumentTypesCandidatesResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocumentTypesCandidatesResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocumentTypesCandidatesResult + * @throws IOException if the JSON string is invalid with respect to DocumentTypesCandidatesResult + */ + public static DocumentTypesCandidatesResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocumentTypesCandidatesResult.class); + } + + /** + * Convert an instance of DocumentTypesCandidatesResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentsDatabase.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentsDatabase.java index 240e4b1e..c63d5015 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentsDatabase.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentsDatabase.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,32 +12,54 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Document database information */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class DocumentsDatabase { public static final String SERIALIZED_NAME_DESCRIPTION = "Description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable private String description; public static final String SERIALIZED_NAME_EXPORT_DATE = "ExportDate"; @SerializedName(SERIALIZED_NAME_EXPORT_DATE) + @javax.annotation.Nullable private String exportDate; public static final String SERIALIZED_NAME_I_D = "ID"; @SerializedName(SERIALIZED_NAME_I_D) + @javax.annotation.Nullable private String ID; public static final String SERIALIZED_NAME_VERSION = "Version"; @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable private String version; - public DocumentsDatabase withDescription(String description) { + public DocumentsDatabase() {} + + public DocumentsDatabase description(@javax.annotation.Nullable String description) { this.description = description; return this; } @@ -52,11 +74,11 @@ public String getDescription() { return description; } - public void setDescription(String description) { + public void setDescription(@javax.annotation.Nullable String description) { this.description = description; } - public DocumentsDatabase withExportDate(String exportDate) { + public DocumentsDatabase exportDate(@javax.annotation.Nullable String exportDate) { this.exportDate = exportDate; return this; } @@ -71,11 +93,11 @@ public String getExportDate() { return exportDate; } - public void setExportDate(String exportDate) { + public void setExportDate(@javax.annotation.Nullable String exportDate) { this.exportDate = exportDate; } - public DocumentsDatabase withID(String ID) { + public DocumentsDatabase ID(@javax.annotation.Nullable String ID) { this.ID = ID; return this; } @@ -90,11 +112,11 @@ public String getID() { return ID; } - public void setID(String ID) { + public void setID(@javax.annotation.Nullable String ID) { this.ID = ID; } - public DocumentsDatabase withVersion(String version) { + public DocumentsDatabase version(@javax.annotation.Nullable String version) { this.version = version; return this; } @@ -109,12 +131,12 @@ public String getVersion() { return version; } - public void setVersion(String version) { + public void setVersion(@javax.annotation.Nullable String version) { this.version = version; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -148,10 +170,132 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Description"); + openapiFields.add("ExportDate"); + openapiFields.add("ID"); + openapiFields.add("Version"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocumentsDatabase + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocumentsDatabase.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocumentsDatabase is not found in the empty JSON string", + DocumentsDatabase.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocumentsDatabase.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocumentsDatabase` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("Description") != null && !jsonObj.get("Description").isJsonNull()) + && !jsonObj.get("Description").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Description` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Description").toString())); + } + if ((jsonObj.get("ExportDate") != null && !jsonObj.get("ExportDate").isJsonNull()) + && !jsonObj.get("ExportDate").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ExportDate` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("ExportDate").toString())); + } + if ((jsonObj.get("ID") != null && !jsonObj.get("ID").isJsonNull()) + && !jsonObj.get("ID").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ID` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("ID").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) + && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Version` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Version").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocumentsDatabase.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocumentsDatabase' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocumentsDatabase.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocumentsDatabase value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocumentsDatabase read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocumentsDatabase given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocumentsDatabase + * @throws IOException if the JSON string is invalid with respect to DocumentsDatabase + */ + public static DocumentsDatabase fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocumentsDatabase.class); + } + + /** + * Convert an instance of DocumentsDatabase to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java index c09ff32b..fa30c71f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,18 +12,37 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.Arrays; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** EncryptedRCLResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class EncryptedRCLResult extends ResultItem { public static final String SERIALIZED_NAME_ENCRYPTED_R_C_L = "EncryptedRCL"; @SerializedName(SERIALIZED_NAME_ENCRYPTED_R_C_L) + @javax.annotation.Nonnull private byte[] encryptedRCL; - public EncryptedRCLResult withEncryptedRCL(byte[] encryptedRCL) { + public EncryptedRCLResult() {} + + public EncryptedRCLResult encryptedRCL(@javax.annotation.Nonnull byte[] encryptedRCL) { this.encryptedRCL = encryptedRCL; return this; } @@ -33,16 +52,17 @@ public EncryptedRCLResult withEncryptedRCL(byte[] encryptedRCL) { * * @return encryptedRCL */ + @javax.annotation.Nonnull public byte[] getEncryptedRCL() { return encryptedRCL; } - public void setEncryptedRCL(byte[] encryptedRCL) { + public void setEncryptedRCL(@javax.annotation.Nonnull byte[] encryptedRCL) { this.encryptedRCL = encryptedRCL; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -71,10 +91,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("EncryptedRCL"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("EncryptedRCL"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to EncryptedRCLResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!EncryptedRCLResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in EncryptedRCLResult is not found in the empty JSON string", + EncryptedRCLResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!EncryptedRCLResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `EncryptedRCLResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : EncryptedRCLResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!EncryptedRCLResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'EncryptedRCLResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(EncryptedRCLResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, EncryptedRCLResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public EncryptedRCLResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of EncryptedRCLResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of EncryptedRCLResult + * @throws IOException if the JSON string is invalid with respect to EncryptedRCLResult + */ + public static EncryptedRCLResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, EncryptedRCLResult.class); + } + + /** + * Convert an instance of EncryptedRCLResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java new file mode 100644 index 00000000..99c9e0a5 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java @@ -0,0 +1,273 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** ErrorCoordinates */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class ErrorCoordinates { + public static final String SERIALIZED_NAME_LEFT = "Left"; + + @SerializedName(SERIALIZED_NAME_LEFT) + @javax.annotation.Nullable + private Integer left; + + public static final String SERIALIZED_NAME_TOP = "Top"; + + @SerializedName(SERIALIZED_NAME_TOP) + @javax.annotation.Nullable + private Integer top; + + public static final String SERIALIZED_NAME_RIGHT = "Right"; + + @SerializedName(SERIALIZED_NAME_RIGHT) + @javax.annotation.Nullable + private Integer right; + + public static final String SERIALIZED_NAME_BOTTOM = "Bottom"; + + @SerializedName(SERIALIZED_NAME_BOTTOM) + @javax.annotation.Nullable + private Integer bottom; + + public ErrorCoordinates() {} + + public ErrorCoordinates left(@javax.annotation.Nullable Integer left) { + this.left = left; + return this; + } + + /** + * Get left + * + * @return left + */ + @javax.annotation.Nullable + public Integer getLeft() { + return left; + } + + public void setLeft(@javax.annotation.Nullable Integer left) { + this.left = left; + } + + public ErrorCoordinates top(@javax.annotation.Nullable Integer top) { + this.top = top; + return this; + } + + /** + * Get top + * + * @return top + */ + @javax.annotation.Nullable + public Integer getTop() { + return top; + } + + public void setTop(@javax.annotation.Nullable Integer top) { + this.top = top; + } + + public ErrorCoordinates right(@javax.annotation.Nullable Integer right) { + this.right = right; + return this; + } + + /** + * Get right + * + * @return right + */ + @javax.annotation.Nullable + public Integer getRight() { + return right; + } + + public void setRight(@javax.annotation.Nullable Integer right) { + this.right = right; + } + + public ErrorCoordinates bottom(@javax.annotation.Nullable Integer bottom) { + this.bottom = bottom; + return this; + } + + /** + * Get bottom + * + * @return bottom + */ + @javax.annotation.Nullable + public Integer getBottom() { + return bottom; + } + + public void setBottom(@javax.annotation.Nullable Integer bottom) { + this.bottom = bottom; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ErrorCoordinates errorCoordinates = (ErrorCoordinates) o; + return Objects.equals(this.left, errorCoordinates.left) + && Objects.equals(this.top, errorCoordinates.top) + && Objects.equals(this.right, errorCoordinates.right) + && Objects.equals(this.bottom, errorCoordinates.bottom); + } + + @Override + public int hashCode() { + return Objects.hash(left, top, right, bottom); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ErrorCoordinates {\n"); + sb.append(" left: ").append(toIndentedString(left)).append("\n"); + sb.append(" top: ").append(toIndentedString(top)).append("\n"); + sb.append(" right: ").append(toIndentedString(right)).append("\n"); + sb.append(" bottom: ").append(toIndentedString(bottom)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Left"); + openapiFields.add("Top"); + openapiFields.add("Right"); + openapiFields.add("Bottom"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ErrorCoordinates + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ErrorCoordinates.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ErrorCoordinates is not found in the empty JSON string", + ErrorCoordinates.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ErrorCoordinates.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ErrorCoordinates` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ErrorCoordinates.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ErrorCoordinates' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ErrorCoordinates.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ErrorCoordinates value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ErrorCoordinates read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ErrorCoordinates given an JSON string + * + * @param jsonString JSON string + * @return An instance of ErrorCoordinates + * @throws IOException if the JSON string is invalid with respect to ErrorCoordinates + */ + public static ErrorCoordinates fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ErrorCoordinates.class); + } + + /** + * Convert an instance of ErrorCoordinates to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ExtendedRfidTextField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ExtendedRfidTextField.java deleted file mode 100755 index 0d876a7f..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ExtendedRfidTextField.java +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** ExtendedRfidTextField */ -public class ExtendedRfidTextField { - public static final String SERIALIZED_NAME_W_FIELD_TYPE = "wFieldType"; - - @SerializedName(SERIALIZED_NAME_W_FIELD_TYPE) - private int wFieldType; - - public static final String SERIALIZED_NAME_W_L_C_I_D = "wLCID"; - - @SerializedName(SERIALIZED_NAME_W_L_C_I_D) - private int wLCID; - - public static final String SERIALIZED_NAME_STRINGS_RESULT = "StringsResult"; - - @SerializedName(SERIALIZED_NAME_STRINGS_RESULT) - private List stringsResult = null; - - public static final String SERIALIZED_NAME_BUF_TEXT = "Buf_Text"; - - @SerializedName(SERIALIZED_NAME_BUF_TEXT) - private String bufText; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G = "RFID_OriginDG"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G) - private int rfIDOriginDG; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY = "RFID_OriginTagEntry"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY) - private int rfIDOriginTagEntry; - - public ExtendedRfidTextField withWFieldType(int wFieldType) { - this.wFieldType = wFieldType; - return this; - } - - /** - * Get wFieldType - * - * @return wFieldType - */ - @javax.annotation.Nullable - public int getwFieldType() { - return wFieldType; - } - - public void setwFieldType(int wFieldType) { - this.wFieldType = wFieldType; - } - - public ExtendedRfidTextField withWLCID(int wLCID) { - this.wLCID = wLCID; - return this; - } - - /** - * Get wLCID - * - * @return wLCID - */ - @javax.annotation.Nullable - public int getwLCID() { - return wLCID; - } - - public void setwLCID(int wLCID) { - this.wLCID = wLCID; - } - - public ExtendedRfidTextField withStringsResult(List stringsResult) { - this.stringsResult = stringsResult; - return this; - } - - public ExtendedRfidTextField addStringsResultItem(StringRecognitionResult stringsResultItem) { - if (this.stringsResult == null) { - this.stringsResult = new ArrayList(); - } - this.stringsResult.add(stringsResultItem); - return this; - } - - /** - * Array of recognizing probabilities for a each line of text field - * - * @return stringsResult - */ - @javax.annotation.Nullable - public List getStringsResult() { - return stringsResult; - } - - public void setStringsResult(List stringsResult) { - this.stringsResult = stringsResult; - } - - public ExtendedRfidTextField withBufText(String bufText) { - this.bufText = bufText; - return this; - } - - /** - * Text field data in UTF8 format. Results of reading different lines of a multiline field are - * separated by \"^\" - * - * @return bufText - */ - @javax.annotation.Nullable - public String getBufText() { - return bufText; - } - - public void setBufText(String bufText) { - this.bufText = bufText; - } - - public ExtendedRfidTextField withRfIDOriginDG(int rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; - return this; - } - - /** - * Information data group - * - * @return rfIDOriginDG - */ - @javax.annotation.Nullable - public int getRfIDOriginDG() { - return rfIDOriginDG; - } - - public void setRfIDOriginDG(int rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; - } - - public ExtendedRfidTextField withRfIDOriginTagEntry(int rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; - return this; - } - - /** - * Index of the text field record in information data group - * - * @return rfIDOriginTagEntry - */ - @javax.annotation.Nullable - public int getRfIDOriginTagEntry() { - return rfIDOriginTagEntry; - } - - public void setRfIDOriginTagEntry(int rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ExtendedRfidTextField extendedRfidTextField = (ExtendedRfidTextField) o; - return Objects.equals(this.wFieldType, extendedRfidTextField.wFieldType) - && Objects.equals(this.wLCID, extendedRfidTextField.wLCID) - && Objects.equals(this.stringsResult, extendedRfidTextField.stringsResult) - && Objects.equals(this.bufText, extendedRfidTextField.bufText) - && Objects.equals(this.rfIDOriginDG, extendedRfidTextField.rfIDOriginDG) - && Objects.equals(this.rfIDOriginTagEntry, extendedRfidTextField.rfIDOriginTagEntry); - } - - @Override - public int hashCode() { - return Objects.hash( - wFieldType, wLCID, stringsResult, bufText, rfIDOriginDG, rfIDOriginTagEntry); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ExtendedRfidTextField {\n"); - sb.append(" wFieldType: ").append(toIndentedString(wFieldType)).append("\n"); - sb.append(" wLCID: ").append(toIndentedString(wLCID)).append("\n"); - sb.append(" stringsResult: ").append(toIndentedString(stringsResult)).append("\n"); - sb.append(" bufText: ").append(toIndentedString(bufText)).append("\n"); - sb.append(" rfIDOriginDG: ").append(toIndentedString(rfIDOriginDG)).append("\n"); - sb.append(" rfIDOriginTagEntry: ").append(toIndentedString(rfIDOriginTagEntry)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ExtendedTextField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ExtendedTextField.java deleted file mode 100755 index 273aa373..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ExtendedTextField.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** ExtendedTextField */ -public class ExtendedTextField { - public static final String SERIALIZED_NAME_W_FIELD_TYPE = "wFieldType"; - - @SerializedName(SERIALIZED_NAME_W_FIELD_TYPE) - private int wFieldType; - - public static final String SERIALIZED_NAME_W_L_C_I_D = "wLCID"; - - @SerializedName(SERIALIZED_NAME_W_L_C_I_D) - private int wLCID; - - public static final String SERIALIZED_NAME_STRINGS_RESULT = "StringsResult"; - - @SerializedName(SERIALIZED_NAME_STRINGS_RESULT) - private List stringsResult = null; - - public static final String SERIALIZED_NAME_BUF_TEXT = "Buf_Text"; - - @SerializedName(SERIALIZED_NAME_BUF_TEXT) - private String bufText; - - public ExtendedTextField withWFieldType(int wFieldType) { - this.wFieldType = wFieldType; - return this; - } - - /** - * Get wFieldType - * - * @return wFieldType - */ - @javax.annotation.Nullable - public int getwFieldType() { - return wFieldType; - } - - public void setwFieldType(int wFieldType) { - this.wFieldType = wFieldType; - } - - public ExtendedTextField withWLCID(int wLCID) { - this.wLCID = wLCID; - return this; - } - - /** - * Get wLCID - * - * @return wLCID - */ - @javax.annotation.Nullable - public int getwLCID() { - return wLCID; - } - - public void setwLCID(int wLCID) { - this.wLCID = wLCID; - } - - public ExtendedTextField withStringsResult(List stringsResult) { - this.stringsResult = stringsResult; - return this; - } - - public ExtendedTextField addStringsResultItem(StringRecognitionResult stringsResultItem) { - if (this.stringsResult == null) { - this.stringsResult = new ArrayList(); - } - this.stringsResult.add(stringsResultItem); - return this; - } - - /** - * Array of recognizing probabilities for a each line of text field - * - * @return stringsResult - */ - @javax.annotation.Nullable - public List getStringsResult() { - return stringsResult; - } - - public void setStringsResult(List stringsResult) { - this.stringsResult = stringsResult; - } - - public ExtendedTextField withBufText(String bufText) { - this.bufText = bufText; - return this; - } - - /** - * Text field data in UTF8 format. Results of reading different lines of a multiline field are - * separated by \"^\" - * - * @return bufText - */ - @javax.annotation.Nullable - public String getBufText() { - return bufText; - } - - public void setBufText(String bufText) { - this.bufText = bufText; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ExtendedTextField extendedTextField = (ExtendedTextField) o; - return Objects.equals(this.wFieldType, extendedTextField.wFieldType) - && Objects.equals(this.wLCID, extendedTextField.wLCID) - && Objects.equals(this.stringsResult, extendedTextField.stringsResult) - && Objects.equals(this.bufText, extendedTextField.bufText); - } - - @Override - public int hashCode() { - return Objects.hash(wFieldType, wLCID, stringsResult, bufText); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ExtendedTextField {\n"); - sb.append(" wFieldType: ").append(toIndentedString(wFieldType)).append("\n"); - sb.append(" wLCID: ").append(toIndentedString(wLCID)).append("\n"); - sb.append(" stringsResult: ").append(toIndentedString(stringsResult)).append("\n"); - sb.append(" bufText: ").append(toIndentedString(bufText)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ExtendedVisualTextField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ExtendedVisualTextField.java deleted file mode 100755 index 4fc00b38..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ExtendedVisualTextField.java +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** ExtendedVisualTextField */ -public class ExtendedVisualTextField { - public static final String SERIALIZED_NAME_W_FIELD_TYPE = "wFieldType"; - - @SerializedName(SERIALIZED_NAME_W_FIELD_TYPE) - private int wFieldType; - - public static final String SERIALIZED_NAME_W_L_C_I_D = "wLCID"; - - @SerializedName(SERIALIZED_NAME_W_L_C_I_D) - private int wLCID; - - public static final String SERIALIZED_NAME_STRINGS_RESULT = "StringsResult"; - - @SerializedName(SERIALIZED_NAME_STRINGS_RESULT) - private List stringsResult = null; - - public static final String SERIALIZED_NAME_BUF_TEXT = "Buf_Text"; - - @SerializedName(SERIALIZED_NAME_BUF_TEXT) - private String bufText; - - public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; - - @SerializedName(SERIALIZED_NAME_FIELD_RECT) - private RectangleCoordinates fieldRect; - - public ExtendedVisualTextField withWFieldType(int wFieldType) { - this.wFieldType = wFieldType; - return this; - } - - /** - * Get wFieldType - * - * @return wFieldType - */ - @javax.annotation.Nullable - public int getwFieldType() { - return wFieldType; - } - - public void setwFieldType(int wFieldType) { - this.wFieldType = wFieldType; - } - - public ExtendedVisualTextField withWLCID(int wLCID) { - this.wLCID = wLCID; - return this; - } - - /** - * Get wLCID - * - * @return wLCID - */ - @javax.annotation.Nullable - public int getwLCID() { - return wLCID; - } - - public void setwLCID(int wLCID) { - this.wLCID = wLCID; - } - - public ExtendedVisualTextField withStringsResult(List stringsResult) { - this.stringsResult = stringsResult; - return this; - } - - public ExtendedVisualTextField addStringsResultItem(StringRecognitionResult stringsResultItem) { - if (this.stringsResult == null) { - this.stringsResult = new ArrayList(); - } - this.stringsResult.add(stringsResultItem); - return this; - } - - /** - * Array of recognizing probabilities for a each line of text field - * - * @return stringsResult - */ - @javax.annotation.Nullable - public List getStringsResult() { - return stringsResult; - } - - public void setStringsResult(List stringsResult) { - this.stringsResult = stringsResult; - } - - public ExtendedVisualTextField withBufText(String bufText) { - this.bufText = bufText; - return this; - } - - /** - * Text field data in UTF8 format. Results of reading different lines of a multiline field are - * separated by \"^\" - * - * @return bufText - */ - @javax.annotation.Nullable - public String getBufText() { - return bufText; - } - - public void setBufText(String bufText) { - this.bufText = bufText; - } - - public ExtendedVisualTextField withFieldRect(RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; - return this; - } - - /** - * Get fieldRect - * - * @return fieldRect - */ - @javax.annotation.Nullable - public RectangleCoordinates getFieldRect() { - return fieldRect; - } - - public void setFieldRect(RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ExtendedVisualTextField extendedVisualTextField = (ExtendedVisualTextField) o; - return Objects.equals(this.wFieldType, extendedVisualTextField.wFieldType) - && Objects.equals(this.wLCID, extendedVisualTextField.wLCID) - && Objects.equals(this.stringsResult, extendedVisualTextField.stringsResult) - && Objects.equals(this.bufText, extendedVisualTextField.bufText) - && Objects.equals(this.fieldRect, extendedVisualTextField.fieldRect); - } - - @Override - public int hashCode() { - return Objects.hash(wFieldType, wLCID, stringsResult, bufText, fieldRect); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ExtendedVisualTextField {\n"); - sb.append(" wFieldType: ").append(toIndentedString(wFieldType)).append("\n"); - sb.append(" wLCID: ").append(toIndentedString(wLCID)).append("\n"); - sb.append(" stringsResult: ").append(toIndentedString(stringsResult)).append("\n"); - sb.append(" bufText: ").append(toIndentedString(bufText)).append("\n"); - sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FDSIDList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FDSIDList.java old mode 100755 new mode 100644 index 6fd51143..4f468f0a --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FDSIDList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FDSIDList.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,69 +12,105 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Extended document type info and Regula's 'Information Reference Systems' links */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class FDSIDList { public static final String SERIALIZED_NAME_IC_A_O_CODE = "ICAOCode"; @SerializedName(SERIALIZED_NAME_IC_A_O_CODE) + @javax.annotation.Nonnull private String icAOCode; + public static final String SERIALIZED_NAME_COUNT = "Count"; + + @SerializedName(SERIALIZED_NAME_COUNT) + @javax.annotation.Nonnull + private BigDecimal count; + public static final String SERIALIZED_NAME_LIST = "List"; @SerializedName(SERIALIZED_NAME_LIST) - private List list = null; + @javax.annotation.Nonnull + private List list; public static final String SERIALIZED_NAME_D_TYPE = "dType"; @SerializedName(SERIALIZED_NAME_D_TYPE) - private Integer dType; + @javax.annotation.Nonnull + private DocumentType dType; public static final String SERIALIZED_NAME_D_FORMAT = "dFormat"; @SerializedName(SERIALIZED_NAME_D_FORMAT) - private Integer dFormat; + @javax.annotation.Nonnull + private DocumentFormat dFormat; public static final String SERIALIZED_NAME_D_M_R_Z = "dMRZ"; @SerializedName(SERIALIZED_NAME_D_M_R_Z) + @javax.annotation.Nonnull private Boolean dMRZ; public static final String SERIALIZED_NAME_D_DESCRIPTION = "dDescription"; @SerializedName(SERIALIZED_NAME_D_DESCRIPTION) + @javax.annotation.Nullable private String dDescription; public static final String SERIALIZED_NAME_D_YEAR = "dYear"; @SerializedName(SERIALIZED_NAME_D_YEAR) + @javax.annotation.Nonnull private String dYear; public static final String SERIALIZED_NAME_D_COUNTRY_NAME = "dCountryName"; @SerializedName(SERIALIZED_NAME_D_COUNTRY_NAME) + @javax.annotation.Nonnull private String dCountryName; public static final String SERIALIZED_NAME_D_STATE_CODE = "dStateCode"; @SerializedName(SERIALIZED_NAME_D_STATE_CODE) + @javax.annotation.Nullable private String dStateCode; public static final String SERIALIZED_NAME_D_STATE_NAME = "dStateName"; @SerializedName(SERIALIZED_NAME_D_STATE_NAME) + @javax.annotation.Nullable private String dStateName; public static final String SERIALIZED_NAME_IS_DEPRECATED = "isDeprecated"; @SerializedName(SERIALIZED_NAME_IS_DEPRECATED) + @javax.annotation.Nonnull private Boolean isDeprecated; - public FDSIDList withIcAOCode(String icAOCode) { + public FDSIDList() {} + + public FDSIDList icAOCode(@javax.annotation.Nonnull String icAOCode) { this.icAOCode = icAOCode; return this; } @@ -84,23 +120,42 @@ public FDSIDList withIcAOCode(String icAOCode) { * * @return icAOCode */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public String getIcAOCode() { return icAOCode; } - public void setIcAOCode(String icAOCode) { + public void setIcAOCode(@javax.annotation.Nonnull String icAOCode) { this.icAOCode = icAOCode; } - public FDSIDList withList(List list) { + public FDSIDList count(@javax.annotation.Nonnull BigDecimal count) { + this.count = count; + return this; + } + + /** + * Number of elements in the List + * + * @return count + */ + @javax.annotation.Nonnull + public BigDecimal getCount() { + return count; + } + + public void setCount(@javax.annotation.Nonnull BigDecimal count) { + this.count = count; + } + + public FDSIDList list(@javax.annotation.Nonnull List list) { this.list = list; return this; } public FDSIDList addListItem(Integer listItem) { if (this.list == null) { - this.list = new ArrayList(); + this.list = new ArrayList<>(); } this.list.add(listItem); return this; @@ -111,16 +166,16 @@ public FDSIDList addListItem(Integer listItem) { * * @return list */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getList() { return list; } - public void setList(List list) { + public void setList(@javax.annotation.Nonnull List list) { this.list = list; } - public FDSIDList withDType(Integer dType) { + public FDSIDList dType(@javax.annotation.Nonnull DocumentType dType) { this.dType = dType; return this; } @@ -130,16 +185,16 @@ public FDSIDList withDType(Integer dType) { * * @return dType */ - @javax.annotation.Nullable - public Integer getdType() { + @javax.annotation.Nonnull + public DocumentType getdType() { return dType; } - public void setdType(Integer dType) { + public void setdType(@javax.annotation.Nonnull DocumentType dType) { this.dType = dType; } - public FDSIDList withDFormat(Integer dFormat) { + public FDSIDList dFormat(@javax.annotation.Nonnull DocumentFormat dFormat) { this.dFormat = dFormat; return this; } @@ -149,16 +204,16 @@ public FDSIDList withDFormat(Integer dFormat) { * * @return dFormat */ - @javax.annotation.Nullable - public Integer getdFormat() { + @javax.annotation.Nonnull + public DocumentFormat getdFormat() { return dFormat; } - public void setdFormat(Integer dFormat) { + public void setdFormat(@javax.annotation.Nonnull DocumentFormat dFormat) { this.dFormat = dFormat; } - public FDSIDList withDMRZ(Boolean dMRZ) { + public FDSIDList dMRZ(@javax.annotation.Nonnull Boolean dMRZ) { this.dMRZ = dMRZ; return this; } @@ -168,16 +223,16 @@ public FDSIDList withDMRZ(Boolean dMRZ) { * * @return dMRZ */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Boolean getdMRZ() { return dMRZ; } - public void setdMRZ(Boolean dMRZ) { + public void setdMRZ(@javax.annotation.Nonnull Boolean dMRZ) { this.dMRZ = dMRZ; } - public FDSIDList withDDescription(String dDescription) { + public FDSIDList dDescription(@javax.annotation.Nullable String dDescription) { this.dDescription = dDescription; return this; } @@ -192,11 +247,11 @@ public String getdDescription() { return dDescription; } - public void setdDescription(String dDescription) { + public void setdDescription(@javax.annotation.Nullable String dDescription) { this.dDescription = dDescription; } - public FDSIDList withDYear(String dYear) { + public FDSIDList dYear(@javax.annotation.Nonnull String dYear) { this.dYear = dYear; return this; } @@ -206,16 +261,16 @@ public FDSIDList withDYear(String dYear) { * * @return dYear */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public String getdYear() { return dYear; } - public void setdYear(String dYear) { + public void setdYear(@javax.annotation.Nonnull String dYear) { this.dYear = dYear; } - public FDSIDList withDCountryName(String dCountryName) { + public FDSIDList dCountryName(@javax.annotation.Nonnull String dCountryName) { this.dCountryName = dCountryName; return this; } @@ -225,16 +280,16 @@ public FDSIDList withDCountryName(String dCountryName) { * * @return dCountryName */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public String getdCountryName() { return dCountryName; } - public void setdCountryName(String dCountryName) { + public void setdCountryName(@javax.annotation.Nonnull String dCountryName) { this.dCountryName = dCountryName; } - public FDSIDList withDStateCode(String dStateCode) { + public FDSIDList dStateCode(@javax.annotation.Nullable String dStateCode) { this.dStateCode = dStateCode; return this; } @@ -249,11 +304,11 @@ public String getdStateCode() { return dStateCode; } - public void setdStateCode(String dStateCode) { + public void setdStateCode(@javax.annotation.Nullable String dStateCode) { this.dStateCode = dStateCode; } - public FDSIDList withDStateName(String dStateName) { + public FDSIDList dStateName(@javax.annotation.Nullable String dStateName) { this.dStateName = dStateName; return this; } @@ -268,11 +323,11 @@ public String getdStateName() { return dStateName; } - public void setdStateName(String dStateName) { + public void setdStateName(@javax.annotation.Nullable String dStateName) { this.dStateName = dStateName; } - public FDSIDList withIsDeprecated(Boolean isDeprecated) { + public FDSIDList isDeprecated(@javax.annotation.Nonnull Boolean isDeprecated) { this.isDeprecated = isDeprecated; return this; } @@ -282,17 +337,17 @@ public FDSIDList withIsDeprecated(Boolean isDeprecated) { * * @return isDeprecated */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Boolean getIsDeprecated() { return isDeprecated; } - public void setIsDeprecated(Boolean isDeprecated) { + public void setIsDeprecated(@javax.annotation.Nonnull Boolean isDeprecated) { this.isDeprecated = isDeprecated; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -301,6 +356,7 @@ public boolean equals(java.lang.Object o) { } FDSIDList fdSIDList = (FDSIDList) o; return Objects.equals(this.icAOCode, fdSIDList.icAOCode) + && Objects.equals(this.count, fdSIDList.count) && Objects.equals(this.list, fdSIDList.list) && Objects.equals(this.dType, fdSIDList.dType) && Objects.equals(this.dFormat, fdSIDList.dFormat) @@ -317,6 +373,7 @@ public boolean equals(java.lang.Object o) { public int hashCode() { return Objects.hash( icAOCode, + count, list, dType, dFormat, @@ -334,6 +391,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class FDSIDList {\n"); sb.append(" icAOCode: ").append(toIndentedString(icAOCode)).append("\n"); + sb.append(" count: ").append(toIndentedString(count)).append("\n"); sb.append(" list: ").append(toIndentedString(list)).append("\n"); sb.append(" dType: ").append(toIndentedString(dType)).append("\n"); sb.append(" dFormat: ").append(toIndentedString(dFormat)).append("\n"); @@ -351,10 +409,184 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ICAOCode"); + openapiFields.add("Count"); + openapiFields.add("List"); + openapiFields.add("dType"); + openapiFields.add("dFormat"); + openapiFields.add("dMRZ"); + openapiFields.add("dDescription"); + openapiFields.add("dYear"); + openapiFields.add("dCountryName"); + openapiFields.add("dStateCode"); + openapiFields.add("dStateName"); + openapiFields.add("isDeprecated"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ICAOCode"); + openapiRequiredFields.add("Count"); + openapiRequiredFields.add("List"); + openapiRequiredFields.add("dType"); + openapiRequiredFields.add("dFormat"); + openapiRequiredFields.add("dMRZ"); + openapiRequiredFields.add("dYear"); + openapiRequiredFields.add("dCountryName"); + openapiRequiredFields.add("isDeprecated"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FDSIDList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FDSIDList.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in FDSIDList is not found in the empty JSON string", + FDSIDList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FDSIDList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `FDSIDList` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : FDSIDList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("ICAOCode").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ICAOCode` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("ICAOCode").toString())); + } + // ensure the required json array is present + if (jsonObj.get("List") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("List").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `List` to be an array in the JSON string but got `%s`", + jsonObj.get("List").toString())); + } + // validate the required field `dType` + DocumentType.validateJsonElement(jsonObj.get("dType")); + // validate the required field `dFormat` + DocumentFormat.validateJsonElement(jsonObj.get("dFormat")); + if ((jsonObj.get("dDescription") != null && !jsonObj.get("dDescription").isJsonNull()) + && !jsonObj.get("dDescription").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `dDescription` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("dDescription").toString())); + } + if (!jsonObj.get("dYear").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `dYear` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("dYear").toString())); + } + if (!jsonObj.get("dCountryName").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `dCountryName` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("dCountryName").toString())); + } + if ((jsonObj.get("dStateCode") != null && !jsonObj.get("dStateCode").isJsonNull()) + && !jsonObj.get("dStateCode").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `dStateCode` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("dStateCode").toString())); + } + if ((jsonObj.get("dStateName") != null && !jsonObj.get("dStateName").isJsonNull()) + && !jsonObj.get("dStateName").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `dStateName` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("dStateName").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FDSIDList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FDSIDList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(FDSIDList.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, FDSIDList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FDSIDList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of FDSIDList given an JSON string + * + * @param jsonString JSON string + * @return An instance of FDSIDList + * @throws IOException if the JSON string is invalid with respect to FDSIDList + */ + public static FDSIDList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FDSIDList.class); + } + + /** + * Convert an instance of FDSIDList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java index 0d788e78..08674c3b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,62 +12,90 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** FaceApi */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class FaceApi { public static final String SERIALIZED_NAME_URL = "url"; @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable private String url; public static final String SERIALIZED_NAME_MODE = "mode"; @SerializedName(SERIALIZED_NAME_MODE) + @javax.annotation.Nullable private String mode; public static final String SERIALIZED_NAME_SEARCH = "search"; @SerializedName(SERIALIZED_NAME_SEARCH) + @javax.annotation.Nullable private FaceApiSearch search; public static final String SERIALIZED_NAME_THRESHOLD = "threshold"; @SerializedName(SERIALIZED_NAME_THRESHOLD) + @javax.annotation.Nullable private Integer threshold; public static final String SERIALIZED_NAME_SERVICE_TIMEOUT = "serviceTimeout"; @SerializedName(SERIALIZED_NAME_SERVICE_TIMEOUT) + @javax.annotation.Nullable private Integer serviceTimeout; public static final String SERIALIZED_NAME_PROXY = "proxy"; @SerializedName(SERIALIZED_NAME_PROXY) + @javax.annotation.Nullable private String proxy; public static final String SERIALIZED_NAME_PROXY_USERPWD = "proxy_userpwd"; @SerializedName(SERIALIZED_NAME_PROXY_USERPWD) + @javax.annotation.Nullable private String proxyUserpwd; public static final String SERIALIZED_NAME_PROXY_TYPE = "proxy_type"; @SerializedName(SERIALIZED_NAME_PROXY_TYPE) + @javax.annotation.Nullable private Integer proxyType; public static final String SERIALIZED_NAME_CHILD_AGE_THRESHOLD = "childAgeThreshold"; @SerializedName(SERIALIZED_NAME_CHILD_AGE_THRESHOLD) + @javax.annotation.Nullable private Integer childAgeThreshold; public static final String SERIALIZED_NAME_CHILD_DOC_VALIDITY_YEARS = "childDocValidityYears"; @SerializedName(SERIALIZED_NAME_CHILD_DOC_VALIDITY_YEARS) + @javax.annotation.Nullable private Integer childDocValidityYears; - public FaceApi withUrl(String url) { + public FaceApi() {} + + public FaceApi url(@javax.annotation.Nullable String url) { this.url = url; return this; } @@ -82,11 +110,11 @@ public String getUrl() { return url; } - public void setUrl(String url) { + public void setUrl(@javax.annotation.Nullable String url) { this.url = url; } - public FaceApi withMode(String mode) { + public FaceApi mode(@javax.annotation.Nullable String mode) { this.mode = mode; return this; } @@ -101,11 +129,11 @@ public String getMode() { return mode; } - public void setMode(String mode) { + public void setMode(@javax.annotation.Nullable String mode) { this.mode = mode; } - public FaceApi withSearch(FaceApiSearch search) { + public FaceApi search(@javax.annotation.Nullable FaceApiSearch search) { this.search = search; return this; } @@ -120,11 +148,11 @@ public FaceApiSearch getSearch() { return search; } - public void setSearch(FaceApiSearch search) { + public void setSearch(@javax.annotation.Nullable FaceApiSearch search) { this.search = search; } - public FaceApi withThreshold(Integer threshold) { + public FaceApi threshold(@javax.annotation.Nullable Integer threshold) { this.threshold = threshold; return this; } @@ -140,11 +168,11 @@ public Integer getThreshold() { return threshold; } - public void setThreshold(Integer threshold) { + public void setThreshold(@javax.annotation.Nullable Integer threshold) { this.threshold = threshold; } - public FaceApi withServiceTimeout(Integer serviceTimeout) { + public FaceApi serviceTimeout(@javax.annotation.Nullable Integer serviceTimeout) { this.serviceTimeout = serviceTimeout; return this; } @@ -159,11 +187,11 @@ public Integer getServiceTimeout() { return serviceTimeout; } - public void setServiceTimeout(Integer serviceTimeout) { + public void setServiceTimeout(@javax.annotation.Nullable Integer serviceTimeout) { this.serviceTimeout = serviceTimeout; } - public FaceApi withProxy(String proxy) { + public FaceApi proxy(@javax.annotation.Nullable String proxy) { this.proxy = proxy; return this; } @@ -180,11 +208,11 @@ public String getProxy() { return proxy; } - public void setProxy(String proxy) { + public void setProxy(@javax.annotation.Nullable String proxy) { this.proxy = proxy; } - public FaceApi withProxyUserpwd(String proxyUserpwd) { + public FaceApi proxyUserpwd(@javax.annotation.Nullable String proxyUserpwd) { this.proxyUserpwd = proxyUserpwd; return this; } @@ -201,11 +229,11 @@ public String getProxyUserpwd() { return proxyUserpwd; } - public void setProxyUserpwd(String proxyUserpwd) { + public void setProxyUserpwd(@javax.annotation.Nullable String proxyUserpwd) { this.proxyUserpwd = proxyUserpwd; } - public FaceApi withProxyType(Integer proxyType) { + public FaceApi proxyType(@javax.annotation.Nullable Integer proxyType) { this.proxyType = proxyType; return this; } @@ -222,11 +250,11 @@ public Integer getProxyType() { return proxyType; } - public void setProxyType(Integer proxyType) { + public void setProxyType(@javax.annotation.Nullable Integer proxyType) { this.proxyType = proxyType; } - public FaceApi withChildAgeThreshold(Integer childAgeThreshold) { + public FaceApi childAgeThreshold(@javax.annotation.Nullable Integer childAgeThreshold) { this.childAgeThreshold = childAgeThreshold; return this; } @@ -241,11 +269,11 @@ public Integer getChildAgeThreshold() { return childAgeThreshold; } - public void setChildAgeThreshold(Integer childAgeThreshold) { + public void setChildAgeThreshold(@javax.annotation.Nullable Integer childAgeThreshold) { this.childAgeThreshold = childAgeThreshold; } - public FaceApi withChildDocValidityYears(Integer childDocValidityYears) { + public FaceApi childDocValidityYears(@javax.annotation.Nullable Integer childDocValidityYears) { this.childDocValidityYears = childDocValidityYears; return this; } @@ -260,12 +288,12 @@ public Integer getChildDocValidityYears() { return childDocValidityYears; } - public void setChildDocValidityYears(Integer childDocValidityYears) { + public void setChildDocValidityYears(@javax.annotation.Nullable Integer childDocValidityYears) { this.childDocValidityYears = childDocValidityYears; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -323,10 +351,142 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("url"); + openapiFields.add("mode"); + openapiFields.add("search"); + openapiFields.add("threshold"); + openapiFields.add("serviceTimeout"); + openapiFields.add("proxy"); + openapiFields.add("proxy_userpwd"); + openapiFields.add("proxy_type"); + openapiFields.add("childAgeThreshold"); + openapiFields.add("childDocValidityYears"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FaceApi + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FaceApi.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in FaceApi is not found in the empty JSON string", + FaceApi.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FaceApi.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `FaceApi` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("url") != null && !jsonObj.get("url").isJsonNull()) + && !jsonObj.get("url").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `url` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("url").toString())); + } + if ((jsonObj.get("mode") != null && !jsonObj.get("mode").isJsonNull()) + && !jsonObj.get("mode").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `mode` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("mode").toString())); + } + // validate the optional field `search` + if (jsonObj.get("search") != null && !jsonObj.get("search").isJsonNull()) { + FaceApiSearch.validateJsonElement(jsonObj.get("search")); + } + if ((jsonObj.get("proxy") != null && !jsonObj.get("proxy").isJsonNull()) + && !jsonObj.get("proxy").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `proxy` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("proxy").toString())); + } + if ((jsonObj.get("proxy_userpwd") != null && !jsonObj.get("proxy_userpwd").isJsonNull()) + && !jsonObj.get("proxy_userpwd").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `proxy_userpwd` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("proxy_userpwd").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FaceApi.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FaceApi' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(FaceApi.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, FaceApi value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FaceApi read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of FaceApi given an JSON string + * + * @param jsonString JSON string + * @return An instance of FaceApi + * @throws IOException if the JSON string is invalid with respect to FaceApi + */ + public static FaceApi fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FaceApi.class); + } + + /** + * Convert an instance of FaceApi to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApiSearch.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApiSearch.java index 89801470..855c6bfe 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApiSearch.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApiSearch.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,10 +12,23 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** * A search filter that can be applied if the \"match+search\" mode is enabled. May @@ -24,23 +37,31 @@ * href=\"https://dev.regulaforensics.com/FaceSDK-web-openapi/#tag/search/operation/search\" * target=\"_blank\">OpenAPI documentation</a>. */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class FaceApiSearch { public static final String SERIALIZED_NAME_LIMIT = "limit"; @SerializedName(SERIALIZED_NAME_LIMIT) + @javax.annotation.Nullable private Integer limit; public static final String SERIALIZED_NAME_THRESHOLD = "threshold"; @SerializedName(SERIALIZED_NAME_THRESHOLD) - private Float threshold = null; + @javax.annotation.Nullable + private Float threshold; public static final String SERIALIZED_NAME_GROUP_IDS = "group_ids"; @SerializedName(SERIALIZED_NAME_GROUP_IDS) - private List groupIds = null; + @javax.annotation.Nullable + private List groupIds; + + public FaceApiSearch() {} - public FaceApiSearch withLimit(Integer limit) { + public FaceApiSearch limit(@javax.annotation.Nullable Integer limit) { this.limit = limit; return this; } @@ -55,11 +76,11 @@ public Integer getLimit() { return limit; } - public void setLimit(Integer limit) { + public void setLimit(@javax.annotation.Nullable Integer limit) { this.limit = limit; } - public FaceApiSearch withThreshold(Float threshold) { + public FaceApiSearch threshold(@javax.annotation.Nullable Float threshold) { this.threshold = threshold; return this; } @@ -74,18 +95,18 @@ public Float getThreshold() { return threshold; } - public void setThreshold(Float threshold) { + public void setThreshold(@javax.annotation.Nullable Float threshold) { this.threshold = threshold; } - public FaceApiSearch withGroupIds(List groupIds) { + public FaceApiSearch groupIds(@javax.annotation.Nullable List groupIds) { this.groupIds = groupIds; return this; } public FaceApiSearch addGroupIdsItem(Integer groupIdsItem) { if (this.groupIds == null) { - this.groupIds = new ArrayList(); + this.groupIds = new ArrayList<>(); } this.groupIds.add(groupIdsItem); return this; @@ -101,12 +122,12 @@ public List getGroupIds() { return groupIds; } - public void setGroupIds(List groupIds) { + public void setGroupIds(@javax.annotation.Nullable List groupIds) { this.groupIds = groupIds; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -138,10 +159,112 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("limit"); + openapiFields.add("threshold"); + openapiFields.add("group_ids"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FaceApiSearch + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FaceApiSearch.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in FaceApiSearch is not found in the empty JSON string", + FaceApiSearch.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FaceApiSearch.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `FaceApiSearch` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("group_ids") != null + && !jsonObj.get("group_ids").isJsonNull() + && !jsonObj.get("group_ids").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `group_ids` to be an array in the JSON string but got `%s`", + jsonObj.get("group_ids").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FaceApiSearch.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FaceApiSearch' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(FaceApiSearch.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, FaceApiSearch value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FaceApiSearch read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of FaceApiSearch given an JSON string + * + * @param jsonString JSON string + * @return An instance of FaceApiSearch + * @throws IOException if the JSON string is invalid with respect to FaceApiSearch + */ + public static FaceApiSearch fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FaceApiSearch.class); + } + + /** + * Convert an instance of FaceApiSearch to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetection.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetection.java new file mode 100644 index 00000000..15da19fa --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetection.java @@ -0,0 +1,341 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** FaceDetection */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class FaceDetection { + public static final String SERIALIZED_NAME_COUNT = "Count"; + + @SerializedName(SERIALIZED_NAME_COUNT) + @javax.annotation.Nonnull + private Integer count; + + public static final String SERIALIZED_NAME_COUNT_FALSE_DETECTION = "CountFalseDetection"; + + @SerializedName(SERIALIZED_NAME_COUNT_FALSE_DETECTION) + @javax.annotation.Nonnull + private Integer countFalseDetection; + + public static final String SERIALIZED_NAME_RES = "Res"; + + @SerializedName(SERIALIZED_NAME_RES) + @javax.annotation.Nonnull + private List res; + + public static final String SERIALIZED_NAME_RESERVED1 = "Reserved1"; + + @SerializedName(SERIALIZED_NAME_RESERVED1) + @javax.annotation.Nullable + private Integer reserved1; + + public static final String SERIALIZED_NAME_RESERVED2 = "Reserved2"; + + @SerializedName(SERIALIZED_NAME_RESERVED2) + @javax.annotation.Nullable + private Integer reserved2; + + public FaceDetection() {} + + public FaceDetection count(@javax.annotation.Nonnull Integer count) { + this.count = count; + return this; + } + + /** + * Get count + * + * @return count + */ + @javax.annotation.Nonnull + public Integer getCount() { + return count; + } + + public void setCount(@javax.annotation.Nonnull Integer count) { + this.count = count; + } + + public FaceDetection countFalseDetection(@javax.annotation.Nonnull Integer countFalseDetection) { + this.countFalseDetection = countFalseDetection; + return this; + } + + /** + * Get countFalseDetection + * + * @return countFalseDetection + */ + @javax.annotation.Nonnull + public Integer getCountFalseDetection() { + return countFalseDetection; + } + + public void setCountFalseDetection(@javax.annotation.Nonnull Integer countFalseDetection) { + this.countFalseDetection = countFalseDetection; + } + + public FaceDetection res(@javax.annotation.Nonnull List res) { + this.res = res; + return this; + } + + public FaceDetection addResItem(FaceItem resItem) { + if (this.res == null) { + this.res = new ArrayList<>(); + } + this.res.add(resItem); + return this; + } + + /** + * Get res + * + * @return res + */ + @javax.annotation.Nonnull + public List getRes() { + return res; + } + + public void setRes(@javax.annotation.Nonnull List res) { + this.res = res; + } + + public FaceDetection reserved1(@javax.annotation.Nullable Integer reserved1) { + this.reserved1 = reserved1; + return this; + } + + /** + * Get reserved1 + * + * @return reserved1 + */ + @javax.annotation.Nullable + public Integer getReserved1() { + return reserved1; + } + + public void setReserved1(@javax.annotation.Nullable Integer reserved1) { + this.reserved1 = reserved1; + } + + public FaceDetection reserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; + return this; + } + + /** + * Get reserved2 + * + * @return reserved2 + */ + @javax.annotation.Nullable + public Integer getReserved2() { + return reserved2; + } + + public void setReserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FaceDetection faceDetection = (FaceDetection) o; + return Objects.equals(this.count, faceDetection.count) + && Objects.equals(this.countFalseDetection, faceDetection.countFalseDetection) + && Objects.equals(this.res, faceDetection.res) + && Objects.equals(this.reserved1, faceDetection.reserved1) + && Objects.equals(this.reserved2, faceDetection.reserved2); + } + + @Override + public int hashCode() { + return Objects.hash(count, countFalseDetection, res, reserved1, reserved2); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FaceDetection {\n"); + sb.append(" count: ").append(toIndentedString(count)).append("\n"); + sb.append(" countFalseDetection: ") + .append(toIndentedString(countFalseDetection)) + .append("\n"); + sb.append(" res: ").append(toIndentedString(res)).append("\n"); + sb.append(" reserved1: ").append(toIndentedString(reserved1)).append("\n"); + sb.append(" reserved2: ").append(toIndentedString(reserved2)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Count"); + openapiFields.add("CountFalseDetection"); + openapiFields.add("Res"); + openapiFields.add("Reserved1"); + openapiFields.add("Reserved2"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Count"); + openapiRequiredFields.add("CountFalseDetection"); + openapiRequiredFields.add("Res"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FaceDetection + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FaceDetection.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in FaceDetection is not found in the empty JSON string", + FaceDetection.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FaceDetection.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `FaceDetection` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : FaceDetection.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("Res").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Res` to be an array in the JSON string but got `%s`", + jsonObj.get("Res").toString())); + } + + JsonArray jsonArrayres = jsonObj.getAsJsonArray("Res"); + // validate the required field `Res` (array) + for (int i = 0; i < jsonArrayres.size(); i++) { + FaceItem.validateJsonElement(jsonArrayres.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FaceDetection.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FaceDetection' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(FaceDetection.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, FaceDetection value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FaceDetection read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of FaceDetection given an JSON string + * + * @param jsonString JSON string + * @return An instance of FaceDetection + * @throws IOException if the JSON string is invalid with respect to FaceDetection + */ + public static FaceDetection fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FaceDetection.class); + } + + /** + * Convert an instance of FaceDetection to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionResult.java new file mode 100644 index 00000000..3759e40d --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionResult.java @@ -0,0 +1,206 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** FaceDetectionResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class FaceDetectionResult extends ResultItem { + public static final String SERIALIZED_NAME_FACE_DETECTION = "FaceDetection"; + + @SerializedName(SERIALIZED_NAME_FACE_DETECTION) + @javax.annotation.Nonnull + private FaceDetection faceDetection; + + public FaceDetectionResult() {} + + public FaceDetectionResult faceDetection(@javax.annotation.Nonnull FaceDetection faceDetection) { + this.faceDetection = faceDetection; + return this; + } + + /** + * Get faceDetection + * + * @return faceDetection + */ + @javax.annotation.Nonnull + public FaceDetection getFaceDetection() { + return faceDetection; + } + + public void setFaceDetection(@javax.annotation.Nonnull FaceDetection faceDetection) { + this.faceDetection = faceDetection; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FaceDetectionResult faceDetectionResult = (FaceDetectionResult) o; + return Objects.equals(this.faceDetection, faceDetectionResult.faceDetection) && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(faceDetection, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FaceDetectionResult {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" faceDetection: ").append(toIndentedString(faceDetection)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("FaceDetection"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FaceDetection"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FaceDetectionResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FaceDetectionResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in FaceDetectionResult is not found in the empty JSON string", + FaceDetectionResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FaceDetectionResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `FaceDetectionResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : FaceDetectionResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FaceDetectionResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FaceDetectionResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(FaceDetectionResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, FaceDetectionResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FaceDetectionResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of FaceDetectionResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of FaceDetectionResult + * @throws IOException if the JSON string is invalid with respect to FaceDetectionResult + */ + public static FaceDetectionResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FaceDetectionResult.class); + } + + /** + * Convert an instance of FaceDetectionResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceItem.java new file mode 100644 index 00000000..55bc087f --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceItem.java @@ -0,0 +1,444 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** FaceItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class FaceItem { + public static final String SERIALIZED_NAME_COINCIDENCE_TO_PHOTO_AREA = "CoincidenceToPhotoArea"; + + @SerializedName(SERIALIZED_NAME_COINCIDENCE_TO_PHOTO_AREA) + @javax.annotation.Nonnull + private Integer coincidenceToPhotoArea; + + public static final String SERIALIZED_NAME_FACE_RECT = "FaceRect"; + + @SerializedName(SERIALIZED_NAME_FACE_RECT) + @javax.annotation.Nonnull + private RectangleCoordinates faceRect; + + public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; + + @SerializedName(SERIALIZED_NAME_FIELD_RECT) + @javax.annotation.Nonnull + private RectangleCoordinates fieldRect; + + public static final String SERIALIZED_NAME_GRAPH_FIELD_NUMBER = "GraphFieldNumber"; + + @SerializedName(SERIALIZED_NAME_GRAPH_FIELD_NUMBER) + @javax.annotation.Nonnull + private Integer graphFieldNumber; + + public static final String SERIALIZED_NAME_LANDMARKS = "Landmarks"; + + @SerializedName(SERIALIZED_NAME_LANDMARKS) + @javax.annotation.Nonnull + private List landmarks; + + public static final String SERIALIZED_NAME_LIGHT_TYPE = "LightType"; + + @SerializedName(SERIALIZED_NAME_LIGHT_TYPE) + @javax.annotation.Nonnull + private Light lightType; + + public static final String SERIALIZED_NAME_ORIENTATION = "Orientation"; + + @SerializedName(SERIALIZED_NAME_ORIENTATION) + @javax.annotation.Nonnull + private Integer orientation; + + public static final String SERIALIZED_NAME_PROBABILITY = "Probability"; + + @SerializedName(SERIALIZED_NAME_PROBABILITY) + @javax.annotation.Nonnull + private Integer probability; + + public FaceItem() {} + + public FaceItem coincidenceToPhotoArea(@javax.annotation.Nonnull Integer coincidenceToPhotoArea) { + this.coincidenceToPhotoArea = coincidenceToPhotoArea; + return this; + } + + /** + * Get coincidenceToPhotoArea + * + * @return coincidenceToPhotoArea + */ + @javax.annotation.Nonnull + public Integer getCoincidenceToPhotoArea() { + return coincidenceToPhotoArea; + } + + public void setCoincidenceToPhotoArea(@javax.annotation.Nonnull Integer coincidenceToPhotoArea) { + this.coincidenceToPhotoArea = coincidenceToPhotoArea; + } + + public FaceItem faceRect(@javax.annotation.Nonnull RectangleCoordinates faceRect) { + this.faceRect = faceRect; + return this; + } + + /** + * Get faceRect + * + * @return faceRect + */ + @javax.annotation.Nonnull + public RectangleCoordinates getFaceRect() { + return faceRect; + } + + public void setFaceRect(@javax.annotation.Nonnull RectangleCoordinates faceRect) { + this.faceRect = faceRect; + } + + public FaceItem fieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + return this; + } + + /** + * Get fieldRect + * + * @return fieldRect + */ + @javax.annotation.Nonnull + public RectangleCoordinates getFieldRect() { + return fieldRect; + } + + public void setFieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + } + + public FaceItem graphFieldNumber(@javax.annotation.Nonnull Integer graphFieldNumber) { + this.graphFieldNumber = graphFieldNumber; + return this; + } + + /** + * Get graphFieldNumber + * + * @return graphFieldNumber + */ + @javax.annotation.Nonnull + public Integer getGraphFieldNumber() { + return graphFieldNumber; + } + + public void setGraphFieldNumber(@javax.annotation.Nonnull Integer graphFieldNumber) { + this.graphFieldNumber = graphFieldNumber; + } + + public FaceItem landmarks(@javax.annotation.Nonnull List landmarks) { + this.landmarks = landmarks; + return this; + } + + public FaceItem addLandmarksItem(Point landmarksItem) { + if (this.landmarks == null) { + this.landmarks = new ArrayList<>(); + } + this.landmarks.add(landmarksItem); + return this; + } + + /** + * Get landmarks + * + * @return landmarks + */ + @javax.annotation.Nonnull + public List getLandmarks() { + return landmarks; + } + + public void setLandmarks(@javax.annotation.Nonnull List landmarks) { + this.landmarks = landmarks; + } + + public FaceItem lightType(@javax.annotation.Nonnull Light lightType) { + this.lightType = lightType; + return this; + } + + /** + * Get lightType + * + * @return lightType + */ + @javax.annotation.Nonnull + public Light getLightType() { + return lightType; + } + + public void setLightType(@javax.annotation.Nonnull Light lightType) { + this.lightType = lightType; + } + + public FaceItem orientation(@javax.annotation.Nonnull Integer orientation) { + this.orientation = orientation; + return this; + } + + /** + * Get orientation + * + * @return orientation + */ + @javax.annotation.Nonnull + public Integer getOrientation() { + return orientation; + } + + public void setOrientation(@javax.annotation.Nonnull Integer orientation) { + this.orientation = orientation; + } + + public FaceItem probability(@javax.annotation.Nonnull Integer probability) { + this.probability = probability; + return this; + } + + /** + * Get probability + * + * @return probability + */ + @javax.annotation.Nonnull + public Integer getProbability() { + return probability; + } + + public void setProbability(@javax.annotation.Nonnull Integer probability) { + this.probability = probability; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FaceItem faceItem = (FaceItem) o; + return Objects.equals(this.coincidenceToPhotoArea, faceItem.coincidenceToPhotoArea) + && Objects.equals(this.faceRect, faceItem.faceRect) + && Objects.equals(this.fieldRect, faceItem.fieldRect) + && Objects.equals(this.graphFieldNumber, faceItem.graphFieldNumber) + && Objects.equals(this.landmarks, faceItem.landmarks) + && Objects.equals(this.lightType, faceItem.lightType) + && Objects.equals(this.orientation, faceItem.orientation) + && Objects.equals(this.probability, faceItem.probability); + } + + @Override + public int hashCode() { + return Objects.hash( + coincidenceToPhotoArea, + faceRect, + fieldRect, + graphFieldNumber, + landmarks, + lightType, + orientation, + probability); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FaceItem {\n"); + sb.append(" coincidenceToPhotoArea: ") + .append(toIndentedString(coincidenceToPhotoArea)) + .append("\n"); + sb.append(" faceRect: ").append(toIndentedString(faceRect)).append("\n"); + sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); + sb.append(" graphFieldNumber: ").append(toIndentedString(graphFieldNumber)).append("\n"); + sb.append(" landmarks: ").append(toIndentedString(landmarks)).append("\n"); + sb.append(" lightType: ").append(toIndentedString(lightType)).append("\n"); + sb.append(" orientation: ").append(toIndentedString(orientation)).append("\n"); + sb.append(" probability: ").append(toIndentedString(probability)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("CoincidenceToPhotoArea"); + openapiFields.add("FaceRect"); + openapiFields.add("FieldRect"); + openapiFields.add("GraphFieldNumber"); + openapiFields.add("Landmarks"); + openapiFields.add("LightType"); + openapiFields.add("Orientation"); + openapiFields.add("Probability"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("CoincidenceToPhotoArea"); + openapiRequiredFields.add("FaceRect"); + openapiRequiredFields.add("FieldRect"); + openapiRequiredFields.add("GraphFieldNumber"); + openapiRequiredFields.add("Landmarks"); + openapiRequiredFields.add("LightType"); + openapiRequiredFields.add("Orientation"); + openapiRequiredFields.add("Probability"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FaceItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FaceItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in FaceItem is not found in the empty JSON string", + FaceItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FaceItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `FaceItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : FaceItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `FaceRect` + RectangleCoordinates.validateJsonElement(jsonObj.get("FaceRect")); + // validate the required field `FieldRect` + RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); + // ensure the json data is an array + if (!jsonObj.get("Landmarks").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Landmarks` to be an array in the JSON string but got `%s`", + jsonObj.get("Landmarks").toString())); + } + + JsonArray jsonArraylandmarks = jsonObj.getAsJsonArray("Landmarks"); + // validate the required field `Landmarks` (array) + for (int i = 0; i < jsonArraylandmarks.size(); i++) { + Point.validateJsonElement(jsonArraylandmarks.get(i)); + } + ; + // validate the required field `LightType` + Light.validateJsonElement(jsonObj.get("LightType")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FaceItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FaceItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(FaceItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, FaceItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FaceItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of FaceItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of FaceItem + * @throws IOException if the JSON string is invalid with respect to FaceItem + */ + public static FaceItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FaceItem.class); + } + + /** + * Convert an instance of FaceItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java index 70aea49b..acdbf528 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,59 +12,86 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** FiberResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class FiberResult extends AuthenticityCheckResultItem { public static final String SERIALIZED_NAME_RECT_COUNT = "RectCount"; @SerializedName(SERIALIZED_NAME_RECT_COUNT) + @javax.annotation.Nonnull private Integer rectCount; public static final String SERIALIZED_NAME_EXPECTED_COUNT = "ExpectedCount"; @SerializedName(SERIALIZED_NAME_EXPECTED_COUNT) + @javax.annotation.Nonnull private Integer expectedCount; public static final String SERIALIZED_NAME_LIGHT_VALUE = "LightValue"; @SerializedName(SERIALIZED_NAME_LIGHT_VALUE) - private Integer lightValue; + @javax.annotation.Nullable + private Light lightValue; public static final String SERIALIZED_NAME_LIGHT_DISP = "LightDisp"; @SerializedName(SERIALIZED_NAME_LIGHT_DISP) + @javax.annotation.Nullable private Integer lightDisp; public static final String SERIALIZED_NAME_RECT_ARRAY = "RectArray"; @SerializedName(SERIALIZED_NAME_RECT_ARRAY) - private List rectArray = null; + @javax.annotation.Nonnull + private List rectArray; public static final String SERIALIZED_NAME_WIDTH = "Width"; @SerializedName(SERIALIZED_NAME_WIDTH) - private List width = null; + @javax.annotation.Nonnull + private List width; public static final String SERIALIZED_NAME_LENGTH = "Length"; @SerializedName(SERIALIZED_NAME_LENGTH) - private List length = null; + @javax.annotation.Nonnull + private List length; public static final String SERIALIZED_NAME_AREA = "Area"; @SerializedName(SERIALIZED_NAME_AREA) - private List area = null; + @javax.annotation.Nonnull + private List area; public static final String SERIALIZED_NAME_COLOR_VALUES = "ColorValues"; @SerializedName(SERIALIZED_NAME_COLOR_VALUES) - private List colorValues = null; + @javax.annotation.Nonnull + private List colorValues; + + public FiberResult() {} - public FiberResult withRectCount(Integer rectCount) { + public FiberResult rectCount(@javax.annotation.Nonnull Integer rectCount) { this.rectCount = rectCount; return this; } @@ -74,16 +101,16 @@ public FiberResult withRectCount(Integer rectCount) { * * @return rectCount */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getRectCount() { return rectCount; } - public void setRectCount(Integer rectCount) { + public void setRectCount(@javax.annotation.Nonnull Integer rectCount) { this.rectCount = rectCount; } - public FiberResult withExpectedCount(Integer expectedCount) { + public FiberResult expectedCount(@javax.annotation.Nonnull Integer expectedCount) { this.expectedCount = expectedCount; return this; } @@ -93,16 +120,16 @@ public FiberResult withExpectedCount(Integer expectedCount) { * * @return expectedCount */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getExpectedCount() { return expectedCount; } - public void setExpectedCount(Integer expectedCount) { + public void setExpectedCount(@javax.annotation.Nonnull Integer expectedCount) { this.expectedCount = expectedCount; } - public FiberResult withLightValue(Integer lightValue) { + public FiberResult lightValue(@javax.annotation.Nullable Light lightValue) { this.lightValue = lightValue; return this; } @@ -113,15 +140,15 @@ public FiberResult withLightValue(Integer lightValue) { * @return lightValue */ @javax.annotation.Nullable - public Integer getLightValue() { + public Light getLightValue() { return lightValue; } - public void setLightValue(Integer lightValue) { + public void setLightValue(@javax.annotation.Nullable Light lightValue) { this.lightValue = lightValue; } - public FiberResult withLightDisp(Integer lightDisp) { + public FiberResult lightDisp(@javax.annotation.Nullable Integer lightDisp) { this.lightDisp = lightDisp; return this; } @@ -136,18 +163,18 @@ public Integer getLightDisp() { return lightDisp; } - public void setLightDisp(Integer lightDisp) { + public void setLightDisp(@javax.annotation.Nullable Integer lightDisp) { this.lightDisp = lightDisp; } - public FiberResult withRectArray(List rectArray) { + public FiberResult rectArray(@javax.annotation.Nonnull List rectArray) { this.rectArray = rectArray; return this; } public FiberResult addRectArrayItem(RectangleCoordinates rectArrayItem) { if (this.rectArray == null) { - this.rectArray = new ArrayList(); + this.rectArray = new ArrayList<>(); } this.rectArray.add(rectArrayItem); return this; @@ -158,23 +185,23 @@ public FiberResult addRectArrayItem(RectangleCoordinates rectArrayItem) { * * @return rectArray */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getRectArray() { return rectArray; } - public void setRectArray(List rectArray) { + public void setRectArray(@javax.annotation.Nonnull List rectArray) { this.rectArray = rectArray; } - public FiberResult withWidth(List width) { + public FiberResult width(@javax.annotation.Nonnull List width) { this.width = width; return this; } public FiberResult addWidthItem(Integer widthItem) { if (this.width == null) { - this.width = new ArrayList(); + this.width = new ArrayList<>(); } this.width.add(widthItem); return this; @@ -185,23 +212,23 @@ public FiberResult addWidthItem(Integer widthItem) { * * @return width */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getWidth() { return width; } - public void setWidth(List width) { + public void setWidth(@javax.annotation.Nonnull List width) { this.width = width; } - public FiberResult withLength(List length) { + public FiberResult length(@javax.annotation.Nonnull List length) { this.length = length; return this; } public FiberResult addLengthItem(Integer lengthItem) { if (this.length == null) { - this.length = new ArrayList(); + this.length = new ArrayList<>(); } this.length.add(lengthItem); return this; @@ -212,23 +239,23 @@ public FiberResult addLengthItem(Integer lengthItem) { * * @return length */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getLength() { return length; } - public void setLength(List length) { + public void setLength(@javax.annotation.Nonnull List length) { this.length = length; } - public FiberResult withArea(List area) { + public FiberResult area(@javax.annotation.Nonnull List area) { this.area = area; return this; } public FiberResult addAreaItem(Integer areaItem) { if (this.area == null) { - this.area = new ArrayList(); + this.area = new ArrayList<>(); } this.area.add(areaItem); return this; @@ -239,23 +266,23 @@ public FiberResult addAreaItem(Integer areaItem) { * * @return area */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getArea() { return area; } - public void setArea(List area) { + public void setArea(@javax.annotation.Nonnull List area) { this.area = area; } - public FiberResult withColorValues(List colorValues) { + public FiberResult colorValues(@javax.annotation.Nonnull List colorValues) { this.colorValues = colorValues; return this; } public FiberResult addColorValuesItem(Integer colorValuesItem) { if (this.colorValues == null) { - this.colorValues = new ArrayList(); + this.colorValues = new ArrayList<>(); } this.colorValues.add(colorValuesItem); return this; @@ -266,17 +293,17 @@ public FiberResult addColorValuesItem(Integer colorValuesItem) { * * @return colorValues */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getColorValues() { return colorValues; } - public void setColorValues(List colorValues) { + public void setColorValues(@javax.annotation.Nonnull List colorValues) { this.colorValues = colorValues; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -332,10 +359,130 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("ElementResult"); + openapiFields.add("ElementDiagnose"); + openapiFields.add("PercentValue"); + openapiFields.add("RectCount"); + openapiFields.add("ExpectedCount"); + openapiFields.add("LightValue"); + openapiFields.add("LightDisp"); + openapiFields.add("RectArray"); + openapiFields.add("Width"); + openapiFields.add("Length"); + openapiFields.add("Area"); + openapiFields.add("ColorValues"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("RectCount"); + openapiRequiredFields.add("ExpectedCount"); + openapiRequiredFields.add("RectArray"); + openapiRequiredFields.add("Width"); + openapiRequiredFields.add("Length"); + openapiRequiredFields.add("Area"); + openapiRequiredFields.add("ColorValues"); + openapiRequiredFields.add("Type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FiberResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FiberResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in FiberResult is not found in the empty JSON string", + FiberResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FiberResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `FiberResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : FiberResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FiberResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FiberResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(FiberResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, FiberResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FiberResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of FiberResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of FiberResult + * @throws IOException if the JSON string is invalid with respect to FiberResult + */ + public static FiberResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FiberResult.class); + } + + /** + * Convert an instance of FiberResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FieldItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FieldItem.java new file mode 100644 index 00000000..84f10a71 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FieldItem.java @@ -0,0 +1,345 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** FieldItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class FieldItem { + public static final String SERIALIZED_NAME_FIELD_LENGTH = "FieldLength"; + + @SerializedName(SERIALIZED_NAME_FIELD_LENGTH) + @javax.annotation.Nonnull + private Integer fieldLength; + + public static final String SERIALIZED_NAME_FIELD_POS = "FieldPos"; + + @SerializedName(SERIALIZED_NAME_FIELD_POS) + @javax.annotation.Nonnull + private Integer fieldPos; + + public static final String SERIALIZED_NAME_FIELD_TYPE = "FieldType"; + + @SerializedName(SERIALIZED_NAME_FIELD_TYPE) + @javax.annotation.Nonnull + private Integer fieldType; + + public static final String SERIALIZED_NAME_T_E_S_T_R_E_S_U_L_T = "TEST_RESULT"; + + @SerializedName(SERIALIZED_NAME_T_E_S_T_R_E_S_U_L_T) + @javax.annotation.Nonnull + private Integer TEST_RESULT; + + public static final String SERIALIZED_NAME_VALID_CHECK_SUM = "ValidCheckSum"; + + @SerializedName(SERIALIZED_NAME_VALID_CHECK_SUM) + @javax.annotation.Nonnull + private Integer validCheckSum; + + public static final String SERIALIZED_NAME_RESERVED = "reserved"; + + @SerializedName(SERIALIZED_NAME_RESERVED) + @javax.annotation.Nonnull + private Integer reserved; + + public FieldItem() {} + + public FieldItem fieldLength(@javax.annotation.Nonnull Integer fieldLength) { + this.fieldLength = fieldLength; + return this; + } + + /** + * Get fieldLength + * + * @return fieldLength + */ + @javax.annotation.Nonnull + public Integer getFieldLength() { + return fieldLength; + } + + public void setFieldLength(@javax.annotation.Nonnull Integer fieldLength) { + this.fieldLength = fieldLength; + } + + public FieldItem fieldPos(@javax.annotation.Nonnull Integer fieldPos) { + this.fieldPos = fieldPos; + return this; + } + + /** + * Get fieldPos + * + * @return fieldPos + */ + @javax.annotation.Nonnull + public Integer getFieldPos() { + return fieldPos; + } + + public void setFieldPos(@javax.annotation.Nonnull Integer fieldPos) { + this.fieldPos = fieldPos; + } + + public FieldItem fieldType(@javax.annotation.Nonnull Integer fieldType) { + this.fieldType = fieldType; + return this; + } + + /** + * Get fieldType + * + * @return fieldType + */ + @javax.annotation.Nonnull + public Integer getFieldType() { + return fieldType; + } + + public void setFieldType(@javax.annotation.Nonnull Integer fieldType) { + this.fieldType = fieldType; + } + + public FieldItem TEST_RESULT(@javax.annotation.Nonnull Integer TEST_RESULT) { + this.TEST_RESULT = TEST_RESULT; + return this; + } + + /** + * Get TEST_RESULT + * + * @return TEST_RESULT + */ + @javax.annotation.Nonnull + public Integer getTESTRESULT() { + return TEST_RESULT; + } + + public void setTESTRESULT(@javax.annotation.Nonnull Integer TEST_RESULT) { + this.TEST_RESULT = TEST_RESULT; + } + + public FieldItem validCheckSum(@javax.annotation.Nonnull Integer validCheckSum) { + this.validCheckSum = validCheckSum; + return this; + } + + /** + * Get validCheckSum + * + * @return validCheckSum + */ + @javax.annotation.Nonnull + public Integer getValidCheckSum() { + return validCheckSum; + } + + public void setValidCheckSum(@javax.annotation.Nonnull Integer validCheckSum) { + this.validCheckSum = validCheckSum; + } + + public FieldItem reserved(@javax.annotation.Nonnull Integer reserved) { + this.reserved = reserved; + return this; + } + + /** + * Get reserved + * + * @return reserved + */ + @javax.annotation.Nonnull + public Integer getReserved() { + return reserved; + } + + public void setReserved(@javax.annotation.Nonnull Integer reserved) { + this.reserved = reserved; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FieldItem fieldItem = (FieldItem) o; + return Objects.equals(this.fieldLength, fieldItem.fieldLength) + && Objects.equals(this.fieldPos, fieldItem.fieldPos) + && Objects.equals(this.fieldType, fieldItem.fieldType) + && Objects.equals(this.TEST_RESULT, fieldItem.TEST_RESULT) + && Objects.equals(this.validCheckSum, fieldItem.validCheckSum) + && Objects.equals(this.reserved, fieldItem.reserved); + } + + @Override + public int hashCode() { + return Objects.hash(fieldLength, fieldPos, fieldType, TEST_RESULT, validCheckSum, reserved); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FieldItem {\n"); + sb.append(" fieldLength: ").append(toIndentedString(fieldLength)).append("\n"); + sb.append(" fieldPos: ").append(toIndentedString(fieldPos)).append("\n"); + sb.append(" fieldType: ").append(toIndentedString(fieldType)).append("\n"); + sb.append(" TEST_RESULT: ").append(toIndentedString(TEST_RESULT)).append("\n"); + sb.append(" validCheckSum: ").append(toIndentedString(validCheckSum)).append("\n"); + sb.append(" reserved: ").append(toIndentedString(reserved)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldLength"); + openapiFields.add("FieldPos"); + openapiFields.add("FieldType"); + openapiFields.add("TEST_RESULT"); + openapiFields.add("ValidCheckSum"); + openapiFields.add("reserved"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FieldLength"); + openapiRequiredFields.add("FieldPos"); + openapiRequiredFields.add("FieldType"); + openapiRequiredFields.add("TEST_RESULT"); + openapiRequiredFields.add("ValidCheckSum"); + openapiRequiredFields.add("reserved"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FieldItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FieldItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in FieldItem is not found in the empty JSON string", + FieldItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FieldItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `FieldItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : FieldItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FieldItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FieldItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(FieldItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, FieldItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FieldItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of FieldItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of FieldItem + * @throws IOException if the JSON string is invalid with respect to FieldItem + */ + public static FieldItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FieldItem.class); + } + + /** + * Convert an instance of FieldItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FieldSource.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FieldSource.java deleted file mode 100755 index 66f3eff4..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FieldSource.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -public class FieldSource { - - public static final String MRZ = "MRZ"; - - public static final String RFID = "RFID"; - - public static final String BARCODE = "BARCODE"; - - public static final String VISUAL = "VISUAL"; -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GetTransactionsByTagResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GetTransactionsByTagResponse.java index 47b8bce5..35659669 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GetTransactionsByTagResponse.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GetTransactionsByTagResponse.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,29 +12,50 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.UUID; -import org.threeten.bp.OffsetDateTime; /** GetTransactionsByTagResponse */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class GetTransactionsByTagResponse { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable private UUID id; public static final String SERIALIZED_NAME_STATE = "state"; @SerializedName(SERIALIZED_NAME_STATE) + @javax.annotation.Nullable private Integer state; public static final String SERIALIZED_NAME_UPDATED_AT = "updatedAt"; @SerializedName(SERIALIZED_NAME_UPDATED_AT) + @javax.annotation.Nullable private OffsetDateTime updatedAt; - public GetTransactionsByTagResponse withId(UUID id) { + public GetTransactionsByTagResponse() {} + + public GetTransactionsByTagResponse id(@javax.annotation.Nullable UUID id) { this.id = id; return this; } @@ -49,11 +70,11 @@ public UUID getId() { return id; } - public void setId(UUID id) { + public void setId(@javax.annotation.Nullable UUID id) { this.id = id; } - public GetTransactionsByTagResponse withState(Integer state) { + public GetTransactionsByTagResponse state(@javax.annotation.Nullable Integer state) { this.state = state; return this; } @@ -68,11 +89,12 @@ public Integer getState() { return state; } - public void setState(Integer state) { + public void setState(@javax.annotation.Nullable Integer state) { this.state = state; } - public GetTransactionsByTagResponse withUpdatedAt(OffsetDateTime updatedAt) { + public GetTransactionsByTagResponse updatedAt( + @javax.annotation.Nullable OffsetDateTime updatedAt) { this.updatedAt = updatedAt; return this; } @@ -87,12 +109,12 @@ public OffsetDateTime getUpdatedAt() { return updatedAt; } - public void setUpdatedAt(OffsetDateTime updatedAt) { + public void setUpdatedAt(@javax.annotation.Nullable OffsetDateTime updatedAt) { this.updatedAt = updatedAt; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -124,10 +146,111 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("state"); + openapiFields.add("updatedAt"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GetTransactionsByTagResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GetTransactionsByTagResponse.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in GetTransactionsByTagResponse is not found in the empty JSON string", + GetTransactionsByTagResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GetTransactionsByTagResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `GetTransactionsByTagResponse` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) + && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `id` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("id").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GetTransactionsByTagResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GetTransactionsByTagResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(GetTransactionsByTagResponse.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, GetTransactionsByTagResponse value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GetTransactionsByTagResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of GetTransactionsByTagResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of GetTransactionsByTagResponse + * @throws IOException if the JSON string is invalid with respect to GetTransactionsByTagResponse + */ + public static GetTransactionsByTagResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GetTransactionsByTagResponse.class); + } + + /** + * Convert an instance of GetTransactionsByTagResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java old mode 100755 new mode 100644 index ed0a4b7e..fcfc76ed --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,47 +12,40 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import com.google.gson.annotations.SerializedName; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; import java.util.Objects; -/** GraphicField */ +/** Information about one graphic field - abstract class */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class GraphicField { public static final String SERIALIZED_NAME_FIELD_TYPE = "FieldType"; @SerializedName(SERIALIZED_NAME_FIELD_TYPE) - private Integer fieldType; + @javax.annotation.Nonnull + private GraphicFieldType fieldType; + + public static final String SERIALIZED_NAME_FIELD_NAME = "FieldName"; + + @SerializedName(SERIALIZED_NAME_FIELD_NAME) + @javax.annotation.Nonnull + private String fieldName; public static final String SERIALIZED_NAME_IMAGE = "image"; @SerializedName(SERIALIZED_NAME_IMAGE) + @javax.annotation.Nonnull private ImageData image; - public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; - - @SerializedName(SERIALIZED_NAME_FIELD_RECT) - private RectangleCoordinates fieldRect; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G = "RFID_OriginDG"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G) - private Integer rfIDOriginDG; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG = "RFID_OriginDGTag"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG) - private Integer rfIDOriginDGTag; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY = "RFID_OriginTagEntry"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY) - private Integer rfIDOriginTagEntry; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW = "RFID_OriginEntryView"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW) - private Integer rfIDOriginEntryView; + public GraphicField() {} - public GraphicField withFieldType(Integer fieldType) { + public GraphicField fieldType(@javax.annotation.Nonnull GraphicFieldType fieldType) { this.fieldType = fieldType; return this; } @@ -62,130 +55,55 @@ public GraphicField withFieldType(Integer fieldType) { * * @return fieldType */ - public Integer getFieldType() { + @javax.annotation.Nonnull + public GraphicFieldType getFieldType() { return fieldType; } - public void setFieldType(Integer fieldType) { + public void setFieldType(@javax.annotation.Nonnull GraphicFieldType fieldType) { this.fieldType = fieldType; } - public GraphicField withImage(ImageData image) { - this.image = image; - return this; - } - - /** - * Get image - * - * @return image - */ - public ImageData getImage() { - return image; - } - - public void setImage(ImageData image) { - this.image = image; - } - - public GraphicField withFieldRect(RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; - return this; - } - - /** - * Get fieldRect - * - * @return fieldRect - */ - @javax.annotation.Nullable - public RectangleCoordinates getFieldRect() { - return fieldRect; - } - - public void setFieldRect(RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; - } - - public GraphicField withRfIDOriginDG(Integer rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; - return this; - } - - /** - * Source data group file. Only for Result.RFID_GRAPHICS result. - * - * @return rfIDOriginDG - */ - @javax.annotation.Nullable - public Integer getRfIDOriginDG() { - return rfIDOriginDG; - } - - public void setRfIDOriginDG(Integer rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; - } - - public GraphicField withRfIDOriginDGTag(Integer rfIDOriginDGTag) { - this.rfIDOriginDGTag = rfIDOriginDGTag; + public GraphicField fieldName(@javax.annotation.Nonnull String fieldName) { + this.fieldName = fieldName; return this; } /** - * Index of the source record of the image with biometric information in the information data - * group. Only for Result.RFID_GRAPHICS result. + * Graphic field symbolic name * - * @return rfIDOriginDGTag + * @return fieldName */ - @javax.annotation.Nullable - public Integer getRfIDOriginDGTag() { - return rfIDOriginDGTag; + @javax.annotation.Nonnull + public String getFieldName() { + return fieldName; } - public void setRfIDOriginDGTag(Integer rfIDOriginDGTag) { - this.rfIDOriginDGTag = rfIDOriginDGTag; + public void setFieldName(@javax.annotation.Nonnull String fieldName) { + this.fieldName = fieldName; } - public GraphicField withRfIDOriginTagEntry(Integer rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; - return this; - } - - /** - * Index of the template in the record with biometric data. Only for Result.RFID_GRAPHICS result. - * - * @return rfIDOriginTagEntry - */ - @javax.annotation.Nullable - public Integer getRfIDOriginTagEntry() { - return rfIDOriginTagEntry; - } - - public void setRfIDOriginTagEntry(Integer rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; - } - - public GraphicField withRfIDOriginEntryView(Integer rfIDOriginEntryView) { - this.rfIDOriginEntryView = rfIDOriginEntryView; + public GraphicField image(@javax.annotation.Nonnull ImageData image) { + this.image = image; return this; } /** - * Index of the variant of the biometric data template. Only for Result.RFID_GRAPHICS result. + * Get image * - * @return rfIDOriginEntryView + * @return image */ - @javax.annotation.Nullable - public Integer getRfIDOriginEntryView() { - return rfIDOriginEntryView; + @javax.annotation.Nonnull + public ImageData getImage() { + return image; } - public void setRfIDOriginEntryView(Integer rfIDOriginEntryView) { - this.rfIDOriginEntryView = rfIDOriginEntryView; + public void setImage(@javax.annotation.Nonnull ImageData image) { + this.image = image; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -194,24 +112,13 @@ public boolean equals(java.lang.Object o) { } GraphicField graphicField = (GraphicField) o; return Objects.equals(this.fieldType, graphicField.fieldType) - && Objects.equals(this.image, graphicField.image) - && Objects.equals(this.fieldRect, graphicField.fieldRect) - && Objects.equals(this.rfIDOriginDG, graphicField.rfIDOriginDG) - && Objects.equals(this.rfIDOriginDGTag, graphicField.rfIDOriginDGTag) - && Objects.equals(this.rfIDOriginTagEntry, graphicField.rfIDOriginTagEntry) - && Objects.equals(this.rfIDOriginEntryView, graphicField.rfIDOriginEntryView); + && Objects.equals(this.fieldName, graphicField.fieldName) + && Objects.equals(this.image, graphicField.image); } @Override public int hashCode() { - return Objects.hash( - fieldType, - image, - fieldRect, - rfIDOriginDG, - rfIDOriginDGTag, - rfIDOriginTagEntry, - rfIDOriginEntryView); + return Objects.hash(fieldType, fieldName, image); } @Override @@ -219,14 +126,8 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class GraphicField {\n"); sb.append(" fieldType: ").append(toIndentedString(fieldType)).append("\n"); + sb.append(" fieldName: ").append(toIndentedString(fieldName)).append("\n"); sb.append(" image: ").append(toIndentedString(image)).append("\n"); - sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); - sb.append(" rfIDOriginDG: ").append(toIndentedString(rfIDOriginDG)).append("\n"); - sb.append(" rfIDOriginDGTag: ").append(toIndentedString(rfIDOriginDGTag)).append("\n"); - sb.append(" rfIDOriginTagEntry: ").append(toIndentedString(rfIDOriginTagEntry)).append("\n"); - sb.append(" rfIDOriginEntryView: ") - .append(toIndentedString(rfIDOriginEntryView)) - .append("\n"); sb.append("}"); return sb.toString(); } @@ -234,10 +135,76 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldType"); + openapiFields.add("FieldName"); + openapiFields.add("image"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FieldType"); + openapiRequiredFields.add("FieldName"); + openapiRequiredFields.add("image"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GraphicField + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GraphicField.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in GraphicField is not found in the empty JSON string", + GraphicField.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `FieldType` + GraphicFieldType.validateJsonElement(jsonObj.get("FieldType")); + if (!jsonObj.get("FieldName").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `FieldName` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("FieldName").toString())); + } + // validate the required field `image` + ImageData.validateJsonElement(jsonObj.get("image")); + } + + /** + * Create an instance of GraphicField given an JSON string + * + * @param jsonString JSON string + * @return An instance of GraphicField + * @throws IOException if the JSON string is invalid with respect to GraphicField + */ + public static GraphicField fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GraphicField.class); + } + + /** + * Convert an instance of GraphicField to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java new file mode 100644 index 00000000..0c295660 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java @@ -0,0 +1,209 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** Information about one graphic field, which is a rectangle */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class GraphicFieldRect extends GraphicField { + public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; + + @SerializedName(SERIALIZED_NAME_FIELD_RECT) + @javax.annotation.Nonnull + private RectangleCoordinates fieldRect; + + public GraphicFieldRect() {} + + public GraphicFieldRect fieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + return this; + } + + /** + * Get fieldRect + * + * @return fieldRect + */ + @javax.annotation.Nonnull + public RectangleCoordinates getFieldRect() { + return fieldRect; + } + + public void setFieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GraphicFieldRect graphicFieldRect = (GraphicFieldRect) o; + return Objects.equals(this.fieldRect, graphicFieldRect.fieldRect) && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(fieldRect, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GraphicFieldRect {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldType"); + openapiFields.add("FieldName"); + openapiFields.add("image"); + openapiFields.add("FieldRect"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FieldRect"); + openapiRequiredFields.add("FieldType"); + openapiRequiredFields.add("FieldName"); + openapiRequiredFields.add("image"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GraphicFieldRect + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GraphicFieldRect.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in GraphicFieldRect is not found in the empty JSON string", + GraphicFieldRect.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GraphicFieldRect.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `GraphicFieldRect` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : GraphicFieldRect.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `FieldRect` + RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GraphicFieldRect.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GraphicFieldRect' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldRect.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, GraphicFieldRect value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GraphicFieldRect read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of GraphicFieldRect given an JSON string + * + * @param jsonString JSON string + * @return An instance of GraphicFieldRect + * @throws IOException if the JSON string is invalid with respect to GraphicFieldRect + */ + public static GraphicFieldRect fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GraphicFieldRect.class); + } + + /** + * Convert an instance of GraphicFieldRect to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java new file mode 100644 index 00000000..ce7702e5 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java @@ -0,0 +1,303 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** Information about one graphic field, which is a RFID */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class GraphicFieldRfid extends GraphicField { + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G = "RFID_OriginDG"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G) + @javax.annotation.Nonnull + private RfidDataGroupTypeTag rfIDOriginDG; + + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG = "RFID_OriginDGTag"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG) + @javax.annotation.Nonnull + private Integer rfIDOriginDGTag; + + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY = "RFID_OriginTagEntry"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY) + @javax.annotation.Nonnull + private Integer rfIDOriginTagEntry; + + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW = "RFID_OriginEntryView"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW) + @javax.annotation.Nonnull + private Integer rfIDOriginEntryView; + + public GraphicFieldRfid() {} + + public GraphicFieldRfid rfIDOriginDG( + @javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { + this.rfIDOriginDG = rfIDOriginDG; + return this; + } + + /** + * Get rfIDOriginDG + * + * @return rfIDOriginDG + */ + @javax.annotation.Nonnull + public RfidDataGroupTypeTag getRfIDOriginDG() { + return rfIDOriginDG; + } + + public void setRfIDOriginDG(@javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { + this.rfIDOriginDG = rfIDOriginDG; + } + + public GraphicFieldRfid rfIDOriginDGTag(@javax.annotation.Nonnull Integer rfIDOriginDGTag) { + this.rfIDOriginDGTag = rfIDOriginDGTag; + return this; + } + + /** + * Index of the source record of the image with biometric information in the information data + * group. Only for Result.RFID_GRAPHICS result. + * + * @return rfIDOriginDGTag + */ + @javax.annotation.Nonnull + public Integer getRfIDOriginDGTag() { + return rfIDOriginDGTag; + } + + public void setRfIDOriginDGTag(@javax.annotation.Nonnull Integer rfIDOriginDGTag) { + this.rfIDOriginDGTag = rfIDOriginDGTag; + } + + public GraphicFieldRfid rfIDOriginTagEntry(@javax.annotation.Nonnull Integer rfIDOriginTagEntry) { + this.rfIDOriginTagEntry = rfIDOriginTagEntry; + return this; + } + + /** + * Index of the template in the record with biometric data. Only for Result.RFID_GRAPHICS result. + * + * @return rfIDOriginTagEntry + */ + @javax.annotation.Nonnull + public Integer getRfIDOriginTagEntry() { + return rfIDOriginTagEntry; + } + + public void setRfIDOriginTagEntry(@javax.annotation.Nonnull Integer rfIDOriginTagEntry) { + this.rfIDOriginTagEntry = rfIDOriginTagEntry; + } + + public GraphicFieldRfid rfIDOriginEntryView( + @javax.annotation.Nonnull Integer rfIDOriginEntryView) { + this.rfIDOriginEntryView = rfIDOriginEntryView; + return this; + } + + /** + * Index of the variant of the biometric data template. Only for Result.RFID_GRAPHICS result. + * + * @return rfIDOriginEntryView + */ + @javax.annotation.Nonnull + public Integer getRfIDOriginEntryView() { + return rfIDOriginEntryView; + } + + public void setRfIDOriginEntryView(@javax.annotation.Nonnull Integer rfIDOriginEntryView) { + this.rfIDOriginEntryView = rfIDOriginEntryView; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GraphicFieldRfid graphicFieldRfid = (GraphicFieldRfid) o; + return Objects.equals(this.rfIDOriginDG, graphicFieldRfid.rfIDOriginDG) + && Objects.equals(this.rfIDOriginDGTag, graphicFieldRfid.rfIDOriginDGTag) + && Objects.equals(this.rfIDOriginTagEntry, graphicFieldRfid.rfIDOriginTagEntry) + && Objects.equals(this.rfIDOriginEntryView, graphicFieldRfid.rfIDOriginEntryView) + && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash( + rfIDOriginDG, rfIDOriginDGTag, rfIDOriginTagEntry, rfIDOriginEntryView, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GraphicFieldRfid {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" rfIDOriginDG: ").append(toIndentedString(rfIDOriginDG)).append("\n"); + sb.append(" rfIDOriginDGTag: ").append(toIndentedString(rfIDOriginDGTag)).append("\n"); + sb.append(" rfIDOriginTagEntry: ").append(toIndentedString(rfIDOriginTagEntry)).append("\n"); + sb.append(" rfIDOriginEntryView: ") + .append(toIndentedString(rfIDOriginEntryView)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldType"); + openapiFields.add("FieldName"); + openapiFields.add("image"); + openapiFields.add("RFID_OriginDG"); + openapiFields.add("RFID_OriginDGTag"); + openapiFields.add("RFID_OriginTagEntry"); + openapiFields.add("RFID_OriginEntryView"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("RFID_OriginDG"); + openapiRequiredFields.add("RFID_OriginDGTag"); + openapiRequiredFields.add("RFID_OriginTagEntry"); + openapiRequiredFields.add("RFID_OriginEntryView"); + openapiRequiredFields.add("FieldType"); + openapiRequiredFields.add("FieldName"); + openapiRequiredFields.add("image"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GraphicFieldRfid + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GraphicFieldRfid.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in GraphicFieldRfid is not found in the empty JSON string", + GraphicFieldRfid.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GraphicFieldRfid.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `GraphicFieldRfid` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : GraphicFieldRfid.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `RFID_OriginDG` + RfidDataGroupTypeTag.validateJsonElement(jsonObj.get("RFID_OriginDG")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GraphicFieldRfid.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GraphicFieldRfid' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldRfid.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, GraphicFieldRfid value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GraphicFieldRfid read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of GraphicFieldRfid given an JSON string + * + * @param jsonString JSON string + * @return An instance of GraphicFieldRfid + * @throws IOException if the JSON string is invalid with respect to GraphicFieldRfid + */ + public static GraphicFieldRfid fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GraphicFieldRfid.class); + } + + /** + * Convert an instance of GraphicFieldRfid to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java old mode 100755 new mode 100644 index c900a60b..80a91fdb --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,87 +12,142 @@ package com.regula.documentreader.webclient.model; -public class GraphicFieldType { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Gets or Sets GraphicFieldType */ +@JsonAdapter(GraphicFieldType.Adapter.class) +public enum GraphicFieldType { /** Document holder photo */ - public static final int PORTRAIT = 201; + PORTRAIT(201), /** Fingerprint of document holder */ - public static final int FINGERPRINT = 202; + FINGERPRINT(202), /** Image of the iris of document holder */ - public static final int EYE = 203; + EYE(203), /** Signature of document holder */ - public static final int SIGNATURE = 204; + SIGNATURE(204), /** Barcode image */ - public static final int BAR_CODE = 205; + BAR_CODE(205), /** Image of document confirming owner citizenship */ - public static final int PROOF_OF_CITIZENSHIP = 206; + PROOF_OF_CITIZENSHIP(206), /** * Cropped and rotated with perspective compensation (front side) of a document. Single input * image can contain multiple document side/pages, which will be returned as separated results. * Most coordinates in other types defined on that image. */ - public static final int DOCUMENT_FRONT = 207; + DOCUMENT_FRONT(207), /** Image of the rear side of the document */ - public static final int DOCUMENT_REAR = 208; + DOCUMENT_REAR(208), /** Area with dynamic color change */ - public static final int COLOR_DYNAMIC = 209; + COLOR_DYNAMIC(209), /** Additional Portrait */ - public static final int GHOST_PORTRAIT = 210; + GHOST_PORTRAIT(210), /** Stamp */ - public static final int STAMP = 211; + STAMP(211), + + /** Portrait of child */ + PORTRAIT_OF_CHILD(212), /** Contact chip */ - public static final int CONTACT_CHIP = 213; + CONTACT_CHIP(213), /** Undefined image type */ - public static final int OTHER = 250; + OTHER(250), /** Fingerprint (thumb, left hand) */ - public static final int FINGER_LEFT_THUMB = 300; + FINGER_LEFT_THUMB(300), /** Fingerprint (index, left hand) */ - public static final int FINGER_LEFT_INDEX = 301; + FINGER_LEFT_INDEX(301), /** Fingerprint (middle, left hand) */ - public static final int FINGER_LEFT_MIDDLE = 302; + FINGER_LEFT_MIDDLE(302), /** Fingerprint (ring, left hand) */ - public static final int FINGER_LEFT_RING = 303; + FINGER_LEFT_RING(303), /** Fingerprint (little, left hand) */ - public static final int FINGER_LEFT_LITTLE = 304; + FINGER_LEFT_LITTLE(304), /** Fingerprint (thumb, right hand) */ - public static final int FINGER_RIGHT_THUMB = 305; + FINGER_RIGHT_THUMB(305), /** Fingerprint (index, right hand) */ - public static final int FINGER_RIGHT_INDEX = 306; + FINGER_RIGHT_INDEX(306), /** Fingerprint (middle, right hand) */ - public static final int FINGER_RIGHT_MIDDLE = 307; + FINGER_RIGHT_MIDDLE(307), /** Fingerprint (ring, right hand) */ - public static final int FINGER_RIGHT_RING = 308; + FINGER_RIGHT_RING(308), /** Fingerprint (little, right hand) */ - public static final int FINGER_RIGHT_LITTLE = 309; + FINGER_RIGHT_LITTLE(309), /** Fingerprint (four without thumb on right hand) */ - public static final int FINGER_RIGHT_FOUR_FINGERS = 313; + FINGER_RIGHT_FOUR_FINGERS(313), /** Fingerprint (four without thumb on left hand */ - public static final int FINGER_LEFT_FOUR_FINGERS = 314; + FINGER_LEFT_FOUR_FINGERS(314), /** Fingerprint (two thumbs) */ - public static final int FINGER_TWO_THUMBS = 315; + FINGER_TWO_THUMBS(315); + + private Integer value; + + GraphicFieldType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static GraphicFieldType fromValue(Integer value) { + for (GraphicFieldType b : GraphicFieldType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final GraphicFieldType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public GraphicFieldType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return GraphicFieldType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + GraphicFieldType.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java deleted file mode 100755 index 28dd2058..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** GraphicFieldsList */ -public class GraphicFieldsList { - public static final String SERIALIZED_NAME_P_ARRAY_FIELDS = "pArrayFields"; - - @SerializedName(SERIALIZED_NAME_P_ARRAY_FIELDS) - private List pArrayFields = new ArrayList(); - - public GraphicFieldsList withPArrayFields(List pArrayFields) { - this.pArrayFields = pArrayFields; - return this; - } - - public GraphicFieldsList addPArrayFieldsItem(GraphicField pArrayFieldsItem) { - this.pArrayFields.add(pArrayFieldsItem); - return this; - } - - /** - * Get pArrayFields - * - * @return pArrayFields - */ - public List getpArrayFields() { - return pArrayFields; - } - - public void setpArrayFields(List pArrayFields) { - this.pArrayFields = pArrayFields; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GraphicFieldsList graphicFieldsList = (GraphicFieldsList) o; - return Objects.equals(this.pArrayFields, graphicFieldsList.pArrayFields); - } - - @Override - public int hashCode() { - return Objects.hash(pArrayFields); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GraphicFieldsList {\n"); - sb.append(" pArrayFields: ").append(toIndentedString(pArrayFields)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java new file mode 100644 index 00000000..6d84db4d --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java @@ -0,0 +1,267 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class GraphicFieldsListPArrayFieldsInner extends AbstractOpenApiSchema { + private static final Logger log = + Logger.getLogger(GraphicFieldsListPArrayFieldsInner.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GraphicFieldsListPArrayFieldsInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GraphicFieldsListPArrayFieldsInner' and its + // subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterGraphicFieldRect = + gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldRect.class)); + final TypeAdapter adapterGraphicFieldRfid = + gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldRfid.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, GraphicFieldsListPArrayFieldsInner value) + throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `GraphicFieldRect` + if (value.getActualInstance() instanceof GraphicFieldRect) { + JsonElement element = + adapterGraphicFieldRect.toJsonTree( + (GraphicFieldRect) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `GraphicFieldRfid` + if (value.getActualInstance() instanceof GraphicFieldRfid) { + JsonElement element = + adapterGraphicFieldRfid.toJsonTree( + (GraphicFieldRfid) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException( + "Failed to serialize as the type doesn't match oneOf schemas: GraphicFieldRect, GraphicFieldRfid"); + } + + @Override + public GraphicFieldsListPArrayFieldsInner read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize GraphicFieldRect + try { + // validate the JSON object to see if any exception is thrown + GraphicFieldRect.validateJsonElement(jsonElement); + actualAdapter = adapterGraphicFieldRect; + match++; + log.log(Level.FINER, "Input data matches schema 'GraphicFieldRect'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for GraphicFieldRect failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'GraphicFieldRect'", e); + } + // deserialize GraphicFieldRfid + try { + // validate the JSON object to see if any exception is thrown + GraphicFieldRfid.validateJsonElement(jsonElement); + actualAdapter = adapterGraphicFieldRfid; + match++; + log.log(Level.FINER, "Input data matches schema 'GraphicFieldRfid'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for GraphicFieldRfid failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'GraphicFieldRfid'", e); + } + + if (match == 1) { + GraphicFieldsListPArrayFieldsInner ret = new GraphicFieldsListPArrayFieldsInner(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException( + String.format( + "Failed deserialization for GraphicFieldsListPArrayFieldsInner: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public GraphicFieldsListPArrayFieldsInner() { + super("oneOf", Boolean.FALSE); + } + + public GraphicFieldsListPArrayFieldsInner(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("GraphicFieldRect", GraphicFieldRect.class); + schemas.put("GraphicFieldRfid", GraphicFieldRfid.class); + } + + @Override + public Map> getSchemas() { + return GraphicFieldsListPArrayFieldsInner.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: GraphicFieldRect, GraphicFieldRfid + * + *

It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof GraphicFieldRect) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof GraphicFieldRfid) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be GraphicFieldRect, GraphicFieldRfid"); + } + + /** + * Get the actual instance, which can be the following: GraphicFieldRect, GraphicFieldRfid + * + * @return The actual instance (GraphicFieldRect, GraphicFieldRfid) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `GraphicFieldRect`. If the actual instance is not + * `GraphicFieldRect`, the ClassCastException will be thrown. + * + * @return The actual instance of `GraphicFieldRect` + * @throws ClassCastException if the instance is not `GraphicFieldRect` + */ + public GraphicFieldRect getGraphicFieldRect() throws ClassCastException { + return (GraphicFieldRect) super.getActualInstance(); + } + + /** + * Get the actual instance of `GraphicFieldRfid`. If the actual instance is not + * `GraphicFieldRfid`, the ClassCastException will be thrown. + * + * @return The actual instance of `GraphicFieldRfid` + * @throws ClassCastException if the instance is not `GraphicFieldRfid` + */ + public GraphicFieldRfid getGraphicFieldRfid() throws ClassCastException { + return (GraphicFieldRfid) super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * GraphicFieldsListPArrayFieldsInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with GraphicFieldRect + try { + GraphicFieldRect.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for GraphicFieldRect failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with GraphicFieldRfid + try { + GraphicFieldRfid.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for GraphicFieldRfid failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException( + String.format( + "The JSON string is invalid for GraphicFieldsListPArrayFieldsInner with oneOf schemas: GraphicFieldRect, GraphicFieldRfid. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of GraphicFieldsListPArrayFieldsInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of GraphicFieldsListPArrayFieldsInner + * @throws IOException if the JSON string is invalid with respect to + * GraphicFieldsListPArrayFieldsInner + */ + public static GraphicFieldsListPArrayFieldsInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GraphicFieldsListPArrayFieldsInner.class); + } + + /** + * Convert an instance of GraphicFieldsListPArrayFieldsInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java old mode 100755 new mode 100644 index 3f46b93d..def406ef --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,20 +12,41 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** * Graphic fields extracted from one of the document sources. Returns separate results for each * provided page. */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class GraphicsResult extends ResultItem { public static final String SERIALIZED_NAME_DOC_GRAPHICS_INFO = "DocGraphicsInfo"; @SerializedName(SERIALIZED_NAME_DOC_GRAPHICS_INFO) - private GraphicFieldsList docGraphicsInfo; + @javax.annotation.Nonnull + private com.regula.documentreader.webclient.model.changed.GraphicFieldsList docGraphicsInfo; - public GraphicsResult withDocGraphicsInfo(GraphicFieldsList docGraphicsInfo) { + public GraphicsResult() {} + + public GraphicsResult docGraphicsInfo( + @javax.annotation.Nonnull + com.regula.documentreader.webclient.model.changed.GraphicFieldsList docGraphicsInfo) { this.docGraphicsInfo = docGraphicsInfo; return this; } @@ -35,16 +56,19 @@ public GraphicsResult withDocGraphicsInfo(GraphicFieldsList docGraphicsInfo) { * * @return docGraphicsInfo */ - public GraphicFieldsList getDocGraphicsInfo() { + @javax.annotation.Nonnull + public com.regula.documentreader.webclient.model.changed.GraphicFieldsList getDocGraphicsInfo() { return docGraphicsInfo; } - public void setDocGraphicsInfo(GraphicFieldsList docGraphicsInfo) { + public void setDocGraphicsInfo( + @javax.annotation.Nonnull + com.regula.documentreader.webclient.model.changed.GraphicFieldsList docGraphicsInfo) { this.docGraphicsInfo = docGraphicsInfo; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -73,10 +97,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("DocGraphicsInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("DocGraphicsInfo"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GraphicsResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GraphicsResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in GraphicsResult is not found in the empty JSON string", + GraphicsResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GraphicsResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `GraphicsResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : GraphicsResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GraphicsResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GraphicsResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(GraphicsResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, GraphicsResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GraphicsResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of GraphicsResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of GraphicsResult + * @throws IOException if the JSON string is invalid with respect to GraphicsResult + */ + public static GraphicsResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GraphicsResult.class); + } + + /** + * Convert an instance of GraphicsResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Healthcheck.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Healthcheck.java index 52dbb003..72dfa406 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Healthcheck.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Healthcheck.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,55 +12,88 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.time.OffsetDateTime; import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; -import org.threeten.bp.OffsetDateTime; +import java.util.Set; /** Healthcheck */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class Healthcheck { public static final String SERIALIZED_NAME_APP = "app"; @SerializedName(SERIALIZED_NAME_APP) + @javax.annotation.Nonnull private String app; public static final String SERIALIZED_NAME_LICENSE_ID = "licenseId"; @SerializedName(SERIALIZED_NAME_LICENSE_ID) + @javax.annotation.Nullable private String licenseId; public static final String SERIALIZED_NAME_LICENSE_TYPE = "licenseType"; @SerializedName(SERIALIZED_NAME_LICENSE_TYPE) + @javax.annotation.Nullable private String licenseType; public static final String SERIALIZED_NAME_LICENSE_SERIAL = "licenseSerial"; @SerializedName(SERIALIZED_NAME_LICENSE_SERIAL) + @javax.annotation.Nullable private String licenseSerial; public static final String SERIALIZED_NAME_LICENSE_VALID_UNTIL = "licenseValidUntil"; @SerializedName(SERIALIZED_NAME_LICENSE_VALID_UNTIL) + @javax.annotation.Nullable private OffsetDateTime licenseValidUntil; public static final String SERIALIZED_NAME_SCENARIOS = "scenarios"; @SerializedName(SERIALIZED_NAME_SCENARIOS) - private List scenarios = new ArrayList(); + @javax.annotation.Nullable + private List scenarios; public static final String SERIALIZED_NAME_VERSION = "version"; @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable private String version; + public static final String SERIALIZED_NAME_METADATA = "metadata"; + + @SerializedName(SERIALIZED_NAME_METADATA) + @javax.annotation.Nullable + private Map metadata; + public static final String SERIALIZED_NAME_DOCUMENTS_DATABASE = "documentsDatabase"; @SerializedName(SERIALIZED_NAME_DOCUMENTS_DATABASE) + @javax.annotation.Nullable private HealthcheckDocumentsDatabase documentsDatabase; - public Healthcheck withApp(String app) { + public Healthcheck() {} + + public Healthcheck app(@javax.annotation.Nonnull String app) { this.app = app; return this; } @@ -70,15 +103,16 @@ public Healthcheck withApp(String app) { * * @return app */ + @javax.annotation.Nonnull public String getApp() { return app; } - public void setApp(String app) { + public void setApp(@javax.annotation.Nonnull String app) { this.app = app; } - public Healthcheck withLicenseId(String licenseId) { + public Healthcheck licenseId(@javax.annotation.Nullable String licenseId) { this.licenseId = licenseId; return this; } @@ -93,11 +127,11 @@ public String getLicenseId() { return licenseId; } - public void setLicenseId(String licenseId) { + public void setLicenseId(@javax.annotation.Nullable String licenseId) { this.licenseId = licenseId; } - public Healthcheck withLicenseType(String licenseType) { + public Healthcheck licenseType(@javax.annotation.Nullable String licenseType) { this.licenseType = licenseType; return this; } @@ -112,11 +146,11 @@ public String getLicenseType() { return licenseType; } - public void setLicenseType(String licenseType) { + public void setLicenseType(@javax.annotation.Nullable String licenseType) { this.licenseType = licenseType; } - public Healthcheck withLicenseSerial(String licenseSerial) { + public Healthcheck licenseSerial(@javax.annotation.Nullable String licenseSerial) { this.licenseSerial = licenseSerial; return this; } @@ -131,11 +165,12 @@ public String getLicenseSerial() { return licenseSerial; } - public void setLicenseSerial(String licenseSerial) { + public void setLicenseSerial(@javax.annotation.Nullable String licenseSerial) { this.licenseSerial = licenseSerial; } - public Healthcheck withLicenseValidUntil(OffsetDateTime licenseValidUntil) { + public Healthcheck licenseValidUntil( + @javax.annotation.Nullable OffsetDateTime licenseValidUntil) { this.licenseValidUntil = licenseValidUntil; return this; } @@ -150,16 +185,19 @@ public OffsetDateTime getLicenseValidUntil() { return licenseValidUntil; } - public void setLicenseValidUntil(OffsetDateTime licenseValidUntil) { + public void setLicenseValidUntil(@javax.annotation.Nullable OffsetDateTime licenseValidUntil) { this.licenseValidUntil = licenseValidUntil; } - public Healthcheck withScenarios(List scenarios) { + public Healthcheck scenarios(@javax.annotation.Nullable List scenarios) { this.scenarios = scenarios; return this; } public Healthcheck addScenariosItem(String scenariosItem) { + if (this.scenarios == null) { + this.scenarios = new ArrayList<>(); + } this.scenarios.add(scenariosItem); return this; } @@ -174,11 +212,11 @@ public List getScenarios() { return scenarios; } - public void setScenarios(List scenarios) { + public void setScenarios(@javax.annotation.Nullable List scenarios) { this.scenarios = scenarios; } - public Healthcheck withVersion(String version) { + public Healthcheck version(@javax.annotation.Nullable String version) { this.version = version; return this; } @@ -193,11 +231,39 @@ public String getVersion() { return version; } - public void setVersion(String version) { + public void setVersion(@javax.annotation.Nullable String version) { this.version = version; } - public Healthcheck withDocumentsDatabase(HealthcheckDocumentsDatabase documentsDatabase) { + public Healthcheck metadata(@javax.annotation.Nullable Map metadata) { + this.metadata = metadata; + return this; + } + + public Healthcheck putMetadataItem(String key, Object metadataItem) { + if (this.metadata == null) { + this.metadata = new HashMap<>(); + } + this.metadata.put(key, metadataItem); + return this; + } + + /** + * Get metadata + * + * @return metadata + */ + @javax.annotation.Nullable + public Map getMetadata() { + return metadata; + } + + public void setMetadata(@javax.annotation.Nullable Map metadata) { + this.metadata = metadata; + } + + public Healthcheck documentsDatabase( + @javax.annotation.Nullable HealthcheckDocumentsDatabase documentsDatabase) { this.documentsDatabase = documentsDatabase; return this; } @@ -212,12 +278,13 @@ public HealthcheckDocumentsDatabase getDocumentsDatabase() { return documentsDatabase; } - public void setDocumentsDatabase(HealthcheckDocumentsDatabase documentsDatabase) { + public void setDocumentsDatabase( + @javax.annotation.Nullable HealthcheckDocumentsDatabase documentsDatabase) { this.documentsDatabase = documentsDatabase; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -232,6 +299,7 @@ public boolean equals(java.lang.Object o) { && Objects.equals(this.licenseValidUntil, healthcheck.licenseValidUntil) && Objects.equals(this.scenarios, healthcheck.scenarios) && Objects.equals(this.version, healthcheck.version) + && Objects.equals(this.metadata, healthcheck.metadata) && Objects.equals(this.documentsDatabase, healthcheck.documentsDatabase); } @@ -245,6 +313,7 @@ public int hashCode() { licenseValidUntil, scenarios, version, + metadata, documentsDatabase); } @@ -259,6 +328,7 @@ public String toString() { sb.append(" licenseValidUntil: ").append(toIndentedString(licenseValidUntil)).append("\n"); sb.append(" scenarios: ").append(toIndentedString(scenarios)).append("\n"); sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); sb.append(" documentsDatabase: ").append(toIndentedString(documentsDatabase)).append("\n"); sb.append("}"); return sb.toString(); @@ -267,10 +337,175 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("app"); + openapiFields.add("licenseId"); + openapiFields.add("licenseType"); + openapiFields.add("licenseSerial"); + openapiFields.add("licenseValidUntil"); + openapiFields.add("scenarios"); + openapiFields.add("version"); + openapiFields.add("metadata"); + openapiFields.add("documentsDatabase"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("app"); + openapiRequiredFields.add("licenseId"); + openapiRequiredFields.add("licenseType"); + openapiRequiredFields.add("licenseSerial"); + openapiRequiredFields.add("licenseValidUntil"); + openapiRequiredFields.add("scenarios"); + openapiRequiredFields.add("version"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to Healthcheck + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!Healthcheck.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in Healthcheck is not found in the empty JSON string", + Healthcheck.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!Healthcheck.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `Healthcheck` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : Healthcheck.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("app").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `app` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("app").toString())); + } + if ((jsonObj.get("licenseId") != null && !jsonObj.get("licenseId").isJsonNull()) + && !jsonObj.get("licenseId").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `licenseId` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("licenseId").toString())); + } + if ((jsonObj.get("licenseType") != null && !jsonObj.get("licenseType").isJsonNull()) + && !jsonObj.get("licenseType").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `licenseType` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("licenseType").toString())); + } + if ((jsonObj.get("licenseSerial") != null && !jsonObj.get("licenseSerial").isJsonNull()) + && !jsonObj.get("licenseSerial").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `licenseSerial` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("licenseSerial").toString())); + } + // ensure the required json array is present + if (jsonObj.get("scenarios") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("scenarios").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `scenarios` to be an array in the JSON string but got `%s`", + jsonObj.get("scenarios").toString())); + } + if ((jsonObj.get("version") != null && !jsonObj.get("version").isJsonNull()) + && !jsonObj.get("version").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `version` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("version").toString())); + } + // validate the optional field `documentsDatabase` + if (jsonObj.get("documentsDatabase") != null + && !jsonObj.get("documentsDatabase").isJsonNull()) { + HealthcheckDocumentsDatabase.validateJsonElement(jsonObj.get("documentsDatabase")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!Healthcheck.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'Healthcheck' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(Healthcheck.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, Healthcheck value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public Healthcheck read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of Healthcheck given an JSON string + * + * @param jsonString JSON string + * @return An instance of Healthcheck + * @throws IOException if the JSON string is invalid with respect to Healthcheck + */ + public static Healthcheck fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, Healthcheck.class); + } + + /** + * Convert an instance of Healthcheck to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java b/client/src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java index 81cac821..dc0b8e27 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,33 +12,55 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.time.LocalDate; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; -import org.threeten.bp.LocalDate; +import java.util.Set; /** Database information. */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class HealthcheckDocumentsDatabase { public static final String SERIALIZED_NAME_ID = "id"; @SerializedName(SERIALIZED_NAME_ID) + @javax.annotation.Nullable private String id; public static final String SERIALIZED_NAME_VERSION = "version"; @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable private String version; public static final String SERIALIZED_NAME_EXPORT_DATE = "exportDate"; @SerializedName(SERIALIZED_NAME_EXPORT_DATE) + @javax.annotation.Nullable private LocalDate exportDate; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable private String description; - public HealthcheckDocumentsDatabase withId(String id) { + public HealthcheckDocumentsDatabase() {} + + public HealthcheckDocumentsDatabase id(@javax.annotation.Nullable String id) { this.id = id; return this; } @@ -53,11 +75,11 @@ public String getId() { return id; } - public void setId(String id) { + public void setId(@javax.annotation.Nullable String id) { this.id = id; } - public HealthcheckDocumentsDatabase withVersion(String version) { + public HealthcheckDocumentsDatabase version(@javax.annotation.Nullable String version) { this.version = version; return this; } @@ -72,11 +94,11 @@ public String getVersion() { return version; } - public void setVersion(String version) { + public void setVersion(@javax.annotation.Nullable String version) { this.version = version; } - public HealthcheckDocumentsDatabase withExportDate(LocalDate exportDate) { + public HealthcheckDocumentsDatabase exportDate(@javax.annotation.Nullable LocalDate exportDate) { this.exportDate = exportDate; return this; } @@ -91,11 +113,11 @@ public LocalDate getExportDate() { return exportDate; } - public void setExportDate(LocalDate exportDate) { + public void setExportDate(@javax.annotation.Nullable LocalDate exportDate) { this.exportDate = exportDate; } - public HealthcheckDocumentsDatabase withDescription(String description) { + public HealthcheckDocumentsDatabase description(@javax.annotation.Nullable String description) { this.description = description; return this; } @@ -110,12 +132,12 @@ public String getDescription() { return description; } - public void setDescription(String description) { + public void setDescription(@javax.annotation.Nullable String description) { this.description = description; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -149,10 +171,140 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("id"); + openapiFields.add("version"); + openapiFields.add("exportDate"); + openapiFields.add("description"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("id"); + openapiRequiredFields.add("version"); + openapiRequiredFields.add("exportDate"); + openapiRequiredFields.add("description"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to HealthcheckDocumentsDatabase + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!HealthcheckDocumentsDatabase.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in HealthcheckDocumentsDatabase is not found in the empty JSON string", + HealthcheckDocumentsDatabase.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!HealthcheckDocumentsDatabase.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `HealthcheckDocumentsDatabase` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : HealthcheckDocumentsDatabase.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("id") != null && !jsonObj.get("id").isJsonNull()) + && !jsonObj.get("id").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `id` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("id").toString())); + } + if ((jsonObj.get("version") != null && !jsonObj.get("version").isJsonNull()) + && !jsonObj.get("version").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `version` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("version").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) + && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `description` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("description").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!HealthcheckDocumentsDatabase.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'HealthcheckDocumentsDatabase' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(HealthcheckDocumentsDatabase.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, HealthcheckDocumentsDatabase value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public HealthcheckDocumentsDatabase read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of HealthcheckDocumentsDatabase given an JSON string + * + * @param jsonString JSON string + * @return An instance of HealthcheckDocumentsDatabase + * @throws IOException if the JSON string is invalid with respect to HealthcheckDocumentsDatabase + */ + public static HealthcheckDocumentsDatabase fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, HealthcheckDocumentsDatabase.class); + } + + /** + * Convert an instance of HealthcheckDocumentsDatabase to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/IdentResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/IdentResult.java index 8b629c9b..b6194313 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/IdentResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/IdentResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,42 +12,66 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** IdentResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class IdentResult extends AuthenticityCheckResultItem { public static final String SERIALIZED_NAME_ELEMENT_TYPE = "ElementType"; @SerializedName(SERIALIZED_NAME_ELEMENT_TYPE) - private Integer elementType; + @javax.annotation.Nonnull + private SecurityFeatureType elementType; public static final String SERIALIZED_NAME_LIGHT_INDEX = "LightIndex"; @SerializedName(SERIALIZED_NAME_LIGHT_INDEX) - private Integer lightIndex; + @javax.annotation.Nonnull + private Light lightIndex; public static final String SERIALIZED_NAME_AREA = "Area"; @SerializedName(SERIALIZED_NAME_AREA) + @javax.annotation.Nullable private RectangleCoordinates area; public static final String SERIALIZED_NAME_IMAGE = "Image"; @SerializedName(SERIALIZED_NAME_IMAGE) + @javax.annotation.Nonnull private ImageData image; public static final String SERIALIZED_NAME_ETALON_IMAGE = "EtalonImage"; @SerializedName(SERIALIZED_NAME_ETALON_IMAGE) + @javax.annotation.Nonnull private ImageData etalonImage; public static final String SERIALIZED_NAME_AREA_LIST = "AreaList"; @SerializedName(SERIALIZED_NAME_AREA_LIST) + @javax.annotation.Nullable private AreaContainer areaList; - public IdentResult withElementType(Integer elementType) { + public IdentResult() {} + + public IdentResult elementType(@javax.annotation.Nonnull SecurityFeatureType elementType) { this.elementType = elementType; return this; } @@ -57,16 +81,16 @@ public IdentResult withElementType(Integer elementType) { * * @return elementType */ - @javax.annotation.Nullable - public Integer getElementType() { + @javax.annotation.Nonnull + public SecurityFeatureType getElementType() { return elementType; } - public void setElementType(Integer elementType) { + public void setElementType(@javax.annotation.Nonnull SecurityFeatureType elementType) { this.elementType = elementType; } - public IdentResult withLightIndex(Integer lightIndex) { + public IdentResult lightIndex(@javax.annotation.Nonnull Light lightIndex) { this.lightIndex = lightIndex; return this; } @@ -76,16 +100,16 @@ public IdentResult withLightIndex(Integer lightIndex) { * * @return lightIndex */ - @javax.annotation.Nullable - public Integer getLightIndex() { + @javax.annotation.Nonnull + public Light getLightIndex() { return lightIndex; } - public void setLightIndex(Integer lightIndex) { + public void setLightIndex(@javax.annotation.Nonnull Light lightIndex) { this.lightIndex = lightIndex; } - public IdentResult withArea(RectangleCoordinates area) { + public IdentResult area(@javax.annotation.Nullable RectangleCoordinates area) { this.area = area; return this; } @@ -100,11 +124,11 @@ public RectangleCoordinates getArea() { return area; } - public void setArea(RectangleCoordinates area) { + public void setArea(@javax.annotation.Nullable RectangleCoordinates area) { this.area = area; } - public IdentResult withImage(ImageData image) { + public IdentResult image(@javax.annotation.Nonnull ImageData image) { this.image = image; return this; } @@ -114,16 +138,16 @@ public IdentResult withImage(ImageData image) { * * @return image */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public ImageData getImage() { return image; } - public void setImage(ImageData image) { + public void setImage(@javax.annotation.Nonnull ImageData image) { this.image = image; } - public IdentResult withEtalonImage(ImageData etalonImage) { + public IdentResult etalonImage(@javax.annotation.Nonnull ImageData etalonImage) { this.etalonImage = etalonImage; return this; } @@ -133,16 +157,16 @@ public IdentResult withEtalonImage(ImageData etalonImage) { * * @return etalonImage */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public ImageData getEtalonImage() { return etalonImage; } - public void setEtalonImage(ImageData etalonImage) { + public void setEtalonImage(@javax.annotation.Nonnull ImageData etalonImage) { this.etalonImage = etalonImage; } - public IdentResult withAreaList(AreaContainer areaList) { + public IdentResult areaList(@javax.annotation.Nullable AreaContainer areaList) { this.areaList = areaList; return this; } @@ -157,12 +181,12 @@ public AreaContainer getAreaList() { return areaList; } - public void setAreaList(AreaContainer areaList) { + public void setAreaList(@javax.annotation.Nullable AreaContainer areaList) { this.areaList = areaList; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -203,10 +227,124 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("ElementResult"); + openapiFields.add("ElementDiagnose"); + openapiFields.add("PercentValue"); + openapiFields.add("ElementType"); + openapiFields.add("LightIndex"); + openapiFields.add("Area"); + openapiFields.add("Image"); + openapiFields.add("EtalonImage"); + openapiFields.add("AreaList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ElementType"); + openapiRequiredFields.add("LightIndex"); + openapiRequiredFields.add("Image"); + openapiRequiredFields.add("EtalonImage"); + openapiRequiredFields.add("Type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to IdentResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!IdentResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in IdentResult is not found in the empty JSON string", + IdentResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!IdentResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `IdentResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : IdentResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!IdentResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'IdentResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(IdentResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, IdentResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public IdentResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of IdentResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of IdentResult + * @throws IOException if the JSON string is invalid with respect to IdentResult + */ + public static IdentResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, IdentResult.class); + } + + /** + * Convert an instance of IdentResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageData.java old mode 100755 new mode 100644 index 5ce463c9..17e10dfe --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageData.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,22 +12,42 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ImageData */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ImageData { public static final String SERIALIZED_NAME_IMAGE = "image"; @SerializedName(SERIALIZED_NAME_IMAGE) + @javax.annotation.Nonnull private String image; public static final String SERIALIZED_NAME_FORMAT = "format"; @SerializedName(SERIALIZED_NAME_FORMAT) + @javax.annotation.Nullable private String format; - public ImageData withImage(String image) { + public ImageData() {} + + public ImageData image(@javax.annotation.Nonnull String image) { this.image = image; return this; } @@ -37,15 +57,16 @@ public ImageData withImage(String image) { * * @return image */ + @javax.annotation.Nonnull public String getImage() { return image; } - public void setImage(String image) { + public void setImage(@javax.annotation.Nonnull String image) { this.image = image; } - public ImageData withFormat(String format) { + public ImageData format(@javax.annotation.Nullable String format) { this.format = format; return this; } @@ -60,12 +81,12 @@ public String getFormat() { return format; } - public void setFormat(String format) { + public void setFormat(@javax.annotation.Nullable String format) { this.format = format; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -95,10 +116,126 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("image"); + openapiFields.add("format"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("image"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageData.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ImageData is not found in the empty JSON string", + ImageData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ImageData` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ImageData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("image").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `image` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("image").toString())); + } + if ((jsonObj.get("format") != null && !jsonObj.get("format").isJsonNull()) + && !jsonObj.get("format").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `format` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("format").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ImageData.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ImageData given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageData + * @throws IOException if the JSON string is invalid with respect to ImageData + */ + public static ImageData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageData.class); + } + + /** + * Convert an instance of ImageData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQA.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQA.java index 6f678885..d0ee5405 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQA.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQA.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,54 +12,86 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ImageQA */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ImageQA { public static final String SERIALIZED_NAME_BRIGHTNESS_THRESHOLD = "brightnessThreshold"; @SerializedName(SERIALIZED_NAME_BRIGHTNESS_THRESHOLD) + @javax.annotation.Nullable private Double brightnessThreshold; public static final String SERIALIZED_NAME_DPI_THRESHOLD = "dpiThreshold"; @SerializedName(SERIALIZED_NAME_DPI_THRESHOLD) + @javax.annotation.Nullable private Integer dpiThreshold; public static final String SERIALIZED_NAME_ANGLE_THRESHOLD = "angleThreshold"; @SerializedName(SERIALIZED_NAME_ANGLE_THRESHOLD) + @javax.annotation.Nullable private Integer angleThreshold; public static final String SERIALIZED_NAME_FOCUS_CHECK = "focusCheck"; @SerializedName(SERIALIZED_NAME_FOCUS_CHECK) + @javax.annotation.Nullable private Boolean focusCheck; public static final String SERIALIZED_NAME_GLARES_CHECK = "glaresCheck"; @SerializedName(SERIALIZED_NAME_GLARES_CHECK) + @javax.annotation.Nullable private Boolean glaresCheck; public static final String SERIALIZED_NAME_COLORNESS_CHECK = "colornessCheck"; @SerializedName(SERIALIZED_NAME_COLORNESS_CHECK) + @javax.annotation.Nullable private Boolean colornessCheck; + public static final String SERIALIZED_NAME_MOIRE_CHECK = "moireCheck"; + + @SerializedName(SERIALIZED_NAME_MOIRE_CHECK) + @javax.annotation.Nullable + private Boolean moireCheck; + public static final String SERIALIZED_NAME_DOCUMENT_POSITION_INDENT = "documentPositionIndent"; @SerializedName(SERIALIZED_NAME_DOCUMENT_POSITION_INDENT) + @javax.annotation.Nullable private Integer documentPositionIndent; public static final String SERIALIZED_NAME_EXPECTED_PASS = "expectedPass"; @SerializedName(SERIALIZED_NAME_EXPECTED_PASS) - private List expectedPass = null; + @javax.annotation.Nullable + private List expectedPass; + + public ImageQA() {} - public ImageQA withBrightnessThreshold(Double brightnessThreshold) { + public ImageQA brightnessThreshold(@javax.annotation.Nullable Double brightnessThreshold) { this.brightnessThreshold = brightnessThreshold; return this; } @@ -74,11 +106,11 @@ public Double getBrightnessThreshold() { return brightnessThreshold; } - public void setBrightnessThreshold(Double brightnessThreshold) { + public void setBrightnessThreshold(@javax.annotation.Nullable Double brightnessThreshold) { this.brightnessThreshold = brightnessThreshold; } - public ImageQA withDpiThreshold(Integer dpiThreshold) { + public ImageQA dpiThreshold(@javax.annotation.Nullable Integer dpiThreshold) { this.dpiThreshold = dpiThreshold; return this; } @@ -94,11 +126,11 @@ public Integer getDpiThreshold() { return dpiThreshold; } - public void setDpiThreshold(Integer dpiThreshold) { + public void setDpiThreshold(@javax.annotation.Nullable Integer dpiThreshold) { this.dpiThreshold = dpiThreshold; } - public ImageQA withAngleThreshold(Integer angleThreshold) { + public ImageQA angleThreshold(@javax.annotation.Nullable Integer angleThreshold) { this.angleThreshold = angleThreshold; return this; } @@ -114,11 +146,11 @@ public Integer getAngleThreshold() { return angleThreshold; } - public void setAngleThreshold(Integer angleThreshold) { + public void setAngleThreshold(@javax.annotation.Nullable Integer angleThreshold) { this.angleThreshold = angleThreshold; } - public ImageQA withFocusCheck(Boolean focusCheck) { + public ImageQA focusCheck(@javax.annotation.Nullable Boolean focusCheck) { this.focusCheck = focusCheck; return this; } @@ -133,11 +165,11 @@ public Boolean getFocusCheck() { return focusCheck; } - public void setFocusCheck(Boolean focusCheck) { + public void setFocusCheck(@javax.annotation.Nullable Boolean focusCheck) { this.focusCheck = focusCheck; } - public ImageQA withGlaresCheck(Boolean glaresCheck) { + public ImageQA glaresCheck(@javax.annotation.Nullable Boolean glaresCheck) { this.glaresCheck = glaresCheck; return this; } @@ -152,11 +184,11 @@ public Boolean getGlaresCheck() { return glaresCheck; } - public void setGlaresCheck(Boolean glaresCheck) { + public void setGlaresCheck(@javax.annotation.Nullable Boolean glaresCheck) { this.glaresCheck = glaresCheck; } - public ImageQA withColornessCheck(Boolean colornessCheck) { + public ImageQA colornessCheck(@javax.annotation.Nullable Boolean colornessCheck) { this.colornessCheck = colornessCheck; return this; } @@ -171,11 +203,31 @@ public Boolean getColornessCheck() { return colornessCheck; } - public void setColornessCheck(Boolean colornessCheck) { + public void setColornessCheck(@javax.annotation.Nullable Boolean colornessCheck) { this.colornessCheck = colornessCheck; } - public ImageQA withDocumentPositionIndent(Integer documentPositionIndent) { + public ImageQA moireCheck(@javax.annotation.Nullable Boolean moireCheck) { + this.moireCheck = moireCheck; + return this; + } + + /** + * This option enables screen capture (moire patterns) check while performing image quality + * validation. + * + * @return moireCheck + */ + @javax.annotation.Nullable + public Boolean getMoireCheck() { + return moireCheck; + } + + public void setMoireCheck(@javax.annotation.Nullable Boolean moireCheck) { + this.moireCheck = moireCheck; + } + + public ImageQA documentPositionIndent(@javax.annotation.Nullable Integer documentPositionIndent) { this.documentPositionIndent = documentPositionIndent; return this; } @@ -190,18 +242,19 @@ public Integer getDocumentPositionIndent() { return documentPositionIndent; } - public void setDocumentPositionIndent(Integer documentPositionIndent) { + public void setDocumentPositionIndent(@javax.annotation.Nullable Integer documentPositionIndent) { this.documentPositionIndent = documentPositionIndent; } - public ImageQA withExpectedPass(List expectedPass) { + public ImageQA expectedPass( + @javax.annotation.Nullable List expectedPass) { this.expectedPass = expectedPass; return this; } public ImageQA addExpectedPassItem(InputImageQualityChecks expectedPassItem) { if (this.expectedPass == null) { - this.expectedPass = new ArrayList(); + this.expectedPass = new ArrayList<>(); } this.expectedPass.add(expectedPassItem); return this; @@ -218,12 +271,13 @@ public List getExpectedPass() { return expectedPass; } - public void setExpectedPass(List expectedPass) { + public void setExpectedPass( + @javax.annotation.Nullable List expectedPass) { this.expectedPass = expectedPass; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -237,6 +291,7 @@ public boolean equals(java.lang.Object o) { && Objects.equals(this.focusCheck, imageQA.focusCheck) && Objects.equals(this.glaresCheck, imageQA.glaresCheck) && Objects.equals(this.colornessCheck, imageQA.colornessCheck) + && Objects.equals(this.moireCheck, imageQA.moireCheck) && Objects.equals(this.documentPositionIndent, imageQA.documentPositionIndent) && Objects.equals(this.expectedPass, imageQA.expectedPass); } @@ -250,6 +305,7 @@ public int hashCode() { focusCheck, glaresCheck, colornessCheck, + moireCheck, documentPositionIndent, expectedPass); } @@ -266,6 +322,7 @@ public String toString() { sb.append(" focusCheck: ").append(toIndentedString(focusCheck)).append("\n"); sb.append(" glaresCheck: ").append(toIndentedString(glaresCheck)).append("\n"); sb.append(" colornessCheck: ").append(toIndentedString(colornessCheck)).append("\n"); + sb.append(" moireCheck: ").append(toIndentedString(moireCheck)).append("\n"); sb.append(" documentPositionIndent: ") .append(toIndentedString(documentPositionIndent)) .append("\n"); @@ -277,10 +334,118 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("brightnessThreshold"); + openapiFields.add("dpiThreshold"); + openapiFields.add("angleThreshold"); + openapiFields.add("focusCheck"); + openapiFields.add("glaresCheck"); + openapiFields.add("colornessCheck"); + openapiFields.add("moireCheck"); + openapiFields.add("documentPositionIndent"); + openapiFields.add("expectedPass"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageQA + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageQA.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ImageQA is not found in the empty JSON string", + ImageQA.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageQA.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ImageQA` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("expectedPass") != null + && !jsonObj.get("expectedPass").isJsonNull() + && !jsonObj.get("expectedPass").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `expectedPass` to be an array in the JSON string but got `%s`", + jsonObj.get("expectedPass").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageQA.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageQA' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ImageQA.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageQA value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageQA read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ImageQA given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageQA + * @throws IOException if the JSON string is invalid with respect to ImageQA + */ + public static ImageQA fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageQA.class); + } + + /** + * Convert an instance of ImageQA to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheck.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheck.java index cb79e477..2e9d5ad0 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheck.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheck.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,47 +12,72 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ImageQualityCheck */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ImageQualityCheck { public static final String SERIALIZED_NAME_TYPE = "type"; @SerializedName(SERIALIZED_NAME_TYPE) - private Integer type; + @javax.annotation.Nonnull + private ImageQualityCheckType type; public static final String SERIALIZED_NAME_RESULT = "result"; @SerializedName(SERIALIZED_NAME_RESULT) - private Integer result; + @javax.annotation.Nonnull + private CheckResult result; public static final String SERIALIZED_NAME_FEATURE_TYPE = "featureType"; @SerializedName(SERIALIZED_NAME_FEATURE_TYPE) - private Integer featureType; + @javax.annotation.Nonnull + private SecurityFeatureType featureType; public static final String SERIALIZED_NAME_AREAS = "areas"; @SerializedName(SERIALIZED_NAME_AREAS) + @javax.annotation.Nullable private AreaArray areas; public static final String SERIALIZED_NAME_MEAN = "mean"; @SerializedName(SERIALIZED_NAME_MEAN) + @javax.annotation.Nonnull private Float mean; public static final String SERIALIZED_NAME_STD_DEV = "std_dev"; @SerializedName(SERIALIZED_NAME_STD_DEV) + @javax.annotation.Nonnull private Float stdDev; public static final String SERIALIZED_NAME_PROBABILITY = "probability"; @SerializedName(SERIALIZED_NAME_PROBABILITY) + @javax.annotation.Nonnull private Integer probability; - public ImageQualityCheck withType(Integer type) { + public ImageQualityCheck() {} + + public ImageQualityCheck type(@javax.annotation.Nonnull ImageQualityCheckType type) { this.type = type; return this; } @@ -62,16 +87,16 @@ public ImageQualityCheck withType(Integer type) { * * @return type */ - @javax.annotation.Nullable - public Integer getType() { + @javax.annotation.Nonnull + public ImageQualityCheckType getType() { return type; } - public void setType(Integer type) { + public void setType(@javax.annotation.Nonnull ImageQualityCheckType type) { this.type = type; } - public ImageQualityCheck withResult(Integer result) { + public ImageQualityCheck result(@javax.annotation.Nonnull CheckResult result) { this.result = result; return this; } @@ -81,16 +106,16 @@ public ImageQualityCheck withResult(Integer result) { * * @return result */ - @javax.annotation.Nullable - public Integer getResult() { + @javax.annotation.Nonnull + public CheckResult getResult() { return result; } - public void setResult(Integer result) { + public void setResult(@javax.annotation.Nonnull CheckResult result) { this.result = result; } - public ImageQualityCheck withFeatureType(Integer featureType) { + public ImageQualityCheck featureType(@javax.annotation.Nonnull SecurityFeatureType featureType) { this.featureType = featureType; return this; } @@ -100,16 +125,16 @@ public ImageQualityCheck withFeatureType(Integer featureType) { * * @return featureType */ - @javax.annotation.Nullable - public Integer getFeatureType() { + @javax.annotation.Nonnull + public SecurityFeatureType getFeatureType() { return featureType; } - public void setFeatureType(Integer featureType) { + public void setFeatureType(@javax.annotation.Nonnull SecurityFeatureType featureType) { this.featureType = featureType; } - public ImageQualityCheck withAreas(AreaArray areas) { + public ImageQualityCheck areas(@javax.annotation.Nullable AreaArray areas) { this.areas = areas; return this; } @@ -124,69 +149,69 @@ public AreaArray getAreas() { return areas; } - public void setAreas(AreaArray areas) { + public void setAreas(@javax.annotation.Nullable AreaArray areas) { this.areas = areas; } - public ImageQualityCheck withMean(Float mean) { + public ImageQualityCheck mean(@javax.annotation.Nonnull Float mean) { this.mean = mean; return this; } /** - * Get mean + * Check mean value * * @return mean */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Float getMean() { return mean; } - public void setMean(Float mean) { + public void setMean(@javax.annotation.Nonnull Float mean) { this.mean = mean; } - public ImageQualityCheck withStdDev(Float stdDev) { + public ImageQualityCheck stdDev(@javax.annotation.Nonnull Float stdDev) { this.stdDev = stdDev; return this; } /** - * Get stdDev + * Check deviation value * * @return stdDev */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Float getStdDev() { return stdDev; } - public void setStdDev(Float stdDev) { + public void setStdDev(@javax.annotation.Nonnull Float stdDev) { this.stdDev = stdDev; } - public ImageQualityCheck withProbability(Integer probability) { + public ImageQualityCheck probability(@javax.annotation.Nonnull Integer probability) { this.probability = probability; return this; } /** - * Get probability + * Check probability value * * @return probability */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getProbability() { return probability; } - public void setProbability(Integer probability) { + public void setProbability(@javax.annotation.Nonnull Integer probability) { this.probability = probability; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -226,10 +251,133 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("type"); + openapiFields.add("result"); + openapiFields.add("featureType"); + openapiFields.add("areas"); + openapiFields.add("mean"); + openapiFields.add("std_dev"); + openapiFields.add("probability"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("type"); + openapiRequiredFields.add("result"); + openapiRequiredFields.add("featureType"); + openapiRequiredFields.add("mean"); + openapiRequiredFields.add("std_dev"); + openapiRequiredFields.add("probability"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageQualityCheck + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageQualityCheck.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ImageQualityCheck is not found in the empty JSON string", + ImageQualityCheck.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageQualityCheck.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ImageQualityCheck` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ImageQualityCheck.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `type` + ImageQualityCheckType.validateJsonElement(jsonObj.get("type")); + // validate the required field `result` + CheckResult.validateJsonElement(jsonObj.get("result")); + // validate the required field `featureType` + SecurityFeatureType.validateJsonElement(jsonObj.get("featureType")); + // validate the optional field `areas` + if (jsonObj.get("areas") != null && !jsonObj.get("areas").isJsonNull()) { + AreaArray.validateJsonElement(jsonObj.get("areas")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageQualityCheck.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageQualityCheck' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ImageQualityCheck.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageQualityCheck value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageQualityCheck read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ImageQualityCheck given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageQualityCheck + * @throws IOException if the JSON string is invalid with respect to ImageQualityCheck + */ + public static ImageQualityCheck fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageQualityCheck.class); + } + + /** + * Convert an instance of ImageQualityCheck to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckList.java index a9d9b46b..6fec9ea0 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckList.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,24 +12,52 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ImageQualityCheckList */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ImageQualityCheckList { public static final String SERIALIZED_NAME_RESULT = "result"; @SerializedName(SERIALIZED_NAME_RESULT) - private Integer result; + @javax.annotation.Nonnull + private CheckResult result; public static final String SERIALIZED_NAME_LIST = "List"; @SerializedName(SERIALIZED_NAME_LIST) - private List list = new ArrayList(); + @javax.annotation.Nonnull + private List list; - public ImageQualityCheckList withResult(Integer result) { + public static final String SERIALIZED_NAME_COUNT = "Count"; + + @SerializedName(SERIALIZED_NAME_COUNT) + @javax.annotation.Nonnull + private BigDecimal count; + + public ImageQualityCheckList() {} + + public ImageQualityCheckList result(@javax.annotation.Nonnull CheckResult result) { this.result = result; return this; } @@ -39,20 +67,24 @@ public ImageQualityCheckList withResult(Integer result) { * * @return result */ - public Integer getResult() { + @javax.annotation.Nonnull + public CheckResult getResult() { return result; } - public void setResult(Integer result) { + public void setResult(@javax.annotation.Nonnull CheckResult result) { this.result = result; } - public ImageQualityCheckList withList(List list) { + public ImageQualityCheckList list(@javax.annotation.Nonnull List list) { this.list = list; return this; } public ImageQualityCheckList addListItem(ImageQualityCheck listItem) { + if (this.list == null) { + this.list = new ArrayList<>(); + } this.list.add(listItem); return this; } @@ -62,16 +94,36 @@ public ImageQualityCheckList addListItem(ImageQualityCheck listItem) { * * @return list */ + @javax.annotation.Nonnull public List getList() { return list; } - public void setList(List list) { + public void setList(@javax.annotation.Nonnull List list) { this.list = list; } + public ImageQualityCheckList count(@javax.annotation.Nonnull BigDecimal count) { + this.count = count; + return this; + } + + /** + * Number of List array elements + * + * @return count + */ + @javax.annotation.Nonnull + public BigDecimal getCount() { + return count; + } + + public void setCount(@javax.annotation.Nonnull BigDecimal count) { + this.count = count; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -80,12 +132,13 @@ public boolean equals(java.lang.Object o) { } ImageQualityCheckList imageQualityCheckList = (ImageQualityCheckList) o; return Objects.equals(this.result, imageQualityCheckList.result) - && Objects.equals(this.list, imageQualityCheckList.list); + && Objects.equals(this.list, imageQualityCheckList.list) + && Objects.equals(this.count, imageQualityCheckList.count); } @Override public int hashCode() { - return Objects.hash(result, list); + return Objects.hash(result, list, count); } @Override @@ -94,6 +147,7 @@ public String toString() { sb.append("class ImageQualityCheckList {\n"); sb.append(" result: ").append(toIndentedString(result)).append("\n"); sb.append(" list: ").append(toIndentedString(list)).append("\n"); + sb.append(" count: ").append(toIndentedString(count)).append("\n"); sb.append("}"); return sb.toString(); } @@ -101,10 +155,132 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("result"); + openapiFields.add("List"); + openapiFields.add("Count"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("result"); + openapiRequiredFields.add("List"); + openapiRequiredFields.add("Count"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageQualityCheckList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageQualityCheckList.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ImageQualityCheckList is not found in the empty JSON string", + ImageQualityCheckList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageQualityCheckList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ImageQualityCheckList` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ImageQualityCheckList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `result` + CheckResult.validateJsonElement(jsonObj.get("result")); + // ensure the json data is an array + if (!jsonObj.get("List").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `List` to be an array in the JSON string but got `%s`", + jsonObj.get("List").toString())); + } + + JsonArray jsonArraylist = jsonObj.getAsJsonArray("List"); + // validate the required field `List` (array) + for (int i = 0; i < jsonArraylist.size(); i++) { + ImageQualityCheck.validateJsonElement(jsonArraylist.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageQualityCheckList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageQualityCheckList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ImageQualityCheckList.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageQualityCheckList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageQualityCheckList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ImageQualityCheckList given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageQualityCheckList + * @throws IOException if the JSON string is invalid with respect to ImageQualityCheckList + */ + public static ImageQualityCheckList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageQualityCheckList.class); + } + + /** + * Convert an instance of ImageQualityCheckList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckType.java index 5ed1c2f2..63ab33c9 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckType.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,29 +12,81 @@ package com.regula.documentreader.webclient.model; -public class ImageQualityCheckType { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Image quality check type */ +@JsonAdapter(ImageQualityCheckType.Adapter.class) +public enum ImageQualityCheckType { /** Signals glare presence on the image */ - public static final int ImageGlares = 0; + ImageGlares(0), /** Signals whether image is in focus */ - public static final int ImageFocus = 1; + ImageFocus(1), /** Signals if image resolution is below threshold */ - public static final int ImageResolution = 2; + ImageResolution(2), /** Signals if image is colorless */ - public static final int ImageColorness = 3; + ImageColorness(3), /** Signals if document in the image has prespective distortion above threshold */ - public static final int Perspective = 4; + Perspective(4), /** Signals if document is not fully present in the image */ - public static final int Bounds = 5; + Bounds(5), /** Signals if the portrait is present */ - public static final int Portrait = 7; + Portrait(7), /** Signals if the document image is bright enough */ - public static final int Brightness = 9; + Brightness(9); + + private Integer value; + + ImageQualityCheckType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ImageQualityCheckType fromValue(Integer value) { + for (ImageQualityCheckType b : ImageQualityCheckType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ImageQualityCheckType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ImageQualityCheckType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return ImageQualityCheckType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + ImageQualityCheckType.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityResult.java index 2199c0ab..7442ab28 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,37 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ImageQualityResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ImageQualityResult extends ResultItem { public static final String SERIALIZED_NAME_IMAGE_QUALITY_CHECK_LIST = "ImageQualityCheckList"; @SerializedName(SERIALIZED_NAME_IMAGE_QUALITY_CHECK_LIST) + @javax.annotation.Nonnull private ImageQualityCheckList imageQualityCheckList; - public ImageQualityResult withImageQualityCheckList(ImageQualityCheckList imageQualityCheckList) { + public ImageQualityResult() {} + + public ImageQualityResult imageQualityCheckList( + @javax.annotation.Nonnull ImageQualityCheckList imageQualityCheckList) { this.imageQualityCheckList = imageQualityCheckList; return this; } @@ -32,16 +52,18 @@ public ImageQualityResult withImageQualityCheckList(ImageQualityCheckList imageQ * * @return imageQualityCheckList */ + @javax.annotation.Nonnull public ImageQualityCheckList getImageQualityCheckList() { return imageQualityCheckList; } - public void setImageQualityCheckList(ImageQualityCheckList imageQualityCheckList) { + public void setImageQualityCheckList( + @javax.annotation.Nonnull ImageQualityCheckList imageQualityCheckList) { this.imageQualityCheckList = imageQualityCheckList; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -73,10 +95,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("ImageQualityCheckList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ImageQualityCheckList"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageQualityResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageQualityResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ImageQualityResult is not found in the empty JSON string", + ImageQualityResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageQualityResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ImageQualityResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ImageQualityResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageQualityResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageQualityResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ImageQualityResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageQualityResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageQualityResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ImageQualityResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageQualityResult + * @throws IOException if the JSON string is invalid with respect to ImageQualityResult + */ + public static ImageQualityResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageQualityResult.class); + } + + /** + * Convert an instance of ImageQualityResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageTransactionData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageTransactionData.java index 7f2a8839..a37a5dd9 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageTransactionData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageTransactionData.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,36 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ImageTransactionData */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ImageTransactionData { public static final String SERIALIZED_NAME_IMAGE = "image"; @SerializedName(SERIALIZED_NAME_IMAGE) + @javax.annotation.Nullable private ImagesFieldValue image; - public ImageTransactionData withImage(ImagesFieldValue image) { + public ImageTransactionData() {} + + public ImageTransactionData image(@javax.annotation.Nullable ImagesFieldValue image) { this.image = image; return this; } @@ -37,12 +56,12 @@ public ImagesFieldValue getImage() { return image; } - public void setImage(ImagesFieldValue image) { + public void setImage(@javax.annotation.Nullable ImagesFieldValue image) { this.image = image; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -70,10 +89,105 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("image"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageTransactionData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageTransactionData.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ImageTransactionData is not found in the empty JSON string", + ImageTransactionData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageTransactionData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ImageTransactionData` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `image` + if (jsonObj.get("image") != null && !jsonObj.get("image").isJsonNull()) { + ImagesFieldValue.validateJsonElement(jsonObj.get("image")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageTransactionData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageTransactionData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ImageTransactionData.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageTransactionData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageTransactionData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ImageTransactionData given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageTransactionData + * @throws IOException if the JSON string is invalid with respect to ImageTransactionData + */ + public static ImageTransactionData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageTransactionData.class); + } + + /** + * Convert an instance of ImageTransactionData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Images.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Images.java old mode 100755 new mode 100644 index e1de5101..e6c7de5a --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Images.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Images.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,30 +12,104 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Images */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class Images { + public static final String SERIALIZED_NAME_FIELD_COUNT = "fieldCount"; + + @SerializedName(SERIALIZED_NAME_FIELD_COUNT) + @javax.annotation.Nullable + private Integer fieldCount; + + public static final String SERIALIZED_NAME_AVAILABLE_SOURCE_COUNT = "availableSourceCount"; + + @SerializedName(SERIALIZED_NAME_AVAILABLE_SOURCE_COUNT) + @javax.annotation.Nullable + private Integer availableSourceCount; + public static final String SERIALIZED_NAME_AVAILABLE_SOURCE_LIST = "availableSourceList"; @SerializedName(SERIALIZED_NAME_AVAILABLE_SOURCE_LIST) - private List availableSourceList = new ArrayList(); + @javax.annotation.Nonnull + private List availableSourceList; public static final String SERIALIZED_NAME_FIELD_LIST = "fieldList"; @SerializedName(SERIALIZED_NAME_FIELD_LIST) - private List fieldList = - new ArrayList(); + @javax.annotation.Nonnull + private List fieldList; + + public Images() {} + + public Images fieldCount(@javax.annotation.Nullable Integer fieldCount) { + this.fieldCount = fieldCount; + return this; + } + + /** + * Fields count + * + * @return fieldCount + */ + @javax.annotation.Nullable + public Integer getFieldCount() { + return fieldCount; + } + + public void setFieldCount(@javax.annotation.Nullable Integer fieldCount) { + this.fieldCount = fieldCount; + } + + public Images availableSourceCount(@javax.annotation.Nullable Integer availableSourceCount) { + this.availableSourceCount = availableSourceCount; + return this; + } + + /** + * Available sources count + * + * @return availableSourceCount + */ + @javax.annotation.Nullable + public Integer getAvailableSourceCount() { + return availableSourceCount; + } + + public void setAvailableSourceCount(@javax.annotation.Nullable Integer availableSourceCount) { + this.availableSourceCount = availableSourceCount; + } - public Images withAvailableSourceList(List availableSourceList) { + public Images availableSourceList( + @javax.annotation.Nonnull List availableSourceList) { this.availableSourceList = availableSourceList; return this; } public Images addAvailableSourceListItem(ImagesAvailableSource availableSourceListItem) { + if (this.availableSourceList == null) { + this.availableSourceList = new ArrayList<>(); + } this.availableSourceList.add(availableSourceListItem); return this; } @@ -45,22 +119,28 @@ public Images addAvailableSourceListItem(ImagesAvailableSource availableSourceLi * * @return availableSourceList */ + @javax.annotation.Nonnull public List getAvailableSourceList() { return availableSourceList; } - public void setAvailableSourceList(List availableSourceList) { + public void setAvailableSourceList( + @javax.annotation.Nonnull List availableSourceList) { this.availableSourceList = availableSourceList; } - public Images withFieldList( - List fieldList) { + public Images fieldList( + @javax.annotation.Nonnull + List fieldList) { this.fieldList = fieldList; return this; } public Images addFieldListItem( com.regula.documentreader.webclient.model.ext.ImagesField fieldListItem) { + if (this.fieldList == null) { + this.fieldList = new ArrayList<>(); + } this.fieldList.add(fieldListItem); return this; } @@ -70,17 +150,19 @@ public Images addFieldListItem( * * @return fieldList */ + @javax.annotation.Nonnull public List getFieldList() { return fieldList; } public void setFieldList( - List fieldList) { + @javax.annotation.Nonnull + List fieldList) { this.fieldList = fieldList; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -88,19 +170,25 @@ public boolean equals(java.lang.Object o) { return false; } Images images = (Images) o; - return Objects.equals(this.availableSourceList, images.availableSourceList) + return Objects.equals(this.fieldCount, images.fieldCount) + && Objects.equals(this.availableSourceCount, images.availableSourceCount) + && Objects.equals(this.availableSourceList, images.availableSourceList) && Objects.equals(this.fieldList, images.fieldList); } @Override public int hashCode() { - return Objects.hash(availableSourceList, fieldList); + return Objects.hash(fieldCount, availableSourceCount, availableSourceList, fieldList); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class Images {\n"); + sb.append(" fieldCount: ").append(toIndentedString(fieldCount)).append("\n"); + sb.append(" availableSourceCount: ") + .append(toIndentedString(availableSourceCount)) + .append("\n"); sb.append(" availableSourceList: ") .append(toIndentedString(availableSourceList)) .append("\n"); @@ -112,10 +200,144 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("fieldCount"); + openapiFields.add("availableSourceCount"); + openapiFields.add("availableSourceList"); + openapiFields.add("fieldList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("availableSourceList"); + openapiRequiredFields.add("fieldList"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to Images + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!Images.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in Images is not found in the empty JSON string", + Images.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!Images.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `Images` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : Images.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("availableSourceList").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `availableSourceList` to be an array in the JSON string but got `%s`", + jsonObj.get("availableSourceList").toString())); + } + + JsonArray jsonArrayavailableSourceList = jsonObj.getAsJsonArray("availableSourceList"); + // validate the required field `availableSourceList` (array) + for (int i = 0; i < jsonArrayavailableSourceList.size(); i++) { + ImagesAvailableSource.validateJsonElement(jsonArrayavailableSourceList.get(i)); + } + ; + // ensure the json data is an array + if (!jsonObj.get("fieldList").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `fieldList` to be an array in the JSON string but got `%s`", + jsonObj.get("fieldList").toString())); + } + + JsonArray jsonArrayfieldList = jsonObj.getAsJsonArray("fieldList"); + // validate the required field `fieldList` (array) + for (int i = 0; i < jsonArrayfieldList.size(); i++) { + com.regula.documentreader.webclient.model.ext.ImagesField.validateJsonElement( + jsonArrayfieldList.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!Images.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'Images' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(Images.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, Images value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public Images read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of Images given an JSON string + * + * @param jsonString JSON string + * @return An instance of Images + * @throws IOException if the JSON string is invalid with respect to Images + */ + public static Images fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, Images.class); + } + + /** + * Convert an instance of Images to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesAvailableSource.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesAvailableSource.java old mode 100755 new mode 100644 index 001d3f1f..91e02d6d --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesAvailableSource.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesAvailableSource.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,22 +12,42 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ImagesAvailableSource */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ImagesAvailableSource { public static final String SERIALIZED_NAME_CONTAINER_TYPE = "containerType"; @SerializedName(SERIALIZED_NAME_CONTAINER_TYPE) + @javax.annotation.Nonnull private Integer containerType = 0; public static final String SERIALIZED_NAME_SOURCE = "source"; @SerializedName(SERIALIZED_NAME_SOURCE) - private String source; + @javax.annotation.Nonnull + private Source source; - public ImagesAvailableSource withContainerType(Integer containerType) { + public ImagesAvailableSource() {} + + public ImagesAvailableSource containerType(@javax.annotation.Nonnull Integer containerType) { this.containerType = containerType; return this; } @@ -37,16 +57,16 @@ public ImagesAvailableSource withContainerType(Integer containerType) { * * @return containerType */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getContainerType() { return containerType; } - public void setContainerType(Integer containerType) { + public void setContainerType(@javax.annotation.Nonnull Integer containerType) { this.containerType = containerType; } - public ImagesAvailableSource withSource(String source) { + public ImagesAvailableSource source(@javax.annotation.Nonnull Source source) { this.source = source; return this; } @@ -56,16 +76,17 @@ public ImagesAvailableSource withSource(String source) { * * @return source */ - public String getSource() { + @javax.annotation.Nonnull + public Source getSource() { return source; } - public void setSource(String source) { + public void setSource(@javax.annotation.Nonnull Source source) { this.source = source; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -95,10 +116,116 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("containerType"); + openapiFields.add("source"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("containerType"); + openapiRequiredFields.add("source"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImagesAvailableSource + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImagesAvailableSource.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ImagesAvailableSource is not found in the empty JSON string", + ImagesAvailableSource.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImagesAvailableSource.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ImagesAvailableSource` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ImagesAvailableSource.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `source` + Source.validateJsonElement(jsonObj.get("source")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImagesAvailableSource.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImagesAvailableSource' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ImagesAvailableSource.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ImagesAvailableSource value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImagesAvailableSource read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ImagesAvailableSource given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImagesAvailableSource + * @throws IOException if the JSON string is invalid with respect to ImagesAvailableSource + */ + public static ImagesAvailableSource fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImagesAvailableSource.class); + } + + /** + * Convert an instance of ImagesAvailableSource to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesField.java old mode 100755 new mode 100644 index dbb72987..3a8beb56 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesField.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,29 +12,58 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ImagesField */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ImagesField { public static final String SERIALIZED_NAME_FIELD_NAME = "fieldName"; @SerializedName(SERIALIZED_NAME_FIELD_NAME) + @javax.annotation.Nonnull private String fieldName; public static final String SERIALIZED_NAME_FIELD_TYPE = "fieldType"; @SerializedName(SERIALIZED_NAME_FIELD_TYPE) - private Integer fieldType; + @javax.annotation.Nonnull + private GraphicFieldType fieldType; public static final String SERIALIZED_NAME_VALUE_LIST = "valueList"; @SerializedName(SERIALIZED_NAME_VALUE_LIST) - private List valueList = new ArrayList(); + @javax.annotation.Nonnull + private List valueList; - public ImagesField withFieldName(String fieldName) { + public static final String SERIALIZED_NAME_VALUE_COUNT = "valueCount"; + + @SerializedName(SERIALIZED_NAME_VALUE_COUNT) + @javax.annotation.Nullable + private BigDecimal valueCount; + + public ImagesField() {} + + public ImagesField fieldName(@javax.annotation.Nonnull String fieldName) { this.fieldName = fieldName; return this; } @@ -44,15 +73,16 @@ public ImagesField withFieldName(String fieldName) { * * @return fieldName */ + @javax.annotation.Nonnull public String getFieldName() { return fieldName; } - public void setFieldName(String fieldName) { + public void setFieldName(@javax.annotation.Nonnull String fieldName) { this.fieldName = fieldName; } - public ImagesField withFieldType(Integer fieldType) { + public ImagesField fieldType(@javax.annotation.Nonnull GraphicFieldType fieldType) { this.fieldType = fieldType; return this; } @@ -62,20 +92,24 @@ public ImagesField withFieldType(Integer fieldType) { * * @return fieldType */ - public Integer getFieldType() { + @javax.annotation.Nonnull + public GraphicFieldType getFieldType() { return fieldType; } - public void setFieldType(Integer fieldType) { + public void setFieldType(@javax.annotation.Nonnull GraphicFieldType fieldType) { this.fieldType = fieldType; } - public ImagesField withValueList(List valueList) { + public ImagesField valueList(@javax.annotation.Nonnull List valueList) { this.valueList = valueList; return this; } public ImagesField addValueListItem(ImagesFieldValue valueListItem) { + if (this.valueList == null) { + this.valueList = new ArrayList<>(); + } this.valueList.add(valueListItem); return this; } @@ -85,16 +119,36 @@ public ImagesField addValueListItem(ImagesFieldValue valueListItem) { * * @return valueList */ + @javax.annotation.Nonnull public List getValueList() { return valueList; } - public void setValueList(List valueList) { + public void setValueList(@javax.annotation.Nonnull List valueList) { this.valueList = valueList; } + public ImagesField valueCount(@javax.annotation.Nullable BigDecimal valueCount) { + this.valueCount = valueCount; + return this; + } + + /** + * Field value count + * + * @return valueCount + */ + @javax.annotation.Nullable + public BigDecimal getValueCount() { + return valueCount; + } + + public void setValueCount(@javax.annotation.Nullable BigDecimal valueCount) { + this.valueCount = valueCount; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -104,12 +158,13 @@ public boolean equals(java.lang.Object o) { ImagesField imagesField = (ImagesField) o; return Objects.equals(this.fieldName, imagesField.fieldName) && Objects.equals(this.fieldType, imagesField.fieldType) - && Objects.equals(this.valueList, imagesField.valueList); + && Objects.equals(this.valueList, imagesField.valueList) + && Objects.equals(this.valueCount, imagesField.valueCount); } @Override public int hashCode() { - return Objects.hash(fieldName, fieldType, valueList); + return Objects.hash(fieldName, fieldType, valueList, valueCount); } @Override @@ -119,6 +174,7 @@ public String toString() { sb.append(" fieldName: ").append(toIndentedString(fieldName)).append("\n"); sb.append(" fieldType: ").append(toIndentedString(fieldType)).append("\n"); sb.append(" valueList: ").append(toIndentedString(valueList)).append("\n"); + sb.append(" valueCount: ").append(toIndentedString(valueCount)).append("\n"); sb.append("}"); return sb.toString(); } @@ -126,10 +182,139 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("fieldName"); + openapiFields.add("fieldType"); + openapiFields.add("valueList"); + openapiFields.add("valueCount"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("fieldName"); + openapiRequiredFields.add("fieldType"); + openapiRequiredFields.add("valueList"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImagesField + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImagesField.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ImagesField is not found in the empty JSON string", + ImagesField.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImagesField.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ImagesField` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ImagesField.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("fieldName").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `fieldName` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("fieldName").toString())); + } + // validate the required field `fieldType` + GraphicFieldType.validateJsonElement(jsonObj.get("fieldType")); + // ensure the json data is an array + if (!jsonObj.get("valueList").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `valueList` to be an array in the JSON string but got `%s`", + jsonObj.get("valueList").toString())); + } + + JsonArray jsonArrayvalueList = jsonObj.getAsJsonArray("valueList"); + // validate the required field `valueList` (array) + for (int i = 0; i < jsonArrayvalueList.size(); i++) { + ImagesFieldValue.validateJsonElement(jsonArrayvalueList.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImagesField.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImagesField' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ImagesField.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ImagesField value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImagesField read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ImagesField given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImagesField + * @throws IOException if the JSON string is invalid with respect to ImagesField + */ + public static ImagesField fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImagesField.class); + } + + /** + * Convert an instance of ImagesField to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesFieldValue.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesFieldValue.java old mode 100755 new mode 100644 index 47e98201..81c96ec6 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesFieldValue.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesFieldValue.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,57 +12,84 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ImagesFieldValue */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ImagesFieldValue { public static final String SERIALIZED_NAME_SOURCE = "source"; @SerializedName(SERIALIZED_NAME_SOURCE) - private String source; + @javax.annotation.Nonnull + private Source source; public static final String SERIALIZED_NAME_VALUE = "value"; @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nullable private String value; public static final String SERIALIZED_NAME_ORIGINAL_VALUE = "originalValue"; @SerializedName(SERIALIZED_NAME_ORIGINAL_VALUE) + @javax.annotation.Nullable private String originalValue; public static final String SERIALIZED_NAME_ORIGINAL_PAGE_INDEX = "originalPageIndex"; @SerializedName(SERIALIZED_NAME_ORIGINAL_PAGE_INDEX) + @javax.annotation.Nullable private Integer originalPageIndex; public static final String SERIALIZED_NAME_PAGE_INDEX = "pageIndex"; @SerializedName(SERIALIZED_NAME_PAGE_INDEX) + @javax.annotation.Nonnull private Integer pageIndex; public static final String SERIALIZED_NAME_LIGHT_INDEX = "lightIndex"; @SerializedName(SERIALIZED_NAME_LIGHT_INDEX) - private Integer lightIndex; + @javax.annotation.Nonnull + private Light lightIndex; public static final String SERIALIZED_NAME_CONTAINER_TYPE = "containerType"; @SerializedName(SERIALIZED_NAME_CONTAINER_TYPE) + @javax.annotation.Nonnull private Integer containerType = 0; public static final String SERIALIZED_NAME_FIELD_RECT = "fieldRect"; @SerializedName(SERIALIZED_NAME_FIELD_RECT) + @javax.annotation.Nullable private RectangleCoordinates fieldRect; public static final String SERIALIZED_NAME_RFID_ORIGIN = "rfidOrigin"; @SerializedName(SERIALIZED_NAME_RFID_ORIGIN) + @javax.annotation.Nullable private RfidOrigin rfidOrigin; - public ImagesFieldValue withSource(String source) { + public ImagesFieldValue() {} + + public ImagesFieldValue source(@javax.annotation.Nonnull Source source) { this.source = source; return this; } @@ -72,15 +99,16 @@ public ImagesFieldValue withSource(String source) { * * @return source */ - public String getSource() { + @javax.annotation.Nonnull + public Source getSource() { return source; } - public void setSource(String source) { + public void setSource(@javax.annotation.Nonnull Source source) { this.source = source; } - public ImagesFieldValue withValue(String value) { + public ImagesFieldValue value(@javax.annotation.Nullable String value) { this.value = value; return this; } @@ -90,15 +118,16 @@ public ImagesFieldValue withValue(String value) { * * @return value */ + @javax.annotation.Nullable public String getValue() { return value; } - public void setValue(String value) { + public void setValue(@javax.annotation.Nullable String value) { this.value = value; } - public ImagesFieldValue withOriginalValue(String originalValue) { + public ImagesFieldValue originalValue(@javax.annotation.Nullable String originalValue) { this.originalValue = originalValue; return this; } @@ -113,11 +142,11 @@ public String getOriginalValue() { return originalValue; } - public void setOriginalValue(String originalValue) { + public void setOriginalValue(@javax.annotation.Nullable String originalValue) { this.originalValue = originalValue; } - public ImagesFieldValue withOriginalPageIndex(Integer originalPageIndex) { + public ImagesFieldValue originalPageIndex(@javax.annotation.Nullable Integer originalPageIndex) { this.originalPageIndex = originalPageIndex; return this; } @@ -132,11 +161,11 @@ public Integer getOriginalPageIndex() { return originalPageIndex; } - public void setOriginalPageIndex(Integer originalPageIndex) { + public void setOriginalPageIndex(@javax.annotation.Nullable Integer originalPageIndex) { this.originalPageIndex = originalPageIndex; } - public ImagesFieldValue withPageIndex(Integer pageIndex) { + public ImagesFieldValue pageIndex(@javax.annotation.Nonnull Integer pageIndex) { this.pageIndex = pageIndex; return this; } @@ -146,15 +175,16 @@ public ImagesFieldValue withPageIndex(Integer pageIndex) { * * @return pageIndex */ + @javax.annotation.Nonnull public Integer getPageIndex() { return pageIndex; } - public void setPageIndex(Integer pageIndex) { + public void setPageIndex(@javax.annotation.Nonnull Integer pageIndex) { this.pageIndex = pageIndex; } - public ImagesFieldValue withLightIndex(Integer lightIndex) { + public ImagesFieldValue lightIndex(@javax.annotation.Nonnull Light lightIndex) { this.lightIndex = lightIndex; return this; } @@ -164,15 +194,16 @@ public ImagesFieldValue withLightIndex(Integer lightIndex) { * * @return lightIndex */ - public Integer getLightIndex() { + @javax.annotation.Nonnull + public Light getLightIndex() { return lightIndex; } - public void setLightIndex(Integer lightIndex) { + public void setLightIndex(@javax.annotation.Nonnull Light lightIndex) { this.lightIndex = lightIndex; } - public ImagesFieldValue withContainerType(Integer containerType) { + public ImagesFieldValue containerType(@javax.annotation.Nonnull Integer containerType) { this.containerType = containerType; return this; } @@ -182,15 +213,16 @@ public ImagesFieldValue withContainerType(Integer containerType) { * * @return containerType */ + @javax.annotation.Nonnull public Integer getContainerType() { return containerType; } - public void setContainerType(Integer containerType) { + public void setContainerType(@javax.annotation.Nonnull Integer containerType) { this.containerType = containerType; } - public ImagesFieldValue withFieldRect(RectangleCoordinates fieldRect) { + public ImagesFieldValue fieldRect(@javax.annotation.Nullable RectangleCoordinates fieldRect) { this.fieldRect = fieldRect; return this; } @@ -205,11 +237,11 @@ public RectangleCoordinates getFieldRect() { return fieldRect; } - public void setFieldRect(RectangleCoordinates fieldRect) { + public void setFieldRect(@javax.annotation.Nullable RectangleCoordinates fieldRect) { this.fieldRect = fieldRect; } - public ImagesFieldValue withRfidOrigin(RfidOrigin rfidOrigin) { + public ImagesFieldValue rfidOrigin(@javax.annotation.Nullable RfidOrigin rfidOrigin) { this.rfidOrigin = rfidOrigin; return this; } @@ -224,12 +256,12 @@ public RfidOrigin getRfidOrigin() { return rfidOrigin; } - public void setRfidOrigin(RfidOrigin rfidOrigin) { + public void setRfidOrigin(@javax.annotation.Nullable RfidOrigin rfidOrigin) { this.rfidOrigin = rfidOrigin; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -282,10 +314,149 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("source"); + openapiFields.add("value"); + openapiFields.add("originalValue"); + openapiFields.add("originalPageIndex"); + openapiFields.add("pageIndex"); + openapiFields.add("lightIndex"); + openapiFields.add("containerType"); + openapiFields.add("fieldRect"); + openapiFields.add("rfidOrigin"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("source"); + openapiRequiredFields.add("pageIndex"); + openapiRequiredFields.add("lightIndex"); + openapiRequiredFields.add("containerType"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImagesFieldValue + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImagesFieldValue.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ImagesFieldValue is not found in the empty JSON string", + ImagesFieldValue.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImagesFieldValue.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ImagesFieldValue` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ImagesFieldValue.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `source` + Source.validateJsonElement(jsonObj.get("source")); + if ((jsonObj.get("value") != null && !jsonObj.get("value").isJsonNull()) + && !jsonObj.get("value").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `value` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("value").toString())); + } + if ((jsonObj.get("originalValue") != null && !jsonObj.get("originalValue").isJsonNull()) + && !jsonObj.get("originalValue").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `originalValue` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("originalValue").toString())); + } + // validate the required field `lightIndex` + Light.validateJsonElement(jsonObj.get("lightIndex")); + // validate the optional field `fieldRect` + if (jsonObj.get("fieldRect") != null && !jsonObj.get("fieldRect").isJsonNull()) { + RectangleCoordinates.validateJsonElement(jsonObj.get("fieldRect")); + } + // validate the optional field `rfidOrigin` + if (jsonObj.get("rfidOrigin") != null && !jsonObj.get("rfidOrigin").isJsonNull()) { + RfidOrigin.validateJsonElement(jsonObj.get("rfidOrigin")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImagesFieldValue.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImagesFieldValue' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ImagesFieldValue.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ImagesFieldValue value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImagesFieldValue read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ImagesFieldValue given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImagesFieldValue + * @throws IOException if the JSON string is invalid with respect to ImagesFieldValue + */ + public static ImagesFieldValue fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImagesFieldValue.class); + } + + /** + * Convert an instance of ImagesFieldValue to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java old mode 100755 new mode 100644 index 01a15c2c..7da51b81 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,37 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ImagesResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ImagesResult extends ResultItem { public static final String SERIALIZED_NAME_IMAGES = "Images"; @SerializedName(SERIALIZED_NAME_IMAGES) + @javax.annotation.Nonnull private com.regula.documentreader.webclient.model.ext.Images images; - public ImagesResult withImages(com.regula.documentreader.webclient.model.ext.Images images) { + public ImagesResult() {} + + public ImagesResult images( + @javax.annotation.Nonnull com.regula.documentreader.webclient.model.ext.Images images) { this.images = images; return this; } @@ -32,16 +52,18 @@ public ImagesResult withImages(com.regula.documentreader.webclient.model.ext.Ima * * @return images */ + @javax.annotation.Nonnull public com.regula.documentreader.webclient.model.ext.Images getImages() { return images; } - public void setImages(com.regula.documentreader.webclient.model.ext.Images images) { + public void setImages( + @javax.annotation.Nonnull com.regula.documentreader.webclient.model.ext.Images images) { this.images = images; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -70,10 +92,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("Images"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Images"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImagesResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImagesResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ImagesResult is not found in the empty JSON string", + ImagesResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImagesResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ImagesResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ImagesResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImagesResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImagesResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ImagesResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ImagesResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImagesResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ImagesResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImagesResult + * @throws IOException if the JSON string is invalid with respect to ImagesResult + */ + public static ImagesResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImagesResult.class); + } + + /** + * Convert an instance of ImagesResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InData.java index a94617b1..49f7a22a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/InData.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,24 +12,45 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** InData */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class InData { public static final String SERIALIZED_NAME_VIDEO = "video"; @SerializedName(SERIALIZED_NAME_VIDEO) + @javax.annotation.Nullable private InDataVideo video; public static final String SERIALIZED_NAME_IMAGES = "images"; @SerializedName(SERIALIZED_NAME_IMAGES) - private List images = null; + @javax.annotation.Nullable + private List images; - public InData withVideo(InDataVideo video) { + public InData() {} + + public InData video(@javax.annotation.Nullable InDataVideo video) { this.video = video; return this; } @@ -44,18 +65,18 @@ public InDataVideo getVideo() { return video; } - public void setVideo(InDataVideo video) { + public void setVideo(@javax.annotation.Nullable InDataVideo video) { this.video = video; } - public InData withImages(List images) { + public InData images(@javax.annotation.Nullable List images) { this.images = images; return this; } public InData addImagesItem(InDataTransactionImagesFieldValue imagesItem) { if (this.images == null) { - this.images = new ArrayList(); + this.images = new ArrayList<>(); } this.images.add(imagesItem); return this; @@ -71,12 +92,12 @@ public List getImages() { return images; } - public void setImages(List images) { + public void setImages(@javax.annotation.Nullable List images) { this.images = images; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -105,10 +126,123 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("video"); + openapiFields.add("images"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!InData.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in InData is not found in the empty JSON string", + InData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!InData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `InData` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `video` + if (jsonObj.get("video") != null && !jsonObj.get("video").isJsonNull()) { + InDataVideo.validateJsonElement(jsonObj.get("video")); + } + if (jsonObj.get("images") != null && !jsonObj.get("images").isJsonNull()) { + JsonArray jsonArrayimages = jsonObj.getAsJsonArray("images"); + if (jsonArrayimages != null) { + // ensure the json data is an array + if (!jsonObj.get("images").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `images` to be an array in the JSON string but got `%s`", + jsonObj.get("images").toString())); + } + + // validate the optional field `images` (array) + for (int i = 0; i < jsonArrayimages.size(); i++) { + InDataTransactionImagesFieldValue.validateJsonElement(jsonArrayimages.get(i)); + } + ; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(InData.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, InData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public InData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of InData given an JSON string + * + * @param jsonString JSON string + * @return An instance of InData + * @throws IOException if the JSON string is invalid with respect to InData + */ + public static InData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InData.class); + } + + /** + * Convert an instance of InData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InDataRfidSession.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InDataRfidSession.java deleted file mode 100644 index 25bdcfe3..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InDataRfidSession.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.Objects; - -/** InDataRfidSession */ -public class InDataRfidSession { - public static final String SERIALIZED_NAME_URL = "url"; - - @SerializedName(SERIALIZED_NAME_URL) - private String url; - - public InDataRfidSession withUrl(String url) { - this.url = url; - return this; - } - - /** - * Image url - * - * @return url - */ - @javax.annotation.Nullable - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - InDataRfidSession inDataRfidSession = (InDataRfidSession) o; - return Objects.equals(this.url, inDataRfidSession.url); - } - - @Override - public int hashCode() { - return Objects.hash(url); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class InDataRfidSession {\n"); - sb.append(" url: ").append(toIndentedString(url)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InDataTransactionImagesFieldValue.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InDataTransactionImagesFieldValue.java index 6a20e318..ea91d502 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InDataTransactionImagesFieldValue.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/InDataTransactionImagesFieldValue.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,32 +12,54 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** InDataTransactionImagesFieldValue */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class InDataTransactionImagesFieldValue { public static final String SERIALIZED_NAME_LIGHT = "light"; @SerializedName(SERIALIZED_NAME_LIGHT) - private Integer light; + @javax.annotation.Nullable + private Light light; public static final String SERIALIZED_NAME_LIST_IDX = "listIdx"; @SerializedName(SERIALIZED_NAME_LIST_IDX) + @javax.annotation.Nullable private Integer listIdx; public static final String SERIALIZED_NAME_PAGE_IDX = "pageIdx"; @SerializedName(SERIALIZED_NAME_PAGE_IDX) + @javax.annotation.Nullable private Integer pageIdx; public static final String SERIALIZED_NAME_URL = "url"; @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable private String url; - public InDataTransactionImagesFieldValue withLight(Integer light) { + public InDataTransactionImagesFieldValue() {} + + public InDataTransactionImagesFieldValue light(@javax.annotation.Nullable Light light) { this.light = light; return this; } @@ -48,15 +70,15 @@ public InDataTransactionImagesFieldValue withLight(Integer light) { * @return light */ @javax.annotation.Nullable - public Integer getLight() { + public Light getLight() { return light; } - public void setLight(Integer light) { + public void setLight(@javax.annotation.Nullable Light light) { this.light = light; } - public InDataTransactionImagesFieldValue withListIdx(Integer listIdx) { + public InDataTransactionImagesFieldValue listIdx(@javax.annotation.Nullable Integer listIdx) { this.listIdx = listIdx; return this; } @@ -71,11 +93,11 @@ public Integer getListIdx() { return listIdx; } - public void setListIdx(Integer listIdx) { + public void setListIdx(@javax.annotation.Nullable Integer listIdx) { this.listIdx = listIdx; } - public InDataTransactionImagesFieldValue withPageIdx(Integer pageIdx) { + public InDataTransactionImagesFieldValue pageIdx(@javax.annotation.Nullable Integer pageIdx) { this.pageIdx = pageIdx; return this; } @@ -90,11 +112,11 @@ public Integer getPageIdx() { return pageIdx; } - public void setPageIdx(Integer pageIdx) { + public void setPageIdx(@javax.annotation.Nullable Integer pageIdx) { this.pageIdx = pageIdx; } - public InDataTransactionImagesFieldValue withUrl(String url) { + public InDataTransactionImagesFieldValue url(@javax.annotation.Nullable String url) { this.url = url; return this; } @@ -109,12 +131,12 @@ public String getUrl() { return url; } - public void setUrl(String url) { + public void setUrl(@javax.annotation.Nullable String url) { this.url = url; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -149,10 +171,119 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("light"); + openapiFields.add("listIdx"); + openapiFields.add("pageIdx"); + openapiFields.add("url"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * InDataTransactionImagesFieldValue + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!InDataTransactionImagesFieldValue.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in InDataTransactionImagesFieldValue is not found in the empty JSON string", + InDataTransactionImagesFieldValue.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!InDataTransactionImagesFieldValue.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `InDataTransactionImagesFieldValue` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `light` + if (jsonObj.get("light") != null && !jsonObj.get("light").isJsonNull()) { + Light.validateJsonElement(jsonObj.get("light")); + } + if ((jsonObj.get("url") != null && !jsonObj.get("url").isJsonNull()) + && !jsonObj.get("url").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `url` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("url").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InDataTransactionImagesFieldValue.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InDataTransactionImagesFieldValue' and its + // subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(InDataTransactionImagesFieldValue.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, InDataTransactionImagesFieldValue value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public InDataTransactionImagesFieldValue read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of InDataTransactionImagesFieldValue given an JSON string + * + * @param jsonString JSON string + * @return An instance of InDataTransactionImagesFieldValue + * @throws IOException if the JSON string is invalid with respect to + * InDataTransactionImagesFieldValue + */ + public static InDataTransactionImagesFieldValue fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InDataTransactionImagesFieldValue.class); + } + + /** + * Convert an instance of InDataTransactionImagesFieldValue to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InDataVideo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InDataVideo.java index 2a882336..c398d558 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InDataVideo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/InDataVideo.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,31 +12,50 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.Objects; +import java.util.Set; /** Video */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class InDataVideo { public static final String SERIALIZED_NAME_METADATA = "metadata"; @SerializedName(SERIALIZED_NAME_METADATA) - private Map metadata = null; + @javax.annotation.Nullable + private Map metadata; public static final String SERIALIZED_NAME_URL = "url"; @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable private String url; - public InDataVideo withMetadata(Map metadata) { + public InDataVideo() {} + + public InDataVideo metadata(@javax.annotation.Nullable Map metadata) { this.metadata = metadata; return this; } public InDataVideo putMetadataItem(String key, Object metadataItem) { if (this.metadata == null) { - this.metadata = new HashMap(); + this.metadata = new HashMap<>(); } this.metadata.put(key, metadataItem); return this; @@ -52,11 +71,11 @@ public Map getMetadata() { return metadata; } - public void setMetadata(Map metadata) { + public void setMetadata(@javax.annotation.Nullable Map metadata) { this.metadata = metadata; } - public InDataVideo withUrl(String url) { + public InDataVideo url(@javax.annotation.Nullable String url) { this.url = url; return this; } @@ -71,12 +90,12 @@ public String getUrl() { return url; } - public void setUrl(String url) { + public void setUrl(@javax.annotation.Nullable String url) { this.url = url; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -106,10 +125,109 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("metadata"); + openapiFields.add("url"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to InDataVideo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!InDataVideo.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in InDataVideo is not found in the empty JSON string", + InDataVideo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!InDataVideo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `InDataVideo` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("url") != null && !jsonObj.get("url").isJsonNull()) + && !jsonObj.get("url").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `url` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("url").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!InDataVideo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'InDataVideo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(InDataVideo.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, InDataVideo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public InDataVideo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of InDataVideo given an JSON string + * + * @param jsonString JSON string + * @return An instance of InDataVideo + * @throws IOException if the JSON string is invalid with respect to InDataVideo + */ + public static InDataVideo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, InDataVideo.class); + } + + /** + * Convert an instance of InDataVideo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InlineResponse200.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InlineResponse200.java deleted file mode 100644 index 0a4aa677..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InlineResponse200.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.Objects; -import java.util.UUID; - -/** InlineResponse200 */ -public class InlineResponse200 { - public static final String SERIALIZED_NAME_OUT_DATA = "OutData"; - - @SerializedName(SERIALIZED_NAME_OUT_DATA) - private OutData outData; - - public static final String SERIALIZED_NAME_IN_DATA = "InData"; - - @SerializedName(SERIALIZED_NAME_IN_DATA) - private InData inData; - - public static final String SERIALIZED_NAME_TAG = "tag"; - - @SerializedName(SERIALIZED_NAME_TAG) - private String tag; - - public static final String SERIALIZED_NAME_TRANSACTION_ID = "transactionId"; - - @SerializedName(SERIALIZED_NAME_TRANSACTION_ID) - private UUID transactionId; - - public InlineResponse200 withOutData(OutData outData) { - this.outData = outData; - return this; - } - - /** - * Get outData - * - * @return outData - */ - @javax.annotation.Nullable - public OutData getOutData() { - return outData; - } - - public void setOutData(OutData outData) { - this.outData = outData; - } - - public InlineResponse200 withInData(InData inData) { - this.inData = inData; - return this; - } - - /** - * Get inData - * - * @return inData - */ - @javax.annotation.Nullable - public InData getInData() { - return inData; - } - - public void setInData(InData inData) { - this.inData = inData; - } - - public InlineResponse200 withTag(String tag) { - this.tag = tag; - return this; - } - - /** - * Get tag - * - * @return tag - */ - @javax.annotation.Nullable - public String getTag() { - return tag; - } - - public void setTag(String tag) { - this.tag = tag; - } - - public InlineResponse200 withTransactionId(UUID transactionId) { - this.transactionId = transactionId; - return this; - } - - /** - * Get transactionId - * - * @return transactionId - */ - @javax.annotation.Nullable - public UUID getTransactionId() { - return transactionId; - } - - public void setTransactionId(UUID transactionId) { - this.transactionId = transactionId; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - InlineResponse200 inlineResponse200 = (InlineResponse200) o; - return Objects.equals(this.outData, inlineResponse200.outData) - && Objects.equals(this.inData, inlineResponse200.inData) - && Objects.equals(this.tag, inlineResponse200.tag) - && Objects.equals(this.transactionId, inlineResponse200.transactionId); - } - - @Override - public int hashCode() { - return Objects.hash(outData, inData, tag, transactionId); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse200 {\n"); - sb.append(" outData: ").append(toIndentedString(outData)).append("\n"); - sb.append(" inData: ").append(toIndentedString(inData)).append("\n"); - sb.append(" tag: ").append(toIndentedString(tag)).append("\n"); - sb.append(" transactionId: ").append(toIndentedString(transactionId)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InlineResponse2001.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InlineResponse2001.java deleted file mode 100644 index 1251a2da..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InlineResponse2001.java +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.2.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; - -/** InlineResponse2001 */ -public class InlineResponse2001 { - public static final String SERIALIZED_NAME_CHIP_PAGE = "ChipPage"; - - @SerializedName(SERIALIZED_NAME_CHIP_PAGE) - private Integer chipPage; - - public static final String SERIALIZED_NAME_PROCESSING_FINISHED = "ProcessingFinished"; - - @SerializedName(SERIALIZED_NAME_PROCESSING_FINISHED) - private Integer processingFinished; - - public static final String SERIALIZED_NAME_CONTAINER_LIST = "ContainerList"; - - @SerializedName(SERIALIZED_NAME_CONTAINER_LIST) - private ContainerList containerList; - - public static final String SERIALIZED_NAME_TRANSACTION_INFO = "TransactionInfo"; - - @SerializedName(SERIALIZED_NAME_TRANSACTION_INFO) - private TransactionInfo transactionInfo; - - public static final String SERIALIZED_NAME_LOG = "log"; - - @SerializedName(SERIALIZED_NAME_LOG) - private String log; - - public static final String SERIALIZED_NAME_PASS_BACK_OBJECT = "passBackObject"; - - @SerializedName(SERIALIZED_NAME_PASS_BACK_OBJECT) - private Map passBackObject = null; - - public static final String SERIALIZED_NAME_MORE_PAGES_AVAILABLE = "morePagesAvailable"; - - @SerializedName(SERIALIZED_NAME_MORE_PAGES_AVAILABLE) - private Integer morePagesAvailable; - - public static final String SERIALIZED_NAME_ELAPSED_TIME = "elapsedTime"; - - @SerializedName(SERIALIZED_NAME_ELAPSED_TIME) - private Integer elapsedTime; - - public static final String SERIALIZED_NAME_CORE_LIB_RESULT_CODE = "CoreLibResultCode"; - - @SerializedName(SERIALIZED_NAME_CORE_LIB_RESULT_CODE) - private Integer coreLibResultCode; - - public InlineResponse2001 withChipPage(Integer chipPage) { - this.chipPage = chipPage; - return this; - } - - /** - * Get chipPage - * - * @return chipPage - */ - @javax.annotation.Nullable - public Integer getChipPage() { - return chipPage; - } - - public void setChipPage(Integer chipPage) { - this.chipPage = chipPage; - } - - public InlineResponse2001 withProcessingFinished(Integer processingFinished) { - this.processingFinished = processingFinished; - return this; - } - - /** - * Get processingFinished - * - * @return processingFinished - */ - @javax.annotation.Nullable - public Integer getProcessingFinished() { - return processingFinished; - } - - public void setProcessingFinished(Integer processingFinished) { - this.processingFinished = processingFinished; - } - - public InlineResponse2001 withContainerList(ContainerList containerList) { - this.containerList = containerList; - return this; - } - - /** - * Get containerList - * - * @return containerList - */ - @javax.annotation.Nullable - public ContainerList getContainerList() { - return containerList; - } - - public void setContainerList(ContainerList containerList) { - this.containerList = containerList; - } - - public InlineResponse2001 withTransactionInfo(TransactionInfo transactionInfo) { - this.transactionInfo = transactionInfo; - return this; - } - - /** - * Get transactionInfo - * - * @return transactionInfo - */ - @javax.annotation.Nullable - public TransactionInfo getTransactionInfo() { - return transactionInfo; - } - - public void setTransactionInfo(TransactionInfo transactionInfo) { - this.transactionInfo = transactionInfo; - } - - public InlineResponse2001 withLog(String log) { - this.log = log; - return this; - } - - /** - * Base64 encoded transaction processing log - * - * @return log - */ - @javax.annotation.Nullable - public String getLog() { - return log; - } - - public void setLog(String log) { - this.log = log; - } - - public InlineResponse2001 withPassBackObject(Map passBackObject) { - this.passBackObject = passBackObject; - return this; - } - - public InlineResponse2001 putPassBackObjectItem(String key, Object passBackObjectItem) { - if (this.passBackObject == null) { - this.passBackObject = new HashMap(); - } - this.passBackObject.put(key, passBackObjectItem); - return this; - } - - /** - * Free-form object provided in request. See passBackObject property of ProcessRequest. - * - * @return passBackObject - */ - @javax.annotation.Nullable - public Map getPassBackObject() { - return passBackObject; - } - - public void setPassBackObject(Map passBackObject) { - this.passBackObject = passBackObject; - } - - public InlineResponse2001 withMorePagesAvailable(Integer morePagesAvailable) { - this.morePagesAvailable = morePagesAvailable; - return this; - } - - /** - * Get morePagesAvailable - * - * @return morePagesAvailable - */ - @javax.annotation.Nullable - public Integer getMorePagesAvailable() { - return morePagesAvailable; - } - - public void setMorePagesAvailable(Integer morePagesAvailable) { - this.morePagesAvailable = morePagesAvailable; - } - - public InlineResponse2001 withElapsedTime(Integer elapsedTime) { - this.elapsedTime = elapsedTime; - return this; - } - - /** - * Time the document processing has taken, ms. - * - * @return elapsedTime - */ - @javax.annotation.Nullable - public Integer getElapsedTime() { - return elapsedTime; - } - - public void setElapsedTime(Integer elapsedTime) { - this.elapsedTime = elapsedTime; - } - - public InlineResponse2001 withCoreLibResultCode(Integer coreLibResultCode) { - this.coreLibResultCode = coreLibResultCode; - return this; - } - - /** - * Get coreLibResultCode - * - * @return coreLibResultCode - */ - @javax.annotation.Nullable - public Integer getCoreLibResultCode() { - return coreLibResultCode; - } - - public void setCoreLibResultCode(Integer coreLibResultCode) { - this.coreLibResultCode = coreLibResultCode; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - InlineResponse2001 inlineResponse2001 = (InlineResponse2001) o; - return Objects.equals(this.chipPage, inlineResponse2001.chipPage) - && Objects.equals(this.processingFinished, inlineResponse2001.processingFinished) - && Objects.equals(this.containerList, inlineResponse2001.containerList) - && Objects.equals(this.transactionInfo, inlineResponse2001.transactionInfo) - && Objects.equals(this.log, inlineResponse2001.log) - && Objects.equals(this.passBackObject, inlineResponse2001.passBackObject) - && Objects.equals(this.morePagesAvailable, inlineResponse2001.morePagesAvailable) - && Objects.equals(this.elapsedTime, inlineResponse2001.elapsedTime) - && Objects.equals(this.coreLibResultCode, inlineResponse2001.coreLibResultCode); - } - - @Override - public int hashCode() { - return Objects.hash( - chipPage, - processingFinished, - containerList, - transactionInfo, - log, - passBackObject, - morePagesAvailable, - elapsedTime, - coreLibResultCode); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class InlineResponse2001 {\n"); - sb.append(" chipPage: ").append(toIndentedString(chipPage)).append("\n"); - sb.append(" processingFinished: ").append(toIndentedString(processingFinished)).append("\n"); - sb.append(" containerList: ").append(toIndentedString(containerList)).append("\n"); - sb.append(" transactionInfo: ").append(toIndentedString(transactionInfo)).append("\n"); - sb.append(" log: ").append(toIndentedString(log)).append("\n"); - sb.append(" passBackObject: ").append(toIndentedString(passBackObject)).append("\n"); - sb.append(" morePagesAvailable: ").append(toIndentedString(morePagesAvailable)).append("\n"); - sb.append(" elapsedTime: ").append(toIndentedString(elapsedTime)).append("\n"); - sb.append(" coreLibResultCode: ").append(toIndentedString(coreLibResultCode)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InputBarcodeType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InputBarcodeType.java index f6744475..8eeddc36 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InputBarcodeType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/InputBarcodeType.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,65 +12,117 @@ package com.regula.documentreader.webclient.model; -public class InputBarcodeType { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Enumeration contains the types of barcodes that can be processed */ +@JsonAdapter(InputBarcodeType.Adapter.class) +public enum InputBarcodeType { /** Unknown */ - public static final String UNKNOWN = "bct_unknown"; + UNKNOWN("bct_unknown"), /** Code 128 */ - public static final String CODE128 = "bct_Code128"; + CODE128("bct_Code128"), /** Code 39 */ - public static final String CODE39 = "bct_Code39"; + CODE39("bct_Code39"), /** EAN-8 */ - public static final String EAN8 = "bct_EAN8"; + EAN8("bct_EAN8"), /** ITF */ - public static final String ITF = "bct_ITF"; + ITF("bct_ITF"), /** PDF417 */ - public static final String PDF417 = "bct_PDF417"; + PDF417("bct_PDF417"), /** STF */ - public static final String STF = "bct_STF"; + STF("bct_STF"), /** MTF */ - public static final String MTF = "bct_MTF"; + MTF("bct_MTF"), /** IATA */ - public static final String IATA = "bct_IATA"; + IATA("bct_IATA"), /** Codabar */ - public static final String CODABAR = "bct_CODABAR"; + CODABAR("bct_CODABAR"), /** UPC-A */ - public static final String UPCA = "bct_UPCA"; + UPCA("bct_UPCA"), /** Code 93 */ - public static final String CODE93 = "bct_CODE93"; + CODE93("bct_CODE93"), /** UPC-E */ - public static final String UPCE = "bct_UPCE"; + UPCE("bct_UPCE"), /** EAN-13 */ - public static final String EAN13 = "bct_EAN13"; + EAN13("bct_EAN13"), /** QR code */ - public static final String QRCODE = "bct_QRCODE"; + QRCODE("bct_QRCODE"), /** Aztec code */ - public static final String AZTEC = "bct_AZTEC"; + AZTEC("bct_AZTEC"), /** Datamatrix */ - public static final String DATAMATRIX = "bct_DATAMATRIX"; + DATAMATRIX("bct_DATAMATRIX"), /** All 1D barcodes */ - public static final String ALL_1D = "bct_ALL_1D"; + ALL_1D("bct_ALL_1D"), /** Code 11 */ - public static final String CODE11 = "bct_Code11"; + CODE11("bct_Code11"), /** JAB code */ - public static final String JABCODE = "bct_JABCODE"; + JABCODE("bct_JABCODE"); + + private String value; + + InputBarcodeType(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static InputBarcodeType fromValue(String value) { + for (InputBarcodeType b : InputBarcodeType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final InputBarcodeType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public InputBarcodeType read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return InputBarcodeType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + InputBarcodeType.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InputImageQualityChecks.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InputImageQualityChecks.java index 14bdb4fa..2dc7f30e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InputImageQualityChecks.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/InputImageQualityChecks.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,29 +12,81 @@ package com.regula.documentreader.webclient.model; -public class InputImageQualityChecks { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Input image quality checks for the document processing */ +@JsonAdapter(InputImageQualityChecks.Adapter.class) +public enum InputImageQualityChecks { /** Signals glare presence on the image */ - public static final String Glares = "glaresCheck"; + Glares("glaresCheck"), /** Signals whether image is in focus */ - public static final String Focus = "focusCheck"; + Focus("focusCheck"), /** Signals if image resolution is below threshold */ - public static final String Resolution = "dpiThreshold"; + Resolution("dpiThreshold"), /** Signals if image is colorless */ - public static final String Colorness = "colornessCheck"; + Colorness("colornessCheck"), /** Signals if document in the image has prespective distortion above threshold */ - public static final String Perspective = "perspectiveCheck"; + Perspective("perspectiveCheck"), /** Signals if document is not fully present in the image */ - public static final String Bounds = "documentPosition"; + Bounds("documentPosition"), /** Signals if the portrait is present */ - public static final String Portrait = "portraitCheck"; + Portrait("portraitCheck"), /** Signals if the document image is bright enough */ - public static final String Brightness = "brightnessCheck"; + Brightness("brightnessCheck"); + + private String value; + + InputImageQualityChecks(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static InputImageQualityChecks fromValue(String value) { + for (InputImageQualityChecks b : InputImageQualityChecks.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final InputImageQualityChecks enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public InputImageQualityChecks read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return InputImageQualityChecks.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + InputImageQualityChecks.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LCID.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LCID.java old mode 100755 new mode 100644 index 31f6aa96..3f0b52a2 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LCID.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LCID.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,485 +12,558 @@ package com.regula.documentreader.webclient.model; -public class LCID { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Locale id. Used to tag same typed fields declared in several languages. For example: name can be + * provided in both native and latin variants. Based on Microsoft locale id + * (https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/70feba9f-294e-491e-b6eb-56532684c37f). + */ +@JsonAdapter(LCID.Adapter.class) +public enum LCID { /** Latin */ - public static final int LATIN = 0; + LATIN(0), /** Afrikaans */ - public static final int AFRIKAANS = 1078; + AFRIKAANS(1078), /** Albanian */ - public static final int ALBANIAN = 1052; + ALBANIAN(1052), /** Arabic (Algeria) */ - public static final int ARABIC_ALGERIA = 5121; + ARABIC_ALGERIA(5121), /** Arabic (Bahrain) */ - public static final int ARABIC_BAHRAIN = 15361; + ARABIC_BAHRAIN(15361), /** Arabic (Egypt) */ - public static final int ARABIC_EGYPT = 3073; + ARABIC_EGYPT(3073), /** Arabic (Iraq) */ - public static final int ARABIC_IRAQ = 2049; + ARABIC_IRAQ(2049), /** Arabic (Jordan) */ - public static final int ARABIC_JORDAN = 11265; + ARABIC_JORDAN(11265), /** Arabic (Kuwait) */ - public static final int ARABIC_KUWAIT = 13313; + ARABIC_KUWAIT(13313), /** Arabic (Lebanon) */ - public static final int ARABIC_LEBANON = 12289; + ARABIC_LEBANON(12289), /** Arabic (Libya) */ - public static final int ARABIC_LIBYA = 4097; + ARABIC_LIBYA(4097), /** Arabic (Morocco) */ - public static final int ARABIC_MOROCCO = 6145; + ARABIC_MOROCCO(6145), /** Arabic (Oman) */ - public static final int ARABIC_OMAN = 8193; + ARABIC_OMAN(8193), /** Arabic (Qatar) */ - public static final int ARABIC_QATAR = 16385; + ARABIC_QATAR(16385), /** Arabic (Saudi Arabia) */ - public static final int ARABIC_SAUDI_ARABIA = 1025; + ARABIC_SAUDI_ARABIA(1025), /** Arabic (Syria) */ - public static final int ARABIC_SYRIA = 10241; + ARABIC_SYRIA(10241), /** Arabic (Tunisia) */ - public static final int ARABIC_TUNISIA = 7169; + ARABIC_TUNISIA(7169), /** Arabic (U.A.E.) */ - public static final int ARABIC_UAE = 14337; + ARABIC_UAE(14337), /** Arabic (Yemen) */ - public static final int ARABIC_YEMEN = 9217; + ARABIC_YEMEN(9217), /** Armenian */ - public static final int ARABIC_ARMENIAN = 1067; + ARABIC_ARMENIAN(1067), /** Azeri (Cyrillic) */ - public static final int AZERI_CYRILIC = 2092; + AZERI_CYRILIC(2092), /** Azeri (Latin) */ - public static final int AZERI_LATIN = 1068; + AZERI_LATIN(1068), /** Basque */ - public static final int BASQUE = 1069; + BASQUE(1069), /** Belarusian */ - public static final int BELARUSIAN = 1059; + BELARUSIAN(1059), /** Bulgarian */ - public static final int BULGARIAN = 1026; + BULGARIAN(1026), /** Burmese */ - public static final int BURMESE = 1109; + BURMESE(1109), /** Catalan */ - public static final int CATALAN = 1027; + CATALAN(1027), + + /** Chinese (HongKong S.A.R.) */ + CHINESE_HONGKONG_SAR(3076), + + /** Chinese (Macao S.A.R.) */ + CHINESE_MACAO_SAR(5124), /** Chinese */ - public static final int CHINESE = 2052; + CHINESE(2052), + + /** Chinese (Singapore) */ + CHINESE_SINGAPORE(4100), + + /** Chinese (Taiwan) */ + CHINESE_TAIWAN(1028), /** Croatian */ - public static final int CROATIAN = 1050; + CROATIAN(1050), /** Czech */ - public static final int CZECH = 1029; + CZECH(1029), /** Danish */ - public static final int DANISH = 1030; + DANISH(1030), + + /** Divehi */ + DIVEHI(1125), /** Dutch (Belgium) */ - public static final int DUTCH_BELGIUM = 2067; + DUTCH_BELGIUM(2067), /** Dutch (Netherlands) */ - public static final int DUTCH_NETHERLANDS = 1043; + DUTCH_NETHERLANDS(1043), /** English (Australia) */ - public static final int ENGLISH_AUSTRALIA = 3081; + ENGLISH_AUSTRALIA(3081), /** English (Belize) */ - public static final int ENGLISH_BELIZE = 10249; + ENGLISH_BELIZE(10249), /** English (Canada) */ - public static final int ENGLISH_CANADA = 4105; + ENGLISH_CANADA(4105), /** English (Caribbean) */ - public static final int ENGLISH_CARRIBEAN = 9225; + ENGLISH_CARRIBEAN(9225), /** English (Ireland) */ - public static final int ENGLISH_IRELAND = 6153; + ENGLISH_IRELAND(6153), /** English (Jamaica) */ - public static final int ENGLISH_JAMAICA = 8201; + ENGLISH_JAMAICA(8201), /** English (New Zealand) */ - public static final int ENGLISH_NEW_ZEALAND = 5129; + ENGLISH_NEW_ZEALAND(5129), /** English (Philippines) */ - public static final int ENGLISH_PHILIPPINES = 13321; + ENGLISH_PHILIPPINES(13321), /** English (South Africa) */ - public static final int ENGLISH_SOUTH_AFRICA = 7177; + ENGLISH_SOUTH_AFRICA(7177), /** English (Trinidad) */ - public static final int ENGLISH_TRINIDAD = 11273; + ENGLISH_TRINIDAD(11273), /** English (United Kingdom) */ - public static final int ENGLISH_UK = 2057; + ENGLISH_UK(2057), /** English (United States) */ - public static final int ENGLISH_US = 1033; + ENGLISH_US(1033), /** English (Zimbabwe) */ - public static final int ENGLISH_ZIMBABWE = 12297; + ENGLISH_ZIMBABWE(12297), /** Estonian */ - public static final int ESTONIAN = 1061; + ESTONIAN(1061), /** Faeroese */ - public static final int FAEROESE = 1080; + FAEROESE(1080), /** Farsi */ - public static final int FARSI = 1065; + FARSI(1065), /** Finnish */ - public static final int FINNISH = 1035; + FINNISH(1035), /** French (Belgium) */ - public static final int FRENCH_BELGIUM = 2060; + FRENCH_BELGIUM(2060), /** French (Canada) */ - public static final int FRENCH_CANADA = 3084; + FRENCH_CANADA(3084), /** French (France) */ - public static final int FRENCH_FRANCE = 1036; + FRENCH_FRANCE(1036), /** French (Luxembourg) */ - public static final int FRENCH_LUXEMBOURG = 5132; + FRENCH_LUXEMBOURG(5132), /** French (Monaco) */ - public static final int FRENCH_MONACO = 6156; + FRENCH_MONACO(6156), /** French (Switzerland) */ - public static final int FRENCH_SWITZERLAND = 4108; + FRENCH_SWITZERLAND(4108), /** FYRO Macedonian */ - public static final int FYRO_MACEDONIAN = 1071; + FYRO_MACEDONIAN(1071), /** Galician */ - public static final int GALICIAN = 1110; + GALICIAN(1110), /** Georgian */ - public static final int GEORGIAN = 1079; + GEORGIAN(1079), /** German (Austria) */ - public static final int GERMAN_AUSTRIA = 3079; + GERMAN_AUSTRIA(3079), /** German (Germany) */ - public static final int GERMAN_GERMANY = 1031; + GERMAN_GERMANY(1031), /** German (Liechtenstein) */ - public static final int GERMAN_LIECHTENSTEIN = 5127; + GERMAN_LIECHTENSTEIN(5127), /** German (Luxembourg) */ - public static final int GERMAN_LUXEMBOURG = 4103; + GERMAN_LUXEMBOURG(4103), /** German (Switzerland) */ - public static final int GERMAN_SWITZERLAND = 2055; + GERMAN_SWITZERLAND(2055), /** Greek */ - public static final int GREEK = 1032; + GREEK(1032), /** Gujarati */ - public static final int GUJARATI = 1095; + GUJARATI(1095), /** Hebrew */ - public static final int HEBREW = 1037; + HEBREW(1037), /** Hindi (India) */ - public static final int HINDI_INDIA = 1081; + HINDI_INDIA(1081), /** Hungarian */ - public static final int HUNGARIAN = 1038; + HUNGARIAN(1038), /** Icelandic */ - public static final int ICELANDIC = 1039; + ICELANDIC(1039), /** Indonesian */ - public static final int INDONESIAN = 1057; + INDONESIAN(1057), /** Italian (Italy) */ - public static final int ITALIAN_ITALY = 1040; + ITALIAN_ITALY(1040), /** Italian (Switzerland) */ - public static final int ITALIAN_SWITZERLAND = 2064; + ITALIAN_SWITZERLAND(2064), /** Japanese */ - public static final int JAPANESE = 1041; + JAPANESE(1041), /** Kannada */ - public static final int KANNADA = 1099; + KANNADA(1099), /** Kazakh */ - public static final int KAZAKH = 1087; + KAZAKH(1087), /** Khmer */ - public static final int KHMER = 1107; + KHMER(1107), /** Konkani */ - public static final int KONKANI = 1111; + KONKANI(1111), /** Korean */ - public static final int KOREAN = 1042; + KOREAN(1042), /** Kyrgyz (Cyrillic) */ - public static final int KYRGYZ_CYRILICK = 1088; + KYRGYZ_CYRILICK(1088), /** Latvian */ - public static final int LATVIAN = 1062; + LATVIAN(1062), /** Lithuanian */ - public static final int LITHUANIAN = 1063; + LITHUANIAN(1063), /** Malay (Malaysia) */ - public static final int MALAY_MALAYSIA = 1086; + MALAY_MALAYSIA(1086), /** Malay (Brunei Darussalam) */ - public static final int MALAY_BRUNEI_DARUSSALAM = 2110; + MALAY_BRUNEI_DARUSSALAM(2110), /** Maltese */ - public static final int MALTESE = 1082; + MALTESE(1082), /** Marathi */ - public static final int MARATHI = 1102; + MARATHI(1102), /** Mongolian (Cyrillic) */ - public static final int MONGOLIAN_CYRILIC = 1104; + MONGOLIAN_CYRILIC(1104), /** Norwegian (Bokmal) */ - public static final int NORWEGIAN_BOKMAL = 1044; + NORWEGIAN_BOKMAL(1044), /** Norwegian (Nynorsk) */ - public static final int NORWEGIAN_NYORSK = 2068; + NORWEGIAN_NYORSK(2068), /** Polish */ - public static final int POLISH = 1045; + POLISH(1045), /** Portuguese (Brazil) */ - public static final int PORTUGUESE_BRAZIL = 1046; + PORTUGUESE_BRAZIL(1046), /** Portuguese (Portugal) */ - public static final int PORTUGUESE_PORTUGAL = 2070; + PORTUGUESE_PORTUGAL(2070), /** Punjabi */ - public static final int PUNJABI = 1094; + PUNJABI(1094), /** Rhaeto-Romanic */ - public static final int RHAETO_ROMANIC = 1047; + RHAETO_ROMANIC(1047), /** Romanian */ - public static final int ROMANIAN = 1048; + ROMANIAN(1048), /** Russian */ - public static final int RUSSIAN = 1049; + RUSSIAN(1049), /** Sanskrit */ - public static final int SANSKRIT = 1103; + SANSKRIT(1103), /** Serbian (Cyrillic) */ - public static final int SERBIAN_CYRILIC = 3098; + SERBIAN_CYRILIC(3098), /** Serbian (Latin) */ - public static final int SERBIAN_LATIN = 2074; + SERBIAN_LATIN(2074), /** Sinhala */ - public static final int SINHALA = 1115; + SINHALA(1115), /** Slovak */ - public static final int SLOVAK = 1051; + SLOVAK(1051), /** Slovenian */ - public static final int SLOVENIAN = 1060; + SLOVENIAN(1060), /** Spanish (Argentina) */ - public static final int SPANISH_ARGENTINA = 11274; + SPANISH_ARGENTINA(11274), /** Spanish (Bolivia) */ - public static final int SPANISH_BOLIVIA = 16394; + SPANISH_BOLIVIA(16394), /** Spanish (Chile) */ - public static final int SPANISH_CHILE = 13322; + SPANISH_CHILE(13322), /** Spanish (Colombia) */ - public static final int SPANICH_COLOMBIA = 9226; + SPANICH_COLOMBIA(9226), /** Spanish (Costa Rica) */ - public static final int SPANISH_COSTA_RICA = 5130; + SPANISH_COSTA_RICA(5130), /** Spanish (Dominican Republic) */ - public static final int SPANISH_DOMINICAN_REPUBLIC = 7178; + SPANISH_DOMINICAN_REPUBLIC(7178), /** Spanish (Ecuador) */ - public static final int SPANISH_ECUADOR = 12298; + SPANISH_ECUADOR(12298), /** Spanish (El Salvador) */ - public static final int SPANISH_EL_SALVADOR = 17418; + SPANISH_EL_SALVADOR(17418), /** Spanish (Guatemala) */ - public static final int SPANISH_GUATEMALA = 4106; + SPANISH_GUATEMALA(4106), /** Spanish (Honduras) */ - public static final int SPANISH_HONDURAS = 18442; + SPANISH_HONDURAS(18442), /** Spanish (Mexico) */ - public static final int SPANISH_MEXICO = 2058; + SPANISH_MEXICO(2058), /** Spanish (Nicaragua) */ - public static final int SPANISH_NICARAGUA = 19466; + SPANISH_NICARAGUA(19466), /** Spanish (Panama) */ - public static final int SPANISH_PANAMA = 6154; + SPANISH_PANAMA(6154), /** Spanish (Paraguay) */ - public static final int SPANISH_PARAGUAY = 15370; + SPANISH_PARAGUAY(15370), /** Spanish (Peru) */ - public static final int SPANISH_PERU = 10250; + SPANISH_PERU(10250), /** Spanish (Puerto Rico) */ - public static final int SPANISH_PUERTO_RICO = 20490; + SPANISH_PUERTO_RICO(20490), /** Spanish (Traditional Sort) */ - public static final int SPANISH_TRADITIONAL_SORT = 1034; + SPANISH_TRADITIONAL_SORT(1034), /** Spanish (International Sort) */ - public static final int SPANISH_INTERNATIONAL_SORT = 3082; + SPANISH_INTERNATIONAL_SORT(3082), /** Spanish (Uruguay) */ - public static final int SPANISH_URUGUAY = 14346; + SPANISH_URUGUAY(14346), /** Spanish (Venezuela) */ - public static final int SPANISH_VENEZUELA = 8202; + SPANISH_VENEZUELA(8202), /** Swahili */ - public static final int SWAHILI = 1089; + SWAHILI(1089), /** Swedish */ - public static final int SWEDISH = 1053; + SWEDISH(1053), /** Swedish (Finland) */ - public static final int SWEDISH_FINLAND = 2077; + SWEDISH_FINLAND(2077), + + /** Syriac */ + SYRIAC(1114), /** Tamil */ - public static final int TAMIL = 1097; + TAMIL(1097), /** Tatar */ - public static final int TATAR = 1092; + TATAR(1092), /** Telugu */ - public static final int TELUGU = 1098; + TELUGU(1098), /** Thai (Thailand) */ - public static final int THAI_THAILAND = 1054; + THAI_THAILAND(1054), /** Turkish */ - public static final int TURKISH = 1055; + TURKISH(1055), /** Tajik (Cyrillic) */ - public static final int TAJIK_CYRILLIC = 1064; + TAJIK_CYRILLIC(1064), /** Turkmen */ - public static final int TURKMEN = 1090; + TURKMEN(1090), /** Ukrainian */ - public static final int UKRAINIAN = 1058; + UKRAINIAN(1058), /** Urdu */ - public static final int URDU = 1056; + URDU(1056), /** Uzbek (Cyrillic) */ - public static final int UZBEK_CYRILIC = 2115; + UZBEK_CYRILIC(2115), /** Uzbek (Latin) */ - public static final int UZBEK_LATIN = 1091; + UZBEK_LATIN(1091), /** Vietnamese */ - public static final int VIETNAMESE = 1066; + VIETNAMESE(1066), /** CTC Simplified */ - public static final int CTC_SIMPLIFIED = 50001; + CTC_SIMPLIFIED(50001), /** CTC Traditional */ - public static final int CTC_TRADITIONAL = 50002; + CTC_TRADITIONAL(50002), /** Bengali (Bangladesh) */ - public static final int BengaliBangladesh = 2117; + BENGALI_BANGLADESH(2117), /** BengaliIndia */ - public static final int BengaliIndia = 1093; + BENGALI_INDIA(1093), /** Assamese */ - public static final int Assamese = 1101; + ASSAMESE(1101), /** Oriya */ - public static final int ORIYA = 1096; + ORIYA(1096), /** Malayalam */ - public static final int MALAYALAM = 1100; + MALAYALAM(1100), /** Lao */ - public static final int LAO = 1108; + LAO(1108), /** Sindhi (India) */ - public static final int SINDHI_INDIA = 1113; + SINDHI_INDIA(1113), /** Amharic */ - public static final int AMHARIC = 1118; + AMHARIC(1118), /** Kashmiri */ - public static final int KASHMIRI = 1120; + KASHMIRI(1120), /** Nepali */ - public static final int NEPALI = 1121; + NEPALI(1121), /** Pashto */ - public static final int PASHTO = 1123; + PASHTO(1123), /** Sindhi */ - public static final int SINDHI = 2137; + SINDHI(2137), /** Arabic (World) */ - public static final int ARABIC = 4096; + ARABIC(4096), /** Bank Card Number */ - public static final int BANK_CARD_NUMBER = 10000; + BANK_CARD_NUMBER(10000), /** Bank Card Expiry Date */ - public static final int BANK_CARD_EXPIRY_DATE = 10001; + BANK_CARD_EXPIRY_DATE(10001), /** Bank Card Name */ - public static final int BANK_CARD_NAME = 10002; + BANK_CARD_NAME(10002), /** Bank Card */ - public static final int BANK_CARD = 10003; + BANK_CARD(10003), /** Bank Card CVV2 */ - public static final int BANK_CARD_CVV2 = 10004; + BANK_CARD_CVV2(10004), /** Abkhazian (Cyrillic) */ - public static final int ABKHAZIAN = 10011; + ABKHAZIAN(10011), /** Karakalpak (Latin) */ - public static final int KARAKALPAK = 10012; + KARAKALPAK(10012), /** Urdu Detection */ - public static final int URDU_DETECTION = 10560; + URDU_DETECTION(10560); + + private Integer value; + + LCID(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static LCID fromValue(Integer value) { + for (LCID b : LCID.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final LCID enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public LCID read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return LCID.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + LCID.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LexicalAnalysisResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LexicalAnalysisResult.java old mode 100755 new mode 100644 index 2835feb3..a2688165 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LexicalAnalysisResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LexicalAnalysisResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,8 +12,21 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** * Lexical data analysis allows you to compare the results of reading the text data of the MRZ, the @@ -21,13 +34,20 @@ * assessment of the authenticity of the document. Single result for all pages. Consider using * Result.TEXT type for more simplicity. */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class LexicalAnalysisResult extends ResultItem { public static final String SERIALIZED_NAME_LIST_VERIFIED_FIELDS = "ListVerifiedFields"; @SerializedName(SERIALIZED_NAME_LIST_VERIFIED_FIELDS) + @javax.annotation.Nonnull private ListVerifiedFields listVerifiedFields; - public LexicalAnalysisResult withListVerifiedFields(ListVerifiedFields listVerifiedFields) { + public LexicalAnalysisResult() {} + + public LexicalAnalysisResult listVerifiedFields( + @javax.annotation.Nonnull ListVerifiedFields listVerifiedFields) { this.listVerifiedFields = listVerifiedFields; return this; } @@ -37,17 +57,18 @@ public LexicalAnalysisResult withListVerifiedFields(ListVerifiedFields listVerif * * @return listVerifiedFields */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public ListVerifiedFields getListVerifiedFields() { return listVerifiedFields; } - public void setListVerifiedFields(ListVerifiedFields listVerifiedFields) { + public void setListVerifiedFields( + @javax.annotation.Nonnull ListVerifiedFields listVerifiedFields) { this.listVerifiedFields = listVerifiedFields; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -77,10 +98,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("ListVerifiedFields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ListVerifiedFields"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LexicalAnalysisResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LexicalAnalysisResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in LexicalAnalysisResult is not found in the empty JSON string", + LexicalAnalysisResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LexicalAnalysisResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `LexicalAnalysisResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : LexicalAnalysisResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LexicalAnalysisResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LexicalAnalysisResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(LexicalAnalysisResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, LexicalAnalysisResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LexicalAnalysisResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of LexicalAnalysisResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of LexicalAnalysisResult + * @throws IOException if the JSON string is invalid with respect to LexicalAnalysisResult + */ + public static LexicalAnalysisResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LexicalAnalysisResult.class); + } + + /** + * Convert an instance of LexicalAnalysisResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java index 6c9ac815..8d0433c9 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,18 +12,37 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.Arrays; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** LicenseResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class LicenseResult extends ResultItem { public static final String SERIALIZED_NAME_LICENSE = "License"; @SerializedName(SERIALIZED_NAME_LICENSE) + @javax.annotation.Nonnull private byte[] license; - public LicenseResult withLicense(byte[] license) { + public LicenseResult() {} + + public LicenseResult license(@javax.annotation.Nonnull byte[] license) { this.license = license; return this; } @@ -33,16 +52,17 @@ public LicenseResult withLicense(byte[] license) { * * @return license */ + @javax.annotation.Nonnull public byte[] getLicense() { return license; } - public void setLicense(byte[] license) { + public void setLicense(@javax.annotation.Nonnull byte[] license) { this.license = license; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -71,10 +91,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("License"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("License"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LicenseResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LicenseResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in LicenseResult is not found in the empty JSON string", + LicenseResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LicenseResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `LicenseResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : LicenseResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LicenseResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LicenseResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(LicenseResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, LicenseResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LicenseResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of LicenseResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of LicenseResult + * @throws IOException if the JSON string is invalid with respect to LicenseResult + */ + public static LicenseResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LicenseResult.class); + } + + /** + * Convert an instance of LicenseResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Light.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Light.java old mode 100755 new mode 100644 index d739ecba..273ea48f --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Light.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Light.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,182 @@ package com.regula.documentreader.webclient.model; -public class Light { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; - /** No Light */ - public static final int OFF = 0; +/** Image light index */ +@JsonAdapter(Light.Adapter.class) +public enum Light { - /** White */ - public static final int WHITE = 6; + /** Lighting schemes are off */ + OFF(0l), - /** Infrared */ - public static final int IR = 24; + /** OVI scheme */ + OVI(1l), - /** Ultraviolet */ - public static final int UV = 128; + /** Upper/lower lighters of white light scheme */ + WHITE_TOP(2l), + + /** Side lighters of white light scheme */ + WHITE_SIDE(4l), + + /** General white light without separate control of side and upper/lower lighters scheme */ + WHITE_FRONT(8388608l), + + /** Upper/lower and side lighters of white light scheme */ + WHITE(6l), + + /** Upper/lower lighters of IR light scheme */ + IR_TOP(8l), + + /** Side lighters of IR light scheme */ + IR_SIDE(16l), + + /** General IR light without separate control of side and upper/lower lighters scheme */ + IR_FRONT(16777216l), + + /** Upper/lower and side lighters of IR light scheme */ + IR(24l), + + /** general white image converted to grayscale */ + WHITE_GRAY(33554432l), + + /** General UV light scheme */ + UV(128l), + + /** OVD light for hologram visualization */ + OVD(67108864l), + + /** Video detection light for internal use only */ + VIDEODETECTION(134217728l), + + /** Light IR 870 oblique */ + IR_870_OBL(268435456l), + + /** IR luminescence */ + IR_LUMINESCENCE(256l), + + /** Left lighter of white coaxial light scheme */ + AXIAL_WHITE_LEFT(1024l), + + /** Right lighter of white coaxial light scheme */ + AXIAL_WHITE_RIGHT(2048l), + + /** Coaxial white light without separate control of left and right lighters scheme */ + AXIAL_WHITE_FRONT(512l), + + /** IR720 */ + IR_720(4096l), + + /** IR940 */ + IR_940(8192l), + + /** Right and left lighters of white coaxial light scheme */ + AXIAL_WHITE_FULL(3072l), + + /** For internal use */ + RAW_DATA(2147483648l), + + /** For internal use */ + RAW_DATA_GRBG(2415919104l), + + /** For internal use */ + RAW_DATA_GBGR(2684354560l), + + /** For internal use */ + RAW_DATA_RGGB(2952790016l), + + /** For internal use */ + RAW_DATA_BGGR(3221225472l), + + /** Transmitted */ + TRANSMITTED(32l), + + /** Transmitted IR */ + TRANSMITTED_IR(64l), + + /** Transmitted AntiStokes */ + ANTI_STOKES(65536l), + + /** Transmitted IR940 */ + TRANSMITTED_IR940(16384l), + + /** OVD right */ + OVD_RIGHT(262144l), + + /** OVD left */ + OVD_LEFT(131072l), + + /** IR 700 */ + IR_700(32768l), + + /** Front IR870 (mod. 8803) */ + IR_870(16777216l), + + /** OVD light (hologram visualization) (mod. 8850) */ + HOLO(67108864l), + + /** For internal use */ + IR_BOTTOM(64l), + + /** For internal use */ + WHITE_BOTTOM(32l), + + /** UVС 254 (mod. 88X0) */ + UVC(524288l), + + /** UVB 313 (mod. 88X0) */ + UVB(1048576l), + + /** White oblique light */ + WHITE_OBL(2097152l), + + /** For internal use */ + WHITE_SPECIAL(4194304l); + + private Long value; + + Light(Long value) { + this.value = value; + } + + public Long getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static Light fromValue(Long value) { + for (Light b : Light.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final Light enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public Light read(final JsonReader jsonReader) throws IOException { + Long value = jsonReader.nextLong(); + return Light.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Long value = jsonElement.getAsLong(); + Light.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ListTransactionsByTagResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ListTransactionsByTagResponse.java index a4630754..c8b5a5c5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ListTransactionsByTagResponse.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ListTransactionsByTagResponse.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,33 +12,54 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; /** ListTransactionsByTagResponse */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ListTransactionsByTagResponse { public static final String SERIALIZED_NAME_ITEMS = "items"; @SerializedName(SERIALIZED_NAME_ITEMS) - private List items = null; + @javax.annotation.Nullable + private List items; public static final String SERIALIZED_NAME_METADATA = "metadata"; @SerializedName(SERIALIZED_NAME_METADATA) - private Map metadata = null; + @javax.annotation.Nullable + private Map metadata; - public ListTransactionsByTagResponse withItems(List items) { + public ListTransactionsByTagResponse() {} + + public ListTransactionsByTagResponse items( + @javax.annotation.Nullable List items) { this.items = items; return this; } public ListTransactionsByTagResponse addItemsItem(GetTransactionsByTagResponse itemsItem) { if (this.items == null) { - this.items = new ArrayList(); + this.items = new ArrayList<>(); } this.items.add(itemsItem); return this; @@ -54,18 +75,19 @@ public List getItems() { return items; } - public void setItems(List items) { + public void setItems(@javax.annotation.Nullable List items) { this.items = items; } - public ListTransactionsByTagResponse withMetadata(Map metadata) { + public ListTransactionsByTagResponse metadata( + @javax.annotation.Nullable Map metadata) { this.metadata = metadata; return this; } public ListTransactionsByTagResponse putMetadataItem(String key, Object metadataItem) { if (this.metadata == null) { - this.metadata = new HashMap(); + this.metadata = new HashMap<>(); } this.metadata.put(key, metadataItem); return this; @@ -81,12 +103,12 @@ public Map getMetadata() { return metadata; } - public void setMetadata(Map metadata) { + public void setMetadata(@javax.annotation.Nullable Map metadata) { this.metadata = metadata; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -116,10 +138,122 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("items"); + openapiFields.add("metadata"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * ListTransactionsByTagResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ListTransactionsByTagResponse.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ListTransactionsByTagResponse is not found in the empty JSON string", + ListTransactionsByTagResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ListTransactionsByTagResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ListTransactionsByTagResponse` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("items") != null && !jsonObj.get("items").isJsonNull()) { + JsonArray jsonArrayitems = jsonObj.getAsJsonArray("items"); + if (jsonArrayitems != null) { + // ensure the json data is an array + if (!jsonObj.get("items").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `items` to be an array in the JSON string but got `%s`", + jsonObj.get("items").toString())); + } + + // validate the optional field `items` (array) + for (int i = 0; i < jsonArrayitems.size(); i++) { + GetTransactionsByTagResponse.validateJsonElement(jsonArrayitems.get(i)); + } + ; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ListTransactionsByTagResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ListTransactionsByTagResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ListTransactionsByTagResponse.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ListTransactionsByTagResponse value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ListTransactionsByTagResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ListTransactionsByTagResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of ListTransactionsByTagResponse + * @throws IOException if the JSON string is invalid with respect to ListTransactionsByTagResponse + */ + public static ListTransactionsByTagResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ListTransactionsByTagResponse.class); + } + + /** + * Convert an instance of ListTransactionsByTagResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFields.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFields.java old mode 100755 new mode 100644 index eb28a427..bf901d87 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFields.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFields.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,26 +12,79 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ListVerifiedFields */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ListVerifiedFields { + public static final String SERIALIZED_NAME_COUNT = "Count"; + + @SerializedName(SERIALIZED_NAME_COUNT) + @javax.annotation.Nonnull + private BigDecimal count; + public static final String SERIALIZED_NAME_P_FIELD_MAPS = "pFieldMaps"; @SerializedName(SERIALIZED_NAME_P_FIELD_MAPS) - private List pFieldMaps = null; + @javax.annotation.Nonnull + private List pFieldMaps; + + public static final String SERIALIZED_NAME_P_DATE_FORMAT = "pDateFormat"; + + @SerializedName(SERIALIZED_NAME_P_DATE_FORMAT) + @javax.annotation.Nullable + private String pDateFormat; + + public ListVerifiedFields() {} + + public ListVerifiedFields count(@javax.annotation.Nonnull BigDecimal count) { + this.count = count; + return this; + } + + /** + * Number of pFieldMaps array elements + * + * @return count + */ + @javax.annotation.Nonnull + public BigDecimal getCount() { + return count; + } + + public void setCount(@javax.annotation.Nonnull BigDecimal count) { + this.count = count; + } - public ListVerifiedFields withPFieldMaps(List pFieldMaps) { + public ListVerifiedFields pFieldMaps( + @javax.annotation.Nonnull List pFieldMaps) { this.pFieldMaps = pFieldMaps; return this; } public ListVerifiedFields addPFieldMapsItem(VerifiedFieldMap pFieldMapsItem) { if (this.pFieldMaps == null) { - this.pFieldMaps = new ArrayList(); + this.pFieldMaps = new ArrayList<>(); } this.pFieldMaps.add(pFieldMapsItem); return this; @@ -42,17 +95,36 @@ public ListVerifiedFields addPFieldMapsItem(VerifiedFieldMap pFieldMapsItem) { * * @return pFieldMaps */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getpFieldMaps() { return pFieldMaps; } - public void setpFieldMaps(List pFieldMaps) { + public void setpFieldMaps(@javax.annotation.Nonnull List pFieldMaps) { this.pFieldMaps = pFieldMaps; } + public ListVerifiedFields pDateFormat(@javax.annotation.Nullable String pDateFormat) { + this.pDateFormat = pDateFormat; + return this; + } + + /** + * Get pDateFormat + * + * @return pDateFormat + */ + @javax.annotation.Nullable + public String getpDateFormat() { + return pDateFormat; + } + + public void setpDateFormat(@javax.annotation.Nullable String pDateFormat) { + this.pDateFormat = pDateFormat; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -60,19 +132,23 @@ public boolean equals(java.lang.Object o) { return false; } ListVerifiedFields listVerifiedFields = (ListVerifiedFields) o; - return Objects.equals(this.pFieldMaps, listVerifiedFields.pFieldMaps); + return Objects.equals(this.count, listVerifiedFields.count) + && Objects.equals(this.pFieldMaps, listVerifiedFields.pFieldMaps) + && Objects.equals(this.pDateFormat, listVerifiedFields.pDateFormat); } @Override public int hashCode() { - return Objects.hash(pFieldMaps); + return Objects.hash(count, pFieldMaps, pDateFormat); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ListVerifiedFields {\n"); + sb.append(" count: ").append(toIndentedString(count)).append("\n"); sb.append(" pFieldMaps: ").append(toIndentedString(pFieldMaps)).append("\n"); + sb.append(" pDateFormat: ").append(toIndentedString(pDateFormat)).append("\n"); sb.append("}"); return sb.toString(); } @@ -80,10 +156,136 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Count"); + openapiFields.add("pFieldMaps"); + openapiFields.add("pDateFormat"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Count"); + openapiRequiredFields.add("pFieldMaps"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ListVerifiedFields + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ListVerifiedFields.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ListVerifiedFields is not found in the empty JSON string", + ListVerifiedFields.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ListVerifiedFields.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ListVerifiedFields` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ListVerifiedFields.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("pFieldMaps").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `pFieldMaps` to be an array in the JSON string but got `%s`", + jsonObj.get("pFieldMaps").toString())); + } + + JsonArray jsonArraypFieldMaps = jsonObj.getAsJsonArray("pFieldMaps"); + // validate the required field `pFieldMaps` (array) + for (int i = 0; i < jsonArraypFieldMaps.size(); i++) { + VerifiedFieldMap.validateJsonElement(jsonArraypFieldMaps.get(i)); + } + ; + if ((jsonObj.get("pDateFormat") != null && !jsonObj.get("pDateFormat").isJsonNull()) + && !jsonObj.get("pDateFormat").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `pDateFormat` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("pDateFormat").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ListVerifiedFields.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ListVerifiedFields' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ListVerifiedFields.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ListVerifiedFields value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ListVerifiedFields read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ListVerifiedFields given an JSON string + * + * @param jsonString JSON string + * @return An instance of ListVerifiedFields + * @throws IOException if the JSON string is invalid with respect to ListVerifiedFields + */ + public static ListVerifiedFields fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ListVerifiedFields.class); + } + + /** + * Convert an instance of ListVerifiedFields to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java index 2cd2eca8..60131ce7 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,32 +12,54 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** LivenessParams */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class LivenessParams { public static final String SERIALIZED_NAME_CHECK_O_V_I = "checkOVI"; @SerializedName(SERIALIZED_NAME_CHECK_O_V_I) + @javax.annotation.Nullable private Boolean checkOVI; public static final String SERIALIZED_NAME_CHECK_M_L_I = "checkMLI"; @SerializedName(SERIALIZED_NAME_CHECK_M_L_I) + @javax.annotation.Nullable private Boolean checkMLI; public static final String SERIALIZED_NAME_CHECK_HOLO = "checkHolo"; @SerializedName(SERIALIZED_NAME_CHECK_HOLO) + @javax.annotation.Nullable private Boolean checkHolo; public static final String SERIALIZED_NAME_CHECK_E_D = "checkED"; @SerializedName(SERIALIZED_NAME_CHECK_E_D) + @javax.annotation.Nullable private Boolean checkED; - public LivenessParams withCheckOVI(Boolean checkOVI) { + public LivenessParams() {} + + public LivenessParams checkOVI(@javax.annotation.Nullable Boolean checkOVI) { this.checkOVI = checkOVI; return this; } @@ -52,11 +74,11 @@ public Boolean getCheckOVI() { return checkOVI; } - public void setCheckOVI(Boolean checkOVI) { + public void setCheckOVI(@javax.annotation.Nullable Boolean checkOVI) { this.checkOVI = checkOVI; } - public LivenessParams withCheckMLI(Boolean checkMLI) { + public LivenessParams checkMLI(@javax.annotation.Nullable Boolean checkMLI) { this.checkMLI = checkMLI; return this; } @@ -71,11 +93,11 @@ public Boolean getCheckMLI() { return checkMLI; } - public void setCheckMLI(Boolean checkMLI) { + public void setCheckMLI(@javax.annotation.Nullable Boolean checkMLI) { this.checkMLI = checkMLI; } - public LivenessParams withCheckHolo(Boolean checkHolo) { + public LivenessParams checkHolo(@javax.annotation.Nullable Boolean checkHolo) { this.checkHolo = checkHolo; return this; } @@ -90,11 +112,11 @@ public Boolean getCheckHolo() { return checkHolo; } - public void setCheckHolo(Boolean checkHolo) { + public void setCheckHolo(@javax.annotation.Nullable Boolean checkHolo) { this.checkHolo = checkHolo; } - public LivenessParams withCheckED(Boolean checkED) { + public LivenessParams checkED(@javax.annotation.Nullable Boolean checkED) { this.checkED = checkED; return this; } @@ -109,12 +131,12 @@ public Boolean getCheckED() { return checkED; } - public void setCheckED(Boolean checkED) { + public void setCheckED(@javax.annotation.Nullable Boolean checkED) { this.checkED = checkED; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -148,10 +170,104 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("checkOVI"); + openapiFields.add("checkMLI"); + openapiFields.add("checkHolo"); + openapiFields.add("checkED"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LivenessParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LivenessParams.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in LivenessParams is not found in the empty JSON string", + LivenessParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LivenessParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `LivenessParams` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LivenessParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LivenessParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(LivenessParams.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, LivenessParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LivenessParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of LivenessParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of LivenessParams + * @throws IOException if the JSON string is invalid with respect to LivenessParams + */ + public static LivenessParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LivenessParams.class); + } + + /** + * Convert an instance of LivenessParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LogLevel.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LogLevel.java index d088dc41..f81acdd9 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LogLevel.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LogLevel.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,20 +12,71 @@ package com.regula.documentreader.webclient.model; -public class LogLevel { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Gets or Sets LogLevel */ +@JsonAdapter(LogLevel.Adapter.class) +public enum LogLevel { /** Fatal error */ - public static final String FATAL_ERROR = "FatalError"; + FATAL_ERROR("FatalError"), /** Error */ - public static final String ERROR = "Error"; + ERROR("Error"), /** Warning */ - public static final String WARNING = "Warning"; + WARNING("Warning"), /** Info */ - public static final String INFO = "Info"; + INFO("Info"), /** Debug */ - public static final String DEBUG = "Debug"; + DEBUG("Debug"); + + private String value; + + LogLevel(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static LogLevel fromValue(String value) { + for (LogLevel b : LogLevel.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final LogLevel enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public LogLevel read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return LogLevel.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + LogLevel.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZDetectorResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZDetectorResult.java new file mode 100644 index 00000000..2f980e7e --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZDetectorResult.java @@ -0,0 +1,208 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** MRZDetectorResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class MRZDetectorResult extends ResultItem { + public static final String SERIALIZED_NAME_RESULT_M_R_Z_DETECTOR = "ResultMRZDetector"; + + @SerializedName(SERIALIZED_NAME_RESULT_M_R_Z_DETECTOR) + @javax.annotation.Nonnull + private ResultMRZDetector resultMRZDetector; + + public MRZDetectorResult() {} + + public MRZDetectorResult resultMRZDetector( + @javax.annotation.Nonnull ResultMRZDetector resultMRZDetector) { + this.resultMRZDetector = resultMRZDetector; + return this; + } + + /** + * Get resultMRZDetector + * + * @return resultMRZDetector + */ + @javax.annotation.Nonnull + public ResultMRZDetector getResultMRZDetector() { + return resultMRZDetector; + } + + public void setResultMRZDetector(@javax.annotation.Nonnull ResultMRZDetector resultMRZDetector) { + this.resultMRZDetector = resultMRZDetector; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MRZDetectorResult mrZDetectorResult = (MRZDetectorResult) o; + return Objects.equals(this.resultMRZDetector, mrZDetectorResult.resultMRZDetector) + && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(resultMRZDetector, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MRZDetectorResult {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" resultMRZDetector: ").append(toIndentedString(resultMRZDetector)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("ResultMRZDetector"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ResultMRZDetector"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MRZDetectorResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MRZDetectorResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in MRZDetectorResult is not found in the empty JSON string", + MRZDetectorResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MRZDetectorResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `MRZDetectorResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MRZDetectorResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MRZDetectorResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MRZDetectorResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(MRZDetectorResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, MRZDetectorResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MRZDetectorResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of MRZDetectorResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of MRZDetectorResult + * @throws IOException if the JSON string is invalid with respect to MRZDetectorResult + */ + public static MRZDetectorResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MRZDetectorResult.class); + } + + /** + * Convert an instance of MRZDetectorResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZFormat.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZFormat.java index 56509738..fe4540fe 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZFormat.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZFormat.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,23 +12,74 @@ package com.regula.documentreader.webclient.model; -public class MRZFormat { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Gets or Sets MRZFormat */ +@JsonAdapter(MRZFormat.Adapter.class) +public enum MRZFormat { /** 1x30 */ - public static final String IDL = "1x30"; + IDL("1x30"), /** 3x30 */ - public static final String ID1 = "3x30"; + ID1("3x30"), /** 2x36 */ - public static final String ID2 = "2x36"; + ID2("2x36"), /** 2x44 */ - public static final String ID3 = "2x44"; + ID3("2x44"), /** 1x6 */ - public static final String CAN = "1x6"; + CAN("1x6"), /** 2x30 */ - public static final String ID1_2_30 = "2x30"; + ID1_2_30("2x30"); + + private String value; + + MRZFormat(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MRZFormat fromValue(String value) { + for (MRZFormat b : MRZFormat.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MRZFormat enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MRZFormat read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return MRZFormat.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + MRZFormat.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZPositionResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZPositionResult.java new file mode 100644 index 00000000..66a3fe89 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZPositionResult.java @@ -0,0 +1,206 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** MRZPositionResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class MRZPositionResult extends ResultItem { + public static final String SERIALIZED_NAME_MRZ_POSITION = "MrzPosition"; + + @SerializedName(SERIALIZED_NAME_MRZ_POSITION) + @javax.annotation.Nonnull + private MrzPosition mrzPosition; + + public MRZPositionResult() {} + + public MRZPositionResult mrzPosition(@javax.annotation.Nonnull MrzPosition mrzPosition) { + this.mrzPosition = mrzPosition; + return this; + } + + /** + * Get mrzPosition + * + * @return mrzPosition + */ + @javax.annotation.Nonnull + public MrzPosition getMrzPosition() { + return mrzPosition; + } + + public void setMrzPosition(@javax.annotation.Nonnull MrzPosition mrzPosition) { + this.mrzPosition = mrzPosition; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MRZPositionResult mrZPositionResult = (MRZPositionResult) o; + return Objects.equals(this.mrzPosition, mrZPositionResult.mrzPosition) && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(mrzPosition, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MRZPositionResult {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" mrzPosition: ").append(toIndentedString(mrzPosition)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("MrzPosition"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("MrzPosition"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MRZPositionResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MRZPositionResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in MRZPositionResult is not found in the empty JSON string", + MRZPositionResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MRZPositionResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `MRZPositionResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MRZPositionResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MRZPositionResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MRZPositionResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(MRZPositionResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, MRZPositionResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MRZPositionResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of MRZPositionResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of MRZPositionResult + * @throws IOException if the JSON string is invalid with respect to MRZPositionResult + */ + public static MRZPositionResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MRZPositionResult.class); + } + + /** + * Convert an instance of MRZPositionResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZRowsItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZRowsItem.java new file mode 100644 index 00000000..2039bd88 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZRowsItem.java @@ -0,0 +1,283 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** MRZRowsItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class MRZRowsItem { + public static final String SERIALIZED_NAME_LENGTH = "length"; + + @SerializedName(SERIALIZED_NAME_LENGTH) + @javax.annotation.Nonnull + private Integer length; + + public static final String SERIALIZED_NAME_MAX_LENGTH = "maxLength"; + + @SerializedName(SERIALIZED_NAME_MAX_LENGTH) + @javax.annotation.Nonnull + private Integer maxLength; + + public static final String SERIALIZED_NAME_SYMBOLS = "symbols"; + + @SerializedName(SERIALIZED_NAME_SYMBOLS) + @javax.annotation.Nonnull + private List symbols; + + public MRZRowsItem() {} + + public MRZRowsItem length(@javax.annotation.Nonnull Integer length) { + this.length = length; + return this; + } + + /** + * Get length + * + * @return length + */ + @javax.annotation.Nonnull + public Integer getLength() { + return length; + } + + public void setLength(@javax.annotation.Nonnull Integer length) { + this.length = length; + } + + public MRZRowsItem maxLength(@javax.annotation.Nonnull Integer maxLength) { + this.maxLength = maxLength; + return this; + } + + /** + * Get maxLength + * + * @return maxLength + */ + @javax.annotation.Nonnull + public Integer getMaxLength() { + return maxLength; + } + + public void setMaxLength(@javax.annotation.Nonnull Integer maxLength) { + this.maxLength = maxLength; + } + + public MRZRowsItem symbols(@javax.annotation.Nonnull List symbols) { + this.symbols = symbols; + return this; + } + + public MRZRowsItem addSymbolsItem(Symbol symbolsItem) { + if (this.symbols == null) { + this.symbols = new ArrayList<>(); + } + this.symbols.add(symbolsItem); + return this; + } + + /** + * Get symbols + * + * @return symbols + */ + @javax.annotation.Nonnull + public List getSymbols() { + return symbols; + } + + public void setSymbols(@javax.annotation.Nonnull List symbols) { + this.symbols = symbols; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MRZRowsItem mrZRowsItem = (MRZRowsItem) o; + return Objects.equals(this.length, mrZRowsItem.length) + && Objects.equals(this.maxLength, mrZRowsItem.maxLength) + && Objects.equals(this.symbols, mrZRowsItem.symbols); + } + + @Override + public int hashCode() { + return Objects.hash(length, maxLength, symbols); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MRZRowsItem {\n"); + sb.append(" length: ").append(toIndentedString(length)).append("\n"); + sb.append(" maxLength: ").append(toIndentedString(maxLength)).append("\n"); + sb.append(" symbols: ").append(toIndentedString(symbols)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("length"); + openapiFields.add("maxLength"); + openapiFields.add("symbols"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("length"); + openapiRequiredFields.add("maxLength"); + openapiRequiredFields.add("symbols"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MRZRowsItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MRZRowsItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in MRZRowsItem is not found in the empty JSON string", + MRZRowsItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MRZRowsItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `MRZRowsItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MRZRowsItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("symbols").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `symbols` to be an array in the JSON string but got `%s`", + jsonObj.get("symbols").toString())); + } + + JsonArray jsonArraysymbols = jsonObj.getAsJsonArray("symbols"); + // validate the required field `symbols` (array) + for (int i = 0; i < jsonArraysymbols.size(); i++) { + Symbol.validateJsonElement(jsonArraysymbols.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MRZRowsItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MRZRowsItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(MRZRowsItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, MRZRowsItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MRZRowsItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of MRZRowsItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of MRZRowsItem + * @throws IOException if the JSON string is invalid with respect to MRZRowsItem + */ + public static MRZRowsItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MRZRowsItem.class); + } + + /** + * Convert an instance of MRZRowsItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQuality.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQuality.java new file mode 100644 index 00000000..217fc127 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQuality.java @@ -0,0 +1,496 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** MRZTestQuality */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class MRZTestQuality { + public static final String SERIALIZED_NAME_C_H_E_C_K_S_U_M_S = "CHECK_SUMS"; + + @SerializedName(SERIALIZED_NAME_C_H_E_C_K_S_U_M_S) + @javax.annotation.Nonnull + private Integer CHECK_SUMS; + + public static final String SERIALIZED_NAME_C_O_N_T_R_A_S_T_P_R_I_N_T = "CONTRAST_PRINT"; + + @SerializedName(SERIALIZED_NAME_C_O_N_T_R_A_S_T_P_R_I_N_T) + @javax.annotation.Nonnull + private Integer CONTRAST_PRINT; + + public static final String SERIALIZED_NAME_D_O_C_F_O_R_M_A_T = "DOC_FORMAT"; + + @SerializedName(SERIALIZED_NAME_D_O_C_F_O_R_M_A_T) + @javax.annotation.Nonnull + private Integer DOC_FORMAT; + + public static final String SERIALIZED_NAME_M_R_Z_F_O_R_M_A_T = "MRZ_FORMAT"; + + @SerializedName(SERIALIZED_NAME_M_R_Z_F_O_R_M_A_T) + @javax.annotation.Nonnull + private Integer MRZ_FORMAT; + + public static final String SERIALIZED_NAME_P_R_I_N_T_P_O_S_I_T_I_O_N = "PRINT_POSITION"; + + @SerializedName(SERIALIZED_NAME_P_R_I_N_T_P_O_S_I_T_I_O_N) + @javax.annotation.Nonnull + private Integer PRINT_POSITION; + + public static final String SERIALIZED_NAME_S_T_A_I_N_M_R_Z = "STAIN_MRZ"; + + @SerializedName(SERIALIZED_NAME_S_T_A_I_N_M_R_Z) + @javax.annotation.Nonnull + private Integer STAIN_MRZ; + + public static final String SERIALIZED_NAME_S_Y_M_B_O_L_S_P_A_R_A_M = "SYMBOLS_PARAM"; + + @SerializedName(SERIALIZED_NAME_S_Y_M_B_O_L_S_P_A_R_A_M) + @javax.annotation.Nonnull + private Integer SYMBOLS_PARAM; + + public static final String SERIALIZED_NAME_STR_COUNT = "StrCount"; + + @SerializedName(SERIALIZED_NAME_STR_COUNT) + @javax.annotation.Nonnull + private Integer strCount; + + public static final String SERIALIZED_NAME_STRINGS = "Strings"; + + @SerializedName(SERIALIZED_NAME_STRINGS) + @javax.annotation.Nonnull + private List strings; + + public static final String SERIALIZED_NAME_T_E_X_T_U_A_L_F_I_L_L_I_N_G = "TEXTUAL_FILLING"; + + @SerializedName(SERIALIZED_NAME_T_E_X_T_U_A_L_F_I_L_L_I_N_G) + @javax.annotation.Nonnull + private Integer TEXTUAL_FILLING; + + public MRZTestQuality() {} + + public MRZTestQuality CHECK_SUMS(@javax.annotation.Nonnull Integer CHECK_SUMS) { + this.CHECK_SUMS = CHECK_SUMS; + return this; + } + + /** + * Get CHECK_SUMS + * + * @return CHECK_SUMS + */ + @javax.annotation.Nonnull + public Integer getCHECKSUMS() { + return CHECK_SUMS; + } + + public void setCHECKSUMS(@javax.annotation.Nonnull Integer CHECK_SUMS) { + this.CHECK_SUMS = CHECK_SUMS; + } + + public MRZTestQuality CONTRAST_PRINT(@javax.annotation.Nonnull Integer CONTRAST_PRINT) { + this.CONTRAST_PRINT = CONTRAST_PRINT; + return this; + } + + /** + * Get CONTRAST_PRINT + * + * @return CONTRAST_PRINT + */ + @javax.annotation.Nonnull + public Integer getCONTRASTPRINT() { + return CONTRAST_PRINT; + } + + public void setCONTRASTPRINT(@javax.annotation.Nonnull Integer CONTRAST_PRINT) { + this.CONTRAST_PRINT = CONTRAST_PRINT; + } + + public MRZTestQuality DOC_FORMAT(@javax.annotation.Nonnull Integer DOC_FORMAT) { + this.DOC_FORMAT = DOC_FORMAT; + return this; + } + + /** + * Get DOC_FORMAT + * + * @return DOC_FORMAT + */ + @javax.annotation.Nonnull + public Integer getDOCFORMAT() { + return DOC_FORMAT; + } + + public void setDOCFORMAT(@javax.annotation.Nonnull Integer DOC_FORMAT) { + this.DOC_FORMAT = DOC_FORMAT; + } + + public MRZTestQuality MRZ_FORMAT(@javax.annotation.Nonnull Integer MRZ_FORMAT) { + this.MRZ_FORMAT = MRZ_FORMAT; + return this; + } + + /** + * Get MRZ_FORMAT + * + * @return MRZ_FORMAT + */ + @javax.annotation.Nonnull + public Integer getMRZFORMAT() { + return MRZ_FORMAT; + } + + public void setMRZFORMAT(@javax.annotation.Nonnull Integer MRZ_FORMAT) { + this.MRZ_FORMAT = MRZ_FORMAT; + } + + public MRZTestQuality PRINT_POSITION(@javax.annotation.Nonnull Integer PRINT_POSITION) { + this.PRINT_POSITION = PRINT_POSITION; + return this; + } + + /** + * Get PRINT_POSITION + * + * @return PRINT_POSITION + */ + @javax.annotation.Nonnull + public Integer getPRINTPOSITION() { + return PRINT_POSITION; + } + + public void setPRINTPOSITION(@javax.annotation.Nonnull Integer PRINT_POSITION) { + this.PRINT_POSITION = PRINT_POSITION; + } + + public MRZTestQuality STAIN_MRZ(@javax.annotation.Nonnull Integer STAIN_MRZ) { + this.STAIN_MRZ = STAIN_MRZ; + return this; + } + + /** + * Get STAIN_MRZ + * + * @return STAIN_MRZ + */ + @javax.annotation.Nonnull + public Integer getSTAINMRZ() { + return STAIN_MRZ; + } + + public void setSTAINMRZ(@javax.annotation.Nonnull Integer STAIN_MRZ) { + this.STAIN_MRZ = STAIN_MRZ; + } + + public MRZTestQuality SYMBOLS_PARAM(@javax.annotation.Nonnull Integer SYMBOLS_PARAM) { + this.SYMBOLS_PARAM = SYMBOLS_PARAM; + return this; + } + + /** + * Get SYMBOLS_PARAM + * + * @return SYMBOLS_PARAM + */ + @javax.annotation.Nonnull + public Integer getSYMBOLSPARAM() { + return SYMBOLS_PARAM; + } + + public void setSYMBOLSPARAM(@javax.annotation.Nonnull Integer SYMBOLS_PARAM) { + this.SYMBOLS_PARAM = SYMBOLS_PARAM; + } + + public MRZTestQuality strCount(@javax.annotation.Nonnull Integer strCount) { + this.strCount = strCount; + return this; + } + + /** + * Get strCount + * + * @return strCount + */ + @javax.annotation.Nonnull + public Integer getStrCount() { + return strCount; + } + + public void setStrCount(@javax.annotation.Nonnull Integer strCount) { + this.strCount = strCount; + } + + public MRZTestQuality strings(@javax.annotation.Nonnull List strings) { + this.strings = strings; + return this; + } + + public MRZTestQuality addStringsItem(StringItem stringsItem) { + if (this.strings == null) { + this.strings = new ArrayList<>(); + } + this.strings.add(stringsItem); + return this; + } + + /** + * Get strings + * + * @return strings + */ + @javax.annotation.Nonnull + public List getStrings() { + return strings; + } + + public void setStrings(@javax.annotation.Nonnull List strings) { + this.strings = strings; + } + + public MRZTestQuality TEXTUAL_FILLING(@javax.annotation.Nonnull Integer TEXTUAL_FILLING) { + this.TEXTUAL_FILLING = TEXTUAL_FILLING; + return this; + } + + /** + * Get TEXTUAL_FILLING + * + * @return TEXTUAL_FILLING + */ + @javax.annotation.Nonnull + public Integer getTEXTUALFILLING() { + return TEXTUAL_FILLING; + } + + public void setTEXTUALFILLING(@javax.annotation.Nonnull Integer TEXTUAL_FILLING) { + this.TEXTUAL_FILLING = TEXTUAL_FILLING; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MRZTestQuality mrZTestQuality = (MRZTestQuality) o; + return Objects.equals(this.CHECK_SUMS, mrZTestQuality.CHECK_SUMS) + && Objects.equals(this.CONTRAST_PRINT, mrZTestQuality.CONTRAST_PRINT) + && Objects.equals(this.DOC_FORMAT, mrZTestQuality.DOC_FORMAT) + && Objects.equals(this.MRZ_FORMAT, mrZTestQuality.MRZ_FORMAT) + && Objects.equals(this.PRINT_POSITION, mrZTestQuality.PRINT_POSITION) + && Objects.equals(this.STAIN_MRZ, mrZTestQuality.STAIN_MRZ) + && Objects.equals(this.SYMBOLS_PARAM, mrZTestQuality.SYMBOLS_PARAM) + && Objects.equals(this.strCount, mrZTestQuality.strCount) + && Objects.equals(this.strings, mrZTestQuality.strings) + && Objects.equals(this.TEXTUAL_FILLING, mrZTestQuality.TEXTUAL_FILLING); + } + + @Override + public int hashCode() { + return Objects.hash( + CHECK_SUMS, + CONTRAST_PRINT, + DOC_FORMAT, + MRZ_FORMAT, + PRINT_POSITION, + STAIN_MRZ, + SYMBOLS_PARAM, + strCount, + strings, + TEXTUAL_FILLING); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MRZTestQuality {\n"); + sb.append(" CHECK_SUMS: ").append(toIndentedString(CHECK_SUMS)).append("\n"); + sb.append(" CONTRAST_PRINT: ").append(toIndentedString(CONTRAST_PRINT)).append("\n"); + sb.append(" DOC_FORMAT: ").append(toIndentedString(DOC_FORMAT)).append("\n"); + sb.append(" MRZ_FORMAT: ").append(toIndentedString(MRZ_FORMAT)).append("\n"); + sb.append(" PRINT_POSITION: ").append(toIndentedString(PRINT_POSITION)).append("\n"); + sb.append(" STAIN_MRZ: ").append(toIndentedString(STAIN_MRZ)).append("\n"); + sb.append(" SYMBOLS_PARAM: ").append(toIndentedString(SYMBOLS_PARAM)).append("\n"); + sb.append(" strCount: ").append(toIndentedString(strCount)).append("\n"); + sb.append(" strings: ").append(toIndentedString(strings)).append("\n"); + sb.append(" TEXTUAL_FILLING: ").append(toIndentedString(TEXTUAL_FILLING)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("CHECK_SUMS"); + openapiFields.add("CONTRAST_PRINT"); + openapiFields.add("DOC_FORMAT"); + openapiFields.add("MRZ_FORMAT"); + openapiFields.add("PRINT_POSITION"); + openapiFields.add("STAIN_MRZ"); + openapiFields.add("SYMBOLS_PARAM"); + openapiFields.add("StrCount"); + openapiFields.add("Strings"); + openapiFields.add("TEXTUAL_FILLING"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("CHECK_SUMS"); + openapiRequiredFields.add("CONTRAST_PRINT"); + openapiRequiredFields.add("DOC_FORMAT"); + openapiRequiredFields.add("MRZ_FORMAT"); + openapiRequiredFields.add("PRINT_POSITION"); + openapiRequiredFields.add("STAIN_MRZ"); + openapiRequiredFields.add("SYMBOLS_PARAM"); + openapiRequiredFields.add("StrCount"); + openapiRequiredFields.add("Strings"); + openapiRequiredFields.add("TEXTUAL_FILLING"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MRZTestQuality + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MRZTestQuality.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in MRZTestQuality is not found in the empty JSON string", + MRZTestQuality.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MRZTestQuality.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `MRZTestQuality` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MRZTestQuality.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("Strings").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Strings` to be an array in the JSON string but got `%s`", + jsonObj.get("Strings").toString())); + } + + JsonArray jsonArraystrings = jsonObj.getAsJsonArray("Strings"); + // validate the required field `Strings` (array) + for (int i = 0; i < jsonArraystrings.size(); i++) { + StringItem.validateJsonElement(jsonArraystrings.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MRZTestQuality.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MRZTestQuality' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(MRZTestQuality.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, MRZTestQuality value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MRZTestQuality read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of MRZTestQuality given an JSON string + * + * @param jsonString JSON string + * @return An instance of MRZTestQuality + * @throws IOException if the JSON string is invalid with respect to MRZTestQuality + */ + public static MRZTestQuality fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MRZTestQuality.class); + } + + /** + * Convert an instance of MRZTestQuality to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityResult.java new file mode 100644 index 00000000..130917a6 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityResult.java @@ -0,0 +1,208 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** MRZTestQualityResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class MRZTestQualityResult extends ResultItem { + public static final String SERIALIZED_NAME_MR_Z_TEST_QUALITY = "MRZTestQuality"; + + @SerializedName(SERIALIZED_NAME_MR_Z_TEST_QUALITY) + @javax.annotation.Nonnull + private MRZTestQuality mrZTestQuality; + + public MRZTestQualityResult() {} + + public MRZTestQualityResult mrZTestQuality( + @javax.annotation.Nonnull MRZTestQuality mrZTestQuality) { + this.mrZTestQuality = mrZTestQuality; + return this; + } + + /** + * Get mrZTestQuality + * + * @return mrZTestQuality + */ + @javax.annotation.Nonnull + public MRZTestQuality getMrZTestQuality() { + return mrZTestQuality; + } + + public void setMrZTestQuality(@javax.annotation.Nonnull MRZTestQuality mrZTestQuality) { + this.mrZTestQuality = mrZTestQuality; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MRZTestQualityResult mrZTestQualityResult = (MRZTestQualityResult) o; + return Objects.equals(this.mrZTestQuality, mrZTestQualityResult.mrZTestQuality) + && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(mrZTestQuality, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MRZTestQualityResult {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" mrZTestQuality: ").append(toIndentedString(mrZTestQuality)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("MRZTestQuality"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("MRZTestQuality"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MRZTestQualityResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MRZTestQualityResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in MRZTestQualityResult is not found in the empty JSON string", + MRZTestQualityResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MRZTestQualityResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `MRZTestQualityResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MRZTestQualityResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MRZTestQualityResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MRZTestQualityResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(MRZTestQualityResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, MRZTestQualityResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MRZTestQualityResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of MRZTestQualityResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of MRZTestQualityResult + * @throws IOException if the JSON string is invalid with respect to MRZTestQualityResult + */ + public static MRZTestQualityResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MRZTestQualityResult.class); + } + + /** + * Convert an instance of MRZTestQualityResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MeasureSystem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MeasureSystem.java index b4788656..7db20591 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MeasureSystem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MeasureSystem.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,11 +12,63 @@ package com.regula.documentreader.webclient.model; -public class MeasureSystem { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Gets or Sets MeasureSystem */ +@JsonAdapter(MeasureSystem.Adapter.class) +public enum MeasureSystem { /** Metric system of measurement, where things are measured in meters and grams */ - public static final int METRIC = 0; + METRIC(0), /** Imperial System of Measurement, where things are measured in feet, inches and pounds */ - public static final int IMPERIAL = 1; + IMPERIAL(1); + + private Integer value; + + MeasureSystem(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MeasureSystem fromValue(Integer value) { + for (MeasureSystem b : MeasureSystem.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MeasureSystem enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MeasureSystem read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return MeasureSystem.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + MeasureSystem.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MrzDetectModeEnum.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzDetectModeEnum.java index fb45c38b..daa42045 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MrzDetectModeEnum.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzDetectModeEnum.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,11 +12,62 @@ package com.regula.documentreader.webclient.model; -public class MrzDetectModeEnum { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; - public static final int eMDM_Default = 0; +/** Make better MRZ detection on complex noisy backgrounds, like BW photocopy of some documents. */ +@JsonAdapter(MrzDetectModeEnum.Adapter.class) +public enum MrzDetectModeEnum { + eMDM_Default(0), - public static final int eMDM_ResizeBinarizeWindow = 1; + eMDM_ResizeBinarizeWindow(1), - public static final int eMDM_BlurBeforeBinarization = 2; + eMDM_BlurBeforeBinarization(2); + + private Integer value; + + MrzDetectModeEnum(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static MrzDetectModeEnum fromValue(Integer value) { + for (MrzDetectModeEnum b : MrzDetectModeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final MrzDetectModeEnum enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public MrzDetectModeEnum read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return MrzDetectModeEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + MrzDetectModeEnum.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MrzOcrExtendedResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzOcrExtendedResult.java deleted file mode 100755 index 0f6ee454..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MrzOcrExtendedResult.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.Objects; - -/** Text fields extracted from the document MRZ region */ -public class MrzOcrExtendedResult extends ResultItem { - public static final String SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO = "DocVisualExtendedInfo"; - - @SerializedName(SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO) - private DocVisualExtendedInfo docVisualExtendedInfo; - - public MrzOcrExtendedResult withDocVisualExtendedInfo( - DocVisualExtendedInfo docVisualExtendedInfo) { - this.docVisualExtendedInfo = docVisualExtendedInfo; - return this; - } - - /** - * Get docVisualExtendedInfo - * - * @return docVisualExtendedInfo - */ - @javax.annotation.Nullable - public DocVisualExtendedInfo getDocVisualExtendedInfo() { - return docVisualExtendedInfo; - } - - public void setDocVisualExtendedInfo(DocVisualExtendedInfo docVisualExtendedInfo) { - this.docVisualExtendedInfo = docVisualExtendedInfo; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - MrzOcrExtendedResult mrzOcrExtendedResult = (MrzOcrExtendedResult) o; - return Objects.equals(this.docVisualExtendedInfo, mrzOcrExtendedResult.docVisualExtendedInfo) - && super.equals(o); - } - - @Override - public int hashCode() { - return Objects.hash(docVisualExtendedInfo, super.hashCode()); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class MrzOcrExtendedResult {\n"); - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - sb.append(" docVisualExtendedInfo: ") - .append(toIndentedString(docVisualExtendedInfo)) - .append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPosition.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPosition.java new file mode 100644 index 00000000..868a622a --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPosition.java @@ -0,0 +1,629 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** MrzPosition */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class MrzPosition { + public static final String SERIALIZED_NAME_DOC_FORMAT = "docFormat"; + + @SerializedName(SERIALIZED_NAME_DOC_FORMAT) + @javax.annotation.Nonnull + private DocumentFormat docFormat; + + public static final String SERIALIZED_NAME_ANGLE = "Angle"; + + @SerializedName(SERIALIZED_NAME_ANGLE) + @javax.annotation.Nonnull + private BigDecimal angle; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nonnull + private Integer width; + + public static final String SERIALIZED_NAME_HEIGHT = "Height"; + + @SerializedName(SERIALIZED_NAME_HEIGHT) + @javax.annotation.Nonnull + private Integer height; + + public static final String SERIALIZED_NAME_CENTER = "Center"; + + @SerializedName(SERIALIZED_NAME_CENTER) + @javax.annotation.Nonnull + private Point center; + + public static final String SERIALIZED_NAME_LEFT_BOTTOM = "LeftBottom"; + + @SerializedName(SERIALIZED_NAME_LEFT_BOTTOM) + @javax.annotation.Nonnull + private Point leftBottom; + + public static final String SERIALIZED_NAME_LEFT_TOP = "LeftTop"; + + @SerializedName(SERIALIZED_NAME_LEFT_TOP) + @javax.annotation.Nonnull + private Point leftTop; + + public static final String SERIALIZED_NAME_RIGHT_BOTTOM = "RightBottom"; + + @SerializedName(SERIALIZED_NAME_RIGHT_BOTTOM) + @javax.annotation.Nonnull + private Point rightBottom; + + public static final String SERIALIZED_NAME_RIGHT_TOP = "RightTop"; + + @SerializedName(SERIALIZED_NAME_RIGHT_TOP) + @javax.annotation.Nonnull + private Point rightTop; + + public static final String SERIALIZED_NAME_DPI = "Dpi"; + + @SerializedName(SERIALIZED_NAME_DPI) + @javax.annotation.Nonnull + private Integer dpi; + + public static final String SERIALIZED_NAME_INVERSE = "Inverse"; + + @SerializedName(SERIALIZED_NAME_INVERSE) + @javax.annotation.Nullable + private Integer inverse; + + public static final String SERIALIZED_NAME_OBJ_AREA = "ObjArea"; + + @SerializedName(SERIALIZED_NAME_OBJ_AREA) + @javax.annotation.Nullable + private Integer objArea; + + public static final String SERIALIZED_NAME_OBJ_INT_ANGLE_DEV = "ObjIntAngleDev"; + + @SerializedName(SERIALIZED_NAME_OBJ_INT_ANGLE_DEV) + @javax.annotation.Nullable + private Integer objIntAngleDev; + + public static final String SERIALIZED_NAME_PERSPECTIVE_TR = "PerspectiveTr"; + + @SerializedName(SERIALIZED_NAME_PERSPECTIVE_TR) + @javax.annotation.Nullable + private Integer perspectiveTr; + + public static final String SERIALIZED_NAME_RESULT_STATUS = "ResultStatus"; + + @SerializedName(SERIALIZED_NAME_RESULT_STATUS) + @javax.annotation.Nullable + private Integer resultStatus; + + public MrzPosition() {} + + public MrzPosition docFormat(@javax.annotation.Nonnull DocumentFormat docFormat) { + this.docFormat = docFormat; + return this; + } + + /** + * Get docFormat + * + * @return docFormat + */ + @javax.annotation.Nonnull + public DocumentFormat getDocFormat() { + return docFormat; + } + + public void setDocFormat(@javax.annotation.Nonnull DocumentFormat docFormat) { + this.docFormat = docFormat; + } + + public MrzPosition angle(@javax.annotation.Nonnull BigDecimal angle) { + this.angle = angle; + return this; + } + + /** + * Document rotation angle + * + * @return angle + */ + @javax.annotation.Nonnull + public BigDecimal getAngle() { + return angle; + } + + public void setAngle(@javax.annotation.Nonnull BigDecimal angle) { + this.angle = angle; + } + + public MrzPosition width(@javax.annotation.Nonnull Integer width) { + this.width = width; + return this; + } + + /** + * Document width + * + * @return width + */ + @javax.annotation.Nonnull + public Integer getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nonnull Integer width) { + this.width = width; + } + + public MrzPosition height(@javax.annotation.Nonnull Integer height) { + this.height = height; + return this; + } + + /** + * Document height + * + * @return height + */ + @javax.annotation.Nonnull + public Integer getHeight() { + return height; + } + + public void setHeight(@javax.annotation.Nonnull Integer height) { + this.height = height; + } + + public MrzPosition center(@javax.annotation.Nonnull Point center) { + this.center = center; + return this; + } + + /** + * Get center + * + * @return center + */ + @javax.annotation.Nonnull + public Point getCenter() { + return center; + } + + public void setCenter(@javax.annotation.Nonnull Point center) { + this.center = center; + } + + public MrzPosition leftBottom(@javax.annotation.Nonnull Point leftBottom) { + this.leftBottom = leftBottom; + return this; + } + + /** + * Get leftBottom + * + * @return leftBottom + */ + @javax.annotation.Nonnull + public Point getLeftBottom() { + return leftBottom; + } + + public void setLeftBottom(@javax.annotation.Nonnull Point leftBottom) { + this.leftBottom = leftBottom; + } + + public MrzPosition leftTop(@javax.annotation.Nonnull Point leftTop) { + this.leftTop = leftTop; + return this; + } + + /** + * Get leftTop + * + * @return leftTop + */ + @javax.annotation.Nonnull + public Point getLeftTop() { + return leftTop; + } + + public void setLeftTop(@javax.annotation.Nonnull Point leftTop) { + this.leftTop = leftTop; + } + + public MrzPosition rightBottom(@javax.annotation.Nonnull Point rightBottom) { + this.rightBottom = rightBottom; + return this; + } + + /** + * Get rightBottom + * + * @return rightBottom + */ + @javax.annotation.Nonnull + public Point getRightBottom() { + return rightBottom; + } + + public void setRightBottom(@javax.annotation.Nonnull Point rightBottom) { + this.rightBottom = rightBottom; + } + + public MrzPosition rightTop(@javax.annotation.Nonnull Point rightTop) { + this.rightTop = rightTop; + return this; + } + + /** + * Get rightTop + * + * @return rightTop + */ + @javax.annotation.Nonnull + public Point getRightTop() { + return rightTop; + } + + public void setRightTop(@javax.annotation.Nonnull Point rightTop) { + this.rightTop = rightTop; + } + + public MrzPosition dpi(@javax.annotation.Nonnull Integer dpi) { + this.dpi = dpi; + return this; + } + + /** + * Get dpi + * + * @return dpi + */ + @javax.annotation.Nonnull + public Integer getDpi() { + return dpi; + } + + public void setDpi(@javax.annotation.Nonnull Integer dpi) { + this.dpi = dpi; + } + + public MrzPosition inverse(@javax.annotation.Nullable Integer inverse) { + this.inverse = inverse; + return this; + } + + /** + * Get inverse + * + * @return inverse + */ + @javax.annotation.Nullable + public Integer getInverse() { + return inverse; + } + + public void setInverse(@javax.annotation.Nullable Integer inverse) { + this.inverse = inverse; + } + + public MrzPosition objArea(@javax.annotation.Nullable Integer objArea) { + this.objArea = objArea; + return this; + } + + /** + * Get objArea + * + * @return objArea + */ + @javax.annotation.Nullable + public Integer getObjArea() { + return objArea; + } + + public void setObjArea(@javax.annotation.Nullable Integer objArea) { + this.objArea = objArea; + } + + public MrzPosition objIntAngleDev(@javax.annotation.Nullable Integer objIntAngleDev) { + this.objIntAngleDev = objIntAngleDev; + return this; + } + + /** + * Get objIntAngleDev + * + * @return objIntAngleDev + */ + @javax.annotation.Nullable + public Integer getObjIntAngleDev() { + return objIntAngleDev; + } + + public void setObjIntAngleDev(@javax.annotation.Nullable Integer objIntAngleDev) { + this.objIntAngleDev = objIntAngleDev; + } + + public MrzPosition perspectiveTr(@javax.annotation.Nullable Integer perspectiveTr) { + this.perspectiveTr = perspectiveTr; + return this; + } + + /** + * Get perspectiveTr + * + * @return perspectiveTr + */ + @javax.annotation.Nullable + public Integer getPerspectiveTr() { + return perspectiveTr; + } + + public void setPerspectiveTr(@javax.annotation.Nullable Integer perspectiveTr) { + this.perspectiveTr = perspectiveTr; + } + + public MrzPosition resultStatus(@javax.annotation.Nullable Integer resultStatus) { + this.resultStatus = resultStatus; + return this; + } + + /** + * Get resultStatus + * + * @return resultStatus + */ + @javax.annotation.Nullable + public Integer getResultStatus() { + return resultStatus; + } + + public void setResultStatus(@javax.annotation.Nullable Integer resultStatus) { + this.resultStatus = resultStatus; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MrzPosition mrzPosition = (MrzPosition) o; + return Objects.equals(this.docFormat, mrzPosition.docFormat) + && Objects.equals(this.angle, mrzPosition.angle) + && Objects.equals(this.width, mrzPosition.width) + && Objects.equals(this.height, mrzPosition.height) + && Objects.equals(this.center, mrzPosition.center) + && Objects.equals(this.leftBottom, mrzPosition.leftBottom) + && Objects.equals(this.leftTop, mrzPosition.leftTop) + && Objects.equals(this.rightBottom, mrzPosition.rightBottom) + && Objects.equals(this.rightTop, mrzPosition.rightTop) + && Objects.equals(this.dpi, mrzPosition.dpi) + && Objects.equals(this.inverse, mrzPosition.inverse) + && Objects.equals(this.objArea, mrzPosition.objArea) + && Objects.equals(this.objIntAngleDev, mrzPosition.objIntAngleDev) + && Objects.equals(this.perspectiveTr, mrzPosition.perspectiveTr) + && Objects.equals(this.resultStatus, mrzPosition.resultStatus); + } + + @Override + public int hashCode() { + return Objects.hash( + docFormat, + angle, + width, + height, + center, + leftBottom, + leftTop, + rightBottom, + rightTop, + dpi, + inverse, + objArea, + objIntAngleDev, + perspectiveTr, + resultStatus); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MrzPosition {\n"); + sb.append(" docFormat: ").append(toIndentedString(docFormat)).append("\n"); + sb.append(" angle: ").append(toIndentedString(angle)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" height: ").append(toIndentedString(height)).append("\n"); + sb.append(" center: ").append(toIndentedString(center)).append("\n"); + sb.append(" leftBottom: ").append(toIndentedString(leftBottom)).append("\n"); + sb.append(" leftTop: ").append(toIndentedString(leftTop)).append("\n"); + sb.append(" rightBottom: ").append(toIndentedString(rightBottom)).append("\n"); + sb.append(" rightTop: ").append(toIndentedString(rightTop)).append("\n"); + sb.append(" dpi: ").append(toIndentedString(dpi)).append("\n"); + sb.append(" inverse: ").append(toIndentedString(inverse)).append("\n"); + sb.append(" objArea: ").append(toIndentedString(objArea)).append("\n"); + sb.append(" objIntAngleDev: ").append(toIndentedString(objIntAngleDev)).append("\n"); + sb.append(" perspectiveTr: ").append(toIndentedString(perspectiveTr)).append("\n"); + sb.append(" resultStatus: ").append(toIndentedString(resultStatus)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("docFormat"); + openapiFields.add("Angle"); + openapiFields.add("Width"); + openapiFields.add("Height"); + openapiFields.add("Center"); + openapiFields.add("LeftBottom"); + openapiFields.add("LeftTop"); + openapiFields.add("RightBottom"); + openapiFields.add("RightTop"); + openapiFields.add("Dpi"); + openapiFields.add("Inverse"); + openapiFields.add("ObjArea"); + openapiFields.add("ObjIntAngleDev"); + openapiFields.add("PerspectiveTr"); + openapiFields.add("ResultStatus"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("docFormat"); + openapiRequiredFields.add("Angle"); + openapiRequiredFields.add("Width"); + openapiRequiredFields.add("Height"); + openapiRequiredFields.add("Center"); + openapiRequiredFields.add("LeftBottom"); + openapiRequiredFields.add("LeftTop"); + openapiRequiredFields.add("RightBottom"); + openapiRequiredFields.add("RightTop"); + openapiRequiredFields.add("Dpi"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MrzPosition + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MrzPosition.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in MrzPosition is not found in the empty JSON string", + MrzPosition.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MrzPosition.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `MrzPosition` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MrzPosition.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `docFormat` + DocumentFormat.validateJsonElement(jsonObj.get("docFormat")); + // validate the required field `Center` + Point.validateJsonElement(jsonObj.get("Center")); + // validate the required field `LeftBottom` + Point.validateJsonElement(jsonObj.get("LeftBottom")); + // validate the required field `LeftTop` + Point.validateJsonElement(jsonObj.get("LeftTop")); + // validate the required field `RightBottom` + Point.validateJsonElement(jsonObj.get("RightBottom")); + // validate the required field `RightTop` + Point.validateJsonElement(jsonObj.get("RightTop")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MrzPosition.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MrzPosition' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(MrzPosition.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, MrzPosition value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MrzPosition read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of MrzPosition given an JSON string + * + * @param jsonString JSON string + * @return An instance of MrzPosition + * @throws IOException if the JSON string is invalid with respect to MrzPosition + */ + public static MrzPosition fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MrzPosition.class); + } + + /** + * Convert an instance of MrzPosition to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextResult.java index e57abee3..e237e7ac 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,62 +12,96 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** OCRSecurityTextResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class OCRSecurityTextResult extends AuthenticityCheckResultItem { public static final String SERIALIZED_NAME_CRITICAL_FLAG = "CriticalFlag"; @SerializedName(SERIALIZED_NAME_CRITICAL_FLAG) - private Integer criticalFlag; + @javax.annotation.Nonnull + private Critical criticalFlag; public static final String SERIALIZED_NAME_LIGHT_TYPE = "LightType"; @SerializedName(SERIALIZED_NAME_LIGHT_TYPE) - private Integer lightType; + @javax.annotation.Nonnull + private Light lightType; public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; @SerializedName(SERIALIZED_NAME_FIELD_RECT) + @javax.annotation.Nonnull private RectangleCoordinates fieldRect; public static final String SERIALIZED_NAME_ETALON_RESULT_TYPE = "EtalonResultType"; @SerializedName(SERIALIZED_NAME_ETALON_RESULT_TYPE) + @javax.annotation.Nonnull private Integer etalonResultType; public static final String SERIALIZED_NAME_ETALON_FIELD_TYPE = "EtalonFieldType"; @SerializedName(SERIALIZED_NAME_ETALON_FIELD_TYPE) + @javax.annotation.Nonnull private Integer etalonFieldType; public static final String SERIALIZED_NAME_ETALON_LIGHT_TYPE = "EtalonLightType"; @SerializedName(SERIALIZED_NAME_ETALON_LIGHT_TYPE) + @javax.annotation.Nonnull private Integer etalonLightType; + public static final String SERIALIZED_NAME_ETALON_FIELD_RECT = "EtalonFieldRect"; + + @SerializedName(SERIALIZED_NAME_ETALON_FIELD_RECT) + @javax.annotation.Nonnull + private RectangleCoordinates etalonFieldRect; + public static final String SERIALIZED_NAME_SECURITY_TEXT_RESULT_O_C_R = "SecurityTextResultOCR"; @SerializedName(SERIALIZED_NAME_SECURITY_TEXT_RESULT_O_C_R) + @javax.annotation.Nonnull private String securityTextResultOCR; public static final String SERIALIZED_NAME_ETALON_RESULT_O_C_R = "EtalonResultOCR"; @SerializedName(SERIALIZED_NAME_ETALON_RESULT_O_C_R) + @javax.annotation.Nonnull private String etalonResultOCR; public static final String SERIALIZED_NAME_RESERVED1 = "Reserved1"; @SerializedName(SERIALIZED_NAME_RESERVED1) + @javax.annotation.Nullable private Integer reserved1; public static final String SERIALIZED_NAME_RESERVED2 = "Reserved2"; @SerializedName(SERIALIZED_NAME_RESERVED2) + @javax.annotation.Nullable private Integer reserved2; - public OCRSecurityTextResult withCriticalFlag(Integer criticalFlag) { + public OCRSecurityTextResult() {} + + public OCRSecurityTextResult criticalFlag(@javax.annotation.Nonnull Critical criticalFlag) { this.criticalFlag = criticalFlag; return this; } @@ -77,16 +111,16 @@ public OCRSecurityTextResult withCriticalFlag(Integer criticalFlag) { * * @return criticalFlag */ - @javax.annotation.Nullable - public Integer getCriticalFlag() { + @javax.annotation.Nonnull + public Critical getCriticalFlag() { return criticalFlag; } - public void setCriticalFlag(Integer criticalFlag) { + public void setCriticalFlag(@javax.annotation.Nonnull Critical criticalFlag) { this.criticalFlag = criticalFlag; } - public OCRSecurityTextResult withLightType(Integer lightType) { + public OCRSecurityTextResult lightType(@javax.annotation.Nonnull Light lightType) { this.lightType = lightType; return this; } @@ -96,16 +130,16 @@ public OCRSecurityTextResult withLightType(Integer lightType) { * * @return lightType */ - @javax.annotation.Nullable - public Integer getLightType() { + @javax.annotation.Nonnull + public Light getLightType() { return lightType; } - public void setLightType(Integer lightType) { + public void setLightType(@javax.annotation.Nonnull Light lightType) { this.lightType = lightType; } - public OCRSecurityTextResult withFieldRect(RectangleCoordinates fieldRect) { + public OCRSecurityTextResult fieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { this.fieldRect = fieldRect; return this; } @@ -115,16 +149,17 @@ public OCRSecurityTextResult withFieldRect(RectangleCoordinates fieldRect) { * * @return fieldRect */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public RectangleCoordinates getFieldRect() { return fieldRect; } - public void setFieldRect(RectangleCoordinates fieldRect) { + public void setFieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { this.fieldRect = fieldRect; } - public OCRSecurityTextResult withEtalonResultType(Integer etalonResultType) { + public OCRSecurityTextResult etalonResultType( + @javax.annotation.Nonnull Integer etalonResultType) { this.etalonResultType = etalonResultType; return this; } @@ -134,16 +169,16 @@ public OCRSecurityTextResult withEtalonResultType(Integer etalonResultType) { * * @return etalonResultType */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getEtalonResultType() { return etalonResultType; } - public void setEtalonResultType(Integer etalonResultType) { + public void setEtalonResultType(@javax.annotation.Nonnull Integer etalonResultType) { this.etalonResultType = etalonResultType; } - public OCRSecurityTextResult withEtalonFieldType(Integer etalonFieldType) { + public OCRSecurityTextResult etalonFieldType(@javax.annotation.Nonnull Integer etalonFieldType) { this.etalonFieldType = etalonFieldType; return this; } @@ -153,16 +188,16 @@ public OCRSecurityTextResult withEtalonFieldType(Integer etalonFieldType) { * * @return etalonFieldType */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getEtalonFieldType() { return etalonFieldType; } - public void setEtalonFieldType(Integer etalonFieldType) { + public void setEtalonFieldType(@javax.annotation.Nonnull Integer etalonFieldType) { this.etalonFieldType = etalonFieldType; } - public OCRSecurityTextResult withEtalonLightType(Integer etalonLightType) { + public OCRSecurityTextResult etalonLightType(@javax.annotation.Nonnull Integer etalonLightType) { this.etalonLightType = etalonLightType; return this; } @@ -172,16 +207,37 @@ public OCRSecurityTextResult withEtalonLightType(Integer etalonLightType) { * * @return etalonLightType */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getEtalonLightType() { return etalonLightType; } - public void setEtalonLightType(Integer etalonLightType) { + public void setEtalonLightType(@javax.annotation.Nonnull Integer etalonLightType) { this.etalonLightType = etalonLightType; } - public OCRSecurityTextResult withSecurityTextResultOCR(String securityTextResultOCR) { + public OCRSecurityTextResult etalonFieldRect( + @javax.annotation.Nonnull RectangleCoordinates etalonFieldRect) { + this.etalonFieldRect = etalonFieldRect; + return this; + } + + /** + * Get etalonFieldRect + * + * @return etalonFieldRect + */ + @javax.annotation.Nonnull + public RectangleCoordinates getEtalonFieldRect() { + return etalonFieldRect; + } + + public void setEtalonFieldRect(@javax.annotation.Nonnull RectangleCoordinates etalonFieldRect) { + this.etalonFieldRect = etalonFieldRect; + } + + public OCRSecurityTextResult securityTextResultOCR( + @javax.annotation.Nonnull String securityTextResultOCR) { this.securityTextResultOCR = securityTextResultOCR; return this; } @@ -191,16 +247,16 @@ public OCRSecurityTextResult withSecurityTextResultOCR(String securityTextResult * * @return securityTextResultOCR */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public String getSecurityTextResultOCR() { return securityTextResultOCR; } - public void setSecurityTextResultOCR(String securityTextResultOCR) { + public void setSecurityTextResultOCR(@javax.annotation.Nonnull String securityTextResultOCR) { this.securityTextResultOCR = securityTextResultOCR; } - public OCRSecurityTextResult withEtalonResultOCR(String etalonResultOCR) { + public OCRSecurityTextResult etalonResultOCR(@javax.annotation.Nonnull String etalonResultOCR) { this.etalonResultOCR = etalonResultOCR; return this; } @@ -210,16 +266,16 @@ public OCRSecurityTextResult withEtalonResultOCR(String etalonResultOCR) { * * @return etalonResultOCR */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public String getEtalonResultOCR() { return etalonResultOCR; } - public void setEtalonResultOCR(String etalonResultOCR) { + public void setEtalonResultOCR(@javax.annotation.Nonnull String etalonResultOCR) { this.etalonResultOCR = etalonResultOCR; } - public OCRSecurityTextResult withReserved1(Integer reserved1) { + public OCRSecurityTextResult reserved1(@javax.annotation.Nullable Integer reserved1) { this.reserved1 = reserved1; return this; } @@ -234,11 +290,11 @@ public Integer getReserved1() { return reserved1; } - public void setReserved1(Integer reserved1) { + public void setReserved1(@javax.annotation.Nullable Integer reserved1) { this.reserved1 = reserved1; } - public OCRSecurityTextResult withReserved2(Integer reserved2) { + public OCRSecurityTextResult reserved2(@javax.annotation.Nullable Integer reserved2) { this.reserved2 = reserved2; return this; } @@ -253,12 +309,12 @@ public Integer getReserved2() { return reserved2; } - public void setReserved2(Integer reserved2) { + public void setReserved2(@javax.annotation.Nullable Integer reserved2) { this.reserved2 = reserved2; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -272,6 +328,7 @@ public boolean equals(java.lang.Object o) { && Objects.equals(this.etalonResultType, ocRSecurityTextResult.etalonResultType) && Objects.equals(this.etalonFieldType, ocRSecurityTextResult.etalonFieldType) && Objects.equals(this.etalonLightType, ocRSecurityTextResult.etalonLightType) + && Objects.equals(this.etalonFieldRect, ocRSecurityTextResult.etalonFieldRect) && Objects.equals(this.securityTextResultOCR, ocRSecurityTextResult.securityTextResultOCR) && Objects.equals(this.etalonResultOCR, ocRSecurityTextResult.etalonResultOCR) && Objects.equals(this.reserved1, ocRSecurityTextResult.reserved1) @@ -288,6 +345,7 @@ public int hashCode() { etalonResultType, etalonFieldType, etalonLightType, + etalonFieldRect, securityTextResultOCR, etalonResultOCR, reserved1, @@ -306,6 +364,7 @@ public String toString() { sb.append(" etalonResultType: ").append(toIndentedString(etalonResultType)).append("\n"); sb.append(" etalonFieldType: ").append(toIndentedString(etalonFieldType)).append("\n"); sb.append(" etalonLightType: ").append(toIndentedString(etalonLightType)).append("\n"); + sb.append(" etalonFieldRect: ").append(toIndentedString(etalonFieldRect)).append("\n"); sb.append(" securityTextResultOCR: ") .append(toIndentedString(securityTextResultOCR)) .append("\n"); @@ -319,10 +378,134 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("ElementResult"); + openapiFields.add("ElementDiagnose"); + openapiFields.add("PercentValue"); + openapiFields.add("CriticalFlag"); + openapiFields.add("LightType"); + openapiFields.add("FieldRect"); + openapiFields.add("EtalonResultType"); + openapiFields.add("EtalonFieldType"); + openapiFields.add("EtalonLightType"); + openapiFields.add("EtalonFieldRect"); + openapiFields.add("SecurityTextResultOCR"); + openapiFields.add("EtalonResultOCR"); + openapiFields.add("Reserved1"); + openapiFields.add("Reserved2"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("CriticalFlag"); + openapiRequiredFields.add("LightType"); + openapiRequiredFields.add("FieldRect"); + openapiRequiredFields.add("EtalonResultType"); + openapiRequiredFields.add("EtalonFieldType"); + openapiRequiredFields.add("EtalonLightType"); + openapiRequiredFields.add("EtalonFieldRect"); + openapiRequiredFields.add("SecurityTextResultOCR"); + openapiRequiredFields.add("EtalonResultOCR"); + openapiRequiredFields.add("Type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OCRSecurityTextResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OCRSecurityTextResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in OCRSecurityTextResult is not found in the empty JSON string", + OCRSecurityTextResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OCRSecurityTextResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `OCRSecurityTextResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : OCRSecurityTextResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OCRSecurityTextResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OCRSecurityTextResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(OCRSecurityTextResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, OCRSecurityTextResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OCRSecurityTextResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of OCRSecurityTextResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of OCRSecurityTextResult + * @throws IOException if the JSON string is invalid with respect to OCRSecurityTextResult + */ + public static OCRSecurityTextResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OCRSecurityTextResult.class); + } + + /** + * Convert an instance of OCRSecurityTextResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java old mode 100755 new mode 100644 index 006cd60d..fd6bb35c --- a/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,59 +12,104 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Contains information about one document type candidate */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class OneCandidate { public static final String SERIALIZED_NAME_DOCUMENT_NAME = "DocumentName"; @SerializedName(SERIALIZED_NAME_DOCUMENT_NAME) + @javax.annotation.Nonnull private String documentName; public static final String SERIALIZED_NAME_I_D = "ID"; @SerializedName(SERIALIZED_NAME_I_D) + @javax.annotation.Nonnull private Integer ID; public static final String SERIALIZED_NAME_P = "P"; @SerializedName(SERIALIZED_NAME_P) + @javax.annotation.Nonnull private BigDecimal P; + public static final String SERIALIZED_NAME_ROTATED180 = "Rotated180"; + + @SerializedName(SERIALIZED_NAME_ROTATED180) + @javax.annotation.Nonnull + private Integer rotated180; + public static final String SERIALIZED_NAME_RF_I_D_PRESENCE = "RFID_Presence"; @SerializedName(SERIALIZED_NAME_RF_I_D_PRESENCE) - private Integer rfIDPresence; + @javax.annotation.Nonnull + private RfidLocation rfIDPresence; public static final String SERIALIZED_NAME_FD_S_I_D_LIST = "FDSIDList"; @SerializedName(SERIALIZED_NAME_FD_S_I_D_LIST) + @javax.annotation.Nonnull private FDSIDList fdSIDList; public static final String SERIALIZED_NAME_NECESSARY_LIGHTS = "NecessaryLights"; @SerializedName(SERIALIZED_NAME_NECESSARY_LIGHTS) + @javax.annotation.Nonnull private Integer necessaryLights; public static final String SERIALIZED_NAME_CHECK_AUTHENTICITY = "CheckAuthenticity"; @SerializedName(SERIALIZED_NAME_CHECK_AUTHENTICITY) + @javax.annotation.Nonnull private Integer checkAuthenticity; public static final String SERIALIZED_NAME_UV_EXP = "UVExp"; @SerializedName(SERIALIZED_NAME_UV_EXP) + @javax.annotation.Nonnull private Integer uvExp; public static final String SERIALIZED_NAME_AUTHENTICITY_NECESSARY_LIGHTS = "AuthenticityNecessaryLights"; @SerializedName(SERIALIZED_NAME_AUTHENTICITY_NECESSARY_LIGHTS) + @javax.annotation.Nonnull private Integer authenticityNecessaryLights; - public OneCandidate withDocumentName(String documentName) { + public static final String SERIALIZED_NAME_OV_I_EXP = "OVIExp"; + + @SerializedName(SERIALIZED_NAME_OV_I_EXP) + @javax.annotation.Nonnull + private BigDecimal ovIExp; + + public static final String SERIALIZED_NAME_ROTATION_ANGLE = "RotationAngle"; + + @SerializedName(SERIALIZED_NAME_ROTATION_ANGLE) + @javax.annotation.Nullable + private Integer rotationAngle; + + public OneCandidate() {} + + public OneCandidate documentName(@javax.annotation.Nonnull String documentName) { this.documentName = documentName; return this; } @@ -74,16 +119,16 @@ public OneCandidate withDocumentName(String documentName) { * * @return documentName */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public String getDocumentName() { return documentName; } - public void setDocumentName(String documentName) { + public void setDocumentName(@javax.annotation.Nonnull String documentName) { this.documentName = documentName; } - public OneCandidate withID(Integer ID) { + public OneCandidate ID(@javax.annotation.Nonnull Integer ID) { this.ID = ID; return this; } @@ -93,16 +138,16 @@ public OneCandidate withID(Integer ID) { * * @return ID */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getID() { return ID; } - public void setID(Integer ID) { + public void setID(@javax.annotation.Nonnull Integer ID) { this.ID = ID; } - public OneCandidate withP(BigDecimal P) { + public OneCandidate P(@javax.annotation.Nonnull BigDecimal P) { this.P = P; return this; } @@ -113,16 +158,35 @@ public OneCandidate withP(BigDecimal P) { * * @return P */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public BigDecimal getP() { return P; } - public void setP(BigDecimal P) { + public void setP(@javax.annotation.Nonnull BigDecimal P) { this.P = P; } - public OneCandidate withRfIDPresence(Integer rfIDPresence) { + public OneCandidate rotated180(@javax.annotation.Nonnull Integer rotated180) { + this.rotated180 = rotated180; + return this; + } + + /** + * true if the document of the given type is rotated by 180 degrees + * + * @return rotated180 + */ + @javax.annotation.Nonnull + public Integer getRotated180() { + return rotated180; + } + + public void setRotated180(@javax.annotation.Nonnull Integer rotated180) { + this.rotated180 = rotated180; + } + + public OneCandidate rfIDPresence(@javax.annotation.Nonnull RfidLocation rfIDPresence) { this.rfIDPresence = rfIDPresence; return this; } @@ -132,16 +196,16 @@ public OneCandidate withRfIDPresence(Integer rfIDPresence) { * * @return rfIDPresence */ - @javax.annotation.Nullable - public Integer getRfIDPresence() { + @javax.annotation.Nonnull + public RfidLocation getRfIDPresence() { return rfIDPresence; } - public void setRfIDPresence(Integer rfIDPresence) { + public void setRfIDPresence(@javax.annotation.Nonnull RfidLocation rfIDPresence) { this.rfIDPresence = rfIDPresence; } - public OneCandidate withFdSIDList(FDSIDList fdSIDList) { + public OneCandidate fdSIDList(@javax.annotation.Nonnull FDSIDList fdSIDList) { this.fdSIDList = fdSIDList; return this; } @@ -151,16 +215,16 @@ public OneCandidate withFdSIDList(FDSIDList fdSIDList) { * * @return fdSIDList */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public FDSIDList getFdSIDList() { return fdSIDList; } - public void setFdSIDList(FDSIDList fdSIDList) { + public void setFdSIDList(@javax.annotation.Nonnull FDSIDList fdSIDList) { this.fdSIDList = fdSIDList; } - public OneCandidate withNecessaryLights(Integer necessaryLights) { + public OneCandidate necessaryLights(@javax.annotation.Nonnull Integer necessaryLights) { this.necessaryLights = necessaryLights; return this; } @@ -171,16 +235,16 @@ public OneCandidate withNecessaryLights(Integer necessaryLights) { * * @return necessaryLights */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getNecessaryLights() { return necessaryLights; } - public void setNecessaryLights(Integer necessaryLights) { + public void setNecessaryLights(@javax.annotation.Nonnull Integer necessaryLights) { this.necessaryLights = necessaryLights; } - public OneCandidate withCheckAuthenticity(Integer checkAuthenticity) { + public OneCandidate checkAuthenticity(@javax.annotation.Nonnull Integer checkAuthenticity) { this.checkAuthenticity = checkAuthenticity; return this; } @@ -191,16 +255,16 @@ public OneCandidate withCheckAuthenticity(Integer checkAuthenticity) { * * @return checkAuthenticity */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getCheckAuthenticity() { return checkAuthenticity; } - public void setCheckAuthenticity(Integer checkAuthenticity) { + public void setCheckAuthenticity(@javax.annotation.Nonnull Integer checkAuthenticity) { this.checkAuthenticity = checkAuthenticity; } - public OneCandidate withUvExp(Integer uvExp) { + public OneCandidate uvExp(@javax.annotation.Nonnull Integer uvExp) { this.uvExp = uvExp; return this; } @@ -211,16 +275,17 @@ public OneCandidate withUvExp(Integer uvExp) { * * @return uvExp */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getUvExp() { return uvExp; } - public void setUvExp(Integer uvExp) { + public void setUvExp(@javax.annotation.Nonnull Integer uvExp) { this.uvExp = uvExp; } - public OneCandidate withAuthenticityNecessaryLights(Integer authenticityNecessaryLights) { + public OneCandidate authenticityNecessaryLights( + @javax.annotation.Nonnull Integer authenticityNecessaryLights) { this.authenticityNecessaryLights = authenticityNecessaryLights; return this; } @@ -231,17 +296,57 @@ public OneCandidate withAuthenticityNecessaryLights(Integer authenticityNecessar * * @return authenticityNecessaryLights */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getAuthenticityNecessaryLights() { return authenticityNecessaryLights; } - public void setAuthenticityNecessaryLights(Integer authenticityNecessaryLights) { + public void setAuthenticityNecessaryLights( + @javax.annotation.Nonnull Integer authenticityNecessaryLights) { this.authenticityNecessaryLights = authenticityNecessaryLights; } + public OneCandidate ovIExp(@javax.annotation.Nonnull BigDecimal ovIExp) { + this.ovIExp = ovIExp; + return this; + } + + /** + * Camera exposure value necessary when obtaining document images of the given type for AXIAL + * lighting scheme + * + * @return ovIExp + */ + @javax.annotation.Nonnull + public BigDecimal getOvIExp() { + return ovIExp; + } + + public void setOvIExp(@javax.annotation.Nonnull BigDecimal ovIExp) { + this.ovIExp = ovIExp; + } + + public OneCandidate rotationAngle(@javax.annotation.Nullable Integer rotationAngle) { + this.rotationAngle = rotationAngle; + return this; + } + + /** + * Get rotationAngle + * + * @return rotationAngle + */ + @javax.annotation.Nullable + public Integer getRotationAngle() { + return rotationAngle; + } + + public void setRotationAngle(@javax.annotation.Nullable Integer rotationAngle) { + this.rotationAngle = rotationAngle; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -252,13 +357,16 @@ public boolean equals(java.lang.Object o) { return Objects.equals(this.documentName, oneCandidate.documentName) && Objects.equals(this.ID, oneCandidate.ID) && Objects.equals(this.P, oneCandidate.P) + && Objects.equals(this.rotated180, oneCandidate.rotated180) && Objects.equals(this.rfIDPresence, oneCandidate.rfIDPresence) && Objects.equals(this.fdSIDList, oneCandidate.fdSIDList) && Objects.equals(this.necessaryLights, oneCandidate.necessaryLights) && Objects.equals(this.checkAuthenticity, oneCandidate.checkAuthenticity) && Objects.equals(this.uvExp, oneCandidate.uvExp) && Objects.equals( - this.authenticityNecessaryLights, oneCandidate.authenticityNecessaryLights); + this.authenticityNecessaryLights, oneCandidate.authenticityNecessaryLights) + && Objects.equals(this.ovIExp, oneCandidate.ovIExp) + && Objects.equals(this.rotationAngle, oneCandidate.rotationAngle); } @Override @@ -267,12 +375,15 @@ public int hashCode() { documentName, ID, P, + rotated180, rfIDPresence, fdSIDList, necessaryLights, checkAuthenticity, uvExp, - authenticityNecessaryLights); + authenticityNecessaryLights, + ovIExp, + rotationAngle); } @Override @@ -282,6 +393,7 @@ public String toString() { sb.append(" documentName: ").append(toIndentedString(documentName)).append("\n"); sb.append(" ID: ").append(toIndentedString(ID)).append("\n"); sb.append(" P: ").append(toIndentedString(P)).append("\n"); + sb.append(" rotated180: ").append(toIndentedString(rotated180)).append("\n"); sb.append(" rfIDPresence: ").append(toIndentedString(rfIDPresence)).append("\n"); sb.append(" fdSIDList: ").append(toIndentedString(fdSIDList)).append("\n"); sb.append(" necessaryLights: ").append(toIndentedString(necessaryLights)).append("\n"); @@ -290,6 +402,8 @@ public String toString() { sb.append(" authenticityNecessaryLights: ") .append(toIndentedString(authenticityNecessaryLights)) .append("\n"); + sb.append(" ovIExp: ").append(toIndentedString(ovIExp)).append("\n"); + sb.append(" rotationAngle: ").append(toIndentedString(rotationAngle)).append("\n"); sb.append("}"); return sb.toString(); } @@ -297,10 +411,143 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("DocumentName"); + openapiFields.add("ID"); + openapiFields.add("P"); + openapiFields.add("Rotated180"); + openapiFields.add("RFID_Presence"); + openapiFields.add("FDSIDList"); + openapiFields.add("NecessaryLights"); + openapiFields.add("CheckAuthenticity"); + openapiFields.add("UVExp"); + openapiFields.add("AuthenticityNecessaryLights"); + openapiFields.add("OVIExp"); + openapiFields.add("RotationAngle"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("DocumentName"); + openapiRequiredFields.add("ID"); + openapiRequiredFields.add("P"); + openapiRequiredFields.add("Rotated180"); + openapiRequiredFields.add("RFID_Presence"); + openapiRequiredFields.add("FDSIDList"); + openapiRequiredFields.add("NecessaryLights"); + openapiRequiredFields.add("CheckAuthenticity"); + openapiRequiredFields.add("UVExp"); + openapiRequiredFields.add("AuthenticityNecessaryLights"); + openapiRequiredFields.add("OVIExp"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OneCandidate + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OneCandidate.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in OneCandidate is not found in the empty JSON string", + OneCandidate.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OneCandidate.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `OneCandidate` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : OneCandidate.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("DocumentName").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `DocumentName` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("DocumentName").toString())); + } + // validate the required field `RFID_Presence` + RfidLocation.validateJsonElement(jsonObj.get("RFID_Presence")); + // validate the required field `FDSIDList` + FDSIDList.validateJsonElement(jsonObj.get("FDSIDList")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OneCandidate.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OneCandidate' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(OneCandidate.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, OneCandidate value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OneCandidate read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of OneCandidate given an JSON string + * + * @param jsonString JSON string + * @return An instance of OneCandidate + * @throws IOException if the JSON string is invalid with respect to OneCandidate + */ + public static OneCandidate fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OneCandidate.class); + } + + /** + * Convert an instance of OneCandidate to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OriginalSymbol.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OriginalSymbol.java old mode 100755 new mode 100644 index f616fc45..9511444b --- a/client/src/main/generated/com/regula/documentreader/webclient/model/OriginalSymbol.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OriginalSymbol.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,27 +12,48 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** OriginalSymbol */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class OriginalSymbol { public static final String SERIALIZED_NAME_CODE = "code"; @SerializedName(SERIALIZED_NAME_CODE) + @javax.annotation.Nonnull private Long code; public static final String SERIALIZED_NAME_PROBABILITY = "probability"; @SerializedName(SERIALIZED_NAME_PROBABILITY) + @javax.annotation.Nonnull private Integer probability; public static final String SERIALIZED_NAME_RECT = "rect"; @SerializedName(SERIALIZED_NAME_RECT) + @javax.annotation.Nullable private RectangleCoordinates rect; - public OriginalSymbol withCode(Long code) { + public OriginalSymbol() {} + + public OriginalSymbol code(@javax.annotation.Nonnull Long code) { this.code = code; return this; } @@ -42,16 +63,16 @@ public OriginalSymbol withCode(Long code) { * * @return code */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Long getCode() { return code; } - public void setCode(Long code) { + public void setCode(@javax.annotation.Nonnull Long code) { this.code = code; } - public OriginalSymbol withProbability(Integer probability) { + public OriginalSymbol probability(@javax.annotation.Nonnull Integer probability) { this.probability = probability; return this; } @@ -61,16 +82,16 @@ public OriginalSymbol withProbability(Integer probability) { * * @return probability */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getProbability() { return probability; } - public void setProbability(Integer probability) { + public void setProbability(@javax.annotation.Nonnull Integer probability) { this.probability = probability; } - public OriginalSymbol withRect(RectangleCoordinates rect) { + public OriginalSymbol rect(@javax.annotation.Nullable RectangleCoordinates rect) { this.rect = rect; return this; } @@ -85,12 +106,12 @@ public RectangleCoordinates getRect() { return rect; } - public void setRect(RectangleCoordinates rect) { + public void setRect(@javax.annotation.Nullable RectangleCoordinates rect) { this.rect = rect; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -122,10 +143,119 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("code"); + openapiFields.add("probability"); + openapiFields.add("rect"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("code"); + openapiRequiredFields.add("probability"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OriginalSymbol + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OriginalSymbol.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in OriginalSymbol is not found in the empty JSON string", + OriginalSymbol.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OriginalSymbol.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `OriginalSymbol` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : OriginalSymbol.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `rect` + if (jsonObj.get("rect") != null && !jsonObj.get("rect").isJsonNull()) { + RectangleCoordinates.validateJsonElement(jsonObj.get("rect")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OriginalSymbol.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OriginalSymbol' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(OriginalSymbol.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, OriginalSymbol value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OriginalSymbol read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of OriginalSymbol given an JSON string + * + * @param jsonString JSON string + * @return An instance of OriginalSymbol + * @throws IOException if the JSON string is invalid with respect to OriginalSymbol + */ + public static OriginalSymbol fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OriginalSymbol.class); + } + + /** + * Convert an instance of OriginalSymbol to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OutData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OutData.java index e63f3177..8def95e0 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/OutData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OutData.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,24 +12,45 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** OutData */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class OutData { public static final String SERIALIZED_NAME_URL = "url"; @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable private String url; public static final String SERIALIZED_NAME_IMAGES = "images"; @SerializedName(SERIALIZED_NAME_IMAGES) - private List images = null; + @javax.annotation.Nullable + private List images; - public OutData withUrl(String url) { + public OutData() {} + + public OutData url(@javax.annotation.Nullable String url) { this.url = url; return this; } @@ -44,18 +65,19 @@ public String getUrl() { return url; } - public void setUrl(String url) { + public void setUrl(@javax.annotation.Nullable String url) { this.url = url; } - public OutData withImages(List images) { + public OutData images( + @javax.annotation.Nullable List images) { this.images = images; return this; } public OutData addImagesItem(OutDataTransactionImagesFieldValue imagesItem) { if (this.images == null) { - this.images = new ArrayList(); + this.images = new ArrayList<>(); } this.images.add(imagesItem); return this; @@ -71,12 +93,13 @@ public List getImages() { return images; } - public void setImages(List images) { + public void setImages( + @javax.annotation.Nullable List images) { this.images = images; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -105,10 +128,127 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("url"); + openapiFields.add("images"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OutData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OutData.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in OutData is not found in the empty JSON string", + OutData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OutData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `OutData` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("url") != null && !jsonObj.get("url").isJsonNull()) + && !jsonObj.get("url").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `url` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("url").toString())); + } + if (jsonObj.get("images") != null && !jsonObj.get("images").isJsonNull()) { + JsonArray jsonArrayimages = jsonObj.getAsJsonArray("images"); + if (jsonArrayimages != null) { + // ensure the json data is an array + if (!jsonObj.get("images").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `images` to be an array in the JSON string but got `%s`", + jsonObj.get("images").toString())); + } + + // validate the optional field `images` (array) + for (int i = 0; i < jsonArrayimages.size(); i++) { + OutDataTransactionImagesFieldValue.validateJsonElement(jsonArrayimages.get(i)); + } + ; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OutData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OutData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(OutData.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, OutData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OutData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of OutData given an JSON string + * + * @param jsonString JSON string + * @return An instance of OutData + * @throws IOException if the JSON string is invalid with respect to OutData + */ + public static OutData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OutData.class); + } + + /** + * Convert an instance of OutData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OutDataTransactionImagesFieldValue.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OutDataTransactionImagesFieldValue.java index 4d465c58..d20a2d1a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/OutDataTransactionImagesFieldValue.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OutDataTransactionImagesFieldValue.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,37 +12,61 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** OutDataTransactionImagesFieldValue */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class OutDataTransactionImagesFieldValue { public static final String SERIALIZED_NAME_FIELD_TYPE = "fieldType"; @SerializedName(SERIALIZED_NAME_FIELD_TYPE) - private Integer fieldType; + @javax.annotation.Nullable + private GraphicFieldType fieldType; public static final String SERIALIZED_NAME_LIGHT = "light"; @SerializedName(SERIALIZED_NAME_LIGHT) - private Integer light; + @javax.annotation.Nullable + private Light light; public static final String SERIALIZED_NAME_LIST_IDX = "listIdx"; @SerializedName(SERIALIZED_NAME_LIST_IDX) + @javax.annotation.Nullable private Integer listIdx; public static final String SERIALIZED_NAME_PAGE_IDX = "pageIdx"; @SerializedName(SERIALIZED_NAME_PAGE_IDX) + @javax.annotation.Nullable private Integer pageIdx; public static final String SERIALIZED_NAME_URL = "url"; @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable private String url; - public OutDataTransactionImagesFieldValue withFieldType(Integer fieldType) { + public OutDataTransactionImagesFieldValue() {} + + public OutDataTransactionImagesFieldValue fieldType( + @javax.annotation.Nullable GraphicFieldType fieldType) { this.fieldType = fieldType; return this; } @@ -53,15 +77,15 @@ public OutDataTransactionImagesFieldValue withFieldType(Integer fieldType) { * @return fieldType */ @javax.annotation.Nullable - public Integer getFieldType() { + public GraphicFieldType getFieldType() { return fieldType; } - public void setFieldType(Integer fieldType) { + public void setFieldType(@javax.annotation.Nullable GraphicFieldType fieldType) { this.fieldType = fieldType; } - public OutDataTransactionImagesFieldValue withLight(Integer light) { + public OutDataTransactionImagesFieldValue light(@javax.annotation.Nullable Light light) { this.light = light; return this; } @@ -72,15 +96,15 @@ public OutDataTransactionImagesFieldValue withLight(Integer light) { * @return light */ @javax.annotation.Nullable - public Integer getLight() { + public Light getLight() { return light; } - public void setLight(Integer light) { + public void setLight(@javax.annotation.Nullable Light light) { this.light = light; } - public OutDataTransactionImagesFieldValue withListIdx(Integer listIdx) { + public OutDataTransactionImagesFieldValue listIdx(@javax.annotation.Nullable Integer listIdx) { this.listIdx = listIdx; return this; } @@ -95,11 +119,11 @@ public Integer getListIdx() { return listIdx; } - public void setListIdx(Integer listIdx) { + public void setListIdx(@javax.annotation.Nullable Integer listIdx) { this.listIdx = listIdx; } - public OutDataTransactionImagesFieldValue withPageIdx(Integer pageIdx) { + public OutDataTransactionImagesFieldValue pageIdx(@javax.annotation.Nullable Integer pageIdx) { this.pageIdx = pageIdx; return this; } @@ -114,11 +138,11 @@ public Integer getPageIdx() { return pageIdx; } - public void setPageIdx(Integer pageIdx) { + public void setPageIdx(@javax.annotation.Nullable Integer pageIdx) { this.pageIdx = pageIdx; } - public OutDataTransactionImagesFieldValue withUrl(String url) { + public OutDataTransactionImagesFieldValue url(@javax.annotation.Nullable String url) { this.url = url; return this; } @@ -133,12 +157,12 @@ public String getUrl() { return url; } - public void setUrl(String url) { + public void setUrl(@javax.annotation.Nullable String url) { this.url = url; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -175,10 +199,124 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("fieldType"); + openapiFields.add("light"); + openapiFields.add("listIdx"); + openapiFields.add("pageIdx"); + openapiFields.add("url"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * OutDataTransactionImagesFieldValue + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OutDataTransactionImagesFieldValue.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in OutDataTransactionImagesFieldValue is not found in the empty JSON string", + OutDataTransactionImagesFieldValue.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OutDataTransactionImagesFieldValue.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `OutDataTransactionImagesFieldValue` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `fieldType` + if (jsonObj.get("fieldType") != null && !jsonObj.get("fieldType").isJsonNull()) { + GraphicFieldType.validateJsonElement(jsonObj.get("fieldType")); + } + // validate the optional field `light` + if (jsonObj.get("light") != null && !jsonObj.get("light").isJsonNull()) { + Light.validateJsonElement(jsonObj.get("light")); + } + if ((jsonObj.get("url") != null && !jsonObj.get("url").isJsonNull()) + && !jsonObj.get("url").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `url` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("url").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OutDataTransactionImagesFieldValue.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OutDataTransactionImagesFieldValue' and its + // subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(OutDataTransactionImagesFieldValue.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, OutDataTransactionImagesFieldValue value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OutDataTransactionImagesFieldValue read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of OutDataTransactionImagesFieldValue given an JSON string + * + * @param jsonString JSON string + * @return An instance of OutDataTransactionImagesFieldValue + * @throws IOException if the JSON string is invalid with respect to + * OutDataTransactionImagesFieldValue + */ + public static OutDataTransactionImagesFieldValue fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OutDataTransactionImagesFieldValue.class); + } + + /** + * Convert an instance of OutDataTransactionImagesFieldValue to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/PArrayField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/PArrayField.java index 09515ccc..2240267f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/PArrayField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/PArrayField.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,64 +12,93 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** PArrayField */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class PArrayField { public static final String SERIALIZED_NAME_BC_ANGLE_D_E_T_E_C_T = "bcAngle_DETECT"; @SerializedName(SERIALIZED_NAME_BC_ANGLE_D_E_T_E_C_T) - private Float bcAngleDETECT = null; + @javax.annotation.Nonnull + private Float bcAngleDETECT; public static final String SERIALIZED_NAME_BC_CODE_RESULT = "bcCodeResult"; @SerializedName(SERIALIZED_NAME_BC_CODE_RESULT) + @javax.annotation.Nonnull private Integer bcCodeResult; public static final String SERIALIZED_NAME_BC_COUNT_MODULE = "bcCountModule"; @SerializedName(SERIALIZED_NAME_BC_COUNT_MODULE) + @javax.annotation.Nonnull private Integer bcCountModule; public static final String SERIALIZED_NAME_BC_DATA_MODULE = "bcDataModule"; @SerializedName(SERIALIZED_NAME_BC_DATA_MODULE) - private List bcDataModule = null; + @javax.annotation.Nonnull + private List bcDataModule; public static final String SERIALIZED_NAME_BC_P_D_F417_I_N_F_O = "bcPDF417INFO"; @SerializedName(SERIALIZED_NAME_BC_P_D_F417_I_N_F_O) + @javax.annotation.Nullable private BcPDF417INFO bcPDF417INFO; public static final String SERIALIZED_NAME_BC_R_O_I_D_E_T_E_C_T = "bcROI_DETECT"; @SerializedName(SERIALIZED_NAME_BC_R_O_I_D_E_T_E_C_T) + @javax.annotation.Nonnull private BcROIDETECT bcROIDETECT; public static final String SERIALIZED_NAME_BC_TEXT_DECODER_TYPES = "bcTextDecoderTypes"; @SerializedName(SERIALIZED_NAME_BC_TEXT_DECODER_TYPES) + @javax.annotation.Nullable private Integer bcTextDecoderTypes; public static final String SERIALIZED_NAME_BC_TEXT_FIELD_TYPE = "bcTextFieldType"; @SerializedName(SERIALIZED_NAME_BC_TEXT_FIELD_TYPE) + @javax.annotation.Nullable private Integer bcTextFieldType; public static final String SERIALIZED_NAME_BC_TYPE_D_E_C_O_D_E = "bcType_DECODE"; @SerializedName(SERIALIZED_NAME_BC_TYPE_D_E_C_O_D_E) - private Integer bcTypeDECODE; + @javax.annotation.Nonnull + private BarcodeType bcTypeDECODE; public static final String SERIALIZED_NAME_BC_TYPE_D_E_T_E_C_T = "bcType_DETECT"; @SerializedName(SERIALIZED_NAME_BC_TYPE_D_E_T_E_C_T) + @javax.annotation.Nonnull private Integer bcTypeDETECT; - public PArrayField withBcAngleDETECT(Float bcAngleDETECT) { + public PArrayField() {} + + public PArrayField bcAngleDETECT(@javax.annotation.Nonnull Float bcAngleDETECT) { this.bcAngleDETECT = bcAngleDETECT; return this; } @@ -79,16 +108,16 @@ public PArrayField withBcAngleDETECT(Float bcAngleDETECT) { * * @return bcAngleDETECT */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Float getBcAngleDETECT() { return bcAngleDETECT; } - public void setBcAngleDETECT(Float bcAngleDETECT) { + public void setBcAngleDETECT(@javax.annotation.Nonnull Float bcAngleDETECT) { this.bcAngleDETECT = bcAngleDETECT; } - public PArrayField withBcCodeResult(Integer bcCodeResult) { + public PArrayField bcCodeResult(@javax.annotation.Nonnull Integer bcCodeResult) { this.bcCodeResult = bcCodeResult; return this; } @@ -98,16 +127,16 @@ public PArrayField withBcCodeResult(Integer bcCodeResult) { * * @return bcCodeResult */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getBcCodeResult() { return bcCodeResult; } - public void setBcCodeResult(Integer bcCodeResult) { + public void setBcCodeResult(@javax.annotation.Nonnull Integer bcCodeResult) { this.bcCodeResult = bcCodeResult; } - public PArrayField withBcCountModule(Integer bcCountModule) { + public PArrayField bcCountModule(@javax.annotation.Nonnull Integer bcCountModule) { this.bcCountModule = bcCountModule; return this; } @@ -117,23 +146,23 @@ public PArrayField withBcCountModule(Integer bcCountModule) { * * @return bcCountModule */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getBcCountModule() { return bcCountModule; } - public void setBcCountModule(Integer bcCountModule) { + public void setBcCountModule(@javax.annotation.Nonnull Integer bcCountModule) { this.bcCountModule = bcCountModule; } - public PArrayField withBcDataModule(List bcDataModule) { + public PArrayField bcDataModule(@javax.annotation.Nonnull List bcDataModule) { this.bcDataModule = bcDataModule; return this; } public PArrayField addBcDataModuleItem(DataModule bcDataModuleItem) { if (this.bcDataModule == null) { - this.bcDataModule = new ArrayList(); + this.bcDataModule = new ArrayList<>(); } this.bcDataModule.add(bcDataModuleItem); return this; @@ -144,16 +173,16 @@ public PArrayField addBcDataModuleItem(DataModule bcDataModuleItem) { * * @return bcDataModule */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getBcDataModule() { return bcDataModule; } - public void setBcDataModule(List bcDataModule) { + public void setBcDataModule(@javax.annotation.Nonnull List bcDataModule) { this.bcDataModule = bcDataModule; } - public PArrayField withBcPDF417INFO(BcPDF417INFO bcPDF417INFO) { + public PArrayField bcPDF417INFO(@javax.annotation.Nullable BcPDF417INFO bcPDF417INFO) { this.bcPDF417INFO = bcPDF417INFO; return this; } @@ -168,11 +197,11 @@ public BcPDF417INFO getBcPDF417INFO() { return bcPDF417INFO; } - public void setBcPDF417INFO(BcPDF417INFO bcPDF417INFO) { + public void setBcPDF417INFO(@javax.annotation.Nullable BcPDF417INFO bcPDF417INFO) { this.bcPDF417INFO = bcPDF417INFO; } - public PArrayField withBcROIDETECT(BcROIDETECT bcROIDETECT) { + public PArrayField bcROIDETECT(@javax.annotation.Nonnull BcROIDETECT bcROIDETECT) { this.bcROIDETECT = bcROIDETECT; return this; } @@ -182,16 +211,16 @@ public PArrayField withBcROIDETECT(BcROIDETECT bcROIDETECT) { * * @return bcROIDETECT */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public BcROIDETECT getBcROIDETECT() { return bcROIDETECT; } - public void setBcROIDETECT(BcROIDETECT bcROIDETECT) { + public void setBcROIDETECT(@javax.annotation.Nonnull BcROIDETECT bcROIDETECT) { this.bcROIDETECT = bcROIDETECT; } - public PArrayField withBcTextDecoderTypes(Integer bcTextDecoderTypes) { + public PArrayField bcTextDecoderTypes(@javax.annotation.Nullable Integer bcTextDecoderTypes) { this.bcTextDecoderTypes = bcTextDecoderTypes; return this; } @@ -206,11 +235,11 @@ public Integer getBcTextDecoderTypes() { return bcTextDecoderTypes; } - public void setBcTextDecoderTypes(Integer bcTextDecoderTypes) { + public void setBcTextDecoderTypes(@javax.annotation.Nullable Integer bcTextDecoderTypes) { this.bcTextDecoderTypes = bcTextDecoderTypes; } - public PArrayField withBcTextFieldType(Integer bcTextFieldType) { + public PArrayField bcTextFieldType(@javax.annotation.Nullable Integer bcTextFieldType) { this.bcTextFieldType = bcTextFieldType; return this; } @@ -225,11 +254,11 @@ public Integer getBcTextFieldType() { return bcTextFieldType; } - public void setBcTextFieldType(Integer bcTextFieldType) { + public void setBcTextFieldType(@javax.annotation.Nullable Integer bcTextFieldType) { this.bcTextFieldType = bcTextFieldType; } - public PArrayField withBcTypeDECODE(Integer bcTypeDECODE) { + public PArrayField bcTypeDECODE(@javax.annotation.Nonnull BarcodeType bcTypeDECODE) { this.bcTypeDECODE = bcTypeDECODE; return this; } @@ -239,16 +268,16 @@ public PArrayField withBcTypeDECODE(Integer bcTypeDECODE) { * * @return bcTypeDECODE */ - @javax.annotation.Nullable - public Integer getBcTypeDECODE() { + @javax.annotation.Nonnull + public BarcodeType getBcTypeDECODE() { return bcTypeDECODE; } - public void setBcTypeDECODE(Integer bcTypeDECODE) { + public void setBcTypeDECODE(@javax.annotation.Nonnull BarcodeType bcTypeDECODE) { this.bcTypeDECODE = bcTypeDECODE; } - public PArrayField withBcTypeDETECT(Integer bcTypeDETECT) { + public PArrayField bcTypeDETECT(@javax.annotation.Nonnull Integer bcTypeDETECT) { this.bcTypeDETECT = bcTypeDETECT; return this; } @@ -258,17 +287,17 @@ public PArrayField withBcTypeDETECT(Integer bcTypeDETECT) { * * @return bcTypeDETECT */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getBcTypeDETECT() { return bcTypeDETECT; } - public void setBcTypeDETECT(Integer bcTypeDETECT) { + public void setBcTypeDETECT(@javax.annotation.Nonnull Integer bcTypeDETECT) { this.bcTypeDETECT = bcTypeDETECT; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -324,10 +353,149 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("bcAngle_DETECT"); + openapiFields.add("bcCodeResult"); + openapiFields.add("bcCountModule"); + openapiFields.add("bcDataModule"); + openapiFields.add("bcPDF417INFO"); + openapiFields.add("bcROI_DETECT"); + openapiFields.add("bcTextDecoderTypes"); + openapiFields.add("bcTextFieldType"); + openapiFields.add("bcType_DECODE"); + openapiFields.add("bcType_DETECT"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("bcAngle_DETECT"); + openapiRequiredFields.add("bcCodeResult"); + openapiRequiredFields.add("bcCountModule"); + openapiRequiredFields.add("bcDataModule"); + openapiRequiredFields.add("bcROI_DETECT"); + openapiRequiredFields.add("bcType_DECODE"); + openapiRequiredFields.add("bcType_DETECT"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PArrayField + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PArrayField.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in PArrayField is not found in the empty JSON string", + PArrayField.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PArrayField.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `PArrayField` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : PArrayField.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("bcDataModule").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `bcDataModule` to be an array in the JSON string but got `%s`", + jsonObj.get("bcDataModule").toString())); + } + + JsonArray jsonArraybcDataModule = jsonObj.getAsJsonArray("bcDataModule"); + // validate the required field `bcDataModule` (array) + for (int i = 0; i < jsonArraybcDataModule.size(); i++) { + DataModule.validateJsonElement(jsonArraybcDataModule.get(i)); + } + ; + // validate the optional field `bcPDF417INFO` + if (jsonObj.get("bcPDF417INFO") != null && !jsonObj.get("bcPDF417INFO").isJsonNull()) { + BcPDF417INFO.validateJsonElement(jsonObj.get("bcPDF417INFO")); + } + // validate the required field `bcROI_DETECT` + BcROIDETECT.validateJsonElement(jsonObj.get("bcROI_DETECT")); + // validate the required field `bcType_DECODE` + BarcodeType.validateJsonElement(jsonObj.get("bcType_DECODE")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PArrayField.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PArrayField' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(PArrayField.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, PArrayField value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PArrayField read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of PArrayField given an JSON string + * + * @param jsonString JSON string + * @return An instance of PArrayField + * @throws IOException if the JSON string is invalid with respect to PArrayField + */ + public static PArrayField fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PArrayField.class); + } + + /** + * Convert an instance of PArrayField to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingErrorCodes.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingErrorCodes.java new file mode 100644 index 00000000..31831cd9 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingErrorCodes.java @@ -0,0 +1,446 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** The enumeration contains error codes that can return during the RFID chip processing. */ +@JsonAdapter(ParsingErrorCodes.Adapter.class) +public enum ParsingErrorCodes { + + /** OK */ + errLDS_Ok(1l), + + /** ASN: Incorrect data */ + errLDS_ASN_IncorrectData(2147483649l), + + /** ASN: Not enough data */ + errLDS_ASN_NotEnoughData(2147483650l), + + /** ASN: Contents unexpected data */ + errLDS_ASN_Contents_UnexpectedData(2147483651l), + + /** ASN Signed data: Incorrect data */ + errLDS_ASN_SignedData_IncorrectData(2147483656l), + + /** ASN Signed data: Encap contents incorrect data */ + errLDS_ASN_SignedData_EncapContents_IncorrectData(2147483657l), + + /** ASN Signed data: Version incorrect data */ + errLDS_ASN_SignedData_Version_IncorrectData(2147483658l), + + /** ASN Signed data: Digest algorithms incorrect data */ + errLDS_ASN_SignedData_DigestAlgorithms_IncorrectData(2147483665l), + + /** ASN LDS object: Incorrect data */ + errLDS_ASN_LDSObject_IncorrectData(2147483667l), + + /** ASN LDS object: Version incorrect data */ + errLDS_ASN_LDSObject_Version_IncorrectData(2147483668l), + + /** ASN LDS object: Digest algorithm incorrect data */ + errLDS_ASN_LDSObject_DigestAlgorithm_IncorrectData(2147483669l), + + /** ASN LDS object: DG hashes incorrect data */ + errLDS_ASN_LDSObject_DGHashes_IncorrectData(2147483670l), + + /** ASN LDS object: Version info incorrect data */ + errLDS_ASN_LDSObject_VersionInfo_IncorrectData(2147483666l), + + /** ASN Certificate: Incorrect data */ + errLDS_ASN_Certificate_IncorrectData(2147483671l), + + /** ASN Certificate: Version incorrect data */ + errLDS_ASN_Certificate_Version_IncorrectData(2147483672l), + + /** ASN Certificate: SN incorrect data */ + errLDS_ASN_Certificate_SN_IncorrectData(2147483673l), + + /** ASN Certificate: Signature incorrect data */ + errLDS_ASN_Certificate_Signature_IncorrectData(2147483674l), + + /** ASN Certificate: Issuer incorrect data */ + errLDS_ASN_Certificate_Issuer_IncorrectData(2147483675l), + + /** ASN Certificate: Validity incorrect data */ + errLDS_ASN_Certificate_Validity_IncorrectData(2147483676l), + + /** ASN Certificate: Subject incorrect data */ + errLDS_ASN_Certificate_Subject_IncorrectData(2147483677l), + + /** ASN Certificate: Subject PK incorrect data */ + errLDS_ASN_Certificate_SubjectPK_IncorrectData(2147483678l), + + /** ASN Certificate: Extensions incorrect data */ + errLDS_ASN_Certificate_Extensions_IncorrectData(2147483679l), + + /** ASN Signer info: Incorrect data */ + errLDS_ASN_SignerInfo_IncorrectData(2147483680l), + + /** ASN Signer info: Version incorrect data */ + errLDS_ASN_SignerInfo_Version_IncorrectData(2147483681l), + + /** ASN Signer info: SID incorrect data */ + errLDS_ASN_SignerInfo_SID_IncorrectData(2147483682l), + + /** ASN Signer info: Digest algorithms incorrect data */ + errLDS_ASN_SignerInfo_DigestAlg_IncorrectData(2147483683l), + + /** ASN Signer info: Signed attributes incorrect data */ + errLDS_ASN_SignerInfo_SignedAttrs_IncorrectData(2147483684l), + + /** ASN Signer info: Sign algorithms incorrect data */ + errLDS_ASN_SignerInfo_SignAlg_IncorrectData(2147483685l), + + /** ASN Signer info: Signature incorrect data */ + errLDS_ASN_SignerInfo_Signature_IncorrectData(2147483686l), + + /** ASN Signer info: Unsigned attributes incorrect data */ + errLDS_ASN_SignerInfo_UnsignedAttrs_IncorrectData(2147483687l), + + /** ICAO LDS object: Unsupported digest algorithm */ + errLDS_ICAO_LDSObject_UnsupportedDigestAlgorithm(2147483696l), + + /** ICAO Signed data: Signer info empty */ + errLDS_ICAO_SignedData_SignerInfos_Empty(2147483697l), + + /** ICAO Signer info: Unsupported digest algorithm */ + errLDS_ICAO_SignerInfo_UnsupportedDigestAlgorithm(2147483698l), + + /** ICAO Signer info: Unsupported signature algorithm */ + errLDS_ICAO_SignerInfo_UnsupportedSignatureAlgorithm(2147483699l), + + /** ICAO Signer info: Message digest error */ + errLDS_ICAO_SignerInfo_MessageDigestError(2147483700l), + + /** ICAO Signer info: Signed attributes missed */ + errLDS_ICAO_SignerInfo_SignedAttrs_Missed(2147483702l), + + /** Auth: Signer info cannot find certificate */ + errLDS_Auth_SignerInfo_CantFindCertificate(2147483701l), + + /** Auth: Error */ + errLDS_Auth_Error(2147483728l), + + /** Auth: Unsupported signature algorithm */ + errLDS_Auth_UnsupportedSignatureAlgorithm(2147483729l), + + /** Auth: Unsupported public key algorithm */ + errLDS_Auth_UnsupportedPublicKeyAlgorithm(2147483730l), + + /** Auth: Messed algorithms */ + errLDS_Auth_MessedAlgorithms(2147483731l), + + /** Auth: Public key data invalid */ + errLDS_Auth_PublicKeyDataInvalid(2147483732l), + + /** Auth: Algorithm parameters data invalid */ + errLDS_Auth_AlgorithmParametersDataInvalid(2147483733l), + + /** Auth: Signature data invalid */ + errLDS_Auth_SignatureDataInvalid(2147483734l), + + /** Auth: Unsupported digest algorithm */ + errLDS_Auth_UnsupportedDigestAlgorithm(2147483735l), + + /** Auth: Signature data incorrect */ + errLDS_Auth_SignatureDataIncorrect(2147483736l), + + /** Auth: Algorithm parameters not defined */ + errLDS_Auth_AlgorithmParametersNotDefined(2147483737l), + + /** Auth: Signature check failed */ + errLDS_Auth_SignatureCheckFailed(2147483738l), + + /** DG: Wrong Tag */ + errLDS_DG_WrongTag(2147483760l), + + /** DG: Contents unexpected data */ + errLDS_DG_Contents_UnexpectedData(2147483761l), + + /** BAP: Symmetric Cypher Cannot Initialize */ + errLDS_BAP_SymmetricCypher_CantInitialize(2164260881l), + + /** PACE: Info Not Available */ + errLDS_PACE_Info_NotAvailable(2164260896l), + + /** PACE: Symmetric Cypher Cannot Initialize */ + errLDS_PACE_SymmetricCypher_CantInitialize(2164260897l), + + /** PACE: Key Agreement Cannot Initialize */ + errLDS_PACE_KeyAgreement_CantInitialize(2164260898l), + + /** PACE: Ephemeral Keys Cannot Create */ + errLDS_PACE_EphemeralKeys_CantCreate(2164260899l), + + /** PACE: Mapping Cannot Decode Nonce */ + errLDS_PACE_Mapping_CantDecodeNonce(2164260900l), + + /** PACE: Shared Secret Cannot Create */ + errLDS_PACE_SharedSecret_CantCreate(2164260901l), + + /** PACE: Domain Params Unsupported Format */ + errLDS_PACE_DomainParams_UnsupportedFormat(2164260902l), + + /** PACE: Ephemeral Keys Incorrect */ + errLDS_PACE_EphemeralKeys_Incorrect(2164260903l), + + /** PACE: Mapping Ephemeral Keys Incorrect */ + errLDS_PACE_Mapping_EphemeralKeys_Incorrect(2164260904l), + + /** PACE: Mapping Cannot Perform */ + errLDS_PACE_Mapping_CantPerform(2164260905l), + + /** PACE: Non-Matching Auth Tokens */ + errLDS_PACE_NonMatchingAuthTokens(2164260906l), + + /** PACE: CAM data incorrect */ + errLDS_PACE_CAM_Data_Incorrect(2164260907l), + + /** PACE: CAM data cannot verify */ + errLDS_PACE_CAM_Data_CantVerify(2164260908l), + + /** PACE: CAM data non-matching */ + errLDS_PACE_CAM_Data_NonMatching(2164260909l), + + /** PACE: IM scheme incorrect */ + errLDS_PACE_IM_Scheme_Incorrect(2164260910l), + + /** PACE: Random mapping failed */ + errLDS_PACE_IM_RandomMapping_Failed(2164260911l), + + /** CA: Cannot Find Public Key */ + errLDS_CA_CantFindPublicKey(2164260912l), + + /** CA: Cannot Find Info */ + errLDS_CA_CantFindInfo(2164260913l), + + /** CA: Incorrect Version */ + errLDS_CA_IncorrectVersion(2164260914l), + + /** CA: Cannot Find Domain Parameters */ + errLDS_CA_CantFindDomainParameters(2164260915l), + + /** CA: Key Agreement Cannot Initialize */ + errLDS_CA_KeyAgreement_CantInitialize(2164260916l), + + /** CA: Public Key Unsupported Algorithm */ + errLDS_CA_PublicKey_UnsupportedAlgorithm(2164260917l), + + /** CA: Ephemeral Keys Cannot Create */ + errLDS_CA_EphemeralKeys_CantCreate(2164260918l), + + /** CA: Shared Secret Cannot Create */ + errLDS_CA_SharedSecret_CantCreate(2164260919l), + + /** CA: Non-Matching Auth Tokens */ + errLDS_CA_NonMatchingAuthTokens(2164260920l), + + /** TA: Incorrect Version */ + errLDS_TA_IncorrectVersion(2164260928l), + + /** TA: Cannot Build Certificate Chain */ + errLDS_TA_CantBuildCertificateChain(2164260929l), + + /** TA: Cannot Find IS Private Key */ + errLDS_TA_CantFindISPrivateKey(2164260930l), + + /** TA: Public Key Unsupported Algorithm */ + errLDS_TA_PublicKey_UnsupportedAlgorithm(2164260931l), + + /** TA: Signature Building Error */ + errLDS_TA_SignatureBuildingError(2164260932l), + + /** TA: Invalid Key Algorithm Parameters */ + errLDS_TA_InvalidKeyAlgorithmParameters(2164260933l), + + /** AA: Public Key Unsupported Algorithm */ + errLDS_AA_PublicKey_UnsupportedAlgorithm(2164260944l), + + /** AA: Public Key Incorrect Data */ + errLDS_AA_PublicKey_IncorrectData(2164260945l), + + /** AA: Public Key Incorrect Parameters */ + errLDS_AA_PublicKey_IncorrectParameters(2164260946l), + + /** AA: Public Key Undefined Parameters */ + errLDS_AA_PublicKey_UndefinedParameters(2164260947l), + + /** AA: Signature Incorrect Data */ + errLDS_AA_Signature_IncorrectData(2164260948l), + + /** AA: Unsupported recovery scheme */ + errLDS_AA_UnsupportedRecoveryScheme(2164260949l), + + /** AA: Incorrect Trailer */ + errLDS_AA_IncorrectTrailer(2164260950l), + + /** AA: Unsupported Digest Algorithm */ + errLDS_AA_UnsupportedDigestAlgorithm(2164260951l), + + /** RI: Sector Key Cannot Find */ + errLDS_RI_SectorKey_CantFind(2164260976l), + + /** RI: Sector Key Incorrect Data */ + errLDS_RI_SectorKey_IncorrectData(2164260977l), + + /** RI: Sector Key Incomplete Data */ + errLDS_RI_SectorKey_IncompleteData(2164260978l), + + /** CV Certificate: Missing mandatory data PK */ + errLDS_CV_Certificate_MissingMandatoryData_PK(2164260960l), + + /** CV Certificate: Public key unsupported */ + errLDS_CV_Certificate_PublicKey_Unsupported(2164260962l), + + /** CV Certificate: CHAT unsupported terminal type */ + errLDS_CV_Certificate_CHAT_UnsupportedTerminalType(2164260963l), + + /** CV Certificate: Private key unsupported */ + errLDS_CV_Certificate_PrivateKey_Unsupported(2164260964l), + + /** CV Certificate: Private key invalid params */ + errLDS_CV_Certificate_PrivateKey_InvalidParams(2164260965l), + + /** CV Certificate: Incorrect data */ + errLDS_CV_Certificate_IncorrectData(2164261216l), + + /** CV Certificate: CPI incorrect data */ + errLDS_CV_Certificate_CPI_IncorrectData(2164261217l), + + /** CV Certificate: CAR incorrect data */ + errLDS_CV_Certificate_CAR_IncorrectData(2164261218l), + + /** CV Certificate: Public key incorrect data */ + errLDS_CV_Certificate_PublicKey_IncorrectData(2164261219l), + + /** CV Certificate: CHR incorrect data */ + errLDS_CV_Certificate_CHR_IncorrectData(2164261220l), + + /** CV Certificate: CHAT incorrect data */ + errLDS_CV_Certificate_CHAT_IncorrectData(2164261221l), + + /** CV Certificate: Valid from incorrect data */ + errLDS_CV_Certificate_ValidFrom_IncorrectData(2164261222l), + + /** CV Certificate: Valid to incorrect data */ + errLDS_CV_Certificate_ValidTo_IncorrectData(2164261223l), + + /** CV Certificate: Extensions incorrect data */ + errLDS_CV_Certificate_Extensions_IncorrectData(2164261224l), + + /** CV Certificate: Private key incorrect data */ + errLDS_CV_Certificate_PrivateKey_IncorrectData(2164261225l), + + /** CV Certificate: Private key missing */ + errLDS_CV_Certificate_PrivateKey_Missing(2164261226l), + + /** VDS: Unsupported version */ + errLDS_VDS_UnsupportedVersion(2164261376l), + + /** VDS: Issuing country size */ + errLDS_VDS_Issuing_Country_Size(2164261377l), + + /** VDS: Issuing country incorrect data */ + errLDS_VDS_Issuing_Country_IncorrectData(2164261378l), + + /** VDS: Signature certificate size */ + errLDS_VDS_Signer_Certificate_Size(2164261379l), + + /** VDS: Signature certificate data */ + errLDS_VDS_Signer_Certificate_Data(2164261380l), + + /** VDS: Signature incorrect data */ + errLDS_VDS_Signature_IncorrectData(2164261381l), + + /** VDS: Incorrect data */ + errLDS_VDS_NC_IncorrectData(2164261632l), + + /** VDS: Missing or incorrect data */ + errLDS_VDS_NC_MissingOrIncorrect_Data(2164261633l), + + /** VDS: Missing or incorrect header */ + errLDS_VDS_NC_MissingOrIncorrect_Header(2164261634l), + + /** VDS: Missing or incorrect type */ + errLDS_VDS_NC_MissingOrIncorrect_Type(2164261635l), + + /** VDS: Missing or incorrect version */ + errLDS_VDS_NC_MissingOrIncorrect_Version(2164261636l), + + /** VDS: Missing or incorrect issuing country */ + errLDS_VDS_NC_MissingOrIncorrect_IssuingCountry(2164261637l), + + /** VDS: Missing or incorrect message */ + errLDS_VDS_NC_MissingOrIncorrect_Message(2164261638l), + + /** VDS: Missing or incorrect signature */ + errLDS_VDS_NC_MissingOrIncorrect_Signature(2164261639l), + + /** VDS: Missing or incorrect signature algorithm */ + errLDS_VDS_NC_MissingOrIncorrect_SigAlgorithm(2164261640l), + + /** VDS: Missing or incorrect certificate */ + errLDS_VDS_NC_MissingOrIncorrect_Certificate(2164261641l), + + /** VDS: Missing or incorrect signature value */ + errLDS_VDS_NC_MissingOrIncorrect_SigValue(2164261642l); + + private Long value; + + ParsingErrorCodes(Long value) { + this.value = value; + } + + public Long getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ParsingErrorCodes fromValue(Long value) { + for (ParsingErrorCodes b : ParsingErrorCodes.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ParsingErrorCodes enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ParsingErrorCodes read(final JsonReader jsonReader) throws IOException { + Long value = jsonReader.nextLong(); + return ParsingErrorCodes.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Long value = jsonElement.getAsLong(); + ParsingErrorCodes.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingNotificationCodes.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingNotificationCodes.java index 81341736..5ce72517 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingNotificationCodes.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingNotificationCodes.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,671 +12,726 @@ package com.regula.documentreader.webclient.model; -public class ParsingNotificationCodes { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * The enumeration contains possible values of notification codes returned during the RFID chip + * processing. + */ +@JsonAdapter(ParsingNotificationCodes.Adapter.class) +public enum ParsingNotificationCodes { /** ASN certificate: Incorrect version */ - public static final int ntfLDS_ASN_Certificate_IncorrectVersion = -1879048191; + ntfLDS_ASN_Certificate_IncorrectVersion(2415919105l), /** ASN certificate: Non-matching signature algorithm */ - public static final int ntfLDS_ASN_Certificate_NonMatchingSignatureAlgorithm = -1879048190; + ntfLDS_ASN_Certificate_NonMatchingSignatureAlgorithm(2415919106l), /** ASN certificate: Incorrect time coding */ - public static final int ntfLDS_ASN_Certificate_IncorrectTimeCoding = -1879048189; + ntfLDS_ASN_Certificate_IncorrectTimeCoding(2415919107l), /** ASN certificate: Incorrect use of generalized time */ - public static final int ntfLDS_ASN_Certificate_IncorrectUseOfGeneralizedTime = -1879048188; + ntfLDS_ASN_Certificate_IncorrectUseOfGeneralizedTime(2415919108l), /** ASN certificate: Empty issuer */ - public static final int ntfLDS_ASN_Certificate_EmptyIssuer = -1879048187; + ntfLDS_ASN_Certificate_EmptyIssuer(2415919109l), /** ASN certificate: Empty subject */ - public static final int ntfLDS_ASN_Certificate_EmptySubject = -1879048186; + ntfLDS_ASN_Certificate_EmptySubject(2415919110l), /** ASN certificate: Unsupported critical extension */ - public static final int ntfLDS_ASN_Certificate_UnsupportedCriticalExtension = -1879048184; + ntfLDS_ASN_Certificate_UnsupportedCriticalExtension(2415919112l), /** ASN certificate: Forced default CSCA role */ - public static final int ntfLDS_ASN_Certificate_ForcedDefaultCSCARole = -1879048178; + ntfLDS_ASN_Certificate_ForcedDefaultCSCARole(2415919118l), /** ASN certificate: Forced Default DS role */ - public static final int ntfLDS_ASN_Certificate_ForcedDefaultDSRole = -1879048177; + ntfLDS_ASN_Certificate_ForcedDefaultDSRole(2415919119l), /** ASN certificate: Incorrect issuer subject DS */ - public static final int ntfLDS_ASN_Certificate_IncorrectIssuerSubjectDS = -1879048176; + ntfLDS_ASN_Certificate_IncorrectIssuerSubjectDS(2415919120l), /** ASN certificate: Duplicating extensions */ - public static final int ntfLDS_ASN_Certificate_DuplicatingExtensions = -1879048169; + ntfLDS_ASN_Certificate_DuplicatingExtensions(2415919127l), /** ICAO certificate: Version missed */ - public static final int ntfLDS_ICAO_Certificate_Version_Missed = -1879047680; + ntfLDS_ICAO_Certificate_Version_Missed(2415919616l), /** ICAO certificate: Version incorrect */ - public static final int ntfLDS_ICAO_Certificate_Version_Incorrect = -1879047679; + ntfLDS_ICAO_Certificate_Version_Incorrect(2415919617l), /** ICAO certificate: Issuer country missed */ - public static final int ntfLDS_ICAO_Certificate_Issuer_Country_Missed = -1879047678; + ntfLDS_ICAO_Certificate_Issuer_Country_Missed(2415919618l), /** ICAO certificate: Issuer common name missed */ - public static final int ntfLDS_ICAO_Certificate_Issuer_CommonName_Missed = -1879047677; + ntfLDS_ICAO_Certificate_Issuer_CommonName_Missed(2415919619l), /** ICAO certificate: Issuer country non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Issuer_CountryNonCompliant = -1879047676; + ntfLDS_ICAO_Certificate_Issuer_CountryNonCompliant(2415919620l), /** ICAO certificate: Subject country missed */ - public static final int ntfLDS_ICAO_Certificate_Subject_Country_Missed = -1879047675; + ntfLDS_ICAO_Certificate_Subject_Country_Missed(2415919621l), /** ICAO certificate: Subject common name missed */ - public static final int ntfLDS_ICAO_Certificate_Subject_CommonName_Missed = -1879047674; + ntfLDS_ICAO_Certificate_Subject_CommonName_Missed(2415919622l), /** ICAO certificate: Subject country non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Subject_CountryNonCompliant = -1879047673; + ntfLDS_ICAO_Certificate_Subject_CountryNonCompliant(2415919623l), /** ICAO certificate: Using non-compliant data */ - public static final int ntfLDS_ICAO_Certificate_UsingNonCompliantData = -1879047672; + ntfLDS_ICAO_Certificate_UsingNonCompliantData(2415919624l), /** ICAO certificate: Unsupported signature algorithm */ - public static final int ntfLDS_ICAO_Certificate_UnsupportedSignatureAlgorithm = -1879047671; + ntfLDS_ICAO_Certificate_UnsupportedSignatureAlgorithm(2415919625l), /** ICAO certificate: Unsupported public key algorithm */ - public static final int ntfLDS_ICAO_Certificate_UnsupportedPublicKeyAlgorithm = -1879047670; + ntfLDS_ICAO_Certificate_UnsupportedPublicKeyAlgorithm(2415919626l), /** ICAO certificate: Missed extensions */ - public static final int ntfLDS_ICAO_Certificate_MissedExtensions = -1879047669; + ntfLDS_ICAO_Certificate_MissedExtensions(2415919627l), /** ICAO certificate: Validity */ - public static final int ntfLDS_ICAO_Certificate_Validity = -1879047668; + ntfLDS_ICAO_Certificate_Validity(2415919628l), /** ICAO certificate extension: Using non-compliant data */ - public static final int ntfLDS_ICAO_Certificate_Ext_UsingNonCompliantData = -1879047667; + ntfLDS_ICAO_Certificate_Ext_UsingNonCompliantData(2415919629l), /** ICAO certificate extension: Key usage missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_KeyUsage_Missed = -1879047666; + ntfLDS_ICAO_Certificate_Ext_KeyUsage_Missed(2415919630l), /** ICAO certificate extension: Key usage not critical */ - public static final int ntfLDS_ICAO_Certificate_Ext_KeyUsage_NotCritical = -1879047665; + ntfLDS_ICAO_Certificate_Ext_KeyUsage_NotCritical(2415919631l), /** ICAO certificate extension: Key usage incorrect data */ - public static final int ntfLDS_ICAO_Certificate_Ext_KeyUsage_IncorrectData = -1879047664; + ntfLDS_ICAO_Certificate_Ext_KeyUsage_IncorrectData(2415919632l), /** ICAO certificate extension: Basic constraints missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_BasicC_Missed = -1879047663; + ntfLDS_ICAO_Certificate_Ext_BasicC_Missed(2415919633l), /** ICAO certificate extension: Basic constraints incorrect usage 1 */ - public static final int ntfLDS_ICAO_Certificate_Ext_BasicC_IncorrectUsage1 = -1879047662; + ntfLDS_ICAO_Certificate_Ext_BasicC_IncorrectUsage1(2415919634l), /** ICAO certificate extension: Basic constraints incorrect usage 2 */ - public static final int ntfLDS_ICAO_Certificate_Ext_BasicC_IncorrectUsage2 = -1879047661; + ntfLDS_ICAO_Certificate_Ext_BasicC_IncorrectUsage2(2415919635l), /** ICAO certificate extension: Basic constraints not critical */ - public static final int ntfLDS_ICAO_Certificate_Ext_BasicC_NotCritical = -1879047660; + ntfLDS_ICAO_Certificate_Ext_BasicC_NotCritical(2415919636l), /** ICAO certificate extension: Basic constraints incorrect data */ - public static final int ntfLDS_ICAO_Certificate_Ext_BasicC_IncorrectData = -1879047659; + ntfLDS_ICAO_Certificate_Ext_BasicC_IncorrectData(2415919637l), /** ICAO certificate extension: Basic constraints path LenC missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_BasicC_PathLenC_Missed = -1879047658; + ntfLDS_ICAO_Certificate_Ext_BasicC_PathLenC_Missed(2415919638l), /** ICAO certificate extension: Basic constraints path LenC incorrect */ - public static final int ntfLDS_ICAO_Certificate_Ext_BasicC_PathLenC_Incorrect = -1879047657; + ntfLDS_ICAO_Certificate_Ext_BasicC_PathLenC_Incorrect(2415919639l), /** ICAO certificate extension: Ext key usage not critical */ - public static final int ntfLDS_ICAO_Certificate_Ext_ExtKeyUsage_NotCritical = -1879047656; + ntfLDS_ICAO_Certificate_Ext_ExtKeyUsage_NotCritical(2415919640l), /** ICAO certificate extension: Ext key usage incorrect usage */ - public static final int ntfLDS_ICAO_Certificate_Ext_ExtKeyUsage_IncorrectUsage = -1879047655; + ntfLDS_ICAO_Certificate_Ext_ExtKeyUsage_IncorrectUsage(2415919641l), /** ICAO certificate extension: Ext key usage incorrect data */ - public static final int ntfLDS_ICAO_Certificate_Ext_ExtKeyUsage_IncorrectData = -1879047654; + ntfLDS_ICAO_Certificate_Ext_ExtKeyUsage_IncorrectData(2415919642l), /** ICAO certificate extension Auth key: ID missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_AuthKeyID_Missed = -1879047653; + ntfLDS_ICAO_Certificate_Ext_AuthKeyID_Missed(2415919643l), /** ICAO certificate extension Auth key: Incorrect data */ - public static final int ntfLDS_ICAO_Certificate_Ext_AuthKeyID_IncorrectData = -1879047652; + ntfLDS_ICAO_Certificate_Ext_AuthKeyID_IncorrectData(2415919644l), /** ICAO certificate extension Auth key: Key ID missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_AuthKeyID_KeyID_Missed = -1879047651; + ntfLDS_ICAO_Certificate_Ext_AuthKeyID_KeyID_Missed(2415919645l), /** ICAO certificate extension: Subject key ID missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_SubjectKeyID_Missed = -1879047650; + ntfLDS_ICAO_Certificate_Ext_SubjectKeyID_Missed(2415919646l), /** ICAO certificate extension: Subject key ID incorrect data */ - public static final int ntfLDS_ICAO_Certificate_Ext_SubjectKeyID_IncorrectData = -1879047649; + ntfLDS_ICAO_Certificate_Ext_SubjectKeyID_IncorrectData(2415919647l), /** ICAO certificate extension: Private key UP missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_PrivateKeyUP_Missed = -1879047648; + ntfLDS_ICAO_Certificate_Ext_PrivateKeyUP_Missed(2415919648l), /** ICAO certificate extension: Private key UP incorrect data */ - public static final int ntfLDS_ICAO_Certificate_Ext_PrivateKeyUP_IncorrectData = -1879047647; + ntfLDS_ICAO_Certificate_Ext_PrivateKeyUP_IncorrectData(2415919649l), /** ICAO certificate extension: Private key UP empty */ - public static final int ntfLDS_ICAO_Certificate_Ext_PrivateKeyUP_Empty = -1879047646; + ntfLDS_ICAO_Certificate_Ext_PrivateKeyUP_Empty(2415919650l), /** ICAO certificate extension: Subject alt name missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_SubjectAltName_Missed = -1879047645; + ntfLDS_ICAO_Certificate_Ext_SubjectAltName_Missed(2415919651l), /** ICAO certificate extension: Subject alt name incorrect data */ - public static final int ntfLDS_ICAO_Certificate_Ext_SubjectAltName_IncorrectData = -1879047644; + ntfLDS_ICAO_Certificate_Ext_SubjectAltName_IncorrectData(2415919652l), /** ICAO certificate extension: Subject alt name empty */ - public static final int ntfLDS_ICAO_Certificate_Ext_SubjectAltName_Empty = -1879047643; + ntfLDS_ICAO_Certificate_Ext_SubjectAltName_Empty(2415919653l), /** ICAO certificate extension: Subject alt name non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Ext_SubjectAltName_NonCompliant = -1879047642; + ntfLDS_ICAO_Certificate_Ext_SubjectAltName_NonCompliant(2415919654l), /** ICAO certificate extension: Subject alt name critical */ - public static final int ntfLDS_ICAO_Certificate_Ext_SubjectAltName_Critical = -1879047640; + ntfLDS_ICAO_Certificate_Ext_SubjectAltName_Critical(2415919656l), /** ICAO certificate extension: Subject alt name DN empty */ - public static final int ntfLDS_ICAO_Certificate_Ext_SubjectAltName_DN_Empty = -1879047639; + ntfLDS_ICAO_Certificate_Ext_SubjectAltName_DN_Empty(2415919657l), /** ICAO certificate extension: Subject alt name DN incorrect */ - public static final int ntfLDS_ICAO_Certificate_Ext_SubjectAltName_DN_Incorrect = -1879047638; + ntfLDS_ICAO_Certificate_Ext_SubjectAltName_DN_Incorrect(2415919658l), /** ICAO certificate extension: Subject alt name DN non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Ext_SubjectAltName_DN_NonCompliant = -1879047637; + ntfLDS_ICAO_Certificate_Ext_SubjectAltName_DN_NonCompliant(2415919659l), /** ICAO certificate extension: Issuer alt name missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_IssuerAltName_Missed = -1879047636; + ntfLDS_ICAO_Certificate_Ext_IssuerAltName_Missed(2415919660l), /** ICAO certificate extension: Issuer alt name incorrect data */ - public static final int ntfLDS_ICAO_Certificate_Ext_IssuerAltName_IncorrectData = -1879047635; + ntfLDS_ICAO_Certificate_Ext_IssuerAltName_IncorrectData(2415919661l), /** ICAO certificate extension: Issuer alt name empty */ - public static final int ntfLDS_ICAO_Certificate_Ext_IssuerAltName_Empty = -1879047634; + ntfLDS_ICAO_Certificate_Ext_IssuerAltName_Empty(2415919662l), /** ICAO certificate extension: Issuer alt name non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Ext_IssuerAltName_NonCompliant = -1879047633; + ntfLDS_ICAO_Certificate_Ext_IssuerAltName_NonCompliant(2415919663l), /** ICAO certificate extension: Issuer alt name critical */ - public static final int ntfLDS_ICAO_Certificate_Ext_IssuerAltName_Critical = -1879047631; + ntfLDS_ICAO_Certificate_Ext_IssuerAltName_Critical(2415919665l), /** ICAO certificate extension: Issuer alt name DN empty */ - public static final int ntfLDS_ICAO_Certificate_Ext_IssuerAltName_DN_Empty = -1879047630; + ntfLDS_ICAO_Certificate_Ext_IssuerAltName_DN_Empty(2415919666l), /** ICAO certificate extension: Issuer alt name DN incorrect */ - public static final int ntfLDS_ICAO_Certificate_Ext_IssuerAltName_DN_Incorrect = -1879047629; + ntfLDS_ICAO_Certificate_Ext_IssuerAltName_DN_Incorrect(2415919667l), /** ICAO certificate extension: Issuer alt name DN non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Ext_IssuerAltName_DN_NonCompliant = -1879047628; + ntfLDS_ICAO_Certificate_Ext_IssuerAltName_DN_NonCompliant(2415919668l), /** ICAO certificate extension Doc type list: Missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_DocTypeList_Missed = -1879047627; + ntfLDS_ICAO_Certificate_Ext_DocTypeList_Missed(2415919669l), /** ICAO certificate extension Doc type list: Incorrect data */ - public static final int ntfLDS_ICAO_Certificate_Ext_DocTypeList_IncorrectData = -1879047626; + ntfLDS_ICAO_Certificate_Ext_DocTypeList_IncorrectData(2415919670l), /** ICAO certificate extension Doc type list: Version */ - public static final int ntfLDS_ICAO_Certificate_Ext_DocTypeList_Version = -1879047625; + ntfLDS_ICAO_Certificate_Ext_DocTypeList_Version(2415919671l), /** ICAO certificate extension Doc type list: Doc types */ - public static final int ntfLDS_ICAO_Certificate_Ext_DocTypeList_DocTypes = -1879047624; + ntfLDS_ICAO_Certificate_Ext_DocTypeList_DocTypes(2415919672l), /** ICAO certificate extension Doc type list: Doc types empty */ - public static final int ntfLDS_ICAO_Certificate_Ext_DocTypeList_DocTypes_Empty = -1879047623; + ntfLDS_ICAO_Certificate_Ext_DocTypeList_DocTypes_Empty(2415919673l), /** ICAO certificate extension: Dert policies incorrect data */ - public static final int ntfLDS_ICAO_Certificate_Ext_CertPolicies_IncorrectData = -1879047622; + ntfLDS_ICAO_Certificate_Ext_CertPolicies_IncorrectData(2415919674l), /** ICAO certificate extension: Cert policies empty */ - public static final int ntfLDS_ICAO_Certificate_Ext_CertPolicies_Empty = -1879047621; + ntfLDS_ICAO_Certificate_Ext_CertPolicies_Empty(2415919675l), /** ICAO certificate extension: Cert policies policy ID missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_CertPolicies_PolicyID_Missed = -1879047620; + ntfLDS_ICAO_Certificate_Ext_CertPolicies_PolicyID_Missed(2415919676l), /** ICAO certificate extension: CRL dist point missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_CRLDistPoint_Missed = -1879047619; + ntfLDS_ICAO_Certificate_Ext_CRLDistPoint_Missed(2415919677l), /** ICAO certificate extension: CRL dist point incorrect data */ - public static final int ntfLDS_ICAO_Certificate_Ext_CRLDistPoint_IncorrectData = -1879047618; + ntfLDS_ICAO_Certificate_Ext_CRLDistPoint_IncorrectData(2415919678l), /** ICAO certificate extension: CRL dist point empty */ - public static final int ntfLDS_ICAO_Certificate_Ext_CRLDistPoint_Empty = -1879047617; + ntfLDS_ICAO_Certificate_Ext_CRLDistPoint_Empty(2415919679l), /** ICAO certificate extension: CRL dist point point missed */ - public static final int ntfLDS_ICAO_Certificate_Ext_CRLDistPoint_PointMissed = -1879047616; + ntfLDS_ICAO_Certificate_Ext_CRLDistPoint_PointMissed(2415919680l), /** ICAO certificate: SN non-compliant */ - public static final int ntfLDS_ICAO_Certificate_SN_NonCompliant = -1879047615; + ntfLDS_ICAO_Certificate_SN_NonCompliant(2415919681l), /** ICAO certificate: Issuer SN non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Issuer_SN_NonCompliant = -1879047614; + ntfLDS_ICAO_Certificate_Issuer_SN_NonCompliant(2415919682l), /** ICAO certificate: Subject SN non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Subject_SN_NonCompliant = -1879047613; + ntfLDS_ICAO_Certificate_Subject_SN_NonCompliant(2415919683l), /** ICAO certificate: Issuer attribute non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Issuer_AttributeNonCompliant = -1879047612; + ntfLDS_ICAO_Certificate_Issuer_AttributeNonCompliant(2415919684l), /** ICAO certificate: Subject attribute non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Subject_AttributeNonCompliant = -1879047611; + ntfLDS_ICAO_Certificate_Subject_AttributeNonCompliant(2415919685l), /** ICAO certificate: Issuer subject country non-matching */ - public static final int ntfLDS_ICAO_Certificate_IssuerSubject_Country_NonMatching = -1879047610; + ntfLDS_ICAO_Certificate_IssuerSubject_Country_NonMatching(2415919686l), /** ICAO certificate extension: CSCA alt names non-matching */ - public static final int ntfLDS_ICAO_Certificate_Ext_CSCA_AltNames_NonMatching = -1879047609; + ntfLDS_ICAO_Certificate_Ext_CSCA_AltNames_NonMatching(2415919687l), /** ICAO certificate extension: Name change incorrect data */ - public static final int ntfLDS_ICAO_Certificate_Ext_NameChange_IncorrectData = -1879047608; + ntfLDS_ICAO_Certificate_Ext_NameChange_IncorrectData(2415919688l), /** ICAO certificate extension: Name change non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Ext_NameChange_NonCompliant = -1879047607; + ntfLDS_ICAO_Certificate_Ext_NameChange_NonCompliant(2415919689l), /** ICAO certificate extension: Name change critical */ - public static final int ntfLDS_ICAO_Certificate_Ext_NameChange_Critical = -1879047606; + ntfLDS_ICAO_Certificate_Ext_NameChange_Critical(2415919690l), /** ICAO certificate extension Doc type list: non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Ext_DocTypeList_NonCompliant = -1879047605; + ntfLDS_ICAO_Certificate_Ext_DocTypeList_NonCompliant(2415919691l), /** ICAO certificate extension Doc type list: Critical */ - public static final int ntfLDS_ICAO_Certificate_Ext_DocTypeList_Critical = -1879047604; + ntfLDS_ICAO_Certificate_Ext_DocTypeList_Critical(2415919692l), /** ICAO certificate extension: Optional critical */ - public static final int ntfLDS_ICAO_Certificate_Ext_Optional_Critical = -1879047603; + ntfLDS_ICAO_Certificate_Ext_Optional_Critical(2415919693l), /** ICAO certificate: Subject non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Subject_NonCompliant = -1879047602; + ntfLDS_ICAO_Certificate_Subject_NonCompliant(2415919694l), /** ICAO certificate: Subject common name non-compliant */ - public static final int ntfLDS_ICAO_Certificate_Subject_CommonNameNonCompliant = -1879047601; + ntfLDS_ICAO_Certificate_Subject_CommonNameNonCompliant(2415919695l), /** ICAO COM: LDS version incorrect */ - public static final int ntfLDS_ICAO_COM_LDS_Version_Incorrect = -1879048160; + ntfLDS_ICAO_COM_LDS_Version_Incorrect(2415919136l), /** ICAO COM: LDS version missing */ - public static final int ntfLDS_ICAO_COM_LDS_Version_Missing = -1879048159; + ntfLDS_ICAO_COM_LDS_Version_Missing(2415919137l), /** ICAO COM: Unicode version incorrect */ - public static final int ntfLDS_ICAO_COM_Unicode_Version_Incorrect = -1879048158; + ntfLDS_ICAO_COM_Unicode_Version_Incorrect(2415919138l), /** ICAO COM: Unicode version missing */ - public static final int ntfLDS_ICAO_COM_Unicode_Version_Missing = -1879048157; + ntfLDS_ICAO_COM_Unicode_Version_Missing(2415919139l), /** ICAO COM: DGPM incorrect */ - public static final int ntfLDS_ICAO_COM_DGPM_Incorrect = -1879048156; + ntfLDS_ICAO_COM_DGPM_Incorrect(2415919140l), /** ICAO COM: DGPM missing */ - public static final int ntfLDS_ICAO_COM_DGPM_Missing = -1879048155; + ntfLDS_ICAO_COM_DGPM_Missing(2415919141l), /** ICAO COM: DGPM unexpected */ - public static final int ntfLDS_ICAO_COM_DGPM_Unexpected = -1879048154; + ntfLDS_ICAO_COM_DGPM_Unexpected(2415919142l), /** ICAO application: LDS version unsupported */ - public static final int ntfLDS_ICAO_Application_LDSVersion_Unsupported = -1879048144; + ntfLDS_ICAO_Application_LDSVersion_Unsupported(2415919152l), /** ICAO application: Unicode version unsupported */ - public static final int ntfLDS_ICAO_Application_UnicodeVersion_Unsupported = -1879048143; + ntfLDS_ICAO_Application_UnicodeVersion_Unsupported(2415919153l), /** ICAO application: LDS version inconsistent */ - public static final int ntfLDS_ICAO_Application_LDSVersion_Inconsistent = -1879048142; + ntfLDS_ICAO_Application_LDSVersion_Inconsistent(2415919154l), /** ICAO application: Unicode version inconsistent */ - public static final int ntfLDS_ICAO_Application_UnicodeVersion_Inconsistent = -1879048141; + ntfLDS_ICAO_Application_UnicodeVersion_Inconsistent(2415919155l), /** ASN signed data: OID incorrect */ - public static final int ntfLDS_ASN_SignedData_OID_Incorrect = -1879047936; + ntfLDS_ASN_SignedData_OID_Incorrect(2415919360l), /** ASN signed data: Version incorrect */ - public static final int ntfLDS_ASN_SignedData_Version_Incorrect = -1879047776; + ntfLDS_ASN_SignedData_Version_Incorrect(2415919520l), /** ASN signed data: Content OID incorrect */ - public static final int ntfLDS_ASN_SignedData_ContentOID_Incorrect = -1879047775; + ntfLDS_ASN_SignedData_ContentOID_Incorrect(2415919521l), /** ICAO signed data: Version incorrect */ - public static final int ntfLDS_ICAO_SignedData_Version_Incorrect = -1879047935; + ntfLDS_ICAO_SignedData_Version_Incorrect(2415919361l), /** ICAO signed data: Digest algorithms empty */ - public static final int ntfLDS_ICAO_SignedData_DigestAlgorithms_Empty = -1879047934; + ntfLDS_ICAO_SignedData_DigestAlgorithms_Empty(2415919362l), /** ICAO signed data: Digest algorithms unsupported */ - public static final int ntfLDS_ICAO_SignedData_DigestAlgorithms_Unsupported = -1879047933; + ntfLDS_ICAO_SignedData_DigestAlgorithms_Unsupported(2415919363l), /** ICAO signed data: Signer infos multiple entries */ - public static final int ntfLDS_ICAO_SignedData_SignerInfos_MultipleEntries = -1879047927; + ntfLDS_ICAO_SignedData_SignerInfos_MultipleEntries(2415919369l), /** ICAO signed data: Certificates missed */ - public static final int ntfLDS_ICAO_SignedData_Certificates_Missed = -1879047760; + ntfLDS_ICAO_SignedData_Certificates_Missed(2415919536l), /** ICAO signed data: Certificates empty */ - public static final int ntfLDS_ICAO_SignedData_Certificates_Empty = -1879047759; + ntfLDS_ICAO_SignedData_Certificates_Empty(2415919537l), /** ICAO signed data: CRLs incorrect usage */ - public static final int ntfLDS_ICAO_SignedData_CRLs_IncorrectUsage = -1879047758; + ntfLDS_ICAO_SignedData_CRLs_IncorrectUsage(2415919538l), /** ICAO LDS object: Incorrect content OID */ - public static final int ntfLDS_ICAO_LDSObject_IncorrectContentOID = -1879047932; + ntfLDS_ICAO_LDSObject_IncorrectContentOID(2415919364l), /** ICAO LDS object: DG number incorrect */ - public static final int ntfLDS_ICAO_LDSObject_DGNumber_Incorrect = -1879047931; + ntfLDS_ICAO_LDSObject_DGNumber_Incorrect(2415919365l), /** ICAO LDS object: DG hash missing */ - public static final int ntfLDS_ICAO_LDSObject_DGHash_Missing = -1879047930; + ntfLDS_ICAO_LDSObject_DGHash_Missing(2415919366l), /** ICAO LDS object: DG hash extra */ - public static final int ntfLDS_ICAO_LDSObject_DGHash_Extra = -1879047929; + ntfLDS_ICAO_LDSObject_DGHash_Extra(2415919367l), /** ICAO LDS object: Version incorrect */ - public static final int ntfLDS_ICAO_LDSObject_Version_Incorrect = -1879047928; + ntfLDS_ICAO_LDSObject_Version_Incorrect(2415919368l), /** ICAO master list: Version incorrect */ - public static final int ntfLDS_ICAO_MasterList_Version_Incorrect = -1879047744; + ntfLDS_ICAO_MasterList_Version_Incorrect(2415919552l), /** ICAO Deviation list: Version incorrect */ - public static final int ntfLDS_ICAO_DeviationList_Version_Incorrect = -1879047736; + ntfLDS_ICAO_DeviationList_Version_Incorrect(2415919560l), /** BSI: Defect list version incorrect */ - public static final int ntfLDS_BSI_DefectList_Version_Incorrect = -1879047728; + ntfLDS_BSI_DefectList_Version_Incorrect(2415919568l), /** BSI: Black list version incorrect */ - public static final int ntfLDS_BSI_BlackList_Version_Incorrect = -1879047720; + ntfLDS_BSI_BlackList_Version_Incorrect(2415919576l), /** ASN signer info: Version incorrect */ - public static final int ntfLDS_ASN_SignerInfo_Version_Incorrect = -1879047926; + ntfLDS_ASN_SignerInfo_Version_Incorrect(2415919370l), /** ASN signer info: SID incorrect choice */ - public static final int ntfLDS_ASN_SignerInfo_SID_IncorrectChoice = -1879047925; + ntfLDS_ASN_SignerInfo_SID_IncorrectChoice(2415919371l), /** ASN signer info: SID digest algorithm not listed */ - public static final int ntfLDS_ASN_SignerInfo_SID_DigestAlgorithmNotListed = -1879047924; + ntfLDS_ASN_SignerInfo_SID_DigestAlgorithmNotListed(2415919372l), /** ASN signer info: Message digest attr missing */ - public static final int ntfLDS_ASN_SignerInfo_MessageDigestAttr_Missing = -1879047923; + ntfLDS_ASN_SignerInfo_MessageDigestAttr_Missing(2415919373l), /** ASN signer info: Message digest attr data */ - public static final int ntfLDS_ASN_SignerInfo_MessageDigestAttr_Data = -1879047922; + ntfLDS_ASN_SignerInfo_MessageDigestAttr_Data(2415919374l), /** ASN signer info: Message digest attr value */ - public static final int ntfLDS_ASN_SignerInfo_MessageDigestAttr_Value = -1879047921; + ntfLDS_ASN_SignerInfo_MessageDigestAttr_Value(2415919375l), /** ASN signer info: Content type attr missing */ - public static final int ntfLDS_ASN_SignerInfo_ContentTypeAttr_Missing = -1879047920; + ntfLDS_ASN_SignerInfo_ContentTypeAttr_Missing(2415919376l), /** ASN signer info: Content type attr data */ - public static final int ntfLDS_ASN_SignerInfo_ContentTypeAttr_Data = -1879047919; + ntfLDS_ASN_SignerInfo_ContentTypeAttr_Data(2415919377l), /** ASN signer info: Content type attr value */ - public static final int ntfLDS_ASN_SignerInfo_ContentTypeAttr_Value = -1879047918; + ntfLDS_ASN_SignerInfo_ContentTypeAttr_Value(2415919378l), /** ASN signer info: Signing time attr missing */ - public static final int ntfLDS_ASN_SignerInfo_SigningTimeAttr_Missing = -1879047909; + ntfLDS_ASN_SignerInfo_SigningTimeAttr_Missing(2415919387l), /** ASN signer info: Signing time attr data */ - public static final int ntfLDS_ASN_SignerInfo_SigningTimeAttr_Data = -1879047908; + ntfLDS_ASN_SignerInfo_SigningTimeAttr_Data(2415919388l), /** ASN signer info: Signing time attr value */ - public static final int ntfLDS_ASN_SignerInfo_SigningTimeAttr_Value = -1879047907; + ntfLDS_ASN_SignerInfo_SigningTimeAttr_Value(2415919389l), /** ASN signer info: List content description attr missing */ - public static final int ntfLDS_ASN_SignerInfo_ListContentDescriptionAttr_Missing = -1879047906; + ntfLDS_ASN_SignerInfo_ListContentDescriptionAttr_Missing(2415919390l), /** ASN signer info: List content description attr data */ - public static final int ntfLDS_ASN_SignerInfo_ListContentDescriptionAttr_Data = -1879047905; + ntfLDS_ASN_SignerInfo_ListContentDescriptionAttr_Data(2415919391l), /** Auth signer info: Certificate validity */ - public static final int ntfLDS_Auth_SignerInfo_Certificate_Validity = -1879047915; + ntfLDS_Auth_SignerInfo_Certificate_Validity(2415919381l), /** Auth signer info: Certificate root is not trusted */ - public static final int ntfLDS_Auth_SignerInfo_Certificate_RootIsNotTrusted = -1879047914; + ntfLDS_Auth_SignerInfo_Certificate_RootIsNotTrusted(2415919382l), /** Auth signer info: Certificate cannot find CSCA */ - public static final int ntfLDS_Auth_SignerInfo_Certificate_CantFindCSCA = -1879047913; + ntfLDS_Auth_SignerInfo_Certificate_CantFindCSCA(2415919383l), /** Auth signer info: Certificate revoked */ - public static final int ntfLDS_Auth_SignerInfo_Certificate_Revoked = -1879047912; + ntfLDS_Auth_SignerInfo_Certificate_Revoked(2415919384l), /** Auth signer info: Certificate signature invalid */ - public static final int ntfLDS_Auth_SignerInfo_Certificate_SignatureInvalid = -1879047911; + ntfLDS_Auth_SignerInfo_Certificate_SignatureInvalid(2415919385l), /** Notification: Unsupported image format */ - public static final int ntfLDS_UnsupportedImageFormat = -1879047910; + ntfLDS_UnsupportedImageFormat(2415919386l), /** MRZ: Document type unknown */ - public static final int ntfLDS_MRZ_DocumentType_Unknown = 139272; + ntfLDS_MRZ_DocumentType_Unknown(139272l), /** MRZ: Issuing state syntax error */ - public static final int ntfLDS_MRZ_IssuingState_SyntaxError = 139273; + ntfLDS_MRZ_IssuingState_SyntaxError(139273l), /** MRZ: Name is void */ - public static final int ntfLDS_MRZ_Name_IsVoid = 139274; + ntfLDS_MRZ_Name_IsVoid(139274l), /** MRZ: Number incorrect checksum */ - public static final int ntfLDS_MRZ_Number_IncorrectChecksum = 139277; + ntfLDS_MRZ_Number_IncorrectChecksum(139277l), /** MRZ: Nationality syntax error */ - public static final int ntfLDS_MRZ_Nationality_SyntaxError = 139278; + ntfLDS_MRZ_Nationality_SyntaxError(139278l), /** MRZ: DOB syntax error */ - public static final int ntfLDS_MRZ_DOB_SyntaxError = 139279; + ntfLDS_MRZ_DOB_SyntaxError(139279l), /** MRZ: DOB error */ - public static final int ntfLDS_MRZ_DOB_Error = 139280; + ntfLDS_MRZ_DOB_Error(139280l), /** MRZ: DOB incorrect checksum */ - public static final int ntfLDS_MRZ_DOB_IncorrectChecksum = 139281; + ntfLDS_MRZ_DOB_IncorrectChecksum(139281l), /** MRZ: Sex incorrect */ - public static final int ntfLDS_MRZ_Sex_Incorrect = 139282; + ntfLDS_MRZ_Sex_Incorrect(139282l), /** MRZ: DOE syntax error */ - public static final int ntfLDS_MRZ_DOE_SyntaxError = 139283; + ntfLDS_MRZ_DOE_SyntaxError(139283l), /** MRZ: DOE error */ - public static final int ntfLDS_MRZ_DOE_Error = 139284; + ntfLDS_MRZ_DOE_Error(139284l), /** MRZ: DOE incorrect checksum */ - public static final int ntfLDS_MRZ_DOE_IncorrectChecksum = 139285; + ntfLDS_MRZ_DOE_IncorrectChecksum(139285l), /** MRZ: Optional data incorrect checksum */ - public static final int ntfLDS_MRZ_OptionalData_IncorrectChecksum = 139286; + ntfLDS_MRZ_OptionalData_IncorrectChecksum(139286l), /** MRZ: Incorrect checksum */ - public static final int ntfLDS_MRZ_IncorrectChecksum = 139287; + ntfLDS_MRZ_IncorrectChecksum(139287l), /** MRZ: Incorrect */ - public static final int ntfLDS_MRZ_Incorrect = 139288; + ntfLDS_MRZ_Incorrect(139288l), /** Biometrics: Format owner missing */ - public static final int ntfLDS_Biometrics_FormatOwner_Missing = -1878982656; + ntfLDS_Biometrics_FormatOwner_Missing(2415984640l), /** Biometrics: Format owner incorrect */ - public static final int ntfLDS_Biometrics_FormatOwner_Incorrect = -1878917120; + ntfLDS_Biometrics_FormatOwner_Incorrect(2416050176l), /** Biometrics: Format type missing */ - public static final int ntfLDS_Biometrics_FormatType_Missing = -1878851584; + ntfLDS_Biometrics_FormatType_Missing(2416115712l), /** Biometrics: Format type incorrect */ - public static final int ntfLDS_Biometrics_FormatType_Incorrect = -1878786048; + ntfLDS_Biometrics_FormatType_Incorrect(2416181248l), /** Biometrics: Type incorrect */ - public static final int ntfLDS_Biometrics_Type_Incorrect = -1878720512; + ntfLDS_Biometrics_Type_Incorrect(2416246784l), /** Biometrics: Subtype missing */ - public static final int ntfLDS_Biometrics_SubType_Missing = -1878654976; + ntfLDS_Biometrics_SubType_Missing(2416312320l), /** Biometrics: Subtype incorrect */ - public static final int ntfLDS_Biometrics_SubType_Incorrect = -1878589440; + ntfLDS_Biometrics_SubType_Incorrect(2416377856l), /** Biometrics: BDB image missing */ - public static final int ntfLDS_Biometrics_BDB_Image_Missing = -1878523904; + ntfLDS_Biometrics_BDB_Image_Missing(2416443392l), /** Biometrics: BDB format ID incorrect */ - public static final int ntfLDS_Biometrics_BDB_FormatID_Incorrect = -1878458368; + ntfLDS_Biometrics_BDB_FormatID_Incorrect(2416508928l), /** Biometrics: BDB version incorrect */ - public static final int ntfLDS_Biometrics_BDB_Version_Incorrect = -1878392832; + ntfLDS_Biometrics_BDB_Version_Incorrect(2416574464l), /** Biometrics: BDB data length incorrect */ - public static final int ntfLDS_Biometrics_BDB_DataLength_Incorrect = -1878327296; + ntfLDS_Biometrics_BDB_DataLength_Incorrect(2416640000l), /** Biometrics: BDB Data Gender */ - public static final int ntfLDS_Biometrics_BDB_Data_Gender = -1877999616; + ntfLDS_Biometrics_BDB_Data_Gender(2416967680l), /** Biometrics: BDB Data Eye Color */ - public static final int ntfLDS_Biometrics_BDB_Data_EyeColor = -1877934080; + ntfLDS_Biometrics_BDB_Data_EyeColor(2417033216l), /** Biometrics: BDB Data Hair Color */ - public static final int ntfLDS_Biometrics_BDB_Data_HairColor = -1877868544; + ntfLDS_Biometrics_BDB_Data_HairColor(2417098752l), /** Biometrics: BDB Data Pose Angle Yaw */ - public static final int ntfLDS_Biometrics_BDB_Data_PoseAngle_Yaw = -1877803008; + ntfLDS_Biometrics_BDB_Data_PoseAngle_Yaw(2417164288l), /** Biometrics: BDB Data Pose Angle Pitch */ - public static final int ntfLDS_Biometrics_BDB_Data_PoseAngle_Pitch = -1877737472; + ntfLDS_Biometrics_BDB_Data_PoseAngle_Pitch(2417229824l), /** Biometrics: BDB Data Pose Angle Roll */ - public static final int ntfLDS_Biometrics_BDB_Data_PoseAngle_Roll = -1877671936; + ntfLDS_Biometrics_BDB_Data_PoseAngle_Roll(2417295360l), /** Biometrics: BDB Data Pose Angle U Yaw */ - public static final int ntfLDS_Biometrics_BDB_Data_PoseAngleU_Yaw = -1877606400; + ntfLDS_Biometrics_BDB_Data_PoseAngleU_Yaw(2417360896l), /** Biometrics: BDB Data Pose Angle U Pitch */ - public static final int ntfLDS_Biometrics_BDB_Data_PoseAngleU_Pitch = -1877540864; + ntfLDS_Biometrics_BDB_Data_PoseAngleU_Pitch(2417426432l), /** Biometrics: BDB Data Pose Angle U Roll */ - public static final int ntfLDS_Biometrics_BDB_Data_PoseAngleU_Roll = -1877475328; + ntfLDS_Biometrics_BDB_Data_PoseAngleU_Roll(2417491968l), /** Biometrics: BDB Data Face Image Type */ - public static final int ntfLDS_Biometrics_BDB_Data_FaceImageType = -1877409792; + ntfLDS_Biometrics_BDB_Data_FaceImageType(2417557504l), /** Biometrics: BDB Data Image Data Type */ - public static final int ntfLDS_Biometrics_BDB_Data_ImageDataType = -1877344256; + ntfLDS_Biometrics_BDB_Data_ImageDataType(2417623040l), /** SI: PACE Info Unsupported Std Parameters */ - public static final int ntfLDS_SI_PACE_Info_UnsupportedStdParameters = -1862270976; + ntfLDS_SI_PACE_Info_UnsupportedStdParameters(2432696320l), /** SI: PACE Info Deprecated Version */ - public static final int ntfLDS_SI_PACE_Info_DeprecatedVersion = -1862270975; + ntfLDS_SI_PACE_Info_DeprecatedVersion(2432696321l), /** SI: PACE Domain Params Using Std Ref */ - public static final int ntfLDS_SI_PACE_DomainParams_UsingStdRef = -1862270974; + ntfLDS_SI_PACE_DomainParams_UsingStdRef(2432696322l), /** SI: PACE Domain Params Unsupported Algorithm */ - public static final int ntfLDS_SI_PACE_DomainParams_UnsupportedAlgorithm = -1862270973; + ntfLDS_SI_PACE_DomainParams_UnsupportedAlgorithm(2432696323l), /** SI: CA Info Incorrect Version */ - public static final int ntfLDS_SI_CA_Info_IncorrectVersion = -1862270972; + ntfLDS_SI_CA_Info_IncorrectVersion(2432696324l), /** SI: CA PublicKey Unsupported Algorithm */ - public static final int ntfLDS_SI_CA_PublicKey_UnsupportedAlgorithm = -1862270971; + ntfLDS_SI_CA_PublicKey_UnsupportedAlgorithm(2432696325l), /** SI: CA Domain Params Unsupported Algorithm */ - public static final int ntfLDS_SI_CA_DomainParams_UnsupportedAlgorithm = -1862270970; + ntfLDS_SI_CA_DomainParams_UnsupportedAlgorithm(2432696326l), /** SI: TA Info Incorrect Version */ - public static final int ntfLDS_SI_TA_Info_IncorrectVersion = -1862270969; + ntfLDS_SI_TA_Info_IncorrectVersion(2432696327l), /** SI: TA Info File ID For Version 2 */ - public static final int ntfLDS_SI_TA_Info_FileIDForVersion2 = -1862270968; + ntfLDS_SI_TA_Info_FileIDForVersion2(2432696328l), /** SI: eID Security Unsupported Digest Algorithm */ - public static final int ntfLDS_SI_eIDSecurity_UnsupportedDigestAlgorithm = -1862270967; + ntfLDS_SI_eIDSecurity_UnsupportedDigestAlgorithm(2432696329l), /** SI: RI info incorrect version */ - public static final int ntfLDS_SI_RI_Info_IncorrectVersion = -1862270966; + ntfLDS_SI_RI_Info_IncorrectVersion(2432696330l), /** SI: RI domain params unsupported algorithm */ - public static final int ntfLDS_SI_RI_DomainParams_UnsupportedAlgorithm = -1862270965; + ntfLDS_SI_RI_DomainParams_UnsupportedAlgorithm(2432696331l), /** SI: AA info incorrect version */ - public static final int ntfLDS_SI_AA_Info_IncorrectVersion = -1862270964; + ntfLDS_SI_AA_Info_IncorrectVersion(2432696332l), /** SI: AA info unsupported algorithm */ - public static final int ntfLDS_SI_AA_Info_UnsupportedAlgorithm = -1862270963; + ntfLDS_SI_AA_Info_UnsupportedAlgorithm(2432696333l), /** SI: AA info inconsistent algorithm reference */ - public static final int ntfLDS_SI_AA_Info_InconsistentAlgorithmReference = -1862270962; + ntfLDS_SI_AA_Info_InconsistentAlgorithmReference(2432696334l), /** SI: PACE Info Not Available */ - public static final int ntfLDS_SI_Storage_PACE_Info_NotAvailable = -1862270720; + ntfLDS_SI_Storage_PACE_Info_NotAvailable(2432696576l), /** SI: PACE Info No Std Parameters */ - public static final int ntfLDS_SI_Storage_PACE_Info_NoStdParameters = -1862270719; + ntfLDS_SI_Storage_PACE_Info_NoStdParameters(2432696577l), /** SI: PACE Info No Matching Domain Params */ - public static final int ntfLDS_SI_Storage_PACE_Info_NoMatchingDomainParams = -1862270718; + ntfLDS_SI_Storage_PACE_Info_NoMatchingDomainParams(2432696578l), /** SI: CA Info Not Available */ - public static final int ntfLDS_SI_Storage_CA_Info_NotAvailable = -1862270717; + ntfLDS_SI_Storage_CA_Info_NotAvailable(2432696579l), /** SI: CA Domain Params No Required Option */ - public static final int ntfLDS_SI_Storage_CA_DomainParams_NoRequiredOption = -1862270716; + ntfLDS_SI_Storage_CA_DomainParams_NoRequiredOption(2432696580l), /** SI: CA Domain Params Not Available */ - public static final int ntfLDS_SI_Storage_CA_DomainParams_NotAvailable = -1862270715; + ntfLDS_SI_Storage_CA_DomainParams_NotAvailable(2432696581l), /** SI: CA Anonymous Infos */ - public static final int ntfLDS_SI_Storage_CA_AnonymousInfos = -1862270714; + ntfLDS_SI_Storage_CA_AnonymousInfos(2432696582l), /** SI: CA Info No Matching Domain Params */ - public static final int ntfLDS_SI_Storage_CA_Info_NoMatchingDomainParams = -1862270713; + ntfLDS_SI_Storage_CA_Info_NoMatchingDomainParams(2432696583l), /** SI: CA Info No Matching Public Key */ - public static final int ntfLDS_SI_Storage_CA_Info_NoMatchingPublicKey = -1862270712; + ntfLDS_SI_Storage_CA_Info_NoMatchingPublicKey(2432696584l), /** SI: CA Incorrect Infos Quantity */ - public static final int ntfLDS_SI_Storage_CA_IncorrectInfosQuantity = -1862270711; + ntfLDS_SI_Storage_CA_IncorrectInfosQuantity(2432696585l), /** SI: TA Info Not Available */ - public static final int ntfLDS_SI_Storage_TA_Info_NotAvailable = -1862270710; + ntfLDS_SI_Storage_TA_Info_NotAvailable(2432696586l), /** SI: Card Info Locator Multiple Entries */ - public static final int ntfLDS_SI_Storage_CardInfoLocator_MultipleEntries = -1862270709; + ntfLDS_SI_Storage_CardInfoLocator_MultipleEntries(2432696587l), /** SI: eID Security Info Multiple Entries */ - public static final int ntfLDS_SI_Storage_eIDSecurityInfo_MultipleEntries = -1862270708; + ntfLDS_SI_Storage_eIDSecurityInfo_MultipleEntries(2432696588l), /** SI: Privileged TI Multiple Entries */ - public static final int ntfLDS_SI_Storage_PrivilegedTI_MultipleEntries = -1862270707; + ntfLDS_SI_Storage_PrivilegedTI_MultipleEntries(2432696589l), /** SI: Privileged TI Incorrect Usage */ - public static final int ntfLDS_SI_Storage_PrivilegedTI_IncorrectUsage = -1862270706; + ntfLDS_SI_Storage_PrivilegedTI_IncorrectUsage(2432696590l), /** SI: RI domain params multiple entries */ - public static final int ntfLDS_SI_Storage_RI_DomainParams_MultipleEntries = -1862270705; + ntfLDS_SI_Storage_RI_DomainParams_MultipleEntries(2432696591l), /** SI: Storage PACE Info Non Consistant */ - public static final int ntfLDS_SI_Storage_PACEInfos_NonConsistant = -1862270704; + ntfLDS_SI_Storage_PACEInfos_NonConsistant(2432696592l), /** CV Certificate: Profile incorrect version */ - public static final int ntfLDS_CVCertificate_Profile_IncorrectVersion = -1862270463; + ntfLDS_CVCertificate_Profile_IncorrectVersion(2432696833l), /** CV Certificate: Validity */ - public static final int ntfLDS_CVCertificate_Validity = -1862270462; + ntfLDS_CVCertificate_Validity(2432696834l), /** CV Certificate: Non CVCA domain parameters */ - public static final int ntfLDS_CVCertificate_NonCVCADomainParameters = -1862270461; + ntfLDS_CVCertificate_NonCVCADomainParameters(2432696835l), /** CV Certificate: Private key incorrect version */ - public static final int ntfLDS_CV_Certificate_PrivateKey_IncorrectVersion = -1862270460; + ntfLDS_CV_Certificate_PrivateKey_IncorrectVersion(2432696836l), /** TA: PACE static binding used */ - public static final int ntfLDS_TA_PACEStaticBindingUsed = -1862270208; + ntfLDS_TA_PACEStaticBindingUsed(2432697088l), /** Auth ML signer info: Certificate validity */ - public static final int ntfLDS_Auth_MLSignerInfo_Certificate_Validity = -1845493483; + ntfLDS_Auth_MLSignerInfo_Certificate_Validity(2449473813l), /** Auth ML signer info: Certificate root is not trusted */ - public static final int ntfLDS_Auth_MLSignerInfo_Certificate_RootIsNotTrusted = -1845493482; + ntfLDS_Auth_MLSignerInfo_Certificate_RootIsNotTrusted(2449473814l), /** Auth ML signer info: Certificate cannot find CSCA */ - public static final int ntfLDS_Auth_MLSignerInfo_Certificate_CantFindCSCA = -1845493481; + ntfLDS_Auth_MLSignerInfo_Certificate_CantFindCSCA(2449473815l), /** Auth ML signer info: Certificate revoked */ - public static final int ntfLDS_Auth_MLSignerInfo_Certificate_Revoked = -1845493480; + ntfLDS_Auth_MLSignerInfo_Certificate_Revoked(2449473816l), /** Auth ML signer info: Certificate signature invalid */ - public static final int ntfLDS_Auth_MLSignerInfo_Certificate_SignatureInvalid = -1845493479; + ntfLDS_Auth_MLSignerInfo_Certificate_SignatureInvalid(2449473817l), /** Country Codes from certificate chain don't match */ - public static final int ntfLDS_ICAO_Certificate_Chain_Country_NonMatching = -1879047600; + ntfLDS_ICAO_Certificate_Chain_Country_NonMatching(2415919696l), /** Country Codes from certificate and visual MRZ don't match */ - public static final int ntfLDS_ICAO_Certificate_VisualMrz_Country_NonMatching = -1879047599; + ntfLDS_ICAO_Certificate_VisualMrz_Country_NonMatching(2415919697l), /** Incorrect MRZ, country code doesn't match codes from Visual MRZ */ - public static final int ntfLDS_MRZ_CountryCode_VisualMrz_NonMatching = 139289; + ntfLDS_MRZ_CountryCode_VisualMrz_NonMatching(139289l), /** Country Codes from certificate and DG1 MRZ don't match */ - public static final int ntfLDS_ICAO_Certificate_MRZ_Country_NonMatching = -1879047598; + ntfLDS_ICAO_Certificate_MRZ_Country_NonMatching(2415919698l); + + private Long value; + + ParsingNotificationCodes(Long value) { + this.value = value; + } + + public Long getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ParsingNotificationCodes fromValue(Long value) { + for (ParsingNotificationCodes b : ParsingNotificationCodes.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ParsingNotificationCodes enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ParsingNotificationCodes read(final JsonReader jsonReader) throws IOException { + Long value = jsonReader.nextLong(); + return ParsingNotificationCodes.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Long value = jsonElement.getAsLong(); + ParsingNotificationCodes.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/PerDocumentConfig.java b/client/src/main/generated/com/regula/documentreader/webclient/model/PerDocumentConfig.java index 0804fbfc..eb17547a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/PerDocumentConfig.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/PerDocumentConfig.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,31 +12,51 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** PerDocumentConfig */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class PerDocumentConfig { public static final String SERIALIZED_NAME_DOC_I_D = "docID"; @SerializedName(SERIALIZED_NAME_DOC_I_D) - private List docID = null; + @javax.annotation.Nullable + private List docID; public static final String SERIALIZED_NAME_EXCLUDE_AUTH_CHECKS = "excludeAuthChecks"; @SerializedName(SERIALIZED_NAME_EXCLUDE_AUTH_CHECKS) + @javax.annotation.Nullable private Integer excludeAuthChecks; - public PerDocumentConfig withDocID(List docID) { + public PerDocumentConfig() {} + + public PerDocumentConfig docID(@javax.annotation.Nullable List docID) { this.docID = docID; return this; } public PerDocumentConfig addDocIDItem(Integer docIDItem) { if (this.docID == null) { - this.docID = new ArrayList(); + this.docID = new ArrayList<>(); } this.docID.add(docIDItem); return this; @@ -52,11 +72,11 @@ public List getDocID() { return docID; } - public void setDocID(List docID) { + public void setDocID(@javax.annotation.Nullable List docID) { this.docID = docID; } - public PerDocumentConfig withExcludeAuthChecks(Integer excludeAuthChecks) { + public PerDocumentConfig excludeAuthChecks(@javax.annotation.Nullable Integer excludeAuthChecks) { this.excludeAuthChecks = excludeAuthChecks; return this; } @@ -71,12 +91,12 @@ public Integer getExcludeAuthChecks() { return excludeAuthChecks; } - public void setExcludeAuthChecks(Integer excludeAuthChecks) { + public void setExcludeAuthChecks(@javax.annotation.Nullable Integer excludeAuthChecks) { this.excludeAuthChecks = excludeAuthChecks; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -106,10 +126,111 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("docID"); + openapiFields.add("excludeAuthChecks"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PerDocumentConfig + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PerDocumentConfig.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in PerDocumentConfig is not found in the empty JSON string", + PerDocumentConfig.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PerDocumentConfig.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `PerDocumentConfig` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("docID") != null + && !jsonObj.get("docID").isJsonNull() + && !jsonObj.get("docID").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `docID` to be an array in the JSON string but got `%s`", + jsonObj.get("docID").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PerDocumentConfig.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PerDocumentConfig' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(PerDocumentConfig.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, PerDocumentConfig value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PerDocumentConfig read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of PerDocumentConfig given an JSON string + * + * @param jsonString JSON string + * @return An instance of PerDocumentConfig + * @throws IOException if the JSON string is invalid with respect to PerDocumentConfig + */ + public static PerDocumentConfig fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PerDocumentConfig.class); + } + + /** + * Convert an instance of PerDocumentConfig to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentResult.java index 421e6904..e4ad42be 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,59 +12,98 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** PhotoIdentResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class PhotoIdentResult extends AuthenticityCheckResultItem { public static final String SERIALIZED_NAME_LIGHT_INDEX = "LightIndex"; @SerializedName(SERIALIZED_NAME_LIGHT_INDEX) - private Integer lightIndex; + @javax.annotation.Nonnull + private Light lightIndex; public static final String SERIALIZED_NAME_AREA = "Area"; @SerializedName(SERIALIZED_NAME_AREA) + @javax.annotation.Nonnull private RectangleCoordinates area; public static final String SERIALIZED_NAME_SOURCE_IMAGE = "SourceImage"; @SerializedName(SERIALIZED_NAME_SOURCE_IMAGE) + @javax.annotation.Nonnull private ImageData sourceImage; public static final String SERIALIZED_NAME_RESULT_IMAGES = "ResultImages"; @SerializedName(SERIALIZED_NAME_RESULT_IMAGES) + @javax.annotation.Nonnull private RawImageContainerList resultImages; public static final String SERIALIZED_NAME_FIELD_TYPES_COUNT = "FieldTypesCount"; @SerializedName(SERIALIZED_NAME_FIELD_TYPES_COUNT) + @javax.annotation.Nullable private Integer fieldTypesCount; public static final String SERIALIZED_NAME_FIELD_TYPES_LIST = "FieldTypesList"; @SerializedName(SERIALIZED_NAME_FIELD_TYPES_LIST) - private List fieldTypesList = null; + @javax.annotation.Nullable + private List fieldTypesList; public static final String SERIALIZED_NAME_STEP = "Step"; @SerializedName(SERIALIZED_NAME_STEP) + @javax.annotation.Nullable private Integer step; public static final String SERIALIZED_NAME_ANGLE = "Angle"; @SerializedName(SERIALIZED_NAME_ANGLE) + @javax.annotation.Nullable private Integer angle; + public static final String SERIALIZED_NAME_RESERVED1 = "Reserved1"; + + @SerializedName(SERIALIZED_NAME_RESERVED1) + @javax.annotation.Nullable + private Integer reserved1; + + public static final String SERIALIZED_NAME_RESERVED2 = "Reserved2"; + + @SerializedName(SERIALIZED_NAME_RESERVED2) + @javax.annotation.Nullable + private Integer reserved2; + public static final String SERIALIZED_NAME_RESERVED3 = "Reserved3"; @SerializedName(SERIALIZED_NAME_RESERVED3) + @javax.annotation.Nullable private Integer reserved3; - public PhotoIdentResult withLightIndex(Integer lightIndex) { + public PhotoIdentResult() {} + + public PhotoIdentResult lightIndex(@javax.annotation.Nonnull Light lightIndex) { this.lightIndex = lightIndex; return this; } @@ -74,16 +113,16 @@ public PhotoIdentResult withLightIndex(Integer lightIndex) { * * @return lightIndex */ - @javax.annotation.Nullable - public Integer getLightIndex() { + @javax.annotation.Nonnull + public Light getLightIndex() { return lightIndex; } - public void setLightIndex(Integer lightIndex) { + public void setLightIndex(@javax.annotation.Nonnull Light lightIndex) { this.lightIndex = lightIndex; } - public PhotoIdentResult withArea(RectangleCoordinates area) { + public PhotoIdentResult area(@javax.annotation.Nonnull RectangleCoordinates area) { this.area = area; return this; } @@ -93,16 +132,16 @@ public PhotoIdentResult withArea(RectangleCoordinates area) { * * @return area */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public RectangleCoordinates getArea() { return area; } - public void setArea(RectangleCoordinates area) { + public void setArea(@javax.annotation.Nonnull RectangleCoordinates area) { this.area = area; } - public PhotoIdentResult withSourceImage(ImageData sourceImage) { + public PhotoIdentResult sourceImage(@javax.annotation.Nonnull ImageData sourceImage) { this.sourceImage = sourceImage; return this; } @@ -112,16 +151,17 @@ public PhotoIdentResult withSourceImage(ImageData sourceImage) { * * @return sourceImage */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public ImageData getSourceImage() { return sourceImage; } - public void setSourceImage(ImageData sourceImage) { + public void setSourceImage(@javax.annotation.Nonnull ImageData sourceImage) { this.sourceImage = sourceImage; } - public PhotoIdentResult withResultImages(RawImageContainerList resultImages) { + public PhotoIdentResult resultImages( + @javax.annotation.Nonnull RawImageContainerList resultImages) { this.resultImages = resultImages; return this; } @@ -131,16 +171,16 @@ public PhotoIdentResult withResultImages(RawImageContainerList resultImages) { * * @return resultImages */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public RawImageContainerList getResultImages() { return resultImages; } - public void setResultImages(RawImageContainerList resultImages) { + public void setResultImages(@javax.annotation.Nonnull RawImageContainerList resultImages) { this.resultImages = resultImages; } - public PhotoIdentResult withFieldTypesCount(Integer fieldTypesCount) { + public PhotoIdentResult fieldTypesCount(@javax.annotation.Nullable Integer fieldTypesCount) { this.fieldTypesCount = fieldTypesCount; return this; } @@ -155,18 +195,18 @@ public Integer getFieldTypesCount() { return fieldTypesCount; } - public void setFieldTypesCount(Integer fieldTypesCount) { + public void setFieldTypesCount(@javax.annotation.Nullable Integer fieldTypesCount) { this.fieldTypesCount = fieldTypesCount; } - public PhotoIdentResult withFieldTypesList(List fieldTypesList) { + public PhotoIdentResult fieldTypesList(@javax.annotation.Nullable List fieldTypesList) { this.fieldTypesList = fieldTypesList; return this; } public PhotoIdentResult addFieldTypesListItem(Integer fieldTypesListItem) { if (this.fieldTypesList == null) { - this.fieldTypesList = new ArrayList(); + this.fieldTypesList = new ArrayList<>(); } this.fieldTypesList.add(fieldTypesListItem); return this; @@ -182,11 +222,11 @@ public List getFieldTypesList() { return fieldTypesList; } - public void setFieldTypesList(List fieldTypesList) { + public void setFieldTypesList(@javax.annotation.Nullable List fieldTypesList) { this.fieldTypesList = fieldTypesList; } - public PhotoIdentResult withStep(Integer step) { + public PhotoIdentResult step(@javax.annotation.Nullable Integer step) { this.step = step; return this; } @@ -201,11 +241,11 @@ public Integer getStep() { return step; } - public void setStep(Integer step) { + public void setStep(@javax.annotation.Nullable Integer step) { this.step = step; } - public PhotoIdentResult withAngle(Integer angle) { + public PhotoIdentResult angle(@javax.annotation.Nullable Integer angle) { this.angle = angle; return this; } @@ -220,11 +260,49 @@ public Integer getAngle() { return angle; } - public void setAngle(Integer angle) { + public void setAngle(@javax.annotation.Nullable Integer angle) { this.angle = angle; } - public PhotoIdentResult withReserved3(Integer reserved3) { + public PhotoIdentResult reserved1(@javax.annotation.Nullable Integer reserved1) { + this.reserved1 = reserved1; + return this; + } + + /** + * Get reserved1 + * + * @return reserved1 + */ + @javax.annotation.Nullable + public Integer getReserved1() { + return reserved1; + } + + public void setReserved1(@javax.annotation.Nullable Integer reserved1) { + this.reserved1 = reserved1; + } + + public PhotoIdentResult reserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; + return this; + } + + /** + * Get reserved2 + * + * @return reserved2 + */ + @javax.annotation.Nullable + public Integer getReserved2() { + return reserved2; + } + + public void setReserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; + } + + public PhotoIdentResult reserved3(@javax.annotation.Nullable Integer reserved3) { this.reserved3 = reserved3; return this; } @@ -239,12 +317,12 @@ public Integer getReserved3() { return reserved3; } - public void setReserved3(Integer reserved3) { + public void setReserved3(@javax.annotation.Nullable Integer reserved3) { this.reserved3 = reserved3; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -260,6 +338,8 @@ public boolean equals(java.lang.Object o) { && Objects.equals(this.fieldTypesList, photoIdentResult.fieldTypesList) && Objects.equals(this.step, photoIdentResult.step) && Objects.equals(this.angle, photoIdentResult.angle) + && Objects.equals(this.reserved1, photoIdentResult.reserved1) + && Objects.equals(this.reserved2, photoIdentResult.reserved2) && Objects.equals(this.reserved3, photoIdentResult.reserved3) && super.equals(o); } @@ -275,6 +355,8 @@ public int hashCode() { fieldTypesList, step, angle, + reserved1, + reserved2, reserved3, super.hashCode()); } @@ -292,6 +374,8 @@ public String toString() { sb.append(" fieldTypesList: ").append(toIndentedString(fieldTypesList)).append("\n"); sb.append(" step: ").append(toIndentedString(step)).append("\n"); sb.append(" angle: ").append(toIndentedString(angle)).append("\n"); + sb.append(" reserved1: ").append(toIndentedString(reserved1)).append("\n"); + sb.append(" reserved2: ").append(toIndentedString(reserved2)).append("\n"); sb.append(" reserved3: ").append(toIndentedString(reserved3)).append("\n"); sb.append("}"); return sb.toString(); @@ -300,10 +384,129 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("ElementResult"); + openapiFields.add("ElementDiagnose"); + openapiFields.add("PercentValue"); + openapiFields.add("LightIndex"); + openapiFields.add("Area"); + openapiFields.add("SourceImage"); + openapiFields.add("ResultImages"); + openapiFields.add("FieldTypesCount"); + openapiFields.add("FieldTypesList"); + openapiFields.add("Step"); + openapiFields.add("Angle"); + openapiFields.add("Reserved1"); + openapiFields.add("Reserved2"); + openapiFields.add("Reserved3"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("LightIndex"); + openapiRequiredFields.add("Area"); + openapiRequiredFields.add("SourceImage"); + openapiRequiredFields.add("ResultImages"); + openapiRequiredFields.add("Type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PhotoIdentResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PhotoIdentResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in PhotoIdentResult is not found in the empty JSON string", + PhotoIdentResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PhotoIdentResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `PhotoIdentResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : PhotoIdentResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PhotoIdentResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PhotoIdentResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(PhotoIdentResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, PhotoIdentResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PhotoIdentResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of PhotoIdentResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of PhotoIdentResult + * @throws IOException if the JSON string is invalid with respect to PhotoIdentResult + */ + public static PhotoIdentResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PhotoIdentResult.class); + } + + /** + * Convert an instance of PhotoIdentResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Point.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Point.java index e17b6824..ebe035d8 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Point.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Point.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,22 +12,42 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Point */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class Point { public static final String SERIALIZED_NAME_X = "x"; @SerializedName(SERIALIZED_NAME_X) + @javax.annotation.Nonnull private Integer x; public static final String SERIALIZED_NAME_Y = "y"; @SerializedName(SERIALIZED_NAME_Y) + @javax.annotation.Nonnull private Integer y; - public Point withX(Integer x) { + public Point() {} + + public Point x(@javax.annotation.Nonnull Integer x) { this.x = x; return this; } @@ -37,16 +57,16 @@ public Point withX(Integer x) { * * @return x */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getX() { return x; } - public void setX(Integer x) { + public void setX(@javax.annotation.Nonnull Integer x) { this.x = x; } - public Point withY(Integer y) { + public Point y(@javax.annotation.Nonnull Integer y) { this.y = y; return this; } @@ -56,17 +76,17 @@ public Point withY(Integer y) { * * @return y */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getY() { return y; } - public void setY(Integer y) { + public void setY(@javax.annotation.Nonnull Integer y) { this.y = y; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -95,10 +115,113 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("x"); + openapiFields.add("y"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("x"); + openapiRequiredFields.add("y"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to Point + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!Point.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in Point is not found in the empty JSON string", + Point.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!Point.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `Point` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : Point.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!Point.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'Point' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(Point.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, Point value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public Point read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of Point given an JSON string + * + * @param jsonString JSON string + * @return An instance of Point + * @throws IOException if the JSON string is invalid with respect to Point + */ + public static Point fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, Point.class); + } + + /** + * Convert an instance of Point to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/PointArray.java b/client/src/main/generated/com/regula/documentreader/webclient/model/PointArray.java index a7666422..6c868edd 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/PointArray.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/PointArray.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,26 +12,46 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** PointArray */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class PointArray { public static final String SERIALIZED_NAME_POINTS_LIST = "PointsList"; @SerializedName(SERIALIZED_NAME_POINTS_LIST) - private List pointsList = null; + @javax.annotation.Nonnull + private List pointsList; - public PointArray withPointsList(List pointsList) { + public PointArray() {} + + public PointArray pointsList(@javax.annotation.Nonnull List pointsList) { this.pointsList = pointsList; return this; } public PointArray addPointsListItem(Point pointsListItem) { if (this.pointsList == null) { - this.pointsList = new ArrayList(); + this.pointsList = new ArrayList<>(); } this.pointsList.add(pointsListItem); return this; @@ -42,17 +62,17 @@ public PointArray addPointsListItem(Point pointsListItem) { * * @return pointsList */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getPointsList() { return pointsList; } - public void setPointsList(List pointsList) { + public void setPointsList(@javax.annotation.Nonnull List pointsList) { this.pointsList = pointsList; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -80,10 +100,126 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PointsList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("PointsList"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PointArray + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PointArray.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in PointArray is not found in the empty JSON string", + PointArray.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PointArray.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `PointArray` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : PointArray.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("PointsList").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `PointsList` to be an array in the JSON string but got `%s`", + jsonObj.get("PointsList").toString())); + } + + JsonArray jsonArraypointsList = jsonObj.getAsJsonArray("PointsList"); + // validate the required field `PointsList` (array) + for (int i = 0; i < jsonArraypointsList.size(); i++) { + Point.validateJsonElement(jsonArraypointsList.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PointArray.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PointArray' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(PointArray.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, PointArray value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PointArray read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of PointArray given an JSON string + * + * @param jsonString JSON string + * @return An instance of PointArray + * @throws IOException if the JSON string is invalid with respect to PointArray + */ + public static PointArray fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PointArray.class); + } + + /** + * Convert an instance of PointArray to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/PointsContainer.java b/client/src/main/generated/com/regula/documentreader/webclient/model/PointsContainer.java index ab8f75c5..f59f57ee 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/PointsContainer.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/PointsContainer.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,24 +12,45 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** PointsContainer */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class PointsContainer { public static final String SERIALIZED_NAME_POINT_COUNT = "PointCount"; @SerializedName(SERIALIZED_NAME_POINT_COUNT) + @javax.annotation.Nullable private Integer pointCount; public static final String SERIALIZED_NAME_POINTS_LIST = "PointsList"; @SerializedName(SERIALIZED_NAME_POINTS_LIST) - private List pointsList = null; + @javax.annotation.Nonnull + private List pointsList; + + public PointsContainer() {} - public PointsContainer withPointCount(Integer pointCount) { + public PointsContainer pointCount(@javax.annotation.Nullable Integer pointCount) { this.pointCount = pointCount; return this; } @@ -44,18 +65,18 @@ public Integer getPointCount() { return pointCount; } - public void setPointCount(Integer pointCount) { + public void setPointCount(@javax.annotation.Nullable Integer pointCount) { this.pointCount = pointCount; } - public PointsContainer withPointsList(List pointsList) { + public PointsContainer pointsList(@javax.annotation.Nonnull List pointsList) { this.pointsList = pointsList; return this; } public PointsContainer addPointsListItem(Point pointsListItem) { if (this.pointsList == null) { - this.pointsList = new ArrayList(); + this.pointsList = new ArrayList<>(); } this.pointsList.add(pointsListItem); return this; @@ -66,17 +87,17 @@ public PointsContainer addPointsListItem(Point pointsListItem) { * * @return pointsList */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getPointsList() { return pointsList; } - public void setPointsList(List pointsList) { + public void setPointsList(@javax.annotation.Nonnull List pointsList) { this.pointsList = pointsList; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -106,10 +127,127 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("PointCount"); + openapiFields.add("PointsList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("PointsList"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PointsContainer + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PointsContainer.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in PointsContainer is not found in the empty JSON string", + PointsContainer.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PointsContainer.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `PointsContainer` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : PointsContainer.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("PointsList").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `PointsList` to be an array in the JSON string but got `%s`", + jsonObj.get("PointsList").toString())); + } + + JsonArray jsonArraypointsList = jsonObj.getAsJsonArray("PointsList"); + // validate the required field `PointsList` (array) + for (int i = 0; i < jsonArraypointsList.size(); i++) { + Point.validateJsonElement(jsonArraypointsList.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PointsContainer.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PointsContainer' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(PointsContainer.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, PointsContainer value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PointsContainer read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of PointsContainer given an JSON string + * + * @param jsonString JSON string + * @return An instance of PointsContainer + * @throws IOException if the JSON string is invalid with respect to PointsContainer + */ + public static PointsContainer fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PointsContainer.class); + } + + /** + * Convert an instance of PointsContainer to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java old mode 100755 new mode 100644 index 6f1db2c5..899f8862 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,316 +12,402 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; /** ProcessParams */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ProcessParams { public static final String SERIALIZED_NAME_GENERATE_D_T_C_V_C = "generateDTCVC"; @SerializedName(SERIALIZED_NAME_GENERATE_D_T_C_V_C) + @javax.annotation.Nullable private Boolean generateDTCVC; public static final String SERIALIZED_NAME_LCID_FILTER = "lcidFilter"; @SerializedName(SERIALIZED_NAME_LCID_FILTER) - private List lcidFilter = null; + @javax.annotation.Nullable + private List lcidFilter; + + public static final String SERIALIZED_NAME_CHECK_LIVENESS = "checkLiveness"; + + @SerializedName(SERIALIZED_NAME_CHECK_LIVENESS) + @javax.annotation.Nullable + private Boolean checkLiveness; public static final String SERIALIZED_NAME_LCID_IGNORE_FILTER = "lcidIgnoreFilter"; @SerializedName(SERIALIZED_NAME_LCID_IGNORE_FILTER) - private List lcidIgnoreFilter = null; + @javax.annotation.Nullable + private List lcidIgnoreFilter; public static final String SERIALIZED_NAME_ONE_SHOT_IDENTIFICATION = "oneShotIdentification"; @SerializedName(SERIALIZED_NAME_ONE_SHOT_IDENTIFICATION) + @javax.annotation.Nullable private Boolean oneShotIdentification; public static final String SERIALIZED_NAME_USE_FACE_API = "useFaceApi"; @SerializedName(SERIALIZED_NAME_USE_FACE_API) + @javax.annotation.Nullable private Boolean useFaceApi; public static final String SERIALIZED_NAME_FACE_API = "faceApi"; @SerializedName(SERIALIZED_NAME_FACE_API) + @javax.annotation.Nullable private FaceApi faceApi; public static final String SERIALIZED_NAME_DO_DETECT_CAN = "doDetectCan"; @SerializedName(SERIALIZED_NAME_DO_DETECT_CAN) + @javax.annotation.Nullable private Boolean doDetectCan; public static final String SERIALIZED_NAME_IMAGE_OUTPUT_MAX_HEIGHT = "imageOutputMaxHeight"; @SerializedName(SERIALIZED_NAME_IMAGE_OUTPUT_MAX_HEIGHT) + @javax.annotation.Nullable private Integer imageOutputMaxHeight; public static final String SERIALIZED_NAME_IMAGE_OUTPUT_MAX_WIDTH = "imageOutputMaxWidth"; @SerializedName(SERIALIZED_NAME_IMAGE_OUTPUT_MAX_WIDTH) + @javax.annotation.Nullable private Integer imageOutputMaxWidth; public static final String SERIALIZED_NAME_SCENARIO = "scenario"; @SerializedName(SERIALIZED_NAME_SCENARIO) - private String scenario; + @javax.annotation.Nonnull + private Scenario scenario; public static final String SERIALIZED_NAME_RESULT_TYPE_OUTPUT = "resultTypeOutput"; @SerializedName(SERIALIZED_NAME_RESULT_TYPE_OUTPUT) - private List resultTypeOutput = null; + @javax.annotation.Nullable + private List resultTypeOutput; public static final String SERIALIZED_NAME_DOUBLE_PAGE_SPREAD = "doublePageSpread"; + @Deprecated @SerializedName(SERIALIZED_NAME_DOUBLE_PAGE_SPREAD) + @javax.annotation.Nullable private Boolean doublePageSpread; public static final String SERIALIZED_NAME_GENERATE_DOUBLE_PAGE_SPREAD_IMAGE = "generateDoublePageSpreadImage"; @SerializedName(SERIALIZED_NAME_GENERATE_DOUBLE_PAGE_SPREAD_IMAGE) + @javax.annotation.Nullable private Boolean generateDoublePageSpreadImage; public static final String SERIALIZED_NAME_FIELD_TYPES_FILTER = "fieldTypesFilter"; @SerializedName(SERIALIZED_NAME_FIELD_TYPES_FILTER) - private List fieldTypesFilter = null; + @javax.annotation.Nullable + private List fieldTypesFilter; public static final String SERIALIZED_NAME_DATE_FORMAT = "dateFormat"; @SerializedName(SERIALIZED_NAME_DATE_FORMAT) + @javax.annotation.Nullable private String dateFormat; public static final String SERIALIZED_NAME_MEASURE_SYSTEM = "measureSystem"; @SerializedName(SERIALIZED_NAME_MEASURE_SYSTEM) - private Integer measureSystem; + @javax.annotation.Nullable + private MeasureSystem measureSystem; public static final String SERIALIZED_NAME_IMAGE_DPI_OUT_MAX = "imageDpiOutMax"; @SerializedName(SERIALIZED_NAME_IMAGE_DPI_OUT_MAX) + @javax.annotation.Nullable private Integer imageDpiOutMax; public static final String SERIALIZED_NAME_ALREADY_CROPPED = "alreadyCropped"; @SerializedName(SERIALIZED_NAME_ALREADY_CROPPED) + @javax.annotation.Nullable private Boolean alreadyCropped; public static final String SERIALIZED_NAME_CUSTOM_PARAMS = "customParams"; @SerializedName(SERIALIZED_NAME_CUSTOM_PARAMS) - private Map customParams = null; + @javax.annotation.Nullable + private Map customParams; public static final String SERIALIZED_NAME_CONFIG = "config"; @SerializedName(SERIALIZED_NAME_CONFIG) - private List config = null; + @javax.annotation.Nullable + private List config; public static final String SERIALIZED_NAME_LOG = "log"; @SerializedName(SERIALIZED_NAME_LOG) + @javax.annotation.Nullable private Boolean log; public static final String SERIALIZED_NAME_LOG_LEVEL = "logLevel"; @SerializedName(SERIALIZED_NAME_LOG_LEVEL) - private String logLevel; + @javax.annotation.Nullable + private LogLevel logLevel; public static final String SERIALIZED_NAME_FORCE_DOC_I_D = "forceDocID"; @SerializedName(SERIALIZED_NAME_FORCE_DOC_I_D) + @javax.annotation.Nullable private Integer forceDocID; public static final String SERIALIZED_NAME_MATCH_TEXT_FIELD_MASK = "matchTextFieldMask"; @SerializedName(SERIALIZED_NAME_MATCH_TEXT_FIELD_MASK) + @javax.annotation.Nullable private Boolean matchTextFieldMask; public static final String SERIALIZED_NAME_FAST_DOC_DETECT = "fastDocDetect"; + @Deprecated @SerializedName(SERIALIZED_NAME_FAST_DOC_DETECT) + @javax.annotation.Nullable private Boolean fastDocDetect; public static final String SERIALIZED_NAME_UPDATE_O_C_R_VALIDITY_BY_GLARE = "updateOCRValidityByGlare"; @SerializedName(SERIALIZED_NAME_UPDATE_O_C_R_VALIDITY_BY_GLARE) + @javax.annotation.Nullable private Boolean updateOCRValidityByGlare; public static final String SERIALIZED_NAME_CHECK_REQUIRED_TEXT_FIELDS = "checkRequiredTextFields"; @SerializedName(SERIALIZED_NAME_CHECK_REQUIRED_TEXT_FIELDS) + @javax.annotation.Nullable private Boolean checkRequiredTextFields; public static final String SERIALIZED_NAME_RETURN_CROPPED_BARCODE = "returnCroppedBarcode"; @SerializedName(SERIALIZED_NAME_RETURN_CROPPED_BARCODE) + @javax.annotation.Nullable private Boolean returnCroppedBarcode; public static final String SERIALIZED_NAME_IMAGE_QA = "imageQa"; @SerializedName(SERIALIZED_NAME_IMAGE_QA) + @javax.annotation.Nullable private ImageQA imageQa; public static final String SERIALIZED_NAME_STRICT_IMAGE_QUALITY = "strictImageQuality"; @SerializedName(SERIALIZED_NAME_STRICT_IMAGE_QUALITY) + @javax.annotation.Nullable private Boolean strictImageQuality; public static final String SERIALIZED_NAME_RESPECT_IMAGE_QUALITY = "respectImageQuality"; + @Deprecated @SerializedName(SERIALIZED_NAME_RESPECT_IMAGE_QUALITY) + @javax.annotation.Nullable private Boolean respectImageQuality; public static final String SERIALIZED_NAME_FORCE_DOC_FORMAT = "forceDocFormat"; @SerializedName(SERIALIZED_NAME_FORCE_DOC_FORMAT) - private Integer forceDocFormat; + @javax.annotation.Nullable + private DocumentFormat forceDocFormat; public static final String SERIALIZED_NAME_NO_GRAPHICS = "noGraphics"; @SerializedName(SERIALIZED_NAME_NO_GRAPHICS) + @javax.annotation.Nullable private Boolean noGraphics; public static final String SERIALIZED_NAME_DEPERSONALIZE_LOG = "depersonalizeLog"; @SerializedName(SERIALIZED_NAME_DEPERSONALIZE_LOG) + @javax.annotation.Nullable private Boolean depersonalizeLog; public static final String SERIALIZED_NAME_MULTI_DOC_ON_IMAGE = "multiDocOnImage"; @SerializedName(SERIALIZED_NAME_MULTI_DOC_ON_IMAGE) + @javax.annotation.Nullable private Boolean multiDocOnImage; public static final String SERIALIZED_NAME_SHIFT_EXPIRY_DATE = "shiftExpiryDate"; @SerializedName(SERIALIZED_NAME_SHIFT_EXPIRY_DATE) + @javax.annotation.Nullable private Integer shiftExpiryDate; public static final String SERIALIZED_NAME_MINIMAL_HOLDER_AGE = "minimalHolderAge"; @SerializedName(SERIALIZED_NAME_MINIMAL_HOLDER_AGE) + @javax.annotation.Nullable private Integer minimalHolderAge; public static final String SERIALIZED_NAME_RETURN_UNCROPPED_IMAGE = "returnUncroppedImage"; @SerializedName(SERIALIZED_NAME_RETURN_UNCROPPED_IMAGE) + @javax.annotation.Nullable private Boolean returnUncroppedImage; public static final String SERIALIZED_NAME_MRZ_FORMATS_FILTER = "mrzFormatsFilter"; @SerializedName(SERIALIZED_NAME_MRZ_FORMATS_FILTER) - private List mrzFormatsFilter = null; + @javax.annotation.Nullable + private List mrzFormatsFilter; public static final String SERIALIZED_NAME_FORCE_READ_MRZ_BEFORE_LOCATE = "forceReadMrzBeforeLocate"; @SerializedName(SERIALIZED_NAME_FORCE_READ_MRZ_BEFORE_LOCATE) + @javax.annotation.Nullable private Boolean forceReadMrzBeforeLocate; public static final String SERIALIZED_NAME_PARSE_BARCODES = "parseBarcodes"; @SerializedName(SERIALIZED_NAME_PARSE_BARCODES) + @javax.annotation.Nullable private Boolean parseBarcodes; public static final String SERIALIZED_NAME_CONVERT_CASE = "convertCase"; @SerializedName(SERIALIZED_NAME_CONVERT_CASE) - private Integer convertCase; + @javax.annotation.Nullable + private TextPostProcessing convertCase; public static final String SERIALIZED_NAME_SPLIT_NAMES = "splitNames"; @SerializedName(SERIALIZED_NAME_SPLIT_NAMES) + @javax.annotation.Nullable private Boolean splitNames; public static final String SERIALIZED_NAME_DISABLE_PERFORATION_O_C_R = "disablePerforationOCR"; @SerializedName(SERIALIZED_NAME_DISABLE_PERFORATION_O_C_R) + @javax.annotation.Nullable private Boolean disablePerforationOCR; public static final String SERIALIZED_NAME_DOCUMENT_GROUP_FILTER = "documentGroupFilter"; @SerializedName(SERIALIZED_NAME_DOCUMENT_GROUP_FILTER) - private List documentGroupFilter = null; + @javax.annotation.Nullable + private List documentGroupFilter; public static final String SERIALIZED_NAME_PROCESS_AUTH = "processAuth"; @SerializedName(SERIALIZED_NAME_PROCESS_AUTH) + @javax.annotation.Nullable private Long processAuth; public static final String SERIALIZED_NAME_DEVICE_ID = "deviceId"; @SerializedName(SERIALIZED_NAME_DEVICE_ID) + @javax.annotation.Nullable private Integer deviceId; public static final String SERIALIZED_NAME_DEVICE_TYPE = "deviceType"; @SerializedName(SERIALIZED_NAME_DEVICE_TYPE) + @javax.annotation.Nullable private Integer deviceType; public static final String SERIALIZED_NAME_DEVICE_TYPE_HEX = "deviceTypeHex"; @SerializedName(SERIALIZED_NAME_DEVICE_TYPE_HEX) + @javax.annotation.Nullable private String deviceTypeHex; public static final String SERIALIZED_NAME_IGNORE_DEVICE_ID_FROM_IMAGE = "ignoreDeviceIdFromImage"; @SerializedName(SERIALIZED_NAME_IGNORE_DEVICE_ID_FROM_IMAGE) + @javax.annotation.Nullable private Boolean ignoreDeviceIdFromImage; public static final String SERIALIZED_NAME_DOCUMENT_ID_LIST = "documentIdList"; @SerializedName(SERIALIZED_NAME_DOCUMENT_ID_LIST) - private List documentIdList = null; + @javax.annotation.Nullable + private List documentIdList; public static final String SERIALIZED_NAME_RFID = "rfid"; @SerializedName(SERIALIZED_NAME_RFID) + @javax.annotation.Nullable private ProcessParamsRfid rfid; public static final String SERIALIZED_NAME_CHECK_AUTH = "checkAuth"; @SerializedName(SERIALIZED_NAME_CHECK_AUTH) + @javax.annotation.Nullable private Boolean checkAuth; public static final String SERIALIZED_NAME_AUTH_PARAMS = "authParams"; @SerializedName(SERIALIZED_NAME_AUTH_PARAMS) + @javax.annotation.Nullable private AuthParams authParams; public static final String SERIALIZED_NAME_MRZ_DETECT_MODE = "mrzDetectMode"; @SerializedName(SERIALIZED_NAME_MRZ_DETECT_MODE) + @javax.annotation.Nullable private MrzDetectModeEnum mrzDetectMode; public static final String SERIALIZED_NAME_GENERATE_NUMERIC_CODES = "generateNumericCodes"; @SerializedName(SERIALIZED_NAME_GENERATE_NUMERIC_CODES) + @javax.annotation.Nullable private Boolean generateNumericCodes; public static final String SERIALIZED_NAME_STRICT_BARCODE_DIGITAL_SIGNATURE_CHECK = "strictBarcodeDigitalSignatureCheck"; @SerializedName(SERIALIZED_NAME_STRICT_BARCODE_DIGITAL_SIGNATURE_CHECK) + @javax.annotation.Nullable private Boolean strictBarcodeDigitalSignatureCheck; public static final String SERIALIZED_NAME_SELECT_LONGEST_NAMES = "selectLongestNames"; @SerializedName(SERIALIZED_NAME_SELECT_LONGEST_NAMES) + @javax.annotation.Nullable private Boolean selectLongestNames; public static final String SERIALIZED_NAME_DO_BARCODES = "doBarcodes"; @SerializedName(SERIALIZED_NAME_DO_BARCODES) - private List doBarcodes = null; + @javax.annotation.Nullable + private List doBarcodes; - public ProcessParams withGenerateDTCVC(Boolean generateDTCVC) { + public ProcessParams() {} + + public ProcessParams generateDTCVC(@javax.annotation.Nullable Boolean generateDTCVC) { this.generateDTCVC = generateDTCVC; return this; } @@ -336,18 +422,18 @@ public Boolean getGenerateDTCVC() { return generateDTCVC; } - public void setGenerateDTCVC(Boolean generateDTCVC) { + public void setGenerateDTCVC(@javax.annotation.Nullable Boolean generateDTCVC) { this.generateDTCVC = generateDTCVC; } - public ProcessParams withLcidFilter(List lcidFilter) { + public ProcessParams lcidFilter(@javax.annotation.Nullable List lcidFilter) { this.lcidFilter = lcidFilter; return this; } - public ProcessParams addLcidFilterItem(Integer lcidFilterItem) { + public ProcessParams addLcidFilterItem(LCID lcidFilterItem) { if (this.lcidFilter == null) { - this.lcidFilter = new ArrayList(); + this.lcidFilter = new ArrayList<>(); } this.lcidFilter.add(lcidFilterItem); return this; @@ -360,22 +446,41 @@ public ProcessParams addLcidFilterItem(Integer lcidFilterItem) { * @return lcidFilter */ @javax.annotation.Nullable - public List getLcidFilter() { + public List getLcidFilter() { return lcidFilter; } - public void setLcidFilter(List lcidFilter) { + public void setLcidFilter(@javax.annotation.Nullable List lcidFilter) { this.lcidFilter = lcidFilter; } - public ProcessParams withLcidIgnoreFilter(List lcidIgnoreFilter) { + public ProcessParams checkLiveness(@javax.annotation.Nullable Boolean checkLiveness) { + this.checkLiveness = checkLiveness; + return this; + } + + /** + * This parameter is used to enable document liveness check. + * + * @return checkLiveness + */ + @javax.annotation.Nullable + public Boolean getCheckLiveness() { + return checkLiveness; + } + + public void setCheckLiveness(@javax.annotation.Nullable Boolean checkLiveness) { + this.checkLiveness = checkLiveness; + } + + public ProcessParams lcidIgnoreFilter(@javax.annotation.Nullable List lcidIgnoreFilter) { this.lcidIgnoreFilter = lcidIgnoreFilter; return this; } - public ProcessParams addLcidIgnoreFilterItem(Integer lcidIgnoreFilterItem) { + public ProcessParams addLcidIgnoreFilterItem(LCID lcidIgnoreFilterItem) { if (this.lcidIgnoreFilter == null) { - this.lcidIgnoreFilter = new ArrayList(); + this.lcidIgnoreFilter = new ArrayList<>(); } this.lcidIgnoreFilter.add(lcidIgnoreFilterItem); return this; @@ -388,15 +493,16 @@ public ProcessParams addLcidIgnoreFilterItem(Integer lcidIgnoreFilterItem) { * @return lcidIgnoreFilter */ @javax.annotation.Nullable - public List getLcidIgnoreFilter() { + public List getLcidIgnoreFilter() { return lcidIgnoreFilter; } - public void setLcidIgnoreFilter(List lcidIgnoreFilter) { + public void setLcidIgnoreFilter(@javax.annotation.Nullable List lcidIgnoreFilter) { this.lcidIgnoreFilter = lcidIgnoreFilter; } - public ProcessParams withOneShotIdentification(Boolean oneShotIdentification) { + public ProcessParams oneShotIdentification( + @javax.annotation.Nullable Boolean oneShotIdentification) { this.oneShotIdentification = oneShotIdentification; return this; } @@ -412,11 +518,11 @@ public Boolean getOneShotIdentification() { return oneShotIdentification; } - public void setOneShotIdentification(Boolean oneShotIdentification) { + public void setOneShotIdentification(@javax.annotation.Nullable Boolean oneShotIdentification) { this.oneShotIdentification = oneShotIdentification; } - public ProcessParams withUseFaceApi(Boolean useFaceApi) { + public ProcessParams useFaceApi(@javax.annotation.Nullable Boolean useFaceApi) { this.useFaceApi = useFaceApi; return this; } @@ -431,11 +537,11 @@ public Boolean getUseFaceApi() { return useFaceApi; } - public void setUseFaceApi(Boolean useFaceApi) { + public void setUseFaceApi(@javax.annotation.Nullable Boolean useFaceApi) { this.useFaceApi = useFaceApi; } - public ProcessParams withFaceApi(FaceApi faceApi) { + public ProcessParams faceApi(@javax.annotation.Nullable FaceApi faceApi) { this.faceApi = faceApi; return this; } @@ -450,11 +556,11 @@ public FaceApi getFaceApi() { return faceApi; } - public void setFaceApi(FaceApi faceApi) { + public void setFaceApi(@javax.annotation.Nullable FaceApi faceApi) { this.faceApi = faceApi; } - public ProcessParams withDoDetectCan(Boolean doDetectCan) { + public ProcessParams doDetectCan(@javax.annotation.Nullable Boolean doDetectCan) { this.doDetectCan = doDetectCan; return this; } @@ -470,11 +576,12 @@ public Boolean getDoDetectCan() { return doDetectCan; } - public void setDoDetectCan(Boolean doDetectCan) { + public void setDoDetectCan(@javax.annotation.Nullable Boolean doDetectCan) { this.doDetectCan = doDetectCan; } - public ProcessParams withImageOutputMaxHeight(Integer imageOutputMaxHeight) { + public ProcessParams imageOutputMaxHeight( + @javax.annotation.Nullable Integer imageOutputMaxHeight) { this.imageOutputMaxHeight = imageOutputMaxHeight; return this; } @@ -490,11 +597,11 @@ public Integer getImageOutputMaxHeight() { return imageOutputMaxHeight; } - public void setImageOutputMaxHeight(Integer imageOutputMaxHeight) { + public void setImageOutputMaxHeight(@javax.annotation.Nullable Integer imageOutputMaxHeight) { this.imageOutputMaxHeight = imageOutputMaxHeight; } - public ProcessParams withImageOutputMaxWidth(Integer imageOutputMaxWidth) { + public ProcessParams imageOutputMaxWidth(@javax.annotation.Nullable Integer imageOutputMaxWidth) { this.imageOutputMaxWidth = imageOutputMaxWidth; return this; } @@ -510,11 +617,11 @@ public Integer getImageOutputMaxWidth() { return imageOutputMaxWidth; } - public void setImageOutputMaxWidth(Integer imageOutputMaxWidth) { + public void setImageOutputMaxWidth(@javax.annotation.Nullable Integer imageOutputMaxWidth) { this.imageOutputMaxWidth = imageOutputMaxWidth; } - public ProcessParams withScenario(String scenario) { + public ProcessParams scenario(@javax.annotation.Nonnull Scenario scenario) { this.scenario = scenario; return this; } @@ -524,22 +631,23 @@ public ProcessParams withScenario(String scenario) { * * @return scenario */ - public String getScenario() { + @javax.annotation.Nonnull + public Scenario getScenario() { return scenario; } - public void setScenario(String scenario) { + public void setScenario(@javax.annotation.Nonnull Scenario scenario) { this.scenario = scenario; } - public ProcessParams withResultTypeOutput(List resultTypeOutput) { + public ProcessParams resultTypeOutput(@javax.annotation.Nullable List resultTypeOutput) { this.resultTypeOutput = resultTypeOutput; return this; } - public ProcessParams addResultTypeOutputItem(Integer resultTypeOutputItem) { + public ProcessParams addResultTypeOutputItem(Result resultTypeOutputItem) { if (this.resultTypeOutput == null) { - this.resultTypeOutput = new ArrayList(); + this.resultTypeOutput = new ArrayList<>(); } this.resultTypeOutput.add(resultTypeOutputItem); return this; @@ -551,15 +659,16 @@ public ProcessParams addResultTypeOutputItem(Integer resultTypeOutputItem) { * @return resultTypeOutput */ @javax.annotation.Nullable - public List getResultTypeOutput() { + public List getResultTypeOutput() { return resultTypeOutput; } - public void setResultTypeOutput(List resultTypeOutput) { + public void setResultTypeOutput(@javax.annotation.Nullable List resultTypeOutput) { this.resultTypeOutput = resultTypeOutput; } - public ProcessParams withDoublePageSpread(Boolean doublePageSpread) { + @Deprecated + public ProcessParams doublePageSpread(@javax.annotation.Nullable Boolean doublePageSpread) { this.doublePageSpread = doublePageSpread; return this; } @@ -571,17 +680,21 @@ public ProcessParams withDoublePageSpread(Boolean doublePageSpread) { * by default. * * @return doublePageSpread + * @deprecated */ + @Deprecated @javax.annotation.Nullable public Boolean getDoublePageSpread() { return doublePageSpread; } - public void setDoublePageSpread(Boolean doublePageSpread) { + @Deprecated + public void setDoublePageSpread(@javax.annotation.Nullable Boolean doublePageSpread) { this.doublePageSpread = doublePageSpread; } - public ProcessParams withGenerateDoublePageSpreadImage(Boolean generateDoublePageSpreadImage) { + public ProcessParams generateDoublePageSpreadImage( + @javax.annotation.Nullable Boolean generateDoublePageSpreadImage) { this.generateDoublePageSpreadImage = generateDoublePageSpreadImage; return this; } @@ -598,18 +711,20 @@ public Boolean getGenerateDoublePageSpreadImage() { return generateDoublePageSpreadImage; } - public void setGenerateDoublePageSpreadImage(Boolean generateDoublePageSpreadImage) { + public void setGenerateDoublePageSpreadImage( + @javax.annotation.Nullable Boolean generateDoublePageSpreadImage) { this.generateDoublePageSpreadImage = generateDoublePageSpreadImage; } - public ProcessParams withFieldTypesFilter(List fieldTypesFilter) { + public ProcessParams fieldTypesFilter( + @javax.annotation.Nullable List fieldTypesFilter) { this.fieldTypesFilter = fieldTypesFilter; return this; } - public ProcessParams addFieldTypesFilterItem(Integer fieldTypesFilterItem) { + public ProcessParams addFieldTypesFilterItem(TextFieldType fieldTypesFilterItem) { if (this.fieldTypesFilter == null) { - this.fieldTypesFilter = new ArrayList(); + this.fieldTypesFilter = new ArrayList<>(); } this.fieldTypesFilter.add(fieldTypesFilterItem); return this; @@ -622,15 +737,15 @@ public ProcessParams addFieldTypesFilterItem(Integer fieldTypesFilterItem) { * @return fieldTypesFilter */ @javax.annotation.Nullable - public List getFieldTypesFilter() { + public List getFieldTypesFilter() { return fieldTypesFilter; } - public void setFieldTypesFilter(List fieldTypesFilter) { + public void setFieldTypesFilter(@javax.annotation.Nullable List fieldTypesFilter) { this.fieldTypesFilter = fieldTypesFilter; } - public ProcessParams withDateFormat(String dateFormat) { + public ProcessParams dateFormat(@javax.annotation.Nullable String dateFormat) { this.dateFormat = dateFormat; return this; } @@ -648,11 +763,11 @@ public String getDateFormat() { return dateFormat; } - public void setDateFormat(String dateFormat) { + public void setDateFormat(@javax.annotation.Nullable String dateFormat) { this.dateFormat = dateFormat; } - public ProcessParams withMeasureSystem(Integer measureSystem) { + public ProcessParams measureSystem(@javax.annotation.Nullable MeasureSystem measureSystem) { this.measureSystem = measureSystem; return this; } @@ -663,15 +778,15 @@ public ProcessParams withMeasureSystem(Integer measureSystem) { * @return measureSystem */ @javax.annotation.Nullable - public Integer getMeasureSystem() { + public MeasureSystem getMeasureSystem() { return measureSystem; } - public void setMeasureSystem(Integer measureSystem) { + public void setMeasureSystem(@javax.annotation.Nullable MeasureSystem measureSystem) { this.measureSystem = measureSystem; } - public ProcessParams withImageDpiOutMax(Integer imageDpiOutMax) { + public ProcessParams imageDpiOutMax(@javax.annotation.Nullable Integer imageDpiOutMax) { this.imageDpiOutMax = imageDpiOutMax; return this; } @@ -689,11 +804,11 @@ public Integer getImageDpiOutMax() { return imageDpiOutMax; } - public void setImageDpiOutMax(Integer imageDpiOutMax) { + public void setImageDpiOutMax(@javax.annotation.Nullable Integer imageDpiOutMax) { this.imageDpiOutMax = imageDpiOutMax; } - public ProcessParams withAlreadyCropped(Boolean alreadyCropped) { + public ProcessParams alreadyCropped(@javax.annotation.Nullable Boolean alreadyCropped) { this.alreadyCropped = alreadyCropped; return this; } @@ -710,18 +825,18 @@ public Boolean getAlreadyCropped() { return alreadyCropped; } - public void setAlreadyCropped(Boolean alreadyCropped) { + public void setAlreadyCropped(@javax.annotation.Nullable Boolean alreadyCropped) { this.alreadyCropped = alreadyCropped; } - public ProcessParams withCustomParams(Map customParams) { + public ProcessParams customParams(@javax.annotation.Nullable Map customParams) { this.customParams = customParams; return this; } public ProcessParams putCustomParamsItem(String key, Object customParamsItem) { if (this.customParams == null) { - this.customParams = new HashMap(); + this.customParams = new HashMap<>(); } this.customParams.put(key, customParamsItem); return this; @@ -738,18 +853,18 @@ public Map getCustomParams() { return customParams; } - public void setCustomParams(Map customParams) { + public void setCustomParams(@javax.annotation.Nullable Map customParams) { this.customParams = customParams; } - public ProcessParams withConfig(List config) { + public ProcessParams config(@javax.annotation.Nullable List config) { this.config = config; return this; } public ProcessParams addConfigItem(PerDocumentConfig configItem) { if (this.config == null) { - this.config = new ArrayList(); + this.config = new ArrayList<>(); } this.config.add(configItem); return this; @@ -766,11 +881,11 @@ public List getConfig() { return config; } - public void setConfig(List config) { + public void setConfig(@javax.annotation.Nullable List config) { this.config = config; } - public ProcessParams withLog(Boolean log) { + public ProcessParams log(@javax.annotation.Nullable Boolean log) { this.log = log; return this; } @@ -785,11 +900,11 @@ public Boolean getLog() { return log; } - public void setLog(Boolean log) { + public void setLog(@javax.annotation.Nullable Boolean log) { this.log = log; } - public ProcessParams withLogLevel(String logLevel) { + public ProcessParams logLevel(@javax.annotation.Nullable LogLevel logLevel) { this.logLevel = logLevel; return this; } @@ -800,15 +915,15 @@ public ProcessParams withLogLevel(String logLevel) { * @return logLevel */ @javax.annotation.Nullable - public String getLogLevel() { + public LogLevel getLogLevel() { return logLevel; } - public void setLogLevel(String logLevel) { + public void setLogLevel(@javax.annotation.Nullable LogLevel logLevel) { this.logLevel = logLevel; } - public ProcessParams withForceDocID(Integer forceDocID) { + public ProcessParams forceDocID(@javax.annotation.Nullable Integer forceDocID) { this.forceDocID = forceDocID; return this; } @@ -823,11 +938,11 @@ public Integer getForceDocID() { return forceDocID; } - public void setForceDocID(Integer forceDocID) { + public void setForceDocID(@javax.annotation.Nullable Integer forceDocID) { this.forceDocID = forceDocID; } - public ProcessParams withMatchTextFieldMask(Boolean matchTextFieldMask) { + public ProcessParams matchTextFieldMask(@javax.annotation.Nullable Boolean matchTextFieldMask) { this.matchTextFieldMask = matchTextFieldMask; return this; } @@ -845,11 +960,12 @@ public Boolean getMatchTextFieldMask() { return matchTextFieldMask; } - public void setMatchTextFieldMask(Boolean matchTextFieldMask) { + public void setMatchTextFieldMask(@javax.annotation.Nullable Boolean matchTextFieldMask) { this.matchTextFieldMask = matchTextFieldMask; } - public ProcessParams withFastDocDetect(Boolean fastDocDetect) { + @Deprecated + public ProcessParams fastDocDetect(@javax.annotation.Nullable Boolean fastDocDetect) { this.fastDocDetect = fastDocDetect; return this; } @@ -859,17 +975,21 @@ public ProcessParams withFastDocDetect(Boolean fastDocDetect) { * image process mode. Reduces processing time for specific backgrounds. Enabled by default. * * @return fastDocDetect + * @deprecated */ + @Deprecated @javax.annotation.Nullable public Boolean getFastDocDetect() { return fastDocDetect; } - public void setFastDocDetect(Boolean fastDocDetect) { + @Deprecated + public void setFastDocDetect(@javax.annotation.Nullable Boolean fastDocDetect) { this.fastDocDetect = fastDocDetect; } - public ProcessParams withUpdateOCRValidityByGlare(Boolean updateOCRValidityByGlare) { + public ProcessParams updateOCRValidityByGlare( + @javax.annotation.Nullable Boolean updateOCRValidityByGlare) { this.updateOCRValidityByGlare = updateOCRValidityByGlare; return this; } @@ -885,11 +1005,13 @@ public Boolean getUpdateOCRValidityByGlare() { return updateOCRValidityByGlare; } - public void setUpdateOCRValidityByGlare(Boolean updateOCRValidityByGlare) { + public void setUpdateOCRValidityByGlare( + @javax.annotation.Nullable Boolean updateOCRValidityByGlare) { this.updateOCRValidityByGlare = updateOCRValidityByGlare; } - public ProcessParams withCheckRequiredTextFields(Boolean checkRequiredTextFields) { + public ProcessParams checkRequiredTextFields( + @javax.annotation.Nullable Boolean checkRequiredTextFields) { this.checkRequiredTextFields = checkRequiredTextFields; return this; } @@ -906,11 +1028,13 @@ public Boolean getCheckRequiredTextFields() { return checkRequiredTextFields; } - public void setCheckRequiredTextFields(Boolean checkRequiredTextFields) { + public void setCheckRequiredTextFields( + @javax.annotation.Nullable Boolean checkRequiredTextFields) { this.checkRequiredTextFields = checkRequiredTextFields; } - public ProcessParams withReturnCroppedBarcode(Boolean returnCroppedBarcode) { + public ProcessParams returnCroppedBarcode( + @javax.annotation.Nullable Boolean returnCroppedBarcode) { this.returnCroppedBarcode = returnCroppedBarcode; return this; } @@ -925,11 +1049,11 @@ public Boolean getReturnCroppedBarcode() { return returnCroppedBarcode; } - public void setReturnCroppedBarcode(Boolean returnCroppedBarcode) { + public void setReturnCroppedBarcode(@javax.annotation.Nullable Boolean returnCroppedBarcode) { this.returnCroppedBarcode = returnCroppedBarcode; } - public ProcessParams withImageQa(ImageQA imageQa) { + public ProcessParams imageQa(@javax.annotation.Nullable ImageQA imageQa) { this.imageQa = imageQa; return this; } @@ -944,11 +1068,11 @@ public ImageQA getImageQa() { return imageQa; } - public void setImageQa(ImageQA imageQa) { + public void setImageQa(@javax.annotation.Nullable ImageQA imageQa) { this.imageQa = imageQa; } - public ProcessParams withStrictImageQuality(Boolean strictImageQuality) { + public ProcessParams strictImageQuality(@javax.annotation.Nullable Boolean strictImageQuality) { this.strictImageQuality = strictImageQuality; return this; } @@ -964,11 +1088,12 @@ public Boolean getStrictImageQuality() { return strictImageQuality; } - public void setStrictImageQuality(Boolean strictImageQuality) { + public void setStrictImageQuality(@javax.annotation.Nullable Boolean strictImageQuality) { this.strictImageQuality = strictImageQuality; } - public ProcessParams withRespectImageQuality(Boolean respectImageQuality) { + @Deprecated + public ProcessParams respectImageQuality(@javax.annotation.Nullable Boolean respectImageQuality) { this.respectImageQuality = respectImageQuality; return this; } @@ -978,17 +1103,20 @@ public ProcessParams withRespectImageQuality(Boolean respectImageQuality) { * affects document optical and overall status. Disabled by default. * * @return respectImageQuality + * @deprecated */ + @Deprecated @javax.annotation.Nullable public Boolean getRespectImageQuality() { return respectImageQuality; } - public void setRespectImageQuality(Boolean respectImageQuality) { + @Deprecated + public void setRespectImageQuality(@javax.annotation.Nullable Boolean respectImageQuality) { this.respectImageQuality = respectImageQuality; } - public ProcessParams withForceDocFormat(Integer forceDocFormat) { + public ProcessParams forceDocFormat(@javax.annotation.Nullable DocumentFormat forceDocFormat) { this.forceDocFormat = forceDocFormat; return this; } @@ -999,15 +1127,15 @@ public ProcessParams withForceDocFormat(Integer forceDocFormat) { * @return forceDocFormat */ @javax.annotation.Nullable - public Integer getForceDocFormat() { + public DocumentFormat getForceDocFormat() { return forceDocFormat; } - public void setForceDocFormat(Integer forceDocFormat) { + public void setForceDocFormat(@javax.annotation.Nullable DocumentFormat forceDocFormat) { this.forceDocFormat = forceDocFormat; } - public ProcessParams withNoGraphics(Boolean noGraphics) { + public ProcessParams noGraphics(@javax.annotation.Nullable Boolean noGraphics) { this.noGraphics = noGraphics; return this; } @@ -1022,11 +1150,11 @@ public Boolean getNoGraphics() { return noGraphics; } - public void setNoGraphics(Boolean noGraphics) { + public void setNoGraphics(@javax.annotation.Nullable Boolean noGraphics) { this.noGraphics = noGraphics; } - public ProcessParams withDepersonalizeLog(Boolean depersonalizeLog) { + public ProcessParams depersonalizeLog(@javax.annotation.Nullable Boolean depersonalizeLog) { this.depersonalizeLog = depersonalizeLog; return this; } @@ -1041,11 +1169,11 @@ public Boolean getDepersonalizeLog() { return depersonalizeLog; } - public void setDepersonalizeLog(Boolean depersonalizeLog) { + public void setDepersonalizeLog(@javax.annotation.Nullable Boolean depersonalizeLog) { this.depersonalizeLog = depersonalizeLog; } - public ProcessParams withMultiDocOnImage(Boolean multiDocOnImage) { + public ProcessParams multiDocOnImage(@javax.annotation.Nullable Boolean multiDocOnImage) { this.multiDocOnImage = multiDocOnImage; return this; } @@ -1061,11 +1189,11 @@ public Boolean getMultiDocOnImage() { return multiDocOnImage; } - public void setMultiDocOnImage(Boolean multiDocOnImage) { + public void setMultiDocOnImage(@javax.annotation.Nullable Boolean multiDocOnImage) { this.multiDocOnImage = multiDocOnImage; } - public ProcessParams withShiftExpiryDate(Integer shiftExpiryDate) { + public ProcessParams shiftExpiryDate(@javax.annotation.Nullable Integer shiftExpiryDate) { this.shiftExpiryDate = shiftExpiryDate; return this; } @@ -1084,11 +1212,11 @@ public Integer getShiftExpiryDate() { return shiftExpiryDate; } - public void setShiftExpiryDate(Integer shiftExpiryDate) { + public void setShiftExpiryDate(@javax.annotation.Nullable Integer shiftExpiryDate) { this.shiftExpiryDate = shiftExpiryDate; } - public ProcessParams withMinimalHolderAge(Integer minimalHolderAge) { + public ProcessParams minimalHolderAge(@javax.annotation.Nullable Integer minimalHolderAge) { this.minimalHolderAge = minimalHolderAge; return this; } @@ -1104,11 +1232,12 @@ public Integer getMinimalHolderAge() { return minimalHolderAge; } - public void setMinimalHolderAge(Integer minimalHolderAge) { + public void setMinimalHolderAge(@javax.annotation.Nullable Integer minimalHolderAge) { this.minimalHolderAge = minimalHolderAge; } - public ProcessParams withReturnUncroppedImage(Boolean returnUncroppedImage) { + public ProcessParams returnUncroppedImage( + @javax.annotation.Nullable Boolean returnUncroppedImage) { this.returnUncroppedImage = returnUncroppedImage; return this; } @@ -1123,18 +1252,19 @@ public Boolean getReturnUncroppedImage() { return returnUncroppedImage; } - public void setReturnUncroppedImage(Boolean returnUncroppedImage) { + public void setReturnUncroppedImage(@javax.annotation.Nullable Boolean returnUncroppedImage) { this.returnUncroppedImage = returnUncroppedImage; } - public ProcessParams withMrzFormatsFilter(List mrzFormatsFilter) { + public ProcessParams mrzFormatsFilter( + @javax.annotation.Nullable List mrzFormatsFilter) { this.mrzFormatsFilter = mrzFormatsFilter; return this; } - public ProcessParams addMrzFormatsFilterItem(String mrzFormatsFilterItem) { + public ProcessParams addMrzFormatsFilterItem(MRZFormat mrzFormatsFilterItem) { if (this.mrzFormatsFilter == null) { - this.mrzFormatsFilter = new ArrayList(); + this.mrzFormatsFilter = new ArrayList<>(); } this.mrzFormatsFilter.add(mrzFormatsFilterItem); return this; @@ -1146,15 +1276,16 @@ public ProcessParams addMrzFormatsFilterItem(String mrzFormatsFilterItem) { * @return mrzFormatsFilter */ @javax.annotation.Nullable - public List getMrzFormatsFilter() { + public List getMrzFormatsFilter() { return mrzFormatsFilter; } - public void setMrzFormatsFilter(List mrzFormatsFilter) { + public void setMrzFormatsFilter(@javax.annotation.Nullable List mrzFormatsFilter) { this.mrzFormatsFilter = mrzFormatsFilter; } - public ProcessParams withForceReadMrzBeforeLocate(Boolean forceReadMrzBeforeLocate) { + public ProcessParams forceReadMrzBeforeLocate( + @javax.annotation.Nullable Boolean forceReadMrzBeforeLocate) { this.forceReadMrzBeforeLocate = forceReadMrzBeforeLocate; return this; } @@ -1172,11 +1303,12 @@ public Boolean getForceReadMrzBeforeLocate() { return forceReadMrzBeforeLocate; } - public void setForceReadMrzBeforeLocate(Boolean forceReadMrzBeforeLocate) { + public void setForceReadMrzBeforeLocate( + @javax.annotation.Nullable Boolean forceReadMrzBeforeLocate) { this.forceReadMrzBeforeLocate = forceReadMrzBeforeLocate; } - public ProcessParams withParseBarcodes(Boolean parseBarcodes) { + public ProcessParams parseBarcodes(@javax.annotation.Nullable Boolean parseBarcodes) { this.parseBarcodes = parseBarcodes; return this; } @@ -1191,11 +1323,11 @@ public Boolean getParseBarcodes() { return parseBarcodes; } - public void setParseBarcodes(Boolean parseBarcodes) { + public void setParseBarcodes(@javax.annotation.Nullable Boolean parseBarcodes) { this.parseBarcodes = parseBarcodes; } - public ProcessParams withConvertCase(Integer convertCase) { + public ProcessParams convertCase(@javax.annotation.Nullable TextPostProcessing convertCase) { this.convertCase = convertCase; return this; } @@ -1206,15 +1338,15 @@ public ProcessParams withConvertCase(Integer convertCase) { * @return convertCase */ @javax.annotation.Nullable - public Integer getConvertCase() { + public TextPostProcessing getConvertCase() { return convertCase; } - public void setConvertCase(Integer convertCase) { + public void setConvertCase(@javax.annotation.Nullable TextPostProcessing convertCase) { this.convertCase = convertCase; } - public ProcessParams withSplitNames(Boolean splitNames) { + public ProcessParams splitNames(@javax.annotation.Nullable Boolean splitNames) { this.splitNames = splitNames; return this; } @@ -1230,11 +1362,12 @@ public Boolean getSplitNames() { return splitNames; } - public void setSplitNames(Boolean splitNames) { + public void setSplitNames(@javax.annotation.Nullable Boolean splitNames) { this.splitNames = splitNames; } - public ProcessParams withDisablePerforationOCR(Boolean disablePerforationOCR) { + public ProcessParams disablePerforationOCR( + @javax.annotation.Nullable Boolean disablePerforationOCR) { this.disablePerforationOCR = disablePerforationOCR; return this; } @@ -1250,18 +1383,19 @@ public Boolean getDisablePerforationOCR() { return disablePerforationOCR; } - public void setDisablePerforationOCR(Boolean disablePerforationOCR) { + public void setDisablePerforationOCR(@javax.annotation.Nullable Boolean disablePerforationOCR) { this.disablePerforationOCR = disablePerforationOCR; } - public ProcessParams withDocumentGroupFilter(List documentGroupFilter) { + public ProcessParams documentGroupFilter( + @javax.annotation.Nullable List documentGroupFilter) { this.documentGroupFilter = documentGroupFilter; return this; } - public ProcessParams addDocumentGroupFilterItem(Integer documentGroupFilterItem) { + public ProcessParams addDocumentGroupFilterItem(DocumentType documentGroupFilterItem) { if (this.documentGroupFilter == null) { - this.documentGroupFilter = new ArrayList(); + this.documentGroupFilter = new ArrayList<>(); } this.documentGroupFilter.add(documentGroupFilterItem); return this; @@ -1274,15 +1408,16 @@ public ProcessParams addDocumentGroupFilterItem(Integer documentGroupFilterItem) * @return documentGroupFilter */ @javax.annotation.Nullable - public List getDocumentGroupFilter() { + public List getDocumentGroupFilter() { return documentGroupFilter; } - public void setDocumentGroupFilter(List documentGroupFilter) { + public void setDocumentGroupFilter( + @javax.annotation.Nullable List documentGroupFilter) { this.documentGroupFilter = documentGroupFilter; } - public ProcessParams withProcessAuth(Long processAuth) { + public ProcessParams processAuth(@javax.annotation.Nullable Long processAuth) { this.processAuth = processAuth; return this; } @@ -1299,11 +1434,11 @@ public Long getProcessAuth() { return processAuth; } - public void setProcessAuth(Long processAuth) { + public void setProcessAuth(@javax.annotation.Nullable Long processAuth) { this.processAuth = processAuth; } - public ProcessParams withDeviceId(Integer deviceId) { + public ProcessParams deviceId(@javax.annotation.Nullable Integer deviceId) { this.deviceId = deviceId; return this; } @@ -1319,11 +1454,11 @@ public Integer getDeviceId() { return deviceId; } - public void setDeviceId(Integer deviceId) { + public void setDeviceId(@javax.annotation.Nullable Integer deviceId) { this.deviceId = deviceId; } - public ProcessParams withDeviceType(Integer deviceType) { + public ProcessParams deviceType(@javax.annotation.Nullable Integer deviceType) { this.deviceType = deviceType; return this; } @@ -1339,11 +1474,11 @@ public Integer getDeviceType() { return deviceType; } - public void setDeviceType(Integer deviceType) { + public void setDeviceType(@javax.annotation.Nullable Integer deviceType) { this.deviceType = deviceType; } - public ProcessParams withDeviceTypeHex(String deviceTypeHex) { + public ProcessParams deviceTypeHex(@javax.annotation.Nullable String deviceTypeHex) { this.deviceTypeHex = deviceTypeHex; return this; } @@ -1359,11 +1494,12 @@ public String getDeviceTypeHex() { return deviceTypeHex; } - public void setDeviceTypeHex(String deviceTypeHex) { + public void setDeviceTypeHex(@javax.annotation.Nullable String deviceTypeHex) { this.deviceTypeHex = deviceTypeHex; } - public ProcessParams withIgnoreDeviceIdFromImage(Boolean ignoreDeviceIdFromImage) { + public ProcessParams ignoreDeviceIdFromImage( + @javax.annotation.Nullable Boolean ignoreDeviceIdFromImage) { this.ignoreDeviceIdFromImage = ignoreDeviceIdFromImage; return this; } @@ -1379,18 +1515,19 @@ public Boolean getIgnoreDeviceIdFromImage() { return ignoreDeviceIdFromImage; } - public void setIgnoreDeviceIdFromImage(Boolean ignoreDeviceIdFromImage) { + public void setIgnoreDeviceIdFromImage( + @javax.annotation.Nullable Boolean ignoreDeviceIdFromImage) { this.ignoreDeviceIdFromImage = ignoreDeviceIdFromImage; } - public ProcessParams withDocumentIdList(List documentIdList) { + public ProcessParams documentIdList(@javax.annotation.Nullable List documentIdList) { this.documentIdList = documentIdList; return this; } public ProcessParams addDocumentIdListItem(Integer documentIdListItem) { if (this.documentIdList == null) { - this.documentIdList = new ArrayList(); + this.documentIdList = new ArrayList<>(); } this.documentIdList.add(documentIdListItem); return this; @@ -1406,11 +1543,11 @@ public List getDocumentIdList() { return documentIdList; } - public void setDocumentIdList(List documentIdList) { + public void setDocumentIdList(@javax.annotation.Nullable List documentIdList) { this.documentIdList = documentIdList; } - public ProcessParams withRfid(ProcessParamsRfid rfid) { + public ProcessParams rfid(@javax.annotation.Nullable ProcessParamsRfid rfid) { this.rfid = rfid; return this; } @@ -1425,11 +1562,11 @@ public ProcessParamsRfid getRfid() { return rfid; } - public void setRfid(ProcessParamsRfid rfid) { + public void setRfid(@javax.annotation.Nullable ProcessParamsRfid rfid) { this.rfid = rfid; } - public ProcessParams withCheckAuth(Boolean checkAuth) { + public ProcessParams checkAuth(@javax.annotation.Nullable Boolean checkAuth) { this.checkAuth = checkAuth; return this; } @@ -1444,11 +1581,11 @@ public Boolean getCheckAuth() { return checkAuth; } - public void setCheckAuth(Boolean checkAuth) { + public void setCheckAuth(@javax.annotation.Nullable Boolean checkAuth) { this.checkAuth = checkAuth; } - public ProcessParams withAuthParams(AuthParams authParams) { + public ProcessParams authParams(@javax.annotation.Nullable AuthParams authParams) { this.authParams = authParams; return this; } @@ -1463,11 +1600,11 @@ public AuthParams getAuthParams() { return authParams; } - public void setAuthParams(AuthParams authParams) { + public void setAuthParams(@javax.annotation.Nullable AuthParams authParams) { this.authParams = authParams; } - public ProcessParams withMrzDetectMode(MrzDetectModeEnum mrzDetectMode) { + public ProcessParams mrzDetectMode(@javax.annotation.Nullable MrzDetectModeEnum mrzDetectMode) { this.mrzDetectMode = mrzDetectMode; return this; } @@ -1482,11 +1619,12 @@ public MrzDetectModeEnum getMrzDetectMode() { return mrzDetectMode; } - public void setMrzDetectMode(MrzDetectModeEnum mrzDetectMode) { + public void setMrzDetectMode(@javax.annotation.Nullable MrzDetectModeEnum mrzDetectMode) { this.mrzDetectMode = mrzDetectMode; } - public ProcessParams withGenerateNumericCodes(Boolean generateNumericCodes) { + public ProcessParams generateNumericCodes( + @javax.annotation.Nullable Boolean generateNumericCodes) { this.generateNumericCodes = generateNumericCodes; return this; } @@ -1502,12 +1640,12 @@ public Boolean getGenerateNumericCodes() { return generateNumericCodes; } - public void setGenerateNumericCodes(Boolean generateNumericCodes) { + public void setGenerateNumericCodes(@javax.annotation.Nullable Boolean generateNumericCodes) { this.generateNumericCodes = generateNumericCodes; } - public ProcessParams withStrictBarcodeDigitalSignatureCheck( - Boolean strictBarcodeDigitalSignatureCheck) { + public ProcessParams strictBarcodeDigitalSignatureCheck( + @javax.annotation.Nullable Boolean strictBarcodeDigitalSignatureCheck) { this.strictBarcodeDigitalSignatureCheck = strictBarcodeDigitalSignatureCheck; return this; } @@ -1523,11 +1661,12 @@ public Boolean getStrictBarcodeDigitalSignatureCheck() { return strictBarcodeDigitalSignatureCheck; } - public void setStrictBarcodeDigitalSignatureCheck(Boolean strictBarcodeDigitalSignatureCheck) { + public void setStrictBarcodeDigitalSignatureCheck( + @javax.annotation.Nullable Boolean strictBarcodeDigitalSignatureCheck) { this.strictBarcodeDigitalSignatureCheck = strictBarcodeDigitalSignatureCheck; } - public ProcessParams withSelectLongestNames(Boolean selectLongestNames) { + public ProcessParams selectLongestNames(@javax.annotation.Nullable Boolean selectLongestNames) { this.selectLongestNames = selectLongestNames; return this; } @@ -1544,18 +1683,18 @@ public Boolean getSelectLongestNames() { return selectLongestNames; } - public void setSelectLongestNames(Boolean selectLongestNames) { + public void setSelectLongestNames(@javax.annotation.Nullable Boolean selectLongestNames) { this.selectLongestNames = selectLongestNames; } - public ProcessParams withDoBarcodes(List doBarcodes) { + public ProcessParams doBarcodes(@javax.annotation.Nullable List doBarcodes) { this.doBarcodes = doBarcodes; return this; } public ProcessParams addDoBarcodesItem(InputBarcodeType doBarcodesItem) { if (this.doBarcodes == null) { - this.doBarcodes = new ArrayList(); + this.doBarcodes = new ArrayList<>(); } this.doBarcodes.add(doBarcodesItem); return this; @@ -1571,12 +1710,12 @@ public List getDoBarcodes() { return doBarcodes; } - public void setDoBarcodes(List doBarcodes) { + public void setDoBarcodes(@javax.annotation.Nullable List doBarcodes) { this.doBarcodes = doBarcodes; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -1586,6 +1725,7 @@ public boolean equals(java.lang.Object o) { ProcessParams processParams = (ProcessParams) o; return Objects.equals(this.generateDTCVC, processParams.generateDTCVC) && Objects.equals(this.lcidFilter, processParams.lcidFilter) + && Objects.equals(this.checkLiveness, processParams.checkLiveness) && Objects.equals(this.lcidIgnoreFilter, processParams.lcidIgnoreFilter) && Objects.equals(this.oneShotIdentification, processParams.oneShotIdentification) && Objects.equals(this.useFaceApi, processParams.useFaceApi) @@ -1653,6 +1793,7 @@ public int hashCode() { return Objects.hash( generateDTCVC, lcidFilter, + checkLiveness, lcidIgnoreFilter, oneShotIdentification, useFaceApi, @@ -1718,6 +1859,7 @@ public String toString() { sb.append("class ProcessParams {\n"); sb.append(" generateDTCVC: ").append(toIndentedString(generateDTCVC)).append("\n"); sb.append(" lcidFilter: ").append(toIndentedString(lcidFilter)).append("\n"); + sb.append(" checkLiveness: ").append(toIndentedString(checkLiveness)).append("\n"); sb.append(" lcidIgnoreFilter: ").append(toIndentedString(lcidIgnoreFilter)).append("\n"); sb.append(" oneShotIdentification: ") .append(toIndentedString(oneShotIdentification)) @@ -1812,10 +1954,313 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("generateDTCVC"); + openapiFields.add("lcidFilter"); + openapiFields.add("checkLiveness"); + openapiFields.add("lcidIgnoreFilter"); + openapiFields.add("oneShotIdentification"); + openapiFields.add("useFaceApi"); + openapiFields.add("faceApi"); + openapiFields.add("doDetectCan"); + openapiFields.add("imageOutputMaxHeight"); + openapiFields.add("imageOutputMaxWidth"); + openapiFields.add("scenario"); + openapiFields.add("resultTypeOutput"); + openapiFields.add("doublePageSpread"); + openapiFields.add("generateDoublePageSpreadImage"); + openapiFields.add("fieldTypesFilter"); + openapiFields.add("dateFormat"); + openapiFields.add("measureSystem"); + openapiFields.add("imageDpiOutMax"); + openapiFields.add("alreadyCropped"); + openapiFields.add("customParams"); + openapiFields.add("config"); + openapiFields.add("log"); + openapiFields.add("logLevel"); + openapiFields.add("forceDocID"); + openapiFields.add("matchTextFieldMask"); + openapiFields.add("fastDocDetect"); + openapiFields.add("updateOCRValidityByGlare"); + openapiFields.add("checkRequiredTextFields"); + openapiFields.add("returnCroppedBarcode"); + openapiFields.add("imageQa"); + openapiFields.add("strictImageQuality"); + openapiFields.add("respectImageQuality"); + openapiFields.add("forceDocFormat"); + openapiFields.add("noGraphics"); + openapiFields.add("depersonalizeLog"); + openapiFields.add("multiDocOnImage"); + openapiFields.add("shiftExpiryDate"); + openapiFields.add("minimalHolderAge"); + openapiFields.add("returnUncroppedImage"); + openapiFields.add("mrzFormatsFilter"); + openapiFields.add("forceReadMrzBeforeLocate"); + openapiFields.add("parseBarcodes"); + openapiFields.add("convertCase"); + openapiFields.add("splitNames"); + openapiFields.add("disablePerforationOCR"); + openapiFields.add("documentGroupFilter"); + openapiFields.add("processAuth"); + openapiFields.add("deviceId"); + openapiFields.add("deviceType"); + openapiFields.add("deviceTypeHex"); + openapiFields.add("ignoreDeviceIdFromImage"); + openapiFields.add("documentIdList"); + openapiFields.add("rfid"); + openapiFields.add("checkAuth"); + openapiFields.add("authParams"); + openapiFields.add("mrzDetectMode"); + openapiFields.add("generateNumericCodes"); + openapiFields.add("strictBarcodeDigitalSignatureCheck"); + openapiFields.add("selectLongestNames"); + openapiFields.add("doBarcodes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("scenario"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ProcessParams + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ProcessParams.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ProcessParams is not found in the empty JSON string", + ProcessParams.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ProcessParams.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ProcessParams` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ProcessParams.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("lcidFilter") != null + && !jsonObj.get("lcidFilter").isJsonNull() + && !jsonObj.get("lcidFilter").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `lcidFilter` to be an array in the JSON string but got `%s`", + jsonObj.get("lcidFilter").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("lcidIgnoreFilter") != null + && !jsonObj.get("lcidIgnoreFilter").isJsonNull() + && !jsonObj.get("lcidIgnoreFilter").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `lcidIgnoreFilter` to be an array in the JSON string but got `%s`", + jsonObj.get("lcidIgnoreFilter").toString())); + } + // validate the optional field `faceApi` + if (jsonObj.get("faceApi") != null && !jsonObj.get("faceApi").isJsonNull()) { + FaceApi.validateJsonElement(jsonObj.get("faceApi")); + } + // validate the required field `scenario` + Scenario.validateJsonElement(jsonObj.get("scenario")); + // ensure the optional json data is an array if present + if (jsonObj.get("resultTypeOutput") != null + && !jsonObj.get("resultTypeOutput").isJsonNull() + && !jsonObj.get("resultTypeOutput").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `resultTypeOutput` to be an array in the JSON string but got `%s`", + jsonObj.get("resultTypeOutput").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("fieldTypesFilter") != null + && !jsonObj.get("fieldTypesFilter").isJsonNull() + && !jsonObj.get("fieldTypesFilter").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `fieldTypesFilter` to be an array in the JSON string but got `%s`", + jsonObj.get("fieldTypesFilter").toString())); + } + if ((jsonObj.get("dateFormat") != null && !jsonObj.get("dateFormat").isJsonNull()) + && !jsonObj.get("dateFormat").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `dateFormat` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("dateFormat").toString())); + } + // validate the optional field `measureSystem` + if (jsonObj.get("measureSystem") != null && !jsonObj.get("measureSystem").isJsonNull()) { + MeasureSystem.validateJsonElement(jsonObj.get("measureSystem")); + } + if (jsonObj.get("config") != null && !jsonObj.get("config").isJsonNull()) { + JsonArray jsonArrayconfig = jsonObj.getAsJsonArray("config"); + if (jsonArrayconfig != null) { + // ensure the json data is an array + if (!jsonObj.get("config").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `config` to be an array in the JSON string but got `%s`", + jsonObj.get("config").toString())); + } + + // validate the optional field `config` (array) + for (int i = 0; i < jsonArrayconfig.size(); i++) { + PerDocumentConfig.validateJsonElement(jsonArrayconfig.get(i)); + } + ; + } + } + // validate the optional field `logLevel` + if (jsonObj.get("logLevel") != null && !jsonObj.get("logLevel").isJsonNull()) { + LogLevel.validateJsonElement(jsonObj.get("logLevel")); + } + // validate the optional field `imageQa` + if (jsonObj.get("imageQa") != null && !jsonObj.get("imageQa").isJsonNull()) { + ImageQA.validateJsonElement(jsonObj.get("imageQa")); + } + // validate the optional field `forceDocFormat` + if (jsonObj.get("forceDocFormat") != null && !jsonObj.get("forceDocFormat").isJsonNull()) { + DocumentFormat.validateJsonElement(jsonObj.get("forceDocFormat")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("mrzFormatsFilter") != null + && !jsonObj.get("mrzFormatsFilter").isJsonNull() + && !jsonObj.get("mrzFormatsFilter").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `mrzFormatsFilter` to be an array in the JSON string but got `%s`", + jsonObj.get("mrzFormatsFilter").toString())); + } + // validate the optional field `convertCase` + if (jsonObj.get("convertCase") != null && !jsonObj.get("convertCase").isJsonNull()) { + TextPostProcessing.validateJsonElement(jsonObj.get("convertCase")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("documentGroupFilter") != null + && !jsonObj.get("documentGroupFilter").isJsonNull() + && !jsonObj.get("documentGroupFilter").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `documentGroupFilter` to be an array in the JSON string but got `%s`", + jsonObj.get("documentGroupFilter").toString())); + } + if ((jsonObj.get("deviceTypeHex") != null && !jsonObj.get("deviceTypeHex").isJsonNull()) + && !jsonObj.get("deviceTypeHex").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `deviceTypeHex` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("deviceTypeHex").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("documentIdList") != null + && !jsonObj.get("documentIdList").isJsonNull() + && !jsonObj.get("documentIdList").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `documentIdList` to be an array in the JSON string but got `%s`", + jsonObj.get("documentIdList").toString())); + } + // validate the optional field `rfid` + if (jsonObj.get("rfid") != null && !jsonObj.get("rfid").isJsonNull()) { + ProcessParamsRfid.validateJsonElement(jsonObj.get("rfid")); + } + // validate the optional field `authParams` + if (jsonObj.get("authParams") != null && !jsonObj.get("authParams").isJsonNull()) { + AuthParams.validateJsonElement(jsonObj.get("authParams")); + } + // validate the optional field `mrzDetectMode` + if (jsonObj.get("mrzDetectMode") != null && !jsonObj.get("mrzDetectMode").isJsonNull()) { + MrzDetectModeEnum.validateJsonElement(jsonObj.get("mrzDetectMode")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("doBarcodes") != null + && !jsonObj.get("doBarcodes").isJsonNull() + && !jsonObj.get("doBarcodes").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `doBarcodes` to be an array in the JSON string but got `%s`", + jsonObj.get("doBarcodes").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ProcessParams.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ProcessParams' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ProcessParams.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ProcessParams value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ProcessParams read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ProcessParams given an JSON string + * + * @param jsonString JSON string + * @return An instance of ProcessParams + * @throws IOException if the JSON string is invalid with respect to ProcessParams + */ + public static ProcessParams fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ProcessParams.class); + } + + /** + * Convert an instance of ProcessParams to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParamsRfid.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParamsRfid.java index 2cd9397f..243ffc23 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParamsRfid.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParamsRfid.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,20 +12,39 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Params for the RFID chip data reprocessing */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ProcessParamsRfid { public static final String SERIALIZED_NAME_PA_SENSITIVE_CODES_DISABLE = "paSensitiveCodesDisable"; @SerializedName(SERIALIZED_NAME_PA_SENSITIVE_CODES_DISABLE) - private List paSensitiveCodesDisable = null; + @javax.annotation.Nullable + private List paSensitiveCodesDisable; + + public ProcessParamsRfid() {} - public ProcessParamsRfid withPaSensitiveCodesDisable( - List paSensitiveCodesDisable) { + public ProcessParamsRfid paSensitiveCodesDisable( + @javax.annotation.Nullable List paSensitiveCodesDisable) { this.paSensitiveCodesDisable = paSensitiveCodesDisable; return this; } @@ -33,7 +52,7 @@ public ProcessParamsRfid withPaSensitiveCodesDisable( public ProcessParamsRfid addPaSensitiveCodesDisableItem( ParsingNotificationCodes paSensitiveCodesDisableItem) { if (this.paSensitiveCodesDisable == null) { - this.paSensitiveCodesDisable = new ArrayList(); + this.paSensitiveCodesDisable = new ArrayList<>(); } this.paSensitiveCodesDisable.add(paSensitiveCodesDisableItem); return this; @@ -49,12 +68,13 @@ public List getPaSensitiveCodesDisable() { return paSensitiveCodesDisable; } - public void setPaSensitiveCodesDisable(List paSensitiveCodesDisable) { + public void setPaSensitiveCodesDisable( + @javax.annotation.Nullable List paSensitiveCodesDisable) { this.paSensitiveCodesDisable = paSensitiveCodesDisable; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -84,10 +104,110 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("paSensitiveCodesDisable"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ProcessParamsRfid + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ProcessParamsRfid.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ProcessParamsRfid is not found in the empty JSON string", + ProcessParamsRfid.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ProcessParamsRfid.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ProcessParamsRfid` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("paSensitiveCodesDisable") != null + && !jsonObj.get("paSensitiveCodesDisable").isJsonNull() + && !jsonObj.get("paSensitiveCodesDisable").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `paSensitiveCodesDisable` to be an array in the JSON string but got `%s`", + jsonObj.get("paSensitiveCodesDisable").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ProcessParamsRfid.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ProcessParamsRfid' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ProcessParamsRfid.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ProcessParamsRfid value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ProcessParamsRfid read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ProcessParamsRfid given an JSON string + * + * @param jsonString JSON string + * @return An instance of ProcessParamsRfid + * @throws IOException if the JSON string is invalid with respect to ProcessParamsRfid + */ + public static ProcessParamsRfid fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ProcessParamsRfid.class); + } + + /** + * Convert an instance of ProcessParamsRfid to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java old mode 100755 new mode 100644 index b52346fb..5d8a0103 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,76 +12,140 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; /** ProcessRequest */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ProcessRequest { + public static final String SERIALIZED_NAME_LCID_FILTER = "lcidFilter"; + + @SerializedName(SERIALIZED_NAME_LCID_FILTER) + @javax.annotation.Nullable + private List lcidFilter; + public static final String SERIALIZED_NAME_PROCESS_PARAM = "processParam"; @SerializedName(SERIALIZED_NAME_PROCESS_PARAM) + @javax.annotation.Nonnull private ProcessParams processParam; public static final String SERIALIZED_NAME_LIST = "List"; @SerializedName(SERIALIZED_NAME_LIST) - private List list = null; + @javax.annotation.Nullable + private List list; public static final String SERIALIZED_NAME_TAG = "tag"; @SerializedName(SERIALIZED_NAME_TAG) + @javax.annotation.Nullable private String tag; public static final String SERIALIZED_NAME_TENANT = "tenant"; @SerializedName(SERIALIZED_NAME_TENANT) + @javax.annotation.Nullable private String tenant; public static final String SERIALIZED_NAME_ENV = "env"; @SerializedName(SERIALIZED_NAME_ENV) + @javax.annotation.Nullable private String env; public static final String SERIALIZED_NAME_LIVE_PORTRAIT = "livePortrait"; @SerializedName(SERIALIZED_NAME_LIVE_PORTRAIT) + @javax.annotation.Nullable private String livePortrait; public static final String SERIALIZED_NAME_EXT_PORTRAIT = "extPortrait"; @SerializedName(SERIALIZED_NAME_EXT_PORTRAIT) + @javax.annotation.Nullable private String extPortrait; public static final String SERIALIZED_NAME_CONTAINER_LIST = "ContainerList"; @SerializedName(SERIALIZED_NAME_CONTAINER_LIST) - private ContainerList containerList; + @javax.annotation.Nullable + private com.regula.documentreader.webclient.model.changed.ContainerList containerList; public static final String SERIALIZED_NAME_SYSTEM_INFO = "systemInfo"; @SerializedName(SERIALIZED_NAME_SYSTEM_INFO) + @javax.annotation.Nullable private ProcessSystemInfo systemInfo; public static final String SERIALIZED_NAME_PASS_BACK_OBJECT = "passBackObject"; @SerializedName(SERIALIZED_NAME_PASS_BACK_OBJECT) - private Map passBackObject = null; + @javax.annotation.Nullable + private Map passBackObject; public static final String SERIALIZED_NAME_DTC = "dtc"; @SerializedName(SERIALIZED_NAME_DTC) + @javax.annotation.Nullable private String dtc; public static final String SERIALIZED_NAME_IMAGE_URLS = "ImageUrls"; @SerializedName(SERIALIZED_NAME_IMAGE_URLS) - private List imageUrls = null; + @javax.annotation.Nullable + private List imageUrls; + + public ProcessRequest() {} + + public ProcessRequest lcidFilter(@javax.annotation.Nullable List lcidFilter) { + this.lcidFilter = lcidFilter; + return this; + } + + public ProcessRequest addLcidFilterItem(LCID lcidFilterItem) { + if (this.lcidFilter == null) { + this.lcidFilter = new ArrayList<>(); + } + this.lcidFilter.add(lcidFilterItem); + return this; + } - public ProcessRequest withProcessParam(ProcessParams processParam) { + /** + * The list of LCID types to recognize. If empty, values with all LCID types will be extracted. + * Empty by default. + * + * @return lcidFilter + */ + @javax.annotation.Nullable + public List getLcidFilter() { + return lcidFilter; + } + + public void setLcidFilter(@javax.annotation.Nullable List lcidFilter) { + this.lcidFilter = lcidFilter; + } + + public ProcessRequest processParam(@javax.annotation.Nonnull ProcessParams processParam) { this.processParam = processParam; return this; } @@ -91,22 +155,23 @@ public ProcessRequest withProcessParam(ProcessParams processParam) { * * @return processParam */ + @javax.annotation.Nonnull public ProcessParams getProcessParam() { return processParam; } - public void setProcessParam(ProcessParams processParam) { + public void setProcessParam(@javax.annotation.Nonnull ProcessParams processParam) { this.processParam = processParam; } - public ProcessRequest withList(List list) { + public ProcessRequest list(@javax.annotation.Nullable List list) { this.list = list; return this; } public ProcessRequest addListItem(ProcessRequestImage listItem) { if (this.list == null) { - this.list = new ArrayList(); + this.list = new ArrayList<>(); } this.list.add(listItem); return this; @@ -122,11 +187,11 @@ public List getList() { return list; } - public void setList(List list) { + public void setList(@javax.annotation.Nullable List list) { this.list = list; } - public ProcessRequest withTag(String tag) { + public ProcessRequest tag(@javax.annotation.Nullable String tag) { this.tag = tag; return this; } @@ -141,11 +206,11 @@ public String getTag() { return tag; } - public void setTag(String tag) { + public void setTag(@javax.annotation.Nullable String tag) { this.tag = tag; } - public ProcessRequest withTenant(String tenant) { + public ProcessRequest tenant(@javax.annotation.Nullable String tenant) { this.tenant = tenant; return this; } @@ -160,11 +225,11 @@ public String getTenant() { return tenant; } - public void setTenant(String tenant) { + public void setTenant(@javax.annotation.Nullable String tenant) { this.tenant = tenant; } - public ProcessRequest withEnv(String env) { + public ProcessRequest env(@javax.annotation.Nullable String env) { this.env = env; return this; } @@ -179,11 +244,11 @@ public String getEnv() { return env; } - public void setEnv(String env) { + public void setEnv(@javax.annotation.Nullable String env) { this.env = env; } - public ProcessRequest withLivePortrait(String livePortrait) { + public ProcessRequest livePortrait(@javax.annotation.Nullable String livePortrait) { this.livePortrait = livePortrait; return this; } @@ -198,11 +263,11 @@ public String getLivePortrait() { return livePortrait; } - public void setLivePortrait(String livePortrait) { + public void setLivePortrait(@javax.annotation.Nullable String livePortrait) { this.livePortrait = livePortrait; } - public ProcessRequest withExtPortrait(String extPortrait) { + public ProcessRequest extPortrait(@javax.annotation.Nullable String extPortrait) { this.extPortrait = extPortrait; return this; } @@ -217,11 +282,13 @@ public String getExtPortrait() { return extPortrait; } - public void setExtPortrait(String extPortrait) { + public void setExtPortrait(@javax.annotation.Nullable String extPortrait) { this.extPortrait = extPortrait; } - public ProcessRequest withContainerList(ContainerList containerList) { + public ProcessRequest containerList( + @javax.annotation.Nullable + com.regula.documentreader.webclient.model.changed.ContainerList containerList) { this.containerList = containerList; return this; } @@ -232,15 +299,17 @@ public ProcessRequest withContainerList(ContainerList containerList) { * @return containerList */ @javax.annotation.Nullable - public ContainerList getContainerList() { + public com.regula.documentreader.webclient.model.changed.ContainerList getContainerList() { return containerList; } - public void setContainerList(ContainerList containerList) { + public void setContainerList( + @javax.annotation.Nullable + com.regula.documentreader.webclient.model.changed.ContainerList containerList) { this.containerList = containerList; } - public ProcessRequest withSystemInfo(ProcessSystemInfo systemInfo) { + public ProcessRequest systemInfo(@javax.annotation.Nullable ProcessSystemInfo systemInfo) { this.systemInfo = systemInfo; return this; } @@ -255,18 +324,19 @@ public ProcessSystemInfo getSystemInfo() { return systemInfo; } - public void setSystemInfo(ProcessSystemInfo systemInfo) { + public void setSystemInfo(@javax.annotation.Nullable ProcessSystemInfo systemInfo) { this.systemInfo = systemInfo; } - public ProcessRequest withPassBackObject(Map passBackObject) { + public ProcessRequest passBackObject( + @javax.annotation.Nullable Map passBackObject) { this.passBackObject = passBackObject; return this; } public ProcessRequest putPassBackObjectItem(String key, Object passBackObjectItem) { if (this.passBackObject == null) { - this.passBackObject = new HashMap(); + this.passBackObject = new HashMap<>(); } this.passBackObject.put(key, passBackObjectItem); return this; @@ -283,11 +353,11 @@ public Map getPassBackObject() { return passBackObject; } - public void setPassBackObject(Map passBackObject) { + public void setPassBackObject(@javax.annotation.Nullable Map passBackObject) { this.passBackObject = passBackObject; } - public ProcessRequest withDtc(String dtc) { + public ProcessRequest dtc(@javax.annotation.Nullable String dtc) { this.dtc = dtc; return this; } @@ -302,18 +372,18 @@ public String getDtc() { return dtc; } - public void setDtc(String dtc) { + public void setDtc(@javax.annotation.Nullable String dtc) { this.dtc = dtc; } - public ProcessRequest withImageUrls(List imageUrls) { + public ProcessRequest imageUrls(@javax.annotation.Nullable List imageUrls) { this.imageUrls = imageUrls; return this; } public ProcessRequest addImageUrlsItem(String imageUrlsItem) { if (this.imageUrls == null) { - this.imageUrls = new ArrayList(); + this.imageUrls = new ArrayList<>(); } this.imageUrls.add(imageUrlsItem); return this; @@ -329,12 +399,12 @@ public List getImageUrls() { return imageUrls; } - public void setImageUrls(List imageUrls) { + public void setImageUrls(@javax.annotation.Nullable List imageUrls) { this.imageUrls = imageUrls; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -342,7 +412,8 @@ public boolean equals(java.lang.Object o) { return false; } ProcessRequest processRequest = (ProcessRequest) o; - return Objects.equals(this.processParam, processRequest.processParam) + return Objects.equals(this.lcidFilter, processRequest.lcidFilter) + && Objects.equals(this.processParam, processRequest.processParam) && Objects.equals(this.list, processRequest.list) && Objects.equals(this.tag, processRequest.tag) && Objects.equals(this.tenant, processRequest.tenant) @@ -359,6 +430,7 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { return Objects.hash( + lcidFilter, processParam, list, tag, @@ -377,6 +449,7 @@ public int hashCode() { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ProcessRequest {\n"); + sb.append(" lcidFilter: ").append(toIndentedString(lcidFilter)).append("\n"); sb.append(" processParam: ").append(toIndentedString(processParam)).append("\n"); sb.append(" list: ").append(toIndentedString(list)).append("\n"); sb.append(" tag: ").append(toIndentedString(tag)).append("\n"); @@ -396,10 +469,213 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("lcidFilter"); + openapiFields.add("processParam"); + openapiFields.add("List"); + openapiFields.add("tag"); + openapiFields.add("tenant"); + openapiFields.add("env"); + openapiFields.add("livePortrait"); + openapiFields.add("extPortrait"); + openapiFields.add("ContainerList"); + openapiFields.add("systemInfo"); + openapiFields.add("passBackObject"); + openapiFields.add("dtc"); + openapiFields.add("ImageUrls"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("processParam"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ProcessRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ProcessRequest.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ProcessRequest is not found in the empty JSON string", + ProcessRequest.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ProcessRequest.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ProcessRequest` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ProcessRequest.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("lcidFilter") != null + && !jsonObj.get("lcidFilter").isJsonNull() + && !jsonObj.get("lcidFilter").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `lcidFilter` to be an array in the JSON string but got `%s`", + jsonObj.get("lcidFilter").toString())); + } + // validate the required field `processParam` + ProcessParams.validateJsonElement(jsonObj.get("processParam")); + if (jsonObj.get("List") != null && !jsonObj.get("List").isJsonNull()) { + JsonArray jsonArraylist = jsonObj.getAsJsonArray("List"); + if (jsonArraylist != null) { + // ensure the json data is an array + if (!jsonObj.get("List").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `List` to be an array in the JSON string but got `%s`", + jsonObj.get("List").toString())); + } + + // validate the optional field `List` (array) + for (int i = 0; i < jsonArraylist.size(); i++) { + ProcessRequestImage.validateJsonElement(jsonArraylist.get(i)); + } + ; + } + } + if ((jsonObj.get("tag") != null && !jsonObj.get("tag").isJsonNull()) + && !jsonObj.get("tag").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `tag` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("tag").toString())); + } + if ((jsonObj.get("tenant") != null && !jsonObj.get("tenant").isJsonNull()) + && !jsonObj.get("tenant").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `tenant` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("tenant").toString())); + } + if ((jsonObj.get("env") != null && !jsonObj.get("env").isJsonNull()) + && !jsonObj.get("env").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `env` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("env").toString())); + } + if ((jsonObj.get("livePortrait") != null && !jsonObj.get("livePortrait").isJsonNull()) + && !jsonObj.get("livePortrait").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `livePortrait` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("livePortrait").toString())); + } + if ((jsonObj.get("extPortrait") != null && !jsonObj.get("extPortrait").isJsonNull()) + && !jsonObj.get("extPortrait").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `extPortrait` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("extPortrait").toString())); + } + // validate the optional field `ContainerList` + if (jsonObj.get("ContainerList") != null && !jsonObj.get("ContainerList").isJsonNull()) { + com.regula.documentreader.webclient.model.changed.ContainerList.validateJsonElement( + jsonObj.get("ContainerList")); + } + // validate the optional field `systemInfo` + if (jsonObj.get("systemInfo") != null && !jsonObj.get("systemInfo").isJsonNull()) { + ProcessSystemInfo.validateJsonElement(jsonObj.get("systemInfo")); + } + if ((jsonObj.get("dtc") != null && !jsonObj.get("dtc").isJsonNull()) + && !jsonObj.get("dtc").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `dtc` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("dtc").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("ImageUrls") != null + && !jsonObj.get("ImageUrls").isJsonNull() + && !jsonObj.get("ImageUrls").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ImageUrls` to be an array in the JSON string but got `%s`", + jsonObj.get("ImageUrls").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ProcessRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ProcessRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ProcessRequest.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ProcessRequest value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ProcessRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ProcessRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of ProcessRequest + * @throws IOException if the JSON string is invalid with respect to ProcessRequest + */ + public static ProcessRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ProcessRequest.class); + } + + /** + * Convert an instance of ProcessRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequestImage.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequestImage.java old mode 100755 new mode 100644 index 65703852..5ea5f5ee --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequestImage.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequestImage.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,27 +12,48 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ProcessRequestImage */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ProcessRequestImage { public static final String SERIALIZED_NAME_IMAGE_DATA = "ImageData"; @SerializedName(SERIALIZED_NAME_IMAGE_DATA) + @javax.annotation.Nullable private ImageData imageData; public static final String SERIALIZED_NAME_LIGHT = "light"; @SerializedName(SERIALIZED_NAME_LIGHT) - private Integer light; + @javax.annotation.Nullable + private Light light; public static final String SERIALIZED_NAME_PAGE_IDX = "page_idx"; @SerializedName(SERIALIZED_NAME_PAGE_IDX) + @javax.annotation.Nullable private Integer pageIdx; - public ProcessRequestImage withImageData(ImageData imageData) { + public ProcessRequestImage() {} + + public ProcessRequestImage imageData(@javax.annotation.Nullable ImageData imageData) { this.imageData = imageData; return this; } @@ -47,11 +68,11 @@ public ImageData getImageData() { return imageData; } - public void setImageData(ImageData imageData) { + public void setImageData(@javax.annotation.Nullable ImageData imageData) { this.imageData = imageData; } - public ProcessRequestImage withLight(Integer light) { + public ProcessRequestImage light(@javax.annotation.Nullable Light light) { this.light = light; return this; } @@ -62,15 +83,15 @@ public ProcessRequestImage withLight(Integer light) { * @return light */ @javax.annotation.Nullable - public Integer getLight() { + public Light getLight() { return light; } - public void setLight(Integer light) { + public void setLight(@javax.annotation.Nullable Light light) { this.light = light; } - public ProcessRequestImage withPageIdx(Integer pageIdx) { + public ProcessRequestImage pageIdx(@javax.annotation.Nullable Integer pageIdx) { this.pageIdx = pageIdx; return this; } @@ -85,12 +106,12 @@ public Integer getPageIdx() { return pageIdx; } - public void setPageIdx(Integer pageIdx) { + public void setPageIdx(@javax.annotation.Nullable Integer pageIdx) { this.pageIdx = pageIdx; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -122,10 +143,111 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ImageData"); + openapiFields.add("light"); + openapiFields.add("page_idx"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ProcessRequestImage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ProcessRequestImage.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ProcessRequestImage is not found in the empty JSON string", + ProcessRequestImage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ProcessRequestImage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ProcessRequestImage` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `ImageData` + if (jsonObj.get("ImageData") != null && !jsonObj.get("ImageData").isJsonNull()) { + ImageData.validateJsonElement(jsonObj.get("ImageData")); + } + // validate the optional field `light` + if (jsonObj.get("light") != null && !jsonObj.get("light").isJsonNull()) { + Light.validateJsonElement(jsonObj.get("light")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ProcessRequestImage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ProcessRequestImage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ProcessRequestImage.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ProcessRequestImage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ProcessRequestImage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ProcessRequestImage given an JSON string + * + * @param jsonString JSON string + * @return An instance of ProcessRequestImage + * @throws IOException if the JSON string is invalid with respect to ProcessRequestImage + */ + public static ProcessRequestImage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ProcessRequestImage.class); + } + + /** + * Convert an instance of ProcessRequestImage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java old mode 100755 new mode 100644 index 67d94ae8..bc6bfbac --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,54 +12,84 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import com.google.gson.annotations.SerializedName; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.Objects; /** ProcessResponse */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ProcessResponse { public static final String SERIALIZED_NAME_CHIP_PAGE = "ChipPage"; @SerializedName(SERIALIZED_NAME_CHIP_PAGE) - private Integer chipPage; + @javax.annotation.Nonnull + private RfidLocation chipPage; + + public static final String SERIALIZED_NAME_CORE_LIB_RESULT_CODE = "CoreLibResultCode"; + + @SerializedName(SERIALIZED_NAME_CORE_LIB_RESULT_CODE) + @javax.annotation.Nullable + private Integer coreLibResultCode; public static final String SERIALIZED_NAME_PROCESSING_FINISHED = "ProcessingFinished"; @SerializedName(SERIALIZED_NAME_PROCESSING_FINISHED) - private Integer processingFinished; + @javax.annotation.Nonnull + private ProcessingStatus processingFinished; public static final String SERIALIZED_NAME_CONTAINER_LIST = "ContainerList"; @SerializedName(SERIALIZED_NAME_CONTAINER_LIST) - private ContainerList containerList; + @javax.annotation.Nonnull + private com.regula.documentreader.webclient.model.changed.ContainerList containerList; public static final String SERIALIZED_NAME_TRANSACTION_INFO = "TransactionInfo"; @SerializedName(SERIALIZED_NAME_TRANSACTION_INFO) + @javax.annotation.Nonnull private TransactionInfo transactionInfo; public static final String SERIALIZED_NAME_LOG = "log"; @SerializedName(SERIALIZED_NAME_LOG) + @javax.annotation.Nullable private String log; public static final String SERIALIZED_NAME_PASS_BACK_OBJECT = "passBackObject"; @SerializedName(SERIALIZED_NAME_PASS_BACK_OBJECT) - private Map passBackObject = null; + @javax.annotation.Nullable + private Map passBackObject; public static final String SERIALIZED_NAME_MORE_PAGES_AVAILABLE = "morePagesAvailable"; @SerializedName(SERIALIZED_NAME_MORE_PAGES_AVAILABLE) + @javax.annotation.Nonnull private Integer morePagesAvailable; public static final String SERIALIZED_NAME_ELAPSED_TIME = "elapsedTime"; @SerializedName(SERIALIZED_NAME_ELAPSED_TIME) + @javax.annotation.Nonnull private Integer elapsedTime; - public ProcessResponse withChipPage(Integer chipPage) { + public static final String SERIALIZED_NAME_METADATA = "metadata"; + + @SerializedName(SERIALIZED_NAME_METADATA) + @javax.annotation.Nullable + private Map metadata; + + public ProcessResponse() {} + + public ProcessResponse chipPage(@javax.annotation.Nonnull RfidLocation chipPage) { this.chipPage = chipPage; return this; } @@ -69,16 +99,36 @@ public ProcessResponse withChipPage(Integer chipPage) { * * @return chipPage */ - @javax.annotation.Nullable - public Integer getChipPage() { + @javax.annotation.Nonnull + public RfidLocation getChipPage() { return chipPage; } - public void setChipPage(Integer chipPage) { + public void setChipPage(@javax.annotation.Nonnull RfidLocation chipPage) { this.chipPage = chipPage; } - public ProcessResponse withProcessingFinished(Integer processingFinished) { + public ProcessResponse coreLibResultCode(@javax.annotation.Nullable Integer coreLibResultCode) { + this.coreLibResultCode = coreLibResultCode; + return this; + } + + /** + * Get coreLibResultCode + * + * @return coreLibResultCode + */ + @javax.annotation.Nullable + public Integer getCoreLibResultCode() { + return coreLibResultCode; + } + + public void setCoreLibResultCode(@javax.annotation.Nullable Integer coreLibResultCode) { + this.coreLibResultCode = coreLibResultCode; + } + + public ProcessResponse processingFinished( + @javax.annotation.Nonnull ProcessingStatus processingFinished) { this.processingFinished = processingFinished; return this; } @@ -88,15 +138,18 @@ public ProcessResponse withProcessingFinished(Integer processingFinished) { * * @return processingFinished */ - public Integer getProcessingFinished() { + @javax.annotation.Nonnull + public ProcessingStatus getProcessingFinished() { return processingFinished; } - public void setProcessingFinished(Integer processingFinished) { + public void setProcessingFinished(@javax.annotation.Nonnull ProcessingStatus processingFinished) { this.processingFinished = processingFinished; } - public ProcessResponse withContainerList(ContainerList containerList) { + public ProcessResponse containerList( + @javax.annotation.Nonnull + com.regula.documentreader.webclient.model.changed.ContainerList containerList) { this.containerList = containerList; return this; } @@ -106,15 +159,19 @@ public ProcessResponse withContainerList(ContainerList containerList) { * * @return containerList */ - public ContainerList getContainerList() { + @javax.annotation.Nonnull + public com.regula.documentreader.webclient.model.changed.ContainerList getContainerList() { return containerList; } - public void setContainerList(ContainerList containerList) { + public void setContainerList( + @javax.annotation.Nonnull + com.regula.documentreader.webclient.model.changed.ContainerList containerList) { this.containerList = containerList; } - public ProcessResponse withTransactionInfo(TransactionInfo transactionInfo) { + public ProcessResponse transactionInfo( + @javax.annotation.Nonnull TransactionInfo transactionInfo) { this.transactionInfo = transactionInfo; return this; } @@ -124,15 +181,16 @@ public ProcessResponse withTransactionInfo(TransactionInfo transactionInfo) { * * @return transactionInfo */ + @javax.annotation.Nonnull public TransactionInfo getTransactionInfo() { return transactionInfo; } - public void setTransactionInfo(TransactionInfo transactionInfo) { + public void setTransactionInfo(@javax.annotation.Nonnull TransactionInfo transactionInfo) { this.transactionInfo = transactionInfo; } - public ProcessResponse withLog(String log) { + public ProcessResponse log(@javax.annotation.Nullable String log) { this.log = log; return this; } @@ -147,18 +205,19 @@ public String getLog() { return log; } - public void setLog(String log) { + public void setLog(@javax.annotation.Nullable String log) { this.log = log; } - public ProcessResponse withPassBackObject(Map passBackObject) { + public ProcessResponse passBackObject( + @javax.annotation.Nullable Map passBackObject) { this.passBackObject = passBackObject; return this; } public ProcessResponse putPassBackObjectItem(String key, Object passBackObjectItem) { if (this.passBackObject == null) { - this.passBackObject = new HashMap(); + this.passBackObject = new HashMap<>(); } this.passBackObject.put(key, passBackObjectItem); return this; @@ -174,11 +233,11 @@ public Map getPassBackObject() { return passBackObject; } - public void setPassBackObject(Map passBackObject) { + public void setPassBackObject(@javax.annotation.Nullable Map passBackObject) { this.passBackObject = passBackObject; } - public ProcessResponse withMorePagesAvailable(Integer morePagesAvailable) { + public ProcessResponse morePagesAvailable(@javax.annotation.Nonnull Integer morePagesAvailable) { this.morePagesAvailable = morePagesAvailable; return this; } @@ -188,16 +247,16 @@ public ProcessResponse withMorePagesAvailable(Integer morePagesAvailable) { * * @return morePagesAvailable */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getMorePagesAvailable() { return morePagesAvailable; } - public void setMorePagesAvailable(Integer morePagesAvailable) { + public void setMorePagesAvailable(@javax.annotation.Nonnull Integer morePagesAvailable) { this.morePagesAvailable = morePagesAvailable; } - public ProcessResponse withElapsedTime(Integer elapsedTime) { + public ProcessResponse elapsedTime(@javax.annotation.Nonnull Integer elapsedTime) { this.elapsedTime = elapsedTime; return this; } @@ -207,17 +266,44 @@ public ProcessResponse withElapsedTime(Integer elapsedTime) { * * @return elapsedTime */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getElapsedTime() { return elapsedTime; } - public void setElapsedTime(Integer elapsedTime) { + public void setElapsedTime(@javax.annotation.Nonnull Integer elapsedTime) { this.elapsedTime = elapsedTime; } + public ProcessResponse metadata(@javax.annotation.Nullable Map metadata) { + this.metadata = metadata; + return this; + } + + public ProcessResponse putMetadataItem(String key, Object metadataItem) { + if (this.metadata == null) { + this.metadata = new HashMap<>(); + } + this.metadata.put(key, metadataItem); + return this; + } + + /** + * Get metadata + * + * @return metadata + */ + @javax.annotation.Nullable + public Map getMetadata() { + return metadata; + } + + public void setMetadata(@javax.annotation.Nullable Map metadata) { + this.metadata = metadata; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -226,26 +312,30 @@ public boolean equals(java.lang.Object o) { } ProcessResponse processResponse = (ProcessResponse) o; return Objects.equals(this.chipPage, processResponse.chipPage) + && Objects.equals(this.coreLibResultCode, processResponse.coreLibResultCode) && Objects.equals(this.processingFinished, processResponse.processingFinished) && Objects.equals(this.containerList, processResponse.containerList) && Objects.equals(this.transactionInfo, processResponse.transactionInfo) && Objects.equals(this.log, processResponse.log) && Objects.equals(this.passBackObject, processResponse.passBackObject) && Objects.equals(this.morePagesAvailable, processResponse.morePagesAvailable) - && Objects.equals(this.elapsedTime, processResponse.elapsedTime); + && Objects.equals(this.elapsedTime, processResponse.elapsedTime) + && Objects.equals(this.metadata, processResponse.metadata); } @Override public int hashCode() { return Objects.hash( chipPage, + coreLibResultCode, processingFinished, containerList, transactionInfo, log, passBackObject, morePagesAvailable, - elapsedTime); + elapsedTime, + metadata); } @Override @@ -253,6 +343,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ProcessResponse {\n"); sb.append(" chipPage: ").append(toIndentedString(chipPage)).append("\n"); + sb.append(" coreLibResultCode: ").append(toIndentedString(coreLibResultCode)).append("\n"); sb.append(" processingFinished: ").append(toIndentedString(processingFinished)).append("\n"); sb.append(" containerList: ").append(toIndentedString(containerList)).append("\n"); sb.append(" transactionInfo: ").append(toIndentedString(transactionInfo)).append("\n"); @@ -260,6 +351,7 @@ public String toString() { sb.append(" passBackObject: ").append(toIndentedString(passBackObject)).append("\n"); sb.append(" morePagesAvailable: ").append(toIndentedString(morePagesAvailable)).append("\n"); sb.append(" elapsedTime: ").append(toIndentedString(elapsedTime)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); sb.append("}"); return sb.toString(); } @@ -267,10 +359,92 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ChipPage"); + openapiFields.add("CoreLibResultCode"); + openapiFields.add("ProcessingFinished"); + openapiFields.add("ContainerList"); + openapiFields.add("TransactionInfo"); + openapiFields.add("log"); + openapiFields.add("passBackObject"); + openapiFields.add("morePagesAvailable"); + openapiFields.add("elapsedTime"); + openapiFields.add("metadata"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ChipPage"); + openapiRequiredFields.add("ProcessingFinished"); + openapiRequiredFields.add("ContainerList"); + openapiRequiredFields.add("TransactionInfo"); + openapiRequiredFields.add("morePagesAvailable"); + openapiRequiredFields.add("elapsedTime"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ProcessResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ProcessResponse.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ProcessResponse is not found in the empty JSON string", + ProcessResponse.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `ChipPage` + RfidLocation.validateJsonElement(jsonObj.get("ChipPage")); + // validate the required field `ProcessingFinished` + ProcessingStatus.validateJsonElement(jsonObj.get("ProcessingFinished")); + // validate the required field `ContainerList` + com.regula.documentreader.webclient.model.changed.ContainerList.validateJsonElement( + jsonObj.get("ContainerList")); + // validate the required field `TransactionInfo` + TransactionInfo.validateJsonElement(jsonObj.get("TransactionInfo")); + if ((jsonObj.get("log") != null && !jsonObj.get("log").isJsonNull()) + && !jsonObj.get("log").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `log` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("log").toString())); + } + } + + /** + * Create an instance of ProcessResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of ProcessResponse + * @throws IOException if the JSON string is invalid with respect to ProcessResponse + */ + public static ProcessResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ProcessResponse.class); + } + + /** + * Convert an instance of ProcessResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessSystemInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessSystemInfo.java old mode 100755 new mode 100644 index f752d879..0ddc496f --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessSystemInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessSystemInfo.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,22 +12,42 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** ProcessSystemInfo */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ProcessSystemInfo { public static final String SERIALIZED_NAME_LICENSE = "license"; @SerializedName(SERIALIZED_NAME_LICENSE) + @javax.annotation.Nullable private String license; public static final String SERIALIZED_NAME_RECAPTCHA_TOKEN = "recaptcha_token"; @SerializedName(SERIALIZED_NAME_RECAPTCHA_TOKEN) + @javax.annotation.Nullable private String recaptchaToken; - public ProcessSystemInfo withLicense(String license) { + public ProcessSystemInfo() {} + + public ProcessSystemInfo license(@javax.annotation.Nullable String license) { this.license = license; return this; } @@ -42,11 +62,11 @@ public String getLicense() { return license; } - public void setLicense(String license) { + public void setLicense(@javax.annotation.Nullable String license) { this.license = license; } - public ProcessSystemInfo withRecaptchaToken(String recaptchaToken) { + public ProcessSystemInfo recaptchaToken(@javax.annotation.Nullable String recaptchaToken) { this.recaptchaToken = recaptchaToken; return this; } @@ -61,12 +81,12 @@ public String getRecaptchaToken() { return recaptchaToken; } - public void setRecaptchaToken(String recaptchaToken) { + public void setRecaptchaToken(@javax.annotation.Nullable String recaptchaToken) { this.recaptchaToken = recaptchaToken; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -96,10 +116,116 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("license"); + openapiFields.add("recaptcha_token"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ProcessSystemInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ProcessSystemInfo.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ProcessSystemInfo is not found in the empty JSON string", + ProcessSystemInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ProcessSystemInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ProcessSystemInfo` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("license") != null && !jsonObj.get("license").isJsonNull()) + && !jsonObj.get("license").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `license` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("license").toString())); + } + if ((jsonObj.get("recaptcha_token") != null && !jsonObj.get("recaptcha_token").isJsonNull()) + && !jsonObj.get("recaptcha_token").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `recaptcha_token` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("recaptcha_token").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ProcessSystemInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ProcessSystemInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ProcessSystemInfo.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ProcessSystemInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ProcessSystemInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ProcessSystemInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of ProcessSystemInfo + * @throws IOException if the JSON string is invalid with respect to ProcessSystemInfo + */ + public static ProcessSystemInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ProcessSystemInfo.class); + } + + /** + * Convert an instance of ProcessSystemInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.java old mode 100755 new mode 100644 index a9c961a2..3108cd51 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,14 +12,66 @@ package com.regula.documentreader.webclient.model; -public class ProcessingStatus { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Gets or Sets ProcessingStatus */ +@JsonAdapter(ProcessingStatus.Adapter.class) +public enum ProcessingStatus { /** Processing was not finished */ - public static final int NOT_FINISHED = 0; + NOT_FINISHED(0), /** Processing finished */ - public static final int FINISHED = 1; + FINISHED(1), /** Processing finished by timeout */ - public static final int TIMEOUT = 2; + TIMEOUT(2); + + private Integer value; + + ProcessingStatus(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ProcessingStatus fromValue(Integer value) { + for (ProcessingStatus b : ProcessingStatus.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ProcessingStatus enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ProcessingStatus read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return ProcessingStatus.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + ProcessingStatus.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDErrorCodes.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDErrorCodes.java new file mode 100644 index 00000000..1d6517da --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDErrorCodes.java @@ -0,0 +1,410 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Enumeration contains a set of error codes returned by SDK */ +@JsonAdapter(RFIDErrorCodes.Adapter.class) +public enum RFIDErrorCodes { + + /** LAYER6: Reading beyond EOF / Unexpected EOF */ + RFID_ERROR_LAYER6_FILE_EOF1(2147508866l), + + /** LAYER6: PWD deactivated */ + RFID_ERROR_LAYER6_PWD_DEACTIVATED(2147508867l), + + /** LAYER6: PWD blocked */ + RFID_ERROR_LAYER6_PWD_BLOCKED(2147509184l), + + /** LAYER6: PWD suspended */ + RFID_ERROR_LAYER6_PWD_SUSPEND(2147509185l), + + /** LAYER6: PWD blocked 2 */ + RFID_ERROR_LAYER6_PWD_BLOCKED2(2147510659l), + + /** LAYER6: PWD deactivated 2 */ + RFID_ERROR_LAYER6_PWD_DEACTIVATED2(2147510660l), + + /** LAYER6: PWD suspended 2 */ + RFID_ERROR_LAYER6_PWD_SUSPEND2(2147510661l), + + /** LAYER6: Incorrect params */ + RFID_ERROR_LAYER6_INCORRECT_PARAMS(2147510912l), + + /** LAYER6: File selection failure / file not found */ + RFID_ERROR_LAYER6_FILE_NOT_FOUND(2147510914l), + + /** LAYER6: No reference data */ + RFID_ERROR_LAYER6_NO_REFERENCE_DATA(2147510920l), + + /** LAYER6: Reading beyond EOF / Unexpected EOF */ + RFID_ERROR_LAYER6_FILE_EOF2(2147511040l), + + /** RFID: No chip is detected */ + RFID_ERROR_NO_CHIP_DETECTED(2147549185l), + + /** RFID: Unavailable */ + RFID_ERROR_NOT_AVAILABLE(2147549186l), + + /** RFID: Invalid parameter in ExecuteCommand() call found */ + RFID_ERROR_INVALID_PARAMETER(2147549188l), + + /** RFID: Device is uninitialized */ + RFID_ERROR_NOT_INITIALIZED(2147549189l), + + /** RFID: Out of memory */ + RFID_ERROR_NOT_ENOUGH_MEMORY(2147549190l), + + /** RFID: Invalid directory */ + RFID_ERROR_INVALID_DIRECTORY(2147549192l), + + /** RFID: Unknown command */ + RFID_ERROR_UNKNOWN_COMMAND(2147549193l), + + /** RFID File: IO Error */ + RFID_ERROR_FILE_IO_ERROR(2147549194l), + + /** RFID: RFID is busy */ + RFID_ERROR_BUSY(2147549195l), + + /** RFID: The firmware needs to be updated to a newer version */ + RFID_ERROR_OLD_FIRMWARE(2147549196l), + + /** PCSC: Failed */ + RFID_ERROR_PCSC_FAILED(2147614720l), + + /** PCSC: The reader is unavailable */ + RFID_ERROR_PCSC_READER_NOT_AVAILABLE(2147614721l), + + /** PCSC: The card cannot be connected */ + RFID_ERROR_PCSC_CANT_CONNECT_CARD(2147614722l), + + /** PCSC: The card is not connected */ + RFID_ERROR_PCSC_CARD_IS_NOT_CONNECTED(2147614723l), + + /** PCSC: Operation is cancelled */ + RFID_ERROR_PCSC_OPERATION_CANCELLED(2147614724l), + + /** PCSC: The card is busy */ + RFID_ERROR_PCSC_CARD_IS_BUSY(2147614725l), + + /** PCSC: Failed Smart Card */ + RFID_ERROR_PCSC_FAILED_SCARD(2147614726l), + + /** PCSC: ExtLe Failed */ + RFID_ERROR_PCSC_EXT_LE_FAILED(2147614736l), + + /** LAYER6: PWD failed */ + RFID_ERROR_LAYER6_PWD_FAILED(2148557760l), + + /** RFID: Not performed */ + RFID_ERROR_NOT_PERFORMED(2197815296l), + + /** RFID: Session is closed */ + RFID_ERROR_SESSION_IS_CLOSED(2197815297l), + + /** RFID: Unsupported terminal operation */ + RFID_ERROR_SESSION_TERMINAL_UNSUPPORTED_OPERATION(2197815298l), + + /** RFID: Terminal type unknown */ + RFID_ERROR_SESSION_TERMINAL_TYPE_UNKNOWN(2197815312l), + + /** RFID: Terminal type bad certificate */ + RFID_ERROR_SESSION_TERMINAL_TYPE_BAD_CERTIFICATE(2197815313l), + + /** RFID: Terminal type not set */ + RFID_ERROR_SESSION_TERMINAL_TYPE_NOT_SET(2197815314l), + + /** RFID: Unknown procedure type */ + RFID_ERROR_SESSION_PROCEDURE_TYPE_UNKNOWN(2197815315l), + + /** RFID: Unsupported procedure type */ + RFID_ERROR_Session_Procedure_Type_Unsupported(2197815316l), + + /** RFID: Procedure type not set */ + RFID_ERROR_SESSION_PROCEDURE_TYPE_NOT_SET(2197815317l), + + /** RFID: Access key unknown type */ + RFID_ERROR_SESSION_ACCESS_KEY_UNKNOWN_TYPE(2197815318l), + + /** RFID: Access key unsupported SM type */ + RFID_ERROR_SESSION_ACCESS_KEY_UNSUPPORTED_SM_TYPE(2197815319l), + + /** RFID: Access key incorrect SM type */ + RFID_ERROR_SESSION_ACCESS_KEY_INCORRECT_SM_TYPE(2197815320l), + + /** RFID: Access key restricted */ + RFID_ERROR_SESSION_ACCESS_KEY_RESTRICTED(2197815321l), + + /** RFID: Access key incorrect data */ + RFID_ERROR_SESSION_ACCESS_KEY_INCORRECT_DATA(2197815322l), + + /** RFID: Access key not set */ + RFID_ERROR_SESSION_ACCESS_KEY_NOT_SET(2197815323l), + + /** RFID: PWD management not authorized */ + RFID_ERROR_SESSION_PWD_MANAGEMENT_NOT_AUTHORIZED(2197815324l), + + /** RFID: Access control unknown type */ + RFID_ERROR_SESSION_ACCESS_CONTROL_UNKNOWN_TYPE(2197815328l), + + /** RFID: SM required */ + RFID_ERROR_SESSION_ACCESS_CONTROL_REQUIRES_SM(2197815329l), + + /** RFID: PACE required */ + RFID_ERROR_SESSION_ACCESS_CONTROL_REQUIRES_PACE(2197815330l), + + /** RFID: CA keys required */ + RFID_ERROR_SESSION_ACCESS_CONTROL_REQUIRES_CA_KEYS(2197815331l), + + /** RFID: TA required */ + RFID_ERROR_SESSION_ACCESS_CONTROL_REQUIRES_TA(2197815332l), + + /** RFID: CA required */ + RFID_ERROR_SESSION_ACCESS_CONTROL_REQUIRES_CA(2197815333l), + + /** RFID: Incorrect option CA */ + RFID_ERROR_SESSION_ACCESS_CONTROL_INCORRECT_OPTION_CA(2197815334l), + + /** RFID: CA failed */ + RFID_ERROR_SESSION_ACCESS_CONTROL_CA_FAILED(2197815335l), + + /** RFID: TA failed */ + RFID_ERROR_SESSION_ACCESS_CONTROL_TA_FAILED(2197815336l), + + /** RFID: AA failed */ + RFID_ERROR_SESSION_ACCESS_CONTROL_AA_FAILED(2197815337l), + + /** RFID: RI failed */ + RFID_ERROR_SESSION_ACCESS_CONTROL_RI_FAILED(2197815338l), + + /** RFID: SO signature check failed */ + RFID_ERROR_SESSION_PA_SIGNATURE_CHECK_FAILED(2197815344l), + + /** RFID: Hash check failed */ + RFID_ERROR_SESSION_PA_HASH_CHECK_FAILED(2197815345l), + + /** RFID: Invalid aux data - date of expiry */ + RFID_ERROR_SESSION_INVALID_AUX_DATA_DATE_OF_EXPIRY(2197815360l), + + /** RFID: Invalid aux data - date of birth */ + RFID_ERROR_SESSION_INVALID_AUX_DATA_DATE_OF_BIRTH(2197815361l), + + /** RFID: Invalid aux data - community ID */ + RFID_ERROR_SESSION_INVALID_AUX_DATA_COMMUNITY_ID(2197815362l), + + /** RFID: eSign requires app selection */ + RFID_ERROR_SESSION_E_SIGN_REQUIRES_APP_SELECTION(2197815376l), + + /** RFID: eSign PIN not set */ + RFID_ERROR_SESSION_E_SIGN_PIN_NOT_SET(2197815377l), + + /** RFID: eSign PIN not verified */ + RFID_ERROR_SESSION_E_SIGN_PIN_NOT_VERIFIED(2197815378l), + + /** RFID: Incorrect data */ + RFID_ERROR_SESSION_INCORRECT_DATA(2197815392l), + + /** RFID file: Insufficient data */ + RFID_ERROR_SESSION_FILE_NOT_ENOUGH_DATA(2197880832l), + + /** RFID file: Incorrect data */ + RFID_ERROR_SESSION_FILE_INCORRECT_DATA(2197946368l), + + /** RFID file: Unexpected data */ + RFID_ERROR_SESSION_FILE_UNEXPECTED_DATA(2198011904l), + + /** RFID file: Contains unexpected data */ + RFID_ERROR_SESSION_FILE_CONTENTS_UNEXPECTED_DATA(2198077440l), + + /** RFID file: Wrong tag */ + RFID_ERROR_SESSION_FILE_WRONG_TAG(2198142976l), + + /** RFID file: Cannot use data */ + RFID_ERROR_SESSION_FILE_CANT_USE_DATA(2198208512l), + + /** RFID file: Cannot read data */ + RFID_ERROR_SESSION_FILE_CANT_READ_DATA(2198274048l), + + /** RFID file: Access denied */ + RFID_ERROR_SESSION_FILE_ACCESS_DENIED(2198339584l), + + /** RFID: Layer 34 - No error */ + RFID_ERROR_LAYER34_NO_ERROR(2214592512l), + + /** RFID: Layer 34 - Timeout */ + RFID_ERROR_LAYER34_TIME_OUT(2214658048l), + + /** RFID: Layer 34 - Collision */ + RFID_ERROR_LAYER34_COLLISION(2214723584l), + + /** RFID: Layer 34 - CRC */ + RFID_ERROR_LAYER34_CRC(2214789120l), + + /** RFID: Layer 34 - Data integrity */ + RFID_ERROR_LAYER34_DATA_INTEGRITY(2214854656l), + + /** RFID: Layer 34 - Data length */ + RFID_ERROR_LAYER34_DATA_LENGTH(2214920192l), + + /** RFID: Layer 34 - RFU */ + RFID_ERROR_Layer34_RFU(2214985728l), + + /** RFID: Layer 34 - Too many collision */ + RFID_ERROR_LAYER34_COLLISION_TOO_MANY(2215051264l), + + /** RFID: Layer 34 - Protocol B */ + RFID_ERROR_LAYER34_PROTOCOL_B(2215116800l), + + /** RFID: Layer 34 - Data contents */ + RFID_ERROR_LAYER34_DATA_CONTENTS(2215182336l), + + /** RFID: Layer 34 - Protocol */ + RFID_ERROR_LAYER34_PROTOCOL(2215247872l), + + /** RFID: Layer 34 - Globa timeout */ + RFID_ERROR_LAYER34_GLOBAL_TIME_OUT(2215313408l), + + /** RFID: Layer 34 - MIFARE auth */ + RFID_ERROR_LAYER34_MIFARE_AUTH(2215378944l), + + /** RFID: Layer 34 - SAM error */ + RFID_ERROR_LAYER34_SAM_ERROR(2215444480l), + + /** RFID: Layer 34 - SAM collision */ + RFID_ERROR_LAYER34_SAM_COLLISION(2215510016l), + + /** RFID: Layer 34 - SAM acknowledge */ + RFID_ERROR_LAYER34_SAM_ACKNOWLEDGE(2215575552l), + + /** LAYER6: Secure Messaging was not activated */ + RFID_ERROR_LAYER6_SECURITY_MANAGER(2248146944l), + + /** LAYER6: ISO7816_A_03 Application selection failure */ + RFID_ERROR_LAYER6_APP_SELECTION_FAILURE(2248146945l), + + /** LAYER6: ISO7816_B_01 Mutual authentication MAC failure */ + RFID_ERROR_LAYER6_MUTUAL_AUTH_MAC_FAIL(2248147200l), + + /** LAYER6: ISO7816_B_02 Mutual authentication encryption failure */ + RFID_ERROR_LAYER6_MUTUAL_AUTH_ENC_FAIL(2248147201l), + + /** LAYER6: ISO7816_B_03 Mutual authentication failure */ + RFID_ERROR_LAYER6_MUTUAL_AUTH_FAILURE(2248147202l), + + /** LAYER6: ISO7816_B_03 Mutual authentication failure data */ + RFID_ERROR_LAYER6_MUTUAL_AUTH_FAILURE_DATA(2248147203l), + + /** LAYER6: SM failure – MAC missing */ + RFID_ERROR_LAYER6_SM_DO_8E_MISSING(2248147456l), + + /** LAYER6: SM failure – cryptogram missing */ + RFID_ERROR_LAYER6_SM_DO_87_MISSING(2248147457l), + + /** LAYER6: SM failure – secured status bytes missing */ + RFID_ERROR_LAYER6_SM_DO_99_MISSING(2248147458l), + + /** LAYER6: SM failure – incorrect MAC */ + RFID_ERROR_LAYER6_SM_MAC_INCORRECT(2248147459l), + + /** LAYER6: SM failure – incorrect cryptogram */ + RFID_ERROR_LAYER6_SM_DO_87_INCORRECT(2248147460l), + + /** LAYER6: Not TLV response data */ + RFID_ERROR_LAYER6_NON_TLV_RESPONSE_DATA(2248147712l), + + /** LAYER6: Wrong data length (APDU_INS_GET_CHALLENGE) */ + RFID_ERROR_LAYER6_WRONG_RND_ICC_LENGTH(2248147713l), + + /** LAYER6: APDU_INS_INTERNAL_AUTHENTICATE failure */ + RFID_ERROR_LAYER6_INT_AUTH_FAILURE(2248147714l), + + /** LAYER6: MSE:Set KAT failure */ + RFID_ERROR_LAYER6_MSE_SET_KAT_FAILURE(2248147715l), + + /** LAYER6: MSE:Set DST failure */ + RFID_ERROR_LAYER6_MSE_SET_DST_FAILURE(2248147716l), + + /** LAYER6: PSO CERTIFICATE failure */ + RFID_ERROR_LAYER6_PSO_CERTIFICATE_FAILURE(2248147717l), + + /** LAYER6: MSE:Set AT failure */ + RFID_ERROR_LAYER6_MSE_SET_AT_FAILURE(2248147718l), + + /** LAYER6: GET CHALLENGE failure */ + RFID_ERROR_LAYER6_GET_CHALLENGE_FAILURE(2248147719l), + + /** LAYER6: APDU_INS_EXTERNAL_AUTHENTICATE (external authentication) failure */ + RFID_ERROR_LAYER6_EXT_AUTH_FAILURE(2248147720l), + + /** LAYER6: General Authenticity Failure */ + RFID_ERROR_LAYER6_GENERAL_AUTH_FAILURE(2248147721l), + + /** RFID: Failed */ + RFID_ERROR_FAILED(4294967295l), + + /** RFID: No error */ + RFID_ERROR_NO_ERROR(1l), + + /** RFID: The requested operation is already performed */ + RFID_ERROR_ALREADY_DONE(2l); + + private Long value; + + RFIDErrorCodes(Long value) { + this.value = value; + } + + public Long getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RFIDErrorCodes fromValue(Long value) { + for (RFIDErrorCodes b : RFIDErrorCodes.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RFIDErrorCodes enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RFIDErrorCodes read(final JsonReader jsonReader) throws IOException { + Long value = jsonReader.nextLong(); + return RFIDErrorCodes.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Long value = jsonElement.getAsLong(); + RFIDErrorCodes.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDPKDResourceType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDPKDResourceType.java new file mode 100644 index 00000000..293c70ec --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDPKDResourceType.java @@ -0,0 +1,92 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Enumeration contains a set of constants that define the type of certificate */ +@JsonAdapter(RFIDPKDResourceType.Adapter.class) +public enum RFIDPKDResourceType { + + /** Certificate file contents (.pem, .cer, .crt, .der) */ + CERTIFICATE_PA(0), + + /** Certificate file contents (.cvcert) and private key file contents (.pkcs8) */ + CERTIFICATE_TA(1), + + /** LDIF file contents (.ldif) */ + LDIF(2), + + /** CRL file contents (.crl) */ + CRL(3), + + /** Master List (.ml, .mls) */ + ML(4), + + /** Defect List (.dl, .dls, .dfl) */ + DEFL(5), + + /** Deviance List (.dl, .dls, .dvl) */ + DEVL(6), + + /** Black List (.bl, .bls) */ + BL(7); + + private Integer value; + + RFIDPKDResourceType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RFIDPKDResourceType fromValue(Integer value) { + for (RFIDPKDResourceType b : RFIDPKDResourceType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RFIDPKDResourceType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RFIDPKDResourceType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RFIDPKDResourceType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RFIDPKDResourceType.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainer.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainer.java deleted file mode 100755 index 0e1e5beb..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainer.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.Arrays; -import java.util.Objects; - -/** RawImageContainer */ -public class RawImageContainer { - public static final String SERIALIZED_NAME_FORMAT = "format"; - - @SerializedName(SERIALIZED_NAME_FORMAT) - private String format; - - public static final String SERIALIZED_NAME_IMAGE = "image"; - - @SerializedName(SERIALIZED_NAME_IMAGE) - private byte[] image; - - public RawImageContainer withFormat(String format) { - this.format = format; - return this; - } - - /** - * Get format - * - * @return format - */ - @javax.annotation.Nullable - public String getFormat() { - return format; - } - - public void setFormat(String format) { - this.format = format; - } - - public RawImageContainer withImage(byte[] image) { - this.image = image; - return this; - } - - /** - * base64 encoded image - * - * @return image - */ - @javax.annotation.Nullable - public byte[] getImage() { - return image; - } - - public void setImage(byte[] image) { - this.image = image; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RawImageContainer rawImageContainer = (RawImageContainer) o; - return Objects.equals(this.format, rawImageContainer.format) - && Arrays.equals(this.image, rawImageContainer.image); - } - - @Override - public int hashCode() { - return Objects.hash(format, Arrays.hashCode(image)); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RawImageContainer {\n"); - sb.append(" format: ").append(toIndentedString(format)).append("\n"); - sb.append(" image: ").append(toIndentedString(image)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerList.java index 35abe446..926707d4 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerList.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,24 +12,45 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** RawImageContainerList */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class RawImageContainerList { public static final String SERIALIZED_NAME_COUNT = "Count"; @SerializedName(SERIALIZED_NAME_COUNT) + @javax.annotation.Nonnull private Integer count; public static final String SERIALIZED_NAME_IMAGES = "Images"; @SerializedName(SERIALIZED_NAME_IMAGES) - private List images = null; + @javax.annotation.Nonnull + private List images; - public RawImageContainerList withCount(Integer count) { + public RawImageContainerList() {} + + public RawImageContainerList count(@javax.annotation.Nonnull Integer count) { this.count = count; return this; } @@ -39,23 +60,23 @@ public RawImageContainerList withCount(Integer count) { * * @return count */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getCount() { return count; } - public void setCount(Integer count) { + public void setCount(@javax.annotation.Nonnull Integer count) { this.count = count; } - public RawImageContainerList withImages(List images) { + public RawImageContainerList images(@javax.annotation.Nonnull List images) { this.images = images; return this; } public RawImageContainerList addImagesItem(ImageData imagesItem) { if (this.images == null) { - this.images = new ArrayList(); + this.images = new ArrayList<>(); } this.images.add(imagesItem); return this; @@ -66,17 +87,17 @@ public RawImageContainerList addImagesItem(ImageData imagesItem) { * * @return images */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public List getImages() { return images; } - public void setImages(List images) { + public void setImages(@javax.annotation.Nonnull List images) { this.images = images; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -106,10 +127,128 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Count"); + openapiFields.add("Images"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Count"); + openapiRequiredFields.add("Images"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RawImageContainerList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RawImageContainerList.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RawImageContainerList is not found in the empty JSON string", + RawImageContainerList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RawImageContainerList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RawImageContainerList` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RawImageContainerList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("Images").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Images` to be an array in the JSON string but got `%s`", + jsonObj.get("Images").toString())); + } + + JsonArray jsonArrayimages = jsonObj.getAsJsonArray("Images"); + // validate the required field `Images` (array) + for (int i = 0; i < jsonArrayimages.size(); i++) { + ImageData.validateJsonElement(jsonArrayimages.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RawImageContainerList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RawImageContainerList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RawImageContainerList.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RawImageContainerList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RawImageContainerList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RawImageContainerList given an JSON string + * + * @param jsonString JSON string + * @return An instance of RawImageContainerList + * @throws IOException if the JSON string is invalid with respect to RawImageContainerList + */ + public static RawImageContainerList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RawImageContainerList.class); + } + + /** + * Convert an instance of RawImageContainerList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageResult.java deleted file mode 100755 index f7780117..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageResult.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.Objects; - -/** RawImageResult */ -public class RawImageResult extends ResultItem { - public static final String SERIALIZED_NAME_RAW_IMAGE_CONTAINER = "RawImageContainer"; - - @SerializedName(SERIALIZED_NAME_RAW_IMAGE_CONTAINER) - private ImageData rawImageContainer; - - public RawImageResult withRawImageContainer(ImageData rawImageContainer) { - this.rawImageContainer = rawImageContainer; - return this; - } - - /** - * Get rawImageContainer - * - * @return rawImageContainer - */ - public ImageData getRawImageContainer() { - return rawImageContainer; - } - - public void setRawImageContainer(ImageData rawImageContainer) { - this.rawImageContainer = rawImageContainer; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RawImageResult rawImageResult = (RawImageResult) o; - return Objects.equals(this.rawImageContainer, rawImageResult.rawImageContainer) - && super.equals(o); - } - - @Override - public int hashCode() { - return Objects.hash(rawImageContainer, super.hashCode()); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RawImageResult {\n"); - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - sb.append(" rawImageContainer: ").append(toIndentedString(rawImageContainer)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java old mode 100755 new mode 100644 index 7dcbbdc8..e9ea9a4a --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,35 +12,57 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** * Coordinates of the rectangle region on a document image(result type 1). Represented by two points * - (left, top) + (right, bottom) */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class RectangleCoordinates { public static final String SERIALIZED_NAME_LEFT = "left"; @SerializedName(SERIALIZED_NAME_LEFT) + @javax.annotation.Nonnull private Integer left; public static final String SERIALIZED_NAME_TOP = "top"; @SerializedName(SERIALIZED_NAME_TOP) + @javax.annotation.Nonnull private Integer top; public static final String SERIALIZED_NAME_RIGHT = "right"; @SerializedName(SERIALIZED_NAME_RIGHT) + @javax.annotation.Nonnull private Integer right; public static final String SERIALIZED_NAME_BOTTOM = "bottom"; @SerializedName(SERIALIZED_NAME_BOTTOM) + @javax.annotation.Nonnull private Integer bottom; - public RectangleCoordinates withLeft(Integer left) { + public RectangleCoordinates() {} + + public RectangleCoordinates left(@javax.annotation.Nonnull Integer left) { this.left = left; return this; } @@ -50,15 +72,16 @@ public RectangleCoordinates withLeft(Integer left) { * * @return left */ + @javax.annotation.Nonnull public Integer getLeft() { return left; } - public void setLeft(Integer left) { + public void setLeft(@javax.annotation.Nonnull Integer left) { this.left = left; } - public RectangleCoordinates withTop(Integer top) { + public RectangleCoordinates top(@javax.annotation.Nonnull Integer top) { this.top = top; return this; } @@ -68,15 +91,16 @@ public RectangleCoordinates withTop(Integer top) { * * @return top */ + @javax.annotation.Nonnull public Integer getTop() { return top; } - public void setTop(Integer top) { + public void setTop(@javax.annotation.Nonnull Integer top) { this.top = top; } - public RectangleCoordinates withRight(Integer right) { + public RectangleCoordinates right(@javax.annotation.Nonnull Integer right) { this.right = right; return this; } @@ -86,15 +110,16 @@ public RectangleCoordinates withRight(Integer right) { * * @return right */ + @javax.annotation.Nonnull public Integer getRight() { return right; } - public void setRight(Integer right) { + public void setRight(@javax.annotation.Nonnull Integer right) { this.right = right; } - public RectangleCoordinates withBottom(Integer bottom) { + public RectangleCoordinates bottom(@javax.annotation.Nonnull Integer bottom) { this.bottom = bottom; return this; } @@ -104,16 +129,17 @@ public RectangleCoordinates withBottom(Integer bottom) { * * @return bottom */ + @javax.annotation.Nonnull public Integer getBottom() { return bottom; } - public void setBottom(Integer bottom) { + public void setBottom(@javax.annotation.Nonnull Integer bottom) { this.bottom = bottom; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -147,10 +173,118 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("left"); + openapiFields.add("top"); + openapiFields.add("right"); + openapiFields.add("bottom"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("left"); + openapiRequiredFields.add("top"); + openapiRequiredFields.add("right"); + openapiRequiredFields.add("bottom"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RectangleCoordinates + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RectangleCoordinates.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RectangleCoordinates is not found in the empty JSON string", + RectangleCoordinates.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RectangleCoordinates.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RectangleCoordinates` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RectangleCoordinates.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RectangleCoordinates.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RectangleCoordinates' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RectangleCoordinates.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RectangleCoordinates value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RectangleCoordinates read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RectangleCoordinates given an JSON string + * + * @param jsonString JSON string + * @return An instance of RectangleCoordinates + * @throws IOException if the JSON string is invalid with respect to RectangleCoordinates + */ + public static RectangleCoordinates fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RectangleCoordinates.class); + } + + /** + * Convert an instance of RectangleCoordinates to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Result.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Result.java old mode 100755 new mode 100644 index ad3515a7..39ed9889 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Result.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Result.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,97 +12,175 @@ package com.regula.documentreader.webclient.model; -public class Result { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Gets or Sets Result */ +@JsonAdapter(Result.Adapter.class) +public enum Result { /** * Contains cropped and rotated with perspective compensation image of document. Single input * image can contain multiple document side/pages, which will be returned as separated results. * Most of coordinates in other types defined on that image */ - public static final int DOCUMENT_IMAGE = 1; + DOCUMENT_IMAGE(1), /** Contains MRZ OCR results */ - public static final int MRZ_TEXT = 3; + MRZ_TEXT(3), /** Contains raw information about barcodes on the input image */ - public static final int BARCODES = 5; + BARCODES(5), /** Contains cropped graphic fields from Visual zone */ - public static final int VISUAL_GRAPHICS = 6; + VISUAL_GRAPHICS(6), + + /** Contains result of MRZTestQuality */ + MRZ_TEST_QUALITY(7), /** Contains list of document type candidates with their probabilities and descriptions */ - public static final int DOCUMENT_TYPE_CANDIDATES = 8; + DOCUMENT_TYPE_CANDIDATES(8), /** Contains description of determined document type, if any */ - public static final int DOCUMENT_TYPE = 9; + DOCUMENT_TYPE(9), /** * Contains lexical data analysis results that allow you to compare MRZ OCR results, Visual zone * OCR results, barcodes and RFID chip data for an additional assessment of the authenticity of * the document (this is an old format, better use TEXT type) */ - public static final int LEXICAL_ANALYSIS = 15; + LEXICAL_ANALYSIS(15), /** Contains raw uncropped images */ - public static final int RAW_UNCROPPED_IMAGE = 16; + RAW_UNCROPPED_IMAGE(16), /** Contains Visual zone OCR results */ - public static final int VISUAL_TEXT = 17; + VISUAL_TEXT(17), /** Contains barcode parsing result with text fields */ - public static final int BARCODE_TEXT = 18; + BARCODE_TEXT(18), /** Contains barcode parsing result with graphic fields */ - public static final int BARCODE_GRAPHICS = 19; + BARCODE_GRAPHICS(19), /** Contains result of document authenticity checks */ - public static final int AUTHENTICITY = 20; + AUTHENTICITY(20), + + /** Contains result of DocVisualExtendedInfoContainer */ + MAGNETIC_STRIPE_TEXT_DATA(26), /** Contains image quality check results */ - public static final int IMAGE_QUALITY = 30; + IMAGE_QUALITY(30), + + /** Contains result of DocGraphicsInfoContainer */ + LIVE_PORTRAIT(32), /** Contains check statuses with details, grouped by source */ - public static final int STATUS = 33; + STATUS(33), /** Contains result of portraits comparison */ - public static final int PORTRAIT_COMPARISON = 34; + PORTRAIT_COMPARISON(34), + + /** Contains result of DocGraphicsInfoContainer */ + EXT_PORTRAIT(35), /** * Contains document textual fields from all sources (mrz, rfid, visual, barcode) with validity * and cross-source compare checks */ - public static final int TEXT = 36; + TEXT(36), /** Contains images from all document sources (mrz, rfid, visual, barcode) */ - public static final int IMAGES = 37; + IMAGES(37), + + /** Contains result of DocGraphicsInfoContainer */ + FINGERPRINTS(38), /** Contains result of fingerprints comparison */ - public static final int FINGERPRINT_COMPARISON = 39; + FINGERPRINT_COMPARISON(39), /** Contains encrypted ResultContainerList */ - public static final int ENCRYPTED_RCL = 49; + ENCRYPTED_RCL(49), /** Contains license */ - public static final int LICENSE = 50; + LICENSE(50), + + /** Contains result of DocumentPosition */ + MRZ_POSITION(61), + + /** Contains result of DocumentPosition */ + BARCODE_POSITION(62), /** Contains information about document position on the input image, its center, angle, etc */ - public static final int DOCUMENT_POSITION = 85; + DOCUMENT_POSITION(85), + + /** Contains result of MRZDetectorResult */ + MRZ_DETECTOR(87), + + /** Contains result of FaceDetection */ + FACE_DETECTION(97), /** Contains RFID raw data */ - public static final int RFID_RAW_DATA = 101; + RFID_RAW_DATA(101), /** Contains RFID text results */ - public static final int RFID_TEXT = 102; + RFID_TEXT(102), /** Contains RFID graphic results */ - public static final int RFID_GRAPHICS = 103; + RFID_GRAPHICS(103), /** Contains RFID binary data */ - public static final int RFID_BINARY_DATA = 104; + RFID_BINARY_DATA(104), /** Contains RFID original graphics data */ - public static final int RFID_ORIGINAL_GRAPHICS = 105; + RFID_ORIGINAL_GRAPHICS(105), /** Digital Travel Credential data */ - public static final int DTC_VC = 109; + DTC_VC(109); + + private Integer value; + + Result(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static Result fromValue(Integer value) { + for (Result b : Result.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final Result enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public Result read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return Result.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + Result.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java old mode 100755 new mode 100644 index b5a0ebef..4808eb90 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,37 +12,51 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.JsonElement; import com.google.gson.annotations.SerializedName; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; import java.util.Objects; /** Common fields for all result objects */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class ResultItem { public static final String SERIALIZED_NAME_BUF_LENGTH = "buf_length"; @SerializedName(SERIALIZED_NAME_BUF_LENGTH) + @javax.annotation.Nullable private Integer bufLength; public static final String SERIALIZED_NAME_LIGHT = "light"; @SerializedName(SERIALIZED_NAME_LIGHT) + @javax.annotation.Nullable private Integer light; public static final String SERIALIZED_NAME_LIST_IDX = "list_idx"; @SerializedName(SERIALIZED_NAME_LIST_IDX) + @javax.annotation.Nullable private Integer listIdx; public static final String SERIALIZED_NAME_PAGE_IDX = "page_idx"; @SerializedName(SERIALIZED_NAME_PAGE_IDX) + @javax.annotation.Nullable private Integer pageIdx; public static final String SERIALIZED_NAME_RESULT_TYPE = "result_type"; @SerializedName(SERIALIZED_NAME_RESULT_TYPE) + @javax.annotation.Nonnull protected Integer resultType = 0; - public ResultItem withBufLength(Integer bufLength) { + public ResultItem() {} + + public ResultItem bufLength(@javax.annotation.Nullable Integer bufLength) { this.bufLength = bufLength; return this; } @@ -57,11 +71,11 @@ public Integer getBufLength() { return bufLength; } - public void setBufLength(Integer bufLength) { + public void setBufLength(@javax.annotation.Nullable Integer bufLength) { this.bufLength = bufLength; } - public ResultItem withLight(Integer light) { + public ResultItem light(@javax.annotation.Nullable Integer light) { this.light = light; return this; } @@ -76,11 +90,11 @@ public Integer getLight() { return light; } - public void setLight(Integer light) { + public void setLight(@javax.annotation.Nullable Integer light) { this.light = light; } - public ResultItem withListIdx(Integer listIdx) { + public ResultItem listIdx(@javax.annotation.Nullable Integer listIdx) { this.listIdx = listIdx; return this; } @@ -95,11 +109,11 @@ public Integer getListIdx() { return listIdx; } - public void setListIdx(Integer listIdx) { + public void setListIdx(@javax.annotation.Nullable Integer listIdx) { this.listIdx = listIdx; } - public ResultItem withPageIdx(Integer pageIdx) { + public ResultItem pageIdx(@javax.annotation.Nullable Integer pageIdx) { this.pageIdx = pageIdx; return this; } @@ -114,11 +128,11 @@ public Integer getPageIdx() { return pageIdx; } - public void setPageIdx(Integer pageIdx) { + public void setPageIdx(@javax.annotation.Nullable Integer pageIdx) { this.pageIdx = pageIdx; } - public ResultItem withResultType(Integer resultType) { + public ResultItem resultType(@javax.annotation.Nonnull Integer resultType) { this.resultType = resultType; return this; } @@ -128,16 +142,17 @@ public ResultItem withResultType(Integer resultType) { * * @return resultType */ + @javax.annotation.Nonnull public Integer getResultType() { return resultType; } - public void setResultType(Integer resultType) { + public void setResultType(@javax.annotation.Nonnull Integer resultType) { this.resultType = resultType; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -173,10 +188,176 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ResultItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ResultItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ResultItem is not found in the empty JSON string", + ResultItem.openapiRequiredFields.toString())); + } + } + + String discriminatorValue = jsonElement.getAsJsonObject().get("result_type").getAsString(); + switch (discriminatorValue) { + case "1": + DocumentImageResult.validateJsonElement(jsonElement); + break; + case "102": + TextDataResult.validateJsonElement(jsonElement); + break; + case "103": + GraphicsResult.validateJsonElement(jsonElement); + break; + case "104": + DocumentBinaryInfoResult.validateJsonElement(jsonElement); + break; + case "109": + ByteArrayResult.validateJsonElement(jsonElement); + break; + case "15": + LexicalAnalysisResult.validateJsonElement(jsonElement); + break; + case "16": + DocumentImageResult.validateJsonElement(jsonElement); + break; + case "17": + TextDataResult.validateJsonElement(jsonElement); + break; + case "18": + TextDataResult.validateJsonElement(jsonElement); + break; + case "19": + GraphicsResult.validateJsonElement(jsonElement); + break; + case "20": + AuthenticityResult.validateJsonElement(jsonElement); + break; + case "26": + TextDataResult.validateJsonElement(jsonElement); + break; + case "3": + TextDataResult.validateJsonElement(jsonElement); + break; + case "30": + ImageQualityResult.validateJsonElement(jsonElement); + break; + case "32": + GraphicsResult.validateJsonElement(jsonElement); + break; + case "33": + StatusResult.validateJsonElement(jsonElement); + break; + case "34": + AuthenticityResult.validateJsonElement(jsonElement); + break; + case "35": + GraphicsResult.validateJsonElement(jsonElement); + break; + case "36": + TextResult.validateJsonElement(jsonElement); + break; + case "37": + ImagesResult.validateJsonElement(jsonElement); + break; + case "38": + GraphicsResult.validateJsonElement(jsonElement); + break; + case "39": + AuthenticityResult.validateJsonElement(jsonElement); + break; + case "49": + EncryptedRCLResult.validateJsonElement(jsonElement); + break; + case "5": + DocBarCodeInfo.validateJsonElement(jsonElement); + break; + case "50": + LicenseResult.validateJsonElement(jsonElement); + break; + case "6": + GraphicsResult.validateJsonElement(jsonElement); + break; + case "61": + MRZPositionResult.validateJsonElement(jsonElement); + break; + case "62": + DocumentPositionResult.validateJsonElement(jsonElement); + break; + case "7": + MRZTestQualityResult.validateJsonElement(jsonElement); + break; + case "8": + DocumentTypesCandidatesResult.validateJsonElement(jsonElement); + break; + case "85": + DocumentPositionResult.validateJsonElement(jsonElement); + break; + case "87": + MRZDetectorResult.validateJsonElement(jsonElement); + break; + case "9": + ChosenDocumentTypeResult.validateJsonElement(jsonElement); + break; + case "97": + FaceDetectionResult.validateJsonElement(jsonElement); + break; + default: + throw new IllegalArgumentException( + String.format( + "The value of the `result_type` field `%s` does not match any key defined in the discriminator's mapping.", + discriminatorValue)); + } + } + + /** + * Create an instance of ResultItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of ResultItem + * @throws IOException if the JSON string is invalid with respect to ResultItem + */ + public static ResultItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ResultItem.class); + } + + /** + * Convert an instance of ResultItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java new file mode 100644 index 00000000..c7193ac2 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java @@ -0,0 +1,331 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** ResultMRZDetector */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class ResultMRZDetector { + public static final String SERIALIZED_NAME_MR_Z_FORMAT = "MRZFormat"; + + @SerializedName(SERIALIZED_NAME_MR_Z_FORMAT) + @javax.annotation.Nonnull + private Integer mrZFormat; + + public static final String SERIALIZED_NAME_MR_Z_ROWS = "MRZRows"; + + @SerializedName(SERIALIZED_NAME_MR_Z_ROWS) + @javax.annotation.Nonnull + private List mrZRows; + + public static final String SERIALIZED_NAME_MR_Z_ROWS_NUM = "MRZRowsNum"; + + @SerializedName(SERIALIZED_NAME_MR_Z_ROWS_NUM) + @javax.annotation.Nonnull + private Integer mrZRowsNum; + + public static final String SERIALIZED_NAME_BOUNDING_QUADRANGLE = "boundingQuadrangle"; + + @SerializedName(SERIALIZED_NAME_BOUNDING_QUADRANGLE) + @javax.annotation.Nonnull + private List boundingQuadrangle; + + public ResultMRZDetector() {} + + public ResultMRZDetector mrZFormat(@javax.annotation.Nonnull Integer mrZFormat) { + this.mrZFormat = mrZFormat; + return this; + } + + /** + * Get mrZFormat + * + * @return mrZFormat + */ + @javax.annotation.Nonnull + public Integer getMrZFormat() { + return mrZFormat; + } + + public void setMrZFormat(@javax.annotation.Nonnull Integer mrZFormat) { + this.mrZFormat = mrZFormat; + } + + public ResultMRZDetector mrZRows(@javax.annotation.Nonnull List mrZRows) { + this.mrZRows = mrZRows; + return this; + } + + public ResultMRZDetector addMrZRowsItem(MRZRowsItem mrZRowsItem) { + if (this.mrZRows == null) { + this.mrZRows = new ArrayList<>(); + } + this.mrZRows.add(mrZRowsItem); + return this; + } + + /** + * Get mrZRows + * + * @return mrZRows + */ + @javax.annotation.Nonnull + public List getMrZRows() { + return mrZRows; + } + + public void setMrZRows(@javax.annotation.Nonnull List mrZRows) { + this.mrZRows = mrZRows; + } + + public ResultMRZDetector mrZRowsNum(@javax.annotation.Nonnull Integer mrZRowsNum) { + this.mrZRowsNum = mrZRowsNum; + return this; + } + + /** + * Get mrZRowsNum + * + * @return mrZRowsNum + */ + @javax.annotation.Nonnull + public Integer getMrZRowsNum() { + return mrZRowsNum; + } + + public void setMrZRowsNum(@javax.annotation.Nonnull Integer mrZRowsNum) { + this.mrZRowsNum = mrZRowsNum; + } + + public ResultMRZDetector boundingQuadrangle( + @javax.annotation.Nonnull List boundingQuadrangle) { + this.boundingQuadrangle = boundingQuadrangle; + return this; + } + + public ResultMRZDetector addBoundingQuadrangleItem(Integer boundingQuadrangleItem) { + if (this.boundingQuadrangle == null) { + this.boundingQuadrangle = new ArrayList<>(); + } + this.boundingQuadrangle.add(boundingQuadrangleItem); + return this; + } + + /** + * Get boundingQuadrangle + * + * @return boundingQuadrangle + */ + @javax.annotation.Nonnull + public List getBoundingQuadrangle() { + return boundingQuadrangle; + } + + public void setBoundingQuadrangle(@javax.annotation.Nonnull List boundingQuadrangle) { + this.boundingQuadrangle = boundingQuadrangle; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResultMRZDetector resultMRZDetector = (ResultMRZDetector) o; + return Objects.equals(this.mrZFormat, resultMRZDetector.mrZFormat) + && Objects.equals(this.mrZRows, resultMRZDetector.mrZRows) + && Objects.equals(this.mrZRowsNum, resultMRZDetector.mrZRowsNum) + && Objects.equals(this.boundingQuadrangle, resultMRZDetector.boundingQuadrangle); + } + + @Override + public int hashCode() { + return Objects.hash(mrZFormat, mrZRows, mrZRowsNum, boundingQuadrangle); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResultMRZDetector {\n"); + sb.append(" mrZFormat: ").append(toIndentedString(mrZFormat)).append("\n"); + sb.append(" mrZRows: ").append(toIndentedString(mrZRows)).append("\n"); + sb.append(" mrZRowsNum: ").append(toIndentedString(mrZRowsNum)).append("\n"); + sb.append(" boundingQuadrangle: ").append(toIndentedString(boundingQuadrangle)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MRZFormat"); + openapiFields.add("MRZRows"); + openapiFields.add("MRZRowsNum"); + openapiFields.add("boundingQuadrangle"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("MRZFormat"); + openapiRequiredFields.add("MRZRows"); + openapiRequiredFields.add("MRZRowsNum"); + openapiRequiredFields.add("boundingQuadrangle"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ResultMRZDetector + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ResultMRZDetector.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ResultMRZDetector is not found in the empty JSON string", + ResultMRZDetector.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ResultMRZDetector.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ResultMRZDetector` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ResultMRZDetector.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("MRZRows").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `MRZRows` to be an array in the JSON string but got `%s`", + jsonObj.get("MRZRows").toString())); + } + + JsonArray jsonArraymrZRows = jsonObj.getAsJsonArray("MRZRows"); + // validate the required field `MRZRows` (array) + for (int i = 0; i < jsonArraymrZRows.size(); i++) { + MRZRowsItem.validateJsonElement(jsonArraymrZRows.get(i)); + } + ; + // ensure the required json array is present + if (jsonObj.get("boundingQuadrangle") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("boundingQuadrangle").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `boundingQuadrangle` to be an array in the JSON string but got `%s`", + jsonObj.get("boundingQuadrangle").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ResultMRZDetector.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ResultMRZDetector' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ResultMRZDetector.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ResultMRZDetector value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ResultMRZDetector read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ResultMRZDetector given an JSON string + * + * @param jsonString JSON string + * @return An instance of ResultMRZDetector + * @throws IOException if the JSON string is invalid with respect to ResultMRZDetector + */ + public static ResultMRZDetector fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ResultMRZDetector.class); + } + + /** + * Convert an instance of ResultMRZDetector to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAChip.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAChip.java new file mode 100644 index 00000000..71e9e143 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAChip.java @@ -0,0 +1,88 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains a set of constants specifying the type of the RFIDchip from MIFARE® family + * (for chips of type A) + */ +@JsonAdapter(RfidAChip.Adapter.class) +public enum RfidAChip { + + /** Unknown */ + UNKNOWN(0), + + /** MIFARE® 1K */ + MIFARE_1K(1), + + /** MIFARE® 4K */ + MIFARE_4K(2), + + /** MIFARE® Ultralight */ + MIFARE_ULTRALIGHT(3), + + /** MIFARE® DESFire */ + MIFARE_DES_FIRE(4), + + /** MIFARE® ProX or SmartMX xD(T) */ + MIFARE_PROX(5); + + private Integer value; + + RfidAChip(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidAChip fromValue(Integer value) { + for (RfidAChip b : RfidAChip.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RfidAChip enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidAChip read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidAChip.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidAChip.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java new file mode 100644 index 00000000..9407e8c4 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java @@ -0,0 +1,367 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure is used to describe the results of a single authentication procedure or a procedure of + * secure data access within the context of the communication session with electronic document + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidAccessControlInfo { + public static final String SERIALIZED_NAME_TYPE = "Type"; + + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private RfidAccessControlProcedureType type; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nonnull + private RFIDErrorCodes status; + + public static final String SERIALIZED_NAME_ACTIVE_OPTION_IDX = "ActiveOptionIdx"; + + @SerializedName(SERIALIZED_NAME_ACTIVE_OPTION_IDX) + @javax.annotation.Nullable + private BigDecimal activeOptionIdx; + + public static final String SERIALIZED_NAME_NOTIFICATIONS = "Notifications"; + + @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) + @javax.annotation.Nonnull + private List notifications; + + public static final String SERIALIZED_NAME_ACCESS_CONTROL_OPTIONS = "AccessControlOptions"; + + @SerializedName(SERIALIZED_NAME_ACCESS_CONTROL_OPTIONS) + @javax.annotation.Nullable + private List accessControlOptions; + + public RfidAccessControlInfo() {} + + public RfidAccessControlInfo type(@javax.annotation.Nonnull RfidAccessControlProcedureType type) { + this.type = type; + return this; + } + + /** + * Get type + * + * @return type + */ + @javax.annotation.Nonnull + public RfidAccessControlProcedureType getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull RfidAccessControlProcedureType type) { + this.type = type; + } + + public RfidAccessControlInfo status(@javax.annotation.Nonnull RFIDErrorCodes status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @javax.annotation.Nonnull + public RFIDErrorCodes getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nonnull RFIDErrorCodes status) { + this.status = status; + } + + public RfidAccessControlInfo activeOptionIdx( + @javax.annotation.Nullable BigDecimal activeOptionIdx) { + this.activeOptionIdx = activeOptionIdx; + return this; + } + + /** + * Index of the active variant of the procedure + * + * @return activeOptionIdx + */ + @javax.annotation.Nullable + public BigDecimal getActiveOptionIdx() { + return activeOptionIdx; + } + + public void setActiveOptionIdx(@javax.annotation.Nullable BigDecimal activeOptionIdx) { + this.activeOptionIdx = activeOptionIdx; + } + + public RfidAccessControlInfo notifications( + @javax.annotation.Nonnull List notifications) { + this.notifications = notifications; + return this; + } + + public RfidAccessControlInfo addNotificationsItem(ParsingErrorCodes notificationsItem) { + if (this.notifications == null) { + this.notifications = new ArrayList<>(); + } + this.notifications.add(notificationsItem); + return this; + } + + /** + * List of remarks arisen during the procedure. + * + * @return notifications + */ + @javax.annotation.Nonnull + public List getNotifications() { + return notifications; + } + + public void setNotifications(@javax.annotation.Nonnull List notifications) { + this.notifications = notifications; + } + + public RfidAccessControlInfo accessControlOptions( + @javax.annotation.Nullable List accessControlOptions) { + this.accessControlOptions = accessControlOptions; + return this; + } + + public RfidAccessControlInfo addAccessControlOptionsItem(Object accessControlOptionsItem) { + if (this.accessControlOptions == null) { + this.accessControlOptions = new ArrayList<>(); + } + this.accessControlOptions.add(accessControlOptionsItem); + return this; + } + + /** + * List of structures with are used to describe the variants of the authentication or secure data + * access procedure performance within the context of the communication session with electronic + * document + * + * @return accessControlOptions + */ + @javax.annotation.Nullable + public List getAccessControlOptions() { + return accessControlOptions; + } + + public void setAccessControlOptions( + @javax.annotation.Nullable List accessControlOptions) { + this.accessControlOptions = accessControlOptions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidAccessControlInfo rfidAccessControlInfo = (RfidAccessControlInfo) o; + return Objects.equals(this.type, rfidAccessControlInfo.type) + && Objects.equals(this.status, rfidAccessControlInfo.status) + && Objects.equals(this.activeOptionIdx, rfidAccessControlInfo.activeOptionIdx) + && Objects.equals(this.notifications, rfidAccessControlInfo.notifications) + && Objects.equals(this.accessControlOptions, rfidAccessControlInfo.accessControlOptions); + } + + @Override + public int hashCode() { + return Objects.hash(type, status, activeOptionIdx, notifications, accessControlOptions); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidAccessControlInfo {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" activeOptionIdx: ").append(toIndentedString(activeOptionIdx)).append("\n"); + sb.append(" notifications: ").append(toIndentedString(notifications)).append("\n"); + sb.append(" accessControlOptions: ") + .append(toIndentedString(accessControlOptions)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Status"); + openapiFields.add("ActiveOptionIdx"); + openapiFields.add("Notifications"); + openapiFields.add("AccessControlOptions"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Type"); + openapiRequiredFields.add("Status"); + openapiRequiredFields.add("Notifications"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidAccessControlInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidAccessControlInfo.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidAccessControlInfo is not found in the empty JSON string", + RfidAccessControlInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidAccessControlInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidAccessControlInfo` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidAccessControlInfo.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `Type` + RfidAccessControlProcedureType.validateJsonElement(jsonObj.get("Type")); + // validate the required field `Status` + RFIDErrorCodes.validateJsonElement(jsonObj.get("Status")); + // ensure the required json array is present + if (jsonObj.get("Notifications") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("Notifications").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Notifications` to be an array in the JSON string but got `%s`", + jsonObj.get("Notifications").toString())); + } + // ensure the optional json data is an array if present + if (jsonObj.get("AccessControlOptions") != null + && !jsonObj.get("AccessControlOptions").isJsonNull() + && !jsonObj.get("AccessControlOptions").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `AccessControlOptions` to be an array in the JSON string but got `%s`", + jsonObj.get("AccessControlOptions").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidAccessControlInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidAccessControlInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidAccessControlInfo.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidAccessControlInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidAccessControlInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidAccessControlInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidAccessControlInfo + * @throws IOException if the JSON string is invalid with respect to RfidAccessControlInfo + */ + public static RfidAccessControlInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidAccessControlInfo.class); + } + + /** + * Convert an instance of RfidAccessControlInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlProcedureType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlProcedureType.java new file mode 100644 index 00000000..15cabe73 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlProcedureType.java @@ -0,0 +1,95 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains a set of constants that define the type of authentication or secure data + * access procedure + */ +@JsonAdapter(RfidAccessControlProcedureType.Adapter.class) +public enum RfidAccessControlProcedureType { + + /** Type is not defined */ + UNDEFINED(0), + + /** BAC/BAP */ + BAC(1), + + /** PACE */ + PACE(2), + + /** CA */ + CA(3), + + /** TA */ + TA(4), + + /** AA */ + AA(5), + + /** RI */ + RI(6), + + /** Card info */ + CARD_INFO(10); + + private Integer value; + + RfidAccessControlProcedureType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidAccessControlProcedureType fromValue(Integer value) { + for (RfidAccessControlProcedureType b : RfidAccessControlProcedureType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RfidAccessControlProcedureType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidAccessControlProcedureType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidAccessControlProcedureType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidAccessControlProcedureType.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessKey.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessKey.java new file mode 100644 index 00000000..e36fbb91 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessKey.java @@ -0,0 +1,305 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure is used to describe the contents of secure data access key within the context of the + * communication session with electronic document + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidAccessKey { + public static final String SERIALIZED_NAME_ACCESS_KEY = "AccessKey"; + + @SerializedName(SERIALIZED_NAME_ACCESS_KEY) + @javax.annotation.Nonnull + private String accessKey; + + public static final String SERIALIZED_NAME_KEY_TYPE = "KeyType"; + + @SerializedName(SERIALIZED_NAME_KEY_TYPE) + @javax.annotation.Nonnull + private RfidPasswordType keyType; + + public static final String SERIALIZED_NAME_ACCESS_TYPE = "AccessType"; + + @SerializedName(SERIALIZED_NAME_ACCESS_TYPE) + @javax.annotation.Nonnull + private RfidAccessControlProcedureType accessType; + + public static final String SERIALIZED_NAME_CHECK_FULL_KEY_MATCHING = "CheckFullKeyMatching"; + + @SerializedName(SERIALIZED_NAME_CHECK_FULL_KEY_MATCHING) + @javax.annotation.Nonnull + private Boolean checkFullKeyMatching; + + public RfidAccessKey() {} + + public RfidAccessKey accessKey(@javax.annotation.Nonnull String accessKey) { + this.accessKey = accessKey; + return this; + } + + /** + * Key contents + * + * @return accessKey + */ + @javax.annotation.Nonnull + public String getAccessKey() { + return accessKey; + } + + public void setAccessKey(@javax.annotation.Nonnull String accessKey) { + this.accessKey = accessKey; + } + + public RfidAccessKey keyType(@javax.annotation.Nonnull RfidPasswordType keyType) { + this.keyType = keyType; + return this; + } + + /** + * Get keyType + * + * @return keyType + */ + @javax.annotation.Nonnull + public RfidPasswordType getKeyType() { + return keyType; + } + + public void setKeyType(@javax.annotation.Nonnull RfidPasswordType keyType) { + this.keyType = keyType; + } + + public RfidAccessKey accessType( + @javax.annotation.Nonnull RfidAccessControlProcedureType accessType) { + this.accessType = accessType; + return this; + } + + /** + * Get accessType + * + * @return accessType + */ + @javax.annotation.Nonnull + public RfidAccessControlProcedureType getAccessType() { + return accessType; + } + + public void setAccessType(@javax.annotation.Nonnull RfidAccessControlProcedureType accessType) { + this.accessType = accessType; + } + + public RfidAccessKey checkFullKeyMatching( + @javax.annotation.Nonnull Boolean checkFullKeyMatching) { + this.checkFullKeyMatching = checkFullKeyMatching; + return this; + } + + /** + * Logical sign of the need for a full comparison of AccessKey contents with the contents of DG1 + * (MRZ) data group + * + * @return checkFullKeyMatching + */ + @javax.annotation.Nonnull + public Boolean getCheckFullKeyMatching() { + return checkFullKeyMatching; + } + + public void setCheckFullKeyMatching(@javax.annotation.Nonnull Boolean checkFullKeyMatching) { + this.checkFullKeyMatching = checkFullKeyMatching; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidAccessKey rfidAccessKey = (RfidAccessKey) o; + return Objects.equals(this.accessKey, rfidAccessKey.accessKey) + && Objects.equals(this.keyType, rfidAccessKey.keyType) + && Objects.equals(this.accessType, rfidAccessKey.accessType) + && Objects.equals(this.checkFullKeyMatching, rfidAccessKey.checkFullKeyMatching); + } + + @Override + public int hashCode() { + return Objects.hash(accessKey, keyType, accessType, checkFullKeyMatching); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidAccessKey {\n"); + sb.append(" accessKey: ").append(toIndentedString(accessKey)).append("\n"); + sb.append(" keyType: ").append(toIndentedString(keyType)).append("\n"); + sb.append(" accessType: ").append(toIndentedString(accessType)).append("\n"); + sb.append(" checkFullKeyMatching: ") + .append(toIndentedString(checkFullKeyMatching)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("AccessKey"); + openapiFields.add("KeyType"); + openapiFields.add("AccessType"); + openapiFields.add("CheckFullKeyMatching"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("AccessKey"); + openapiRequiredFields.add("KeyType"); + openapiRequiredFields.add("AccessType"); + openapiRequiredFields.add("CheckFullKeyMatching"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidAccessKey + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidAccessKey.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidAccessKey is not found in the empty JSON string", + RfidAccessKey.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidAccessKey.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidAccessKey` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidAccessKey.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("AccessKey").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `AccessKey` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("AccessKey").toString())); + } + // validate the required field `KeyType` + RfidPasswordType.validateJsonElement(jsonObj.get("KeyType")); + // validate the required field `AccessType` + RfidAccessControlProcedureType.validateJsonElement(jsonObj.get("AccessType")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidAccessKey.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidAccessKey' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidAccessKey.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidAccessKey value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidAccessKey read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidAccessKey given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidAccessKey + * @throws IOException if the JSON string is invalid with respect to RfidAccessKey + */ + public static RfidAccessKey fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidAccessKey.class); + } + + /** + * Convert an instance of RfidAccessKey to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplication.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplication.java new file mode 100644 index 00000000..bbca9625 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplication.java @@ -0,0 +1,431 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure is used to describe the contents of a single LDS application and their analysis within + * the context of the communication session with electronic document + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidApplication { + public static final String SERIALIZED_NAME_TYPE = "Type"; + + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private RfidApplicationType type; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nonnull + private RFIDErrorCodes status; + + public static final String SERIALIZED_NAME_APPLICATION_I_D = "ApplicationID"; + + @SerializedName(SERIALIZED_NAME_APPLICATION_I_D) + @javax.annotation.Nonnull + private String applicationID; + + public static final String SERIALIZED_NAME_VERSION = "Version"; + + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nonnull + private String version; + + public static final String SERIALIZED_NAME_UNICODE_VERSION = "UnicodeVersion"; + + @SerializedName(SERIALIZED_NAME_UNICODE_VERSION) + @javax.annotation.Nonnull + private String unicodeVersion; + + public static final String SERIALIZED_NAME_DATA_HASH_ALGORITHM = "DataHashAlgorithm"; + + @SerializedName(SERIALIZED_NAME_DATA_HASH_ALGORITHM) + @javax.annotation.Nonnull + private String dataHashAlgorithm; + + public static final String SERIALIZED_NAME_FILES = "Files"; + + @SerializedName(SERIALIZED_NAME_FILES) + @javax.annotation.Nonnull + private List files; + + public RfidApplication() {} + + public RfidApplication type(@javax.annotation.Nonnull RfidApplicationType type) { + this.type = type; + return this; + } + + /** + * Get type + * + * @return type + */ + @javax.annotation.Nonnull + public RfidApplicationType getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull RfidApplicationType type) { + this.type = type; + } + + public RfidApplication status(@javax.annotation.Nonnull RFIDErrorCodes status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @javax.annotation.Nonnull + public RFIDErrorCodes getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nonnull RFIDErrorCodes status) { + this.status = status; + } + + public RfidApplication applicationID(@javax.annotation.Nonnull String applicationID) { + this.applicationID = applicationID; + return this; + } + + /** + * Application identifier + * + * @return applicationID + */ + @javax.annotation.Nonnull + public String getApplicationID() { + return applicationID; + } + + public void setApplicationID(@javax.annotation.Nonnull String applicationID) { + this.applicationID = applicationID; + } + + public RfidApplication version(@javax.annotation.Nonnull String version) { + this.version = version; + return this; + } + + /** + * Version of the application + * + * @return version + */ + @javax.annotation.Nonnull + public String getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nonnull String version) { + this.version = version; + } + + public RfidApplication unicodeVersion(@javax.annotation.Nonnull String unicodeVersion) { + this.unicodeVersion = unicodeVersion; + return this; + } + + /** + * Unicode version for application + * + * @return unicodeVersion + */ + @javax.annotation.Nonnull + public String getUnicodeVersion() { + return unicodeVersion; + } + + public void setUnicodeVersion(@javax.annotation.Nonnull String unicodeVersion) { + this.unicodeVersion = unicodeVersion; + } + + public RfidApplication dataHashAlgorithm(@javax.annotation.Nonnull String dataHashAlgorithm) { + this.dataHashAlgorithm = dataHashAlgorithm; + return this; + } + + /** + * Algorithm for calculating hash values for files for the procedure of PA + * + * @return dataHashAlgorithm + */ + @javax.annotation.Nonnull + public String getDataHashAlgorithm() { + return dataHashAlgorithm; + } + + public void setDataHashAlgorithm(@javax.annotation.Nonnull String dataHashAlgorithm) { + this.dataHashAlgorithm = dataHashAlgorithm; + } + + public RfidApplication files(@javax.annotation.Nonnull List files) { + this.files = files; + return this; + } + + public RfidApplication addFilesItem(RfidDataFile filesItem) { + if (this.files == null) { + this.files = new ArrayList<>(); + } + this.files.add(filesItem); + return this; + } + + /** + * List of containers to store information about the read files of the application + * + * @return files + */ + @javax.annotation.Nonnull + public List getFiles() { + return files; + } + + public void setFiles(@javax.annotation.Nonnull List files) { + this.files = files; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidApplication rfidApplication = (RfidApplication) o; + return Objects.equals(this.type, rfidApplication.type) + && Objects.equals(this.status, rfidApplication.status) + && Objects.equals(this.applicationID, rfidApplication.applicationID) + && Objects.equals(this.version, rfidApplication.version) + && Objects.equals(this.unicodeVersion, rfidApplication.unicodeVersion) + && Objects.equals(this.dataHashAlgorithm, rfidApplication.dataHashAlgorithm) + && Objects.equals(this.files, rfidApplication.files); + } + + @Override + public int hashCode() { + return Objects.hash( + type, status, applicationID, version, unicodeVersion, dataHashAlgorithm, files); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidApplication {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" applicationID: ").append(toIndentedString(applicationID)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" unicodeVersion: ").append(toIndentedString(unicodeVersion)).append("\n"); + sb.append(" dataHashAlgorithm: ").append(toIndentedString(dataHashAlgorithm)).append("\n"); + sb.append(" files: ").append(toIndentedString(files)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Status"); + openapiFields.add("ApplicationID"); + openapiFields.add("Version"); + openapiFields.add("UnicodeVersion"); + openapiFields.add("DataHashAlgorithm"); + openapiFields.add("Files"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Type"); + openapiRequiredFields.add("Status"); + openapiRequiredFields.add("ApplicationID"); + openapiRequiredFields.add("Version"); + openapiRequiredFields.add("UnicodeVersion"); + openapiRequiredFields.add("DataHashAlgorithm"); + openapiRequiredFields.add("Files"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidApplication + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidApplication.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidApplication is not found in the empty JSON string", + RfidApplication.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidApplication.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidApplication` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidApplication.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `Type` + RfidApplicationType.validateJsonElement(jsonObj.get("Type")); + // validate the required field `Status` + RFIDErrorCodes.validateJsonElement(jsonObj.get("Status")); + if (!jsonObj.get("ApplicationID").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ApplicationID` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("ApplicationID").toString())); + } + if (!jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Version` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Version").toString())); + } + if (!jsonObj.get("UnicodeVersion").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `UnicodeVersion` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("UnicodeVersion").toString())); + } + if (!jsonObj.get("DataHashAlgorithm").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `DataHashAlgorithm` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("DataHashAlgorithm").toString())); + } + // ensure the json data is an array + if (!jsonObj.get("Files").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Files` to be an array in the JSON string but got `%s`", + jsonObj.get("Files").toString())); + } + + JsonArray jsonArrayfiles = jsonObj.getAsJsonArray("Files"); + // validate the required field `Files` (array) + for (int i = 0; i < jsonArrayfiles.size(); i++) { + RfidDataFile.validateJsonElement(jsonArrayfiles.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidApplication.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidApplication' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidApplication.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidApplication value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidApplication read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidApplication given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidApplication + * @throws IOException if the JSON string is invalid with respect to RfidApplication + */ + public static RfidApplication fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidApplication.class); + } + + /** + * Convert an instance of RfidApplication to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplicationType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplicationType.java new file mode 100644 index 00000000..17503826 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplicationType.java @@ -0,0 +1,101 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains a set of constants that define the type of application within the context of + * the communication session with electronic document + */ +@JsonAdapter(RfidApplicationType.Adapter.class) +public enum RfidApplicationType { + + /** Not defined */ + UNSPECIFIED(0), + + /** ePassport application */ + E_PASSPORT(1), + + /** eID application */ + E_ID(2), + + /** eSign application */ + E_SIGN(3), + + /** eDL application */ + E_DL(4), + + /** TravelRecords application */ + LDS2_TravelRecords(5), + + /** VisaRecords application */ + LDS2_VisaRecords(6), + + /** AddBiometrics application */ + LDS2_AddBiometrics(7), + + /** Digital Travel Credentials */ + eDTC_PC(8), + + /** Master File */ + ROOT_FILES(0); + + private Integer value; + + RfidApplicationType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidApplicationType fromValue(Integer value) { + for (RfidApplicationType b : RfidApplicationType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RfidApplicationType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidApplicationType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidApplicationType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidApplicationType.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeData.java new file mode 100644 index 00000000..e86dc2a6 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeData.java @@ -0,0 +1,242 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** Structure contains the data of one attribute of the digital signature object. */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidAttributeData { + public static final String SERIALIZED_NAME_TYPE = "Type"; + + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private String type; + + public static final String SERIALIZED_NAME_DATA = "Data"; + + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nonnull + private String data; + + public RfidAttributeData() {} + + public RfidAttributeData type(@javax.annotation.Nonnull String type) { + this.type = type; + return this; + } + + /** + * Contents of the identifier in the format S1 (S2), where S1 – attribute name, S2 – identifier + * (OID string) + * + * @return type + */ + @javax.annotation.Nonnull + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull String type) { + this.type = type; + } + + public RfidAttributeData data(@javax.annotation.Nonnull String data) { + this.data = data; + return this; + } + + /** + * Attribute binary data. Base64 encoded. + * + * @return data + */ + @javax.annotation.Nonnull + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nonnull String data) { + this.data = data; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidAttributeData rfidAttributeData = (RfidAttributeData) o; + return Objects.equals(this.type, rfidAttributeData.type) + && Objects.equals(this.data, rfidAttributeData.data); + } + + @Override + public int hashCode() { + return Objects.hash(type, data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidAttributeData {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Type"); + openapiRequiredFields.add("Data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidAttributeData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidAttributeData.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidAttributeData is not found in the empty JSON string", + RfidAttributeData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidAttributeData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidAttributeData` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidAttributeData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Type` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Type").toString())); + } + if (!jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Data` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Data").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidAttributeData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidAttributeData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidAttributeData.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidAttributeData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidAttributeData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidAttributeData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidAttributeData + * @throws IOException if the JSON string is invalid with respect to RfidAttributeData + */ + public static RfidAttributeData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidAttributeData.class); + } + + /** + * Convert an instance of RfidAttributeData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeName.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeName.java new file mode 100644 index 00000000..0d19d189 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeName.java @@ -0,0 +1,240 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure contains information that serves as the distinguished name (identifier) of an object. + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidAttributeName { + public static final String SERIALIZED_NAME_TYPE = "Type"; + + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private String type; + + public static final String SERIALIZED_NAME_VALUE = "Value"; + + @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nonnull + private TrfFtString value; + + public RfidAttributeName() {} + + public RfidAttributeName type(@javax.annotation.Nonnull String type) { + this.type = type; + return this; + } + + /** + * Attribute identifier (OID ASCII string); contents of the identifier in the format S1 (S2), + * where S1 – attribute name, S2 – identifier (OID string) + * + * @return type + */ + @javax.annotation.Nonnull + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull String type) { + this.type = type; + } + + public RfidAttributeName value(@javax.annotation.Nonnull TrfFtString value) { + this.value = value; + return this; + } + + /** + * Get value + * + * @return value + */ + @javax.annotation.Nonnull + public TrfFtString getValue() { + return value; + } + + public void setValue(@javax.annotation.Nonnull TrfFtString value) { + this.value = value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidAttributeName rfidAttributeName = (RfidAttributeName) o; + return Objects.equals(this.type, rfidAttributeName.type) + && Objects.equals(this.value, rfidAttributeName.value); + } + + @Override + public int hashCode() { + return Objects.hash(type, value); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidAttributeName {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Value"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Type"); + openapiRequiredFields.add("Value"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidAttributeName + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidAttributeName.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidAttributeName is not found in the empty JSON string", + RfidAttributeName.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidAttributeName.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidAttributeName` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidAttributeName.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Type` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Type").toString())); + } + // validate the required field `Value` + TrfFtString.validateJsonElement(jsonObj.get("Value")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidAttributeName.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidAttributeName' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidAttributeName.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidAttributeName value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidAttributeName read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidAttributeName given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidAttributeName + * @throws IOException if the JSON string is invalid with respect to RfidAttributeName + */ + public static RfidAttributeName fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidAttributeName.class); + } + + /** + * Convert an instance of RfidAttributeName to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAuthenticationProcedureType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAuthenticationProcedureType.java new file mode 100644 index 00000000..8e50b804 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAuthenticationProcedureType.java @@ -0,0 +1,84 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains a set of constants that define the type of performed procedure of document + * authentication within the current session + */ +@JsonAdapter(RfidAuthenticationProcedureType.Adapter.class) +public enum RfidAuthenticationProcedureType { + + /** Not defined */ + UNDEFINED(0), + + /** Standard authentication procedure */ + STANDARD(1), + + /** Advanced authentication procedure */ + ADVANCED(2), + + /** General authentication procedure */ + GENERAL(3); + + private Integer value; + + RfidAuthenticationProcedureType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidAuthenticationProcedureType fromValue(Integer value) { + for (RfidAuthenticationProcedureType b : RfidAuthenticationProcedureType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write( + final JsonWriter jsonWriter, final RfidAuthenticationProcedureType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidAuthenticationProcedureType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidAuthenticationProcedureType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidAuthenticationProcedureType.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidBaudRate.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidBaudRate.java new file mode 100644 index 00000000..50a9103c --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidBaudRate.java @@ -0,0 +1,86 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains a set of constants specifying the rate of data exchange between the reader + * and the RFID-chip + */ +@JsonAdapter(RfidBaudRate.Adapter.class) +public enum RfidBaudRate { + + /** Unknown */ + UNKNOWN(0), + + /** 106 bits/s */ + RFBR_106(1), + + /** 212 bits/s */ + RFBR_212(2), + + /** 424 bits/s */ + RFBR_424(4), + + /** 848 bits/s */ + RFBR_848(8); + + private Integer value; + + RfidBaudRate(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidBaudRate fromValue(Integer value) { + for (RfidBaudRate b : RfidBaudRate.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RfidBaudRate enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidBaudRate read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidBaudRate.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidBaudRate.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCardPropertiesExt.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCardPropertiesExt.java new file mode 100644 index 00000000..ba02a537 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCardPropertiesExt.java @@ -0,0 +1,631 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure is used to store extended information about the characteristics of the RFID-chip + * located in the scope of the reader + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidCardPropertiesExt { + public static final String SERIALIZED_NAME_RF_I_D_TYPE = "RFID_Type"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_TYPE) + @javax.annotation.Nonnull + private RfidType rfIDType; + + public static final String SERIALIZED_NAME_BAUDRATE1 = "Baudrate1"; + + @SerializedName(SERIALIZED_NAME_BAUDRATE1) + @javax.annotation.Nonnull + private String baudrate1; + + public static final String SERIALIZED_NAME_BAUDRATE2 = "Baudrate2"; + + @SerializedName(SERIALIZED_NAME_BAUDRATE2) + @javax.annotation.Nonnull + private String baudrate2; + + public static final String SERIALIZED_NAME_SUPPORT4 = "Support_4"; + + @SerializedName(SERIALIZED_NAME_SUPPORT4) + @javax.annotation.Nonnull + private Boolean support4; + + public static final String SERIALIZED_NAME_CHIP_TYPE_A = "ChipType_A"; + + @SerializedName(SERIALIZED_NAME_CHIP_TYPE_A) + @javax.annotation.Nonnull + private RfidAChip chipTypeA; + + public static final String SERIALIZED_NAME_SUPPORT_MIFARE = "Support_Mifare"; + + @SerializedName(SERIALIZED_NAME_SUPPORT_MIFARE) + @javax.annotation.Nonnull + private Boolean supportMifare; + + public static final String SERIALIZED_NAME_MIFARE_MEMORY = "MifareMemory"; + + @SerializedName(SERIALIZED_NAME_MIFARE_MEMORY) + @javax.annotation.Nonnull + private BigDecimal mifareMemory; + + public static final String SERIALIZED_NAME_U_I_D = "UID"; + + @SerializedName(SERIALIZED_NAME_U_I_D) + @javax.annotation.Nonnull + private String UID; + + public static final String SERIALIZED_NAME_A_T_Q_A = "ATQ_A"; + + @SerializedName(SERIALIZED_NAME_A_T_Q_A) + @javax.annotation.Nullable + private Object ATQ_A = null; + + public static final String SERIALIZED_NAME_S_A_K = "SAK"; + + @SerializedName(SERIALIZED_NAME_S_A_K) + @javax.annotation.Nullable + private Object SAK = null; + + public static final String SERIALIZED_NAME_A_T_Q_B = "ATQ_B"; + + @SerializedName(SERIALIZED_NAME_A_T_Q_B) + @javax.annotation.Nullable + private Object ATQ_B = null; + + public static final String SERIALIZED_NAME_BIT_RATE_S = "BitRateS"; + + @SerializedName(SERIALIZED_NAME_BIT_RATE_S) + @javax.annotation.Nonnull + private RfidBaudRate bitRateS; + + public static final String SERIALIZED_NAME_BIT_RATE_R = "BitRateR"; + + @SerializedName(SERIALIZED_NAME_BIT_RATE_R) + @javax.annotation.Nonnull + private RfidBaudRate bitRateR; + + public static final String SERIALIZED_NAME_A_T_R = "ATR"; + + @SerializedName(SERIALIZED_NAME_A_T_R) + @javax.annotation.Nonnull + private String ATR; + + public RfidCardPropertiesExt() {} + + public RfidCardPropertiesExt rfIDType(@javax.annotation.Nonnull RfidType rfIDType) { + this.rfIDType = rfIDType; + return this; + } + + /** + * Get rfIDType + * + * @return rfIDType + */ + @javax.annotation.Nonnull + public RfidType getRfIDType() { + return rfIDType; + } + + public void setRfIDType(@javax.annotation.Nonnull RfidType rfIDType) { + this.rfIDType = rfIDType; + } + + public RfidCardPropertiesExt baudrate1(@javax.annotation.Nonnull String baudrate1) { + this.baudrate1 = baudrate1; + return this; + } + + /** + * Numeric Baudrate1 value in hexadecimal format (e.g. 0x0000000F) + * + * @return baudrate1 + */ + @javax.annotation.Nonnull + public String getBaudrate1() { + return baudrate1; + } + + public void setBaudrate1(@javax.annotation.Nonnull String baudrate1) { + this.baudrate1 = baudrate1; + } + + public RfidCardPropertiesExt baudrate2(@javax.annotation.Nonnull String baudrate2) { + this.baudrate2 = baudrate2; + return this; + } + + /** + * Numeric Baudrate2 value in hexadecimal format + * + * @return baudrate2 + */ + @javax.annotation.Nonnull + public String getBaudrate2() { + return baudrate2; + } + + public void setBaudrate2(@javax.annotation.Nonnull String baudrate2) { + this.baudrate2 = baudrate2; + } + + public RfidCardPropertiesExt support4(@javax.annotation.Nonnull Boolean support4) { + this.support4 = support4; + return this; + } + + /** + * Boolean Support_4 value + * + * @return support4 + */ + @javax.annotation.Nonnull + public Boolean getSupport4() { + return support4; + } + + public void setSupport4(@javax.annotation.Nonnull Boolean support4) { + this.support4 = support4; + } + + public RfidCardPropertiesExt chipTypeA(@javax.annotation.Nonnull RfidAChip chipTypeA) { + this.chipTypeA = chipTypeA; + return this; + } + + /** + * Get chipTypeA + * + * @return chipTypeA + */ + @javax.annotation.Nonnull + public RfidAChip getChipTypeA() { + return chipTypeA; + } + + public void setChipTypeA(@javax.annotation.Nonnull RfidAChip chipTypeA) { + this.chipTypeA = chipTypeA; + } + + public RfidCardPropertiesExt supportMifare(@javax.annotation.Nonnull Boolean supportMifare) { + this.supportMifare = supportMifare; + return this; + } + + /** + * Sign of support for ISO/IEC 14443-3 data exchange protocol + * + * @return supportMifare + */ + @javax.annotation.Nonnull + public Boolean getSupportMifare() { + return supportMifare; + } + + public void setSupportMifare(@javax.annotation.Nonnull Boolean supportMifare) { + this.supportMifare = supportMifare; + } + + public RfidCardPropertiesExt mifareMemory(@javax.annotation.Nonnull BigDecimal mifareMemory) { + this.mifareMemory = mifareMemory; + return this; + } + + /** + * Amount of operational memory MIFARE® of the chip, kilobytes + * + * @return mifareMemory + */ + @javax.annotation.Nonnull + public BigDecimal getMifareMemory() { + return mifareMemory; + } + + public void setMifareMemory(@javax.annotation.Nonnull BigDecimal mifareMemory) { + this.mifareMemory = mifareMemory; + } + + public RfidCardPropertiesExt UID(@javax.annotation.Nonnull String UID) { + this.UID = UID; + return this; + } + + /** + * UID contents in text format. Each byte is represented by its hexadecimal value. The individual + * bytes are separated by spaces (e.g. F9 4F 41 60) + * + * @return UID + */ + @javax.annotation.Nonnull + public String getUID() { + return UID; + } + + public void setUID(@javax.annotation.Nonnull String UID) { + this.UID = UID; + } + + public RfidCardPropertiesExt ATQ_A(@javax.annotation.Nullable Object ATQ_A) { + this.ATQ_A = ATQ_A; + return this; + } + + /** + * Reply of the «A» type chip to «REQA» command of ISO/IEC 14443-3 protocol (Answer To Request, + * Type A – ATQA) – for the internal use by the main control library + * + * @return ATQ_A + */ + @javax.annotation.Nullable + public Object getATQA() { + return ATQ_A; + } + + public void setATQA(@javax.annotation.Nullable Object ATQ_A) { + this.ATQ_A = ATQ_A; + } + + public RfidCardPropertiesExt SAK(@javax.annotation.Nullable Object SAK) { + this.SAK = SAK; + return this; + } + + /** + * Response of type-A RFID-chip to SELECT command of ISO/IEC 14443-3 protocol (Select Acknowledge, + * SAK). + * + * @return SAK + */ + @javax.annotation.Nullable + public Object getSAK() { + return SAK; + } + + public void setSAK(@javax.annotation.Nullable Object SAK) { + this.SAK = SAK; + } + + public RfidCardPropertiesExt ATQ_B(@javax.annotation.Nullable Object ATQ_B) { + this.ATQ_B = ATQ_B; + return this; + } + + /** + * ATQ_B contents in text format. Each byte is represented by its hexadecimal value. The + * individual bytes are separated by spaces (e.g. 50 F9 4F 41 60 00 00 00 00 77 81 81) + * + * @return ATQ_B + */ + @javax.annotation.Nullable + public Object getATQB() { + return ATQ_B; + } + + public void setATQB(@javax.annotation.Nullable Object ATQ_B) { + this.ATQ_B = ATQ_B; + } + + public RfidCardPropertiesExt bitRateS(@javax.annotation.Nonnull RfidBaudRate bitRateS) { + this.bitRateS = bitRateS; + return this; + } + + /** + * Get bitRateS + * + * @return bitRateS + */ + @javax.annotation.Nonnull + public RfidBaudRate getBitRateS() { + return bitRateS; + } + + public void setBitRateS(@javax.annotation.Nonnull RfidBaudRate bitRateS) { + this.bitRateS = bitRateS; + } + + public RfidCardPropertiesExt bitRateR(@javax.annotation.Nonnull RfidBaudRate bitRateR) { + this.bitRateR = bitRateR; + return this; + } + + /** + * Get bitRateR + * + * @return bitRateR + */ + @javax.annotation.Nonnull + public RfidBaudRate getBitRateR() { + return bitRateR; + } + + public void setBitRateR(@javax.annotation.Nonnull RfidBaudRate bitRateR) { + this.bitRateR = bitRateR; + } + + public RfidCardPropertiesExt ATR(@javax.annotation.Nonnull String ATR) { + this.ATR = ATR; + return this; + } + + /** + * ATR-string of RFID-chip + * + * @return ATR + */ + @javax.annotation.Nonnull + public String getATR() { + return ATR; + } + + public void setATR(@javax.annotation.Nonnull String ATR) { + this.ATR = ATR; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidCardPropertiesExt rfidCardPropertiesExt = (RfidCardPropertiesExt) o; + return Objects.equals(this.rfIDType, rfidCardPropertiesExt.rfIDType) + && Objects.equals(this.baudrate1, rfidCardPropertiesExt.baudrate1) + && Objects.equals(this.baudrate2, rfidCardPropertiesExt.baudrate2) + && Objects.equals(this.support4, rfidCardPropertiesExt.support4) + && Objects.equals(this.chipTypeA, rfidCardPropertiesExt.chipTypeA) + && Objects.equals(this.supportMifare, rfidCardPropertiesExt.supportMifare) + && Objects.equals(this.mifareMemory, rfidCardPropertiesExt.mifareMemory) + && Objects.equals(this.UID, rfidCardPropertiesExt.UID) + && Objects.equals(this.ATQ_A, rfidCardPropertiesExt.ATQ_A) + && Objects.equals(this.SAK, rfidCardPropertiesExt.SAK) + && Objects.equals(this.ATQ_B, rfidCardPropertiesExt.ATQ_B) + && Objects.equals(this.bitRateS, rfidCardPropertiesExt.bitRateS) + && Objects.equals(this.bitRateR, rfidCardPropertiesExt.bitRateR) + && Objects.equals(this.ATR, rfidCardPropertiesExt.ATR); + } + + @Override + public int hashCode() { + return Objects.hash( + rfIDType, + baudrate1, + baudrate2, + support4, + chipTypeA, + supportMifare, + mifareMemory, + UID, + ATQ_A, + SAK, + ATQ_B, + bitRateS, + bitRateR, + ATR); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidCardPropertiesExt {\n"); + sb.append(" rfIDType: ").append(toIndentedString(rfIDType)).append("\n"); + sb.append(" baudrate1: ").append(toIndentedString(baudrate1)).append("\n"); + sb.append(" baudrate2: ").append(toIndentedString(baudrate2)).append("\n"); + sb.append(" support4: ").append(toIndentedString(support4)).append("\n"); + sb.append(" chipTypeA: ").append(toIndentedString(chipTypeA)).append("\n"); + sb.append(" supportMifare: ").append(toIndentedString(supportMifare)).append("\n"); + sb.append(" mifareMemory: ").append(toIndentedString(mifareMemory)).append("\n"); + sb.append(" UID: ").append(toIndentedString(UID)).append("\n"); + sb.append(" ATQ_A: ").append(toIndentedString(ATQ_A)).append("\n"); + sb.append(" SAK: ").append(toIndentedString(SAK)).append("\n"); + sb.append(" ATQ_B: ").append(toIndentedString(ATQ_B)).append("\n"); + sb.append(" bitRateS: ").append(toIndentedString(bitRateS)).append("\n"); + sb.append(" bitRateR: ").append(toIndentedString(bitRateR)).append("\n"); + sb.append(" ATR: ").append(toIndentedString(ATR)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RFID_Type"); + openapiFields.add("Baudrate1"); + openapiFields.add("Baudrate2"); + openapiFields.add("Support_4"); + openapiFields.add("ChipType_A"); + openapiFields.add("Support_Mifare"); + openapiFields.add("MifareMemory"); + openapiFields.add("UID"); + openapiFields.add("ATQ_A"); + openapiFields.add("SAK"); + openapiFields.add("ATQ_B"); + openapiFields.add("BitRateS"); + openapiFields.add("BitRateR"); + openapiFields.add("ATR"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("RFID_Type"); + openapiRequiredFields.add("Baudrate1"); + openapiRequiredFields.add("Baudrate2"); + openapiRequiredFields.add("Support_4"); + openapiRequiredFields.add("ChipType_A"); + openapiRequiredFields.add("Support_Mifare"); + openapiRequiredFields.add("MifareMemory"); + openapiRequiredFields.add("UID"); + openapiRequiredFields.add("ATQ_A"); + openapiRequiredFields.add("SAK"); + openapiRequiredFields.add("ATQ_B"); + openapiRequiredFields.add("BitRateS"); + openapiRequiredFields.add("BitRateR"); + openapiRequiredFields.add("ATR"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidCardPropertiesExt + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidCardPropertiesExt.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidCardPropertiesExt is not found in the empty JSON string", + RfidCardPropertiesExt.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidCardPropertiesExt.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidCardPropertiesExt` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidCardPropertiesExt.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `RFID_Type` + RfidType.validateJsonElement(jsonObj.get("RFID_Type")); + if (!jsonObj.get("Baudrate1").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Baudrate1` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Baudrate1").toString())); + } + if (!jsonObj.get("Baudrate2").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Baudrate2` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Baudrate2").toString())); + } + // validate the required field `ChipType_A` + RfidAChip.validateJsonElement(jsonObj.get("ChipType_A")); + if (!jsonObj.get("UID").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `UID` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("UID").toString())); + } + // validate the required field `BitRateS` + RfidBaudRate.validateJsonElement(jsonObj.get("BitRateS")); + // validate the required field `BitRateR` + RfidBaudRate.validateJsonElement(jsonObj.get("BitRateR")); + if (!jsonObj.get("ATR").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ATR` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("ATR").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidCardPropertiesExt.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidCardPropertiesExt' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidCardPropertiesExt.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidCardPropertiesExt value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidCardPropertiesExt read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidCardPropertiesExt given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidCardPropertiesExt + * @throws IOException if the JSON string is invalid with respect to RfidCardPropertiesExt + */ + public static RfidCardPropertiesExt fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidCardPropertiesExt.class); + } + + /** + * Convert an instance of RfidCardPropertiesExt to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java new file mode 100644 index 00000000..8d58f967 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java @@ -0,0 +1,645 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure is used to describe the certificate contents used for the digital signature + * verification of the document security object within the context of the communication session with + * electronic document. + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidCertificateEx { + public static final String SERIALIZED_NAME_VERSION = "Version"; + + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nonnull + private BigDecimal version; + + public static final String SERIALIZED_NAME_SERIAL_NUMBER = "SerialNumber"; + + @SerializedName(SERIALIZED_NAME_SERIAL_NUMBER) + @javax.annotation.Nonnull + private String serialNumber; + + public static final String SERIALIZED_NAME_SIGNATURE_ALGORITHM = "SignatureAlgorithm"; + + @SerializedName(SERIALIZED_NAME_SIGNATURE_ALGORITHM) + @javax.annotation.Nonnull + private String signatureAlgorithm; + + public static final String SERIALIZED_NAME_ISSUER = "Issuer"; + + @SerializedName(SERIALIZED_NAME_ISSUER) + @javax.annotation.Nonnull + private RfidDistinguishedName issuer; + + public static final String SERIALIZED_NAME_VALIDITY = "Validity"; + + @SerializedName(SERIALIZED_NAME_VALIDITY) + @javax.annotation.Nonnull + private RfidValidity validity; + + public static final String SERIALIZED_NAME_SUBJECT = "Subject"; + + @SerializedName(SERIALIZED_NAME_SUBJECT) + @javax.annotation.Nonnull + private RfidDistinguishedName subject; + + public static final String SERIALIZED_NAME_SUBJECT_P_K_ALGORITHM = "SubjectPKAlgorithm"; + + @SerializedName(SERIALIZED_NAME_SUBJECT_P_K_ALGORITHM) + @javax.annotation.Nonnull + private String subjectPKAlgorithm; + + public static final String SERIALIZED_NAME_EXTENSIONS = "Extensions"; + + @SerializedName(SERIALIZED_NAME_EXTENSIONS) + @javax.annotation.Nonnull + private List extensions; + + public static final String SERIALIZED_NAME_NOTIFICATIONS = "Notifications"; + + @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) + @javax.annotation.Nonnull + private List notifications; + + public static final String SERIALIZED_NAME_ORIGIN = "Origin"; + + @SerializedName(SERIALIZED_NAME_ORIGIN) + @javax.annotation.Nonnull + private RfidCertificateOrigin origin; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private RfidCertificateType type; + + public static final String SERIALIZED_NAME_FILE_NAME = "FileName"; + + @SerializedName(SERIALIZED_NAME_FILE_NAME) + @javax.annotation.Nonnull + private TrfFtString fileName; + + public static final String SERIALIZED_NAME_PA_STATUS = "PA_Status"; + + @SerializedName(SERIALIZED_NAME_PA_STATUS) + @javax.annotation.Nonnull + private RFIDErrorCodes paStatus; + + public RfidCertificateEx() {} + + public RfidCertificateEx version(@javax.annotation.Nonnull BigDecimal version) { + this.version = version; + return this; + } + + /** + * Version of Certificate ASN.1 structure + * + * @return version + */ + @javax.annotation.Nonnull + public BigDecimal getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nonnull BigDecimal version) { + this.version = version; + } + + public RfidCertificateEx serialNumber(@javax.annotation.Nonnull String serialNumber) { + this.serialNumber = serialNumber; + return this; + } + + /** + * Certificate serial number. Base64 encoded. + * + * @return serialNumber + */ + @javax.annotation.Nonnull + public String getSerialNumber() { + return serialNumber; + } + + public void setSerialNumber(@javax.annotation.Nonnull String serialNumber) { + this.serialNumber = serialNumber; + } + + public RfidCertificateEx signatureAlgorithm(@javax.annotation.Nonnull String signatureAlgorithm) { + this.signatureAlgorithm = signatureAlgorithm; + return this; + } + + /** + * Certificate digital signature algorithm identifier (OID); String in the format S1 (S2), where + * S1 – algorithm name, S2 – identifier (OID string). + * + * @return signatureAlgorithm + */ + @javax.annotation.Nonnull + public String getSignatureAlgorithm() { + return signatureAlgorithm; + } + + public void setSignatureAlgorithm(@javax.annotation.Nonnull String signatureAlgorithm) { + this.signatureAlgorithm = signatureAlgorithm; + } + + public RfidCertificateEx issuer(@javax.annotation.Nonnull RfidDistinguishedName issuer) { + this.issuer = issuer; + return this; + } + + /** + * Get issuer + * + * @return issuer + */ + @javax.annotation.Nonnull + public RfidDistinguishedName getIssuer() { + return issuer; + } + + public void setIssuer(@javax.annotation.Nonnull RfidDistinguishedName issuer) { + this.issuer = issuer; + } + + public RfidCertificateEx validity(@javax.annotation.Nonnull RfidValidity validity) { + this.validity = validity; + return this; + } + + /** + * Get validity + * + * @return validity + */ + @javax.annotation.Nonnull + public RfidValidity getValidity() { + return validity; + } + + public void setValidity(@javax.annotation.Nonnull RfidValidity validity) { + this.validity = validity; + } + + public RfidCertificateEx subject(@javax.annotation.Nonnull RfidDistinguishedName subject) { + this.subject = subject; + return this; + } + + /** + * Get subject + * + * @return subject + */ + @javax.annotation.Nonnull + public RfidDistinguishedName getSubject() { + return subject; + } + + public void setSubject(@javax.annotation.Nonnull RfidDistinguishedName subject) { + this.subject = subject; + } + + public RfidCertificateEx subjectPKAlgorithm(@javax.annotation.Nonnull String subjectPKAlgorithm) { + this.subjectPKAlgorithm = subjectPKAlgorithm; + return this; + } + + /** + * Certificate public key algorithm identifier (OID); String in the format S1 (S2), where S1 – + * algorithm name, S2 – identifier (OID string). + * + * @return subjectPKAlgorithm + */ + @javax.annotation.Nonnull + public String getSubjectPKAlgorithm() { + return subjectPKAlgorithm; + } + + public void setSubjectPKAlgorithm(@javax.annotation.Nonnull String subjectPKAlgorithm) { + this.subjectPKAlgorithm = subjectPKAlgorithm; + } + + public RfidCertificateEx extensions(@javax.annotation.Nonnull List extensions) { + this.extensions = extensions; + return this; + } + + public RfidCertificateEx addExtensionsItem(RfidPkiExtension extensionsItem) { + if (this.extensions == null) { + this.extensions = new ArrayList<>(); + } + this.extensions.add(extensionsItem); + return this; + } + + /** + * List of the certificate extensions + * + * @return extensions + */ + @javax.annotation.Nonnull + public List getExtensions() { + return extensions; + } + + public void setExtensions(@javax.annotation.Nonnull List extensions) { + this.extensions = extensions; + } + + public RfidCertificateEx notifications( + @javax.annotation.Nonnull List notifications) { + this.notifications = notifications; + return this; + } + + public RfidCertificateEx addNotificationsItem(ParsingErrorCodes notificationsItem) { + if (this.notifications == null) { + this.notifications = new ArrayList<>(); + } + this.notifications.add(notificationsItem); + return this; + } + + /** + * List of remarks arisen during the analysis of the certificate data structure and its validity + * verification. + * + * @return notifications + */ + @javax.annotation.Nonnull + public List getNotifications() { + return notifications; + } + + public void setNotifications(@javax.annotation.Nonnull List notifications) { + this.notifications = notifications; + } + + public RfidCertificateEx origin(@javax.annotation.Nonnull RfidCertificateOrigin origin) { + this.origin = origin; + return this; + } + + /** + * Get origin + * + * @return origin + */ + @javax.annotation.Nonnull + public RfidCertificateOrigin getOrigin() { + return origin; + } + + public void setOrigin(@javax.annotation.Nonnull RfidCertificateOrigin origin) { + this.origin = origin; + } + + public RfidCertificateEx type(@javax.annotation.Nonnull RfidCertificateType type) { + this.type = type; + return this; + } + + /** + * Get type + * + * @return type + */ + @javax.annotation.Nonnull + public RfidCertificateType getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull RfidCertificateType type) { + this.type = type; + } + + public RfidCertificateEx fileName(@javax.annotation.Nonnull TrfFtString fileName) { + this.fileName = fileName; + return this; + } + + /** + * Get fileName + * + * @return fileName + */ + @javax.annotation.Nonnull + public TrfFtString getFileName() { + return fileName; + } + + public void setFileName(@javax.annotation.Nonnull TrfFtString fileName) { + this.fileName = fileName; + } + + public RfidCertificateEx paStatus(@javax.annotation.Nonnull RFIDErrorCodes paStatus) { + this.paStatus = paStatus; + return this; + } + + /** + * Get paStatus + * + * @return paStatus + */ + @javax.annotation.Nonnull + public RFIDErrorCodes getPaStatus() { + return paStatus; + } + + public void setPaStatus(@javax.annotation.Nonnull RFIDErrorCodes paStatus) { + this.paStatus = paStatus; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidCertificateEx rfidCertificateEx = (RfidCertificateEx) o; + return Objects.equals(this.version, rfidCertificateEx.version) + && Objects.equals(this.serialNumber, rfidCertificateEx.serialNumber) + && Objects.equals(this.signatureAlgorithm, rfidCertificateEx.signatureAlgorithm) + && Objects.equals(this.issuer, rfidCertificateEx.issuer) + && Objects.equals(this.validity, rfidCertificateEx.validity) + && Objects.equals(this.subject, rfidCertificateEx.subject) + && Objects.equals(this.subjectPKAlgorithm, rfidCertificateEx.subjectPKAlgorithm) + && Objects.equals(this.extensions, rfidCertificateEx.extensions) + && Objects.equals(this.notifications, rfidCertificateEx.notifications) + && Objects.equals(this.origin, rfidCertificateEx.origin) + && Objects.equals(this.type, rfidCertificateEx.type) + && Objects.equals(this.fileName, rfidCertificateEx.fileName) + && Objects.equals(this.paStatus, rfidCertificateEx.paStatus); + } + + @Override + public int hashCode() { + return Objects.hash( + version, + serialNumber, + signatureAlgorithm, + issuer, + validity, + subject, + subjectPKAlgorithm, + extensions, + notifications, + origin, + type, + fileName, + paStatus); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidCertificateEx {\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" serialNumber: ").append(toIndentedString(serialNumber)).append("\n"); + sb.append(" signatureAlgorithm: ").append(toIndentedString(signatureAlgorithm)).append("\n"); + sb.append(" issuer: ").append(toIndentedString(issuer)).append("\n"); + sb.append(" validity: ").append(toIndentedString(validity)).append("\n"); + sb.append(" subject: ").append(toIndentedString(subject)).append("\n"); + sb.append(" subjectPKAlgorithm: ").append(toIndentedString(subjectPKAlgorithm)).append("\n"); + sb.append(" extensions: ").append(toIndentedString(extensions)).append("\n"); + sb.append(" notifications: ").append(toIndentedString(notifications)).append("\n"); + sb.append(" origin: ").append(toIndentedString(origin)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" fileName: ").append(toIndentedString(fileName)).append("\n"); + sb.append(" paStatus: ").append(toIndentedString(paStatus)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Version"); + openapiFields.add("SerialNumber"); + openapiFields.add("SignatureAlgorithm"); + openapiFields.add("Issuer"); + openapiFields.add("Validity"); + openapiFields.add("Subject"); + openapiFields.add("SubjectPKAlgorithm"); + openapiFields.add("Extensions"); + openapiFields.add("Notifications"); + openapiFields.add("Origin"); + openapiFields.add("Type"); + openapiFields.add("FileName"); + openapiFields.add("PA_Status"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Version"); + openapiRequiredFields.add("SerialNumber"); + openapiRequiredFields.add("SignatureAlgorithm"); + openapiRequiredFields.add("Issuer"); + openapiRequiredFields.add("Validity"); + openapiRequiredFields.add("Subject"); + openapiRequiredFields.add("SubjectPKAlgorithm"); + openapiRequiredFields.add("Extensions"); + openapiRequiredFields.add("Notifications"); + openapiRequiredFields.add("Origin"); + openapiRequiredFields.add("Type"); + openapiRequiredFields.add("FileName"); + openapiRequiredFields.add("PA_Status"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidCertificateEx + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidCertificateEx.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidCertificateEx is not found in the empty JSON string", + RfidCertificateEx.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidCertificateEx.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidCertificateEx` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidCertificateEx.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("SerialNumber").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `SerialNumber` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("SerialNumber").toString())); + } + if (!jsonObj.get("SignatureAlgorithm").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `SignatureAlgorithm` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("SignatureAlgorithm").toString())); + } + // validate the required field `Issuer` + RfidDistinguishedName.validateJsonElement(jsonObj.get("Issuer")); + // validate the required field `Validity` + RfidValidity.validateJsonElement(jsonObj.get("Validity")); + // validate the required field `Subject` + RfidDistinguishedName.validateJsonElement(jsonObj.get("Subject")); + if (!jsonObj.get("SubjectPKAlgorithm").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `SubjectPKAlgorithm` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("SubjectPKAlgorithm").toString())); + } + // ensure the json data is an array + if (!jsonObj.get("Extensions").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Extensions` to be an array in the JSON string but got `%s`", + jsonObj.get("Extensions").toString())); + } + + JsonArray jsonArrayextensions = jsonObj.getAsJsonArray("Extensions"); + // validate the required field `Extensions` (array) + for (int i = 0; i < jsonArrayextensions.size(); i++) { + RfidPkiExtension.validateJsonElement(jsonArrayextensions.get(i)); + } + ; + // ensure the required json array is present + if (jsonObj.get("Notifications") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("Notifications").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Notifications` to be an array in the JSON string but got `%s`", + jsonObj.get("Notifications").toString())); + } + // validate the required field `Origin` + RfidCertificateOrigin.validateJsonElement(jsonObj.get("Origin")); + // validate the required field `Type` + RfidCertificateType.validateJsonElement(jsonObj.get("Type")); + // validate the required field `FileName` + TrfFtString.validateJsonElement(jsonObj.get("FileName")); + // validate the required field `PA_Status` + RFIDErrorCodes.validateJsonElement(jsonObj.get("PA_Status")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidCertificateEx.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidCertificateEx' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidCertificateEx.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidCertificateEx value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidCertificateEx read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidCertificateEx given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidCertificateEx + * @throws IOException if the JSON string is invalid with respect to RfidCertificateEx + */ + public static RfidCertificateEx fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidCertificateEx.class); + } + + /** + * Convert an instance of RfidCertificateEx to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateOrigin.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateOrigin.java new file mode 100644 index 00000000..dfca3df9 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateOrigin.java @@ -0,0 +1,98 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains a set of constants that define the source of certificate used in the + * procedure of document security object digital signature verification + */ +@JsonAdapter(RfidCertificateOrigin.Adapter.class) +public enum RfidCertificateOrigin { + + /** The source is not defined */ + UNDEFINED(0), + + /** Local PKD */ + PKD(1), + + /** Document security object */ + SECURITY_OBJECT(2), + + /** User-defined */ + USER_DEFINED(3), + + /** Contents of the Master List */ + MASTER_LIST_PKD(4), + + /** Security object of the Master List */ + MASTER_LIST_SO(5), + + /** Security object of the Defect List */ + DEFECT_LIST_SO(6), + + /** Security object of the Deviation List */ + DEVIATION_LIST_SO(7), + + /** Security object of the Black List */ + BLACK_LIST_SO(8); + + private Integer value; + + RfidCertificateOrigin(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidCertificateOrigin fromValue(Integer value) { + for (RfidCertificateOrigin b : RfidCertificateOrigin.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RfidCertificateOrigin enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidCertificateOrigin read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidCertificateOrigin.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidCertificateOrigin.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateType.java new file mode 100644 index 00000000..0806a411 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateType.java @@ -0,0 +1,95 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains a set of constants that define the type of certificate used in the procedure + * of document security object digital signature verification + */ +@JsonAdapter(RfidCertificateType.Adapter.class) +public enum RfidCertificateType { + + /** Type is not defined */ + UNDEFINED(0), + + /** CSCA */ + CSCA(1), + + /** CSCA-link */ + CSCA_LINK(2), + + /** DS */ + DS(3), + + /** Master List signer */ + MLS(4), + + /** Deviaton List signer */ + DEV_LS(5), + + /** Defect List signer */ + DEF_LS(6), + + /** Black List signer */ + BLS(7); + + private Integer value; + + RfidCertificateType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidCertificateType fromValue(Integer value) { + for (RfidCertificateType b : RfidCertificateType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RfidCertificateType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidCertificateType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidCertificateType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidCertificateType.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDG1.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDG1.java new file mode 100644 index 00000000..00d1058e --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDG1.java @@ -0,0 +1,726 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure used to store the contents of EF.DG1 informational data group of ePassport application + * – document MRZ data + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidDG1 { + public static final String SERIALIZED_NAME_TYPE = "Type"; + + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private RfidDataGroupTypeTag type; + + public static final String SERIALIZED_NAME_DOCUMENT_I_D = "DocumentID"; + + @SerializedName(SERIALIZED_NAME_DOCUMENT_I_D) + @javax.annotation.Nonnull + private DocumentFormat documentID; + + public static final String SERIALIZED_NAME_DOCUMENT_TYPE = "DocumentType"; + + @SerializedName(SERIALIZED_NAME_DOCUMENT_TYPE) + @javax.annotation.Nonnull + private String documentType; + + public static final String SERIALIZED_NAME_STATE = "State"; + + @SerializedName(SERIALIZED_NAME_STATE) + @javax.annotation.Nonnull + private String state; + + public static final String SERIALIZED_NAME_HOLDER = "Holder"; + + @SerializedName(SERIALIZED_NAME_HOLDER) + @javax.annotation.Nonnull + private String holder; + + public static final String SERIALIZED_NAME_DOCUMENT_NUMBER = "DocumentNumber"; + + @SerializedName(SERIALIZED_NAME_DOCUMENT_NUMBER) + @javax.annotation.Nonnull + private String documentNumber; + + public static final String SERIALIZED_NAME_CHECK_DIGIT_DOCUMENT_NUMBER = + "CheckDigitDocumentNumber"; + + @SerializedName(SERIALIZED_NAME_CHECK_DIGIT_DOCUMENT_NUMBER) + @javax.annotation.Nonnull + private BigDecimal checkDigitDocumentNumber; + + public static final String SERIALIZED_NAME_NATIONALITY = "Nationality"; + + @SerializedName(SERIALIZED_NAME_NATIONALITY) + @javax.annotation.Nonnull + private String nationality; + + public static final String SERIALIZED_NAME_BIRTHDAY = "Birthday"; + + @SerializedName(SERIALIZED_NAME_BIRTHDAY) + @javax.annotation.Nonnull + private String birthday; + + public static final String SERIALIZED_NAME_CHECK_DIGIT_BIRTHDAY = "CheckDigitBirthday"; + + @SerializedName(SERIALIZED_NAME_CHECK_DIGIT_BIRTHDAY) + @javax.annotation.Nonnull + private BigDecimal checkDigitBirthday; + + public static final String SERIALIZED_NAME_SEX = "Sex"; + + @SerializedName(SERIALIZED_NAME_SEX) + @javax.annotation.Nonnull + private String sex; + + public static final String SERIALIZED_NAME_EXPIRY_DATE = "ExpiryDate"; + + @SerializedName(SERIALIZED_NAME_EXPIRY_DATE) + @javax.annotation.Nonnull + private String expiryDate; + + public static final String SERIALIZED_NAME_CHECK_DIGIT_EXPIRY_DATE = "CheckDigitExpiryDate"; + + @SerializedName(SERIALIZED_NAME_CHECK_DIGIT_EXPIRY_DATE) + @javax.annotation.Nonnull + private BigDecimal checkDigitExpiryDate; + + public static final String SERIALIZED_NAME_OPTIONAL_DATA = "OptionalData"; + + @SerializedName(SERIALIZED_NAME_OPTIONAL_DATA) + @javax.annotation.Nonnull + private String optionalData; + + public static final String SERIALIZED_NAME_CHECK_DIGIT_OPTIONAL_DATA = "CheckDigitOptionalData"; + + @SerializedName(SERIALIZED_NAME_CHECK_DIGIT_OPTIONAL_DATA) + @javax.annotation.Nonnull + private BigDecimal checkDigitOptionalData; + + public static final String SERIALIZED_NAME_CHECK_DIGIT_COMPOSITE = "CheckDigitComposite"; + + @SerializedName(SERIALIZED_NAME_CHECK_DIGIT_COMPOSITE) + @javax.annotation.Nonnull + private BigDecimal checkDigitComposite; + + public RfidDG1() {} + + public RfidDG1 type(@javax.annotation.Nonnull RfidDataGroupTypeTag type) { + this.type = type; + return this; + } + + /** + * Get type + * + * @return type + */ + @javax.annotation.Nonnull + public RfidDataGroupTypeTag getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull RfidDataGroupTypeTag type) { + this.type = type; + } + + public RfidDG1 documentID(@javax.annotation.Nonnull DocumentFormat documentID) { + this.documentID = documentID; + return this; + } + + /** + * Get documentID + * + * @return documentID + */ + @javax.annotation.Nonnull + public DocumentFormat getDocumentID() { + return documentID; + } + + public void setDocumentID(@javax.annotation.Nonnull DocumentFormat documentID) { + this.documentID = documentID; + } + + public RfidDG1 documentType(@javax.annotation.Nonnull String documentType) { + this.documentType = documentType; + return this; + } + + /** + * Symbolic code of document type + * + * @return documentType + */ + @javax.annotation.Nonnull + public String getDocumentType() { + return documentType; + } + + public void setDocumentType(@javax.annotation.Nonnull String documentType) { + this.documentType = documentType; + } + + public RfidDG1 state(@javax.annotation.Nonnull String state) { + this.state = state; + return this; + } + + /** + * Symbolic code of document issuing state + * + * @return state + */ + @javax.annotation.Nonnull + public String getState() { + return state; + } + + public void setState(@javax.annotation.Nonnull String state) { + this.state = state; + } + + public RfidDG1 holder(@javax.annotation.Nonnull String holder) { + this.holder = holder; + return this; + } + + /** + * DO’s name and surname + * + * @return holder + */ + @javax.annotation.Nonnull + public String getHolder() { + return holder; + } + + public void setHolder(@javax.annotation.Nonnull String holder) { + this.holder = holder; + } + + public RfidDG1 documentNumber(@javax.annotation.Nonnull String documentNumber) { + this.documentNumber = documentNumber; + return this; + } + + /** + * Document number + * + * @return documentNumber + */ + @javax.annotation.Nonnull + public String getDocumentNumber() { + return documentNumber; + } + + public void setDocumentNumber(@javax.annotation.Nonnull String documentNumber) { + this.documentNumber = documentNumber; + } + + public RfidDG1 checkDigitDocumentNumber( + @javax.annotation.Nonnull BigDecimal checkDigitDocumentNumber) { + this.checkDigitDocumentNumber = checkDigitDocumentNumber; + return this; + } + + /** + * Check digit of document number + * + * @return checkDigitDocumentNumber + */ + @javax.annotation.Nonnull + public BigDecimal getCheckDigitDocumentNumber() { + return checkDigitDocumentNumber; + } + + public void setCheckDigitDocumentNumber( + @javax.annotation.Nonnull BigDecimal checkDigitDocumentNumber) { + this.checkDigitDocumentNumber = checkDigitDocumentNumber; + } + + public RfidDG1 nationality(@javax.annotation.Nonnull String nationality) { + this.nationality = nationality; + return this; + } + + /** + * Symbolic code of DO’s nationality + * + * @return nationality + */ + @javax.annotation.Nonnull + public String getNationality() { + return nationality; + } + + public void setNationality(@javax.annotation.Nonnull String nationality) { + this.nationality = nationality; + } + + public RfidDG1 birthday(@javax.annotation.Nonnull String birthday) { + this.birthday = birthday; + return this; + } + + /** + * DO’s date of birth + * + * @return birthday + */ + @javax.annotation.Nonnull + public String getBirthday() { + return birthday; + } + + public void setBirthday(@javax.annotation.Nonnull String birthday) { + this.birthday = birthday; + } + + public RfidDG1 checkDigitBirthday(@javax.annotation.Nonnull BigDecimal checkDigitBirthday) { + this.checkDigitBirthday = checkDigitBirthday; + return this; + } + + /** + * Check digit of DO’s date of birth + * + * @return checkDigitBirthday + */ + @javax.annotation.Nonnull + public BigDecimal getCheckDigitBirthday() { + return checkDigitBirthday; + } + + public void setCheckDigitBirthday(@javax.annotation.Nonnull BigDecimal checkDigitBirthday) { + this.checkDigitBirthday = checkDigitBirthday; + } + + public RfidDG1 sex(@javax.annotation.Nonnull String sex) { + this.sex = sex; + return this; + } + + /** + * DO’s sex + * + * @return sex + */ + @javax.annotation.Nonnull + public String getSex() { + return sex; + } + + public void setSex(@javax.annotation.Nonnull String sex) { + this.sex = sex; + } + + public RfidDG1 expiryDate(@javax.annotation.Nonnull String expiryDate) { + this.expiryDate = expiryDate; + return this; + } + + /** + * Term of validity of the document + * + * @return expiryDate + */ + @javax.annotation.Nonnull + public String getExpiryDate() { + return expiryDate; + } + + public void setExpiryDate(@javax.annotation.Nonnull String expiryDate) { + this.expiryDate = expiryDate; + } + + public RfidDG1 checkDigitExpiryDate(@javax.annotation.Nonnull BigDecimal checkDigitExpiryDate) { + this.checkDigitExpiryDate = checkDigitExpiryDate; + return this; + } + + /** + * Check digit of term of validity of the document + * + * @return checkDigitExpiryDate + */ + @javax.annotation.Nonnull + public BigDecimal getCheckDigitExpiryDate() { + return checkDigitExpiryDate; + } + + public void setCheckDigitExpiryDate(@javax.annotation.Nonnull BigDecimal checkDigitExpiryDate) { + this.checkDigitExpiryDate = checkDigitExpiryDate; + } + + public RfidDG1 optionalData(@javax.annotation.Nonnull String optionalData) { + this.optionalData = optionalData; + return this; + } + + /** + * DO’s personal number or other additional data + * + * @return optionalData + */ + @javax.annotation.Nonnull + public String getOptionalData() { + return optionalData; + } + + public void setOptionalData(@javax.annotation.Nonnull String optionalData) { + this.optionalData = optionalData; + } + + public RfidDG1 checkDigitOptionalData( + @javax.annotation.Nonnull BigDecimal checkDigitOptionalData) { + this.checkDigitOptionalData = checkDigitOptionalData; + return this; + } + + /** + * Check digit of additional data + * + * @return checkDigitOptionalData + */ + @javax.annotation.Nonnull + public BigDecimal getCheckDigitOptionalData() { + return checkDigitOptionalData; + } + + public void setCheckDigitOptionalData( + @javax.annotation.Nonnull BigDecimal checkDigitOptionalData) { + this.checkDigitOptionalData = checkDigitOptionalData; + } + + public RfidDG1 checkDigitComposite(@javax.annotation.Nonnull BigDecimal checkDigitComposite) { + this.checkDigitComposite = checkDigitComposite; + return this; + } + + /** + * General check digit + * + * @return checkDigitComposite + */ + @javax.annotation.Nonnull + public BigDecimal getCheckDigitComposite() { + return checkDigitComposite; + } + + public void setCheckDigitComposite(@javax.annotation.Nonnull BigDecimal checkDigitComposite) { + this.checkDigitComposite = checkDigitComposite; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidDG1 rfidDG1 = (RfidDG1) o; + return Objects.equals(this.type, rfidDG1.type) + && Objects.equals(this.documentID, rfidDG1.documentID) + && Objects.equals(this.documentType, rfidDG1.documentType) + && Objects.equals(this.state, rfidDG1.state) + && Objects.equals(this.holder, rfidDG1.holder) + && Objects.equals(this.documentNumber, rfidDG1.documentNumber) + && Objects.equals(this.checkDigitDocumentNumber, rfidDG1.checkDigitDocumentNumber) + && Objects.equals(this.nationality, rfidDG1.nationality) + && Objects.equals(this.birthday, rfidDG1.birthday) + && Objects.equals(this.checkDigitBirthday, rfidDG1.checkDigitBirthday) + && Objects.equals(this.sex, rfidDG1.sex) + && Objects.equals(this.expiryDate, rfidDG1.expiryDate) + && Objects.equals(this.checkDigitExpiryDate, rfidDG1.checkDigitExpiryDate) + && Objects.equals(this.optionalData, rfidDG1.optionalData) + && Objects.equals(this.checkDigitOptionalData, rfidDG1.checkDigitOptionalData) + && Objects.equals(this.checkDigitComposite, rfidDG1.checkDigitComposite); + } + + @Override + public int hashCode() { + return Objects.hash( + type, + documentID, + documentType, + state, + holder, + documentNumber, + checkDigitDocumentNumber, + nationality, + birthday, + checkDigitBirthday, + sex, + expiryDate, + checkDigitExpiryDate, + optionalData, + checkDigitOptionalData, + checkDigitComposite); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidDG1 {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" documentID: ").append(toIndentedString(documentID)).append("\n"); + sb.append(" documentType: ").append(toIndentedString(documentType)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" holder: ").append(toIndentedString(holder)).append("\n"); + sb.append(" documentNumber: ").append(toIndentedString(documentNumber)).append("\n"); + sb.append(" checkDigitDocumentNumber: ") + .append(toIndentedString(checkDigitDocumentNumber)) + .append("\n"); + sb.append(" nationality: ").append(toIndentedString(nationality)).append("\n"); + sb.append(" birthday: ").append(toIndentedString(birthday)).append("\n"); + sb.append(" checkDigitBirthday: ").append(toIndentedString(checkDigitBirthday)).append("\n"); + sb.append(" sex: ").append(toIndentedString(sex)).append("\n"); + sb.append(" expiryDate: ").append(toIndentedString(expiryDate)).append("\n"); + sb.append(" checkDigitExpiryDate: ") + .append(toIndentedString(checkDigitExpiryDate)) + .append("\n"); + sb.append(" optionalData: ").append(toIndentedString(optionalData)).append("\n"); + sb.append(" checkDigitOptionalData: ") + .append(toIndentedString(checkDigitOptionalData)) + .append("\n"); + sb.append(" checkDigitComposite: ") + .append(toIndentedString(checkDigitComposite)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("DocumentID"); + openapiFields.add("DocumentType"); + openapiFields.add("State"); + openapiFields.add("Holder"); + openapiFields.add("DocumentNumber"); + openapiFields.add("CheckDigitDocumentNumber"); + openapiFields.add("Nationality"); + openapiFields.add("Birthday"); + openapiFields.add("CheckDigitBirthday"); + openapiFields.add("Sex"); + openapiFields.add("ExpiryDate"); + openapiFields.add("CheckDigitExpiryDate"); + openapiFields.add("OptionalData"); + openapiFields.add("CheckDigitOptionalData"); + openapiFields.add("CheckDigitComposite"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Type"); + openapiRequiredFields.add("DocumentID"); + openapiRequiredFields.add("DocumentType"); + openapiRequiredFields.add("State"); + openapiRequiredFields.add("Holder"); + openapiRequiredFields.add("DocumentNumber"); + openapiRequiredFields.add("CheckDigitDocumentNumber"); + openapiRequiredFields.add("Nationality"); + openapiRequiredFields.add("Birthday"); + openapiRequiredFields.add("CheckDigitBirthday"); + openapiRequiredFields.add("Sex"); + openapiRequiredFields.add("ExpiryDate"); + openapiRequiredFields.add("CheckDigitExpiryDate"); + openapiRequiredFields.add("OptionalData"); + openapiRequiredFields.add("CheckDigitOptionalData"); + openapiRequiredFields.add("CheckDigitComposite"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidDG1 + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidDG1.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidDG1 is not found in the empty JSON string", + RfidDG1.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidDG1.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidDG1` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidDG1.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `Type` + RfidDataGroupTypeTag.validateJsonElement(jsonObj.get("Type")); + // validate the required field `DocumentID` + DocumentFormat.validateJsonElement(jsonObj.get("DocumentID")); + if (!jsonObj.get("DocumentType").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `DocumentType` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("DocumentType").toString())); + } + if (!jsonObj.get("State").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `State` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("State").toString())); + } + if (!jsonObj.get("Holder").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Holder` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Holder").toString())); + } + if (!jsonObj.get("DocumentNumber").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `DocumentNumber` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("DocumentNumber").toString())); + } + if (!jsonObj.get("Nationality").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Nationality` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Nationality").toString())); + } + if (!jsonObj.get("Birthday").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Birthday` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Birthday").toString())); + } + if (!jsonObj.get("Sex").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Sex` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Sex").toString())); + } + if (!jsonObj.get("ExpiryDate").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ExpiryDate` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("ExpiryDate").toString())); + } + if (!jsonObj.get("OptionalData").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `OptionalData` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("OptionalData").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidDG1.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidDG1' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidDG1.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidDG1 value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidDG1 read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidDG1 given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidDG1 + * @throws IOException if the JSON string is invalid with respect to RfidDG1 + */ + public static RfidDG1 fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidDG1.class); + } + + /** + * Convert an instance of RfidDG1 to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java new file mode 100644 index 00000000..79e4363a --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java @@ -0,0 +1,573 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure is used to describe the contents of a single file of the LDS of electronic document and + * the analysis of its contents within the context of the communication session with electronic + * document + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidDataFile { + public static final String SERIALIZED_NAME_FILE_I_D = "FileID"; + + @SerializedName(SERIALIZED_NAME_FILE_I_D) + @javax.annotation.Nullable + private String fileID; + + public static final String SERIALIZED_NAME_TYPE = "Type"; + + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private RfidDataFileType type; + + public static final String SERIALIZED_NAME_FILE_DATA = "FileData"; + + @SerializedName(SERIALIZED_NAME_FILE_DATA) + @javax.annotation.Nullable + private TrfFtBytes fileData; + + public static final String SERIALIZED_NAME_READING_STATUS = "ReadingStatus"; + + @SerializedName(SERIALIZED_NAME_READING_STATUS) + @javax.annotation.Nonnull + private RFIDErrorCodes readingStatus; + + public static final String SERIALIZED_NAME_READING_TIME = "ReadingTime"; + + @SerializedName(SERIALIZED_NAME_READING_TIME) + @javax.annotation.Nonnull + private BigDecimal readingTime; + + public static final String SERIALIZED_NAME_PA_STATUS = "PA_Status"; + + @SerializedName(SERIALIZED_NAME_PA_STATUS) + @javax.annotation.Nonnull + private RFIDErrorCodes paStatus; + + public static final String SERIALIZED_NAME_NOTIFICATIONS = "Notifications"; + + @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) + @javax.annotation.Nonnull + private List notifications; + + public static final String SERIALIZED_NAME_DOC_FIELDS_TEXT = "DocFields_Text"; + + @SerializedName(SERIALIZED_NAME_DOC_FIELDS_TEXT) + @javax.annotation.Nonnull + private List docFieldsText; + + public static final String SERIALIZED_NAME_DOC_FIELDS_GRAPHICS = "DocFields_Graphics"; + + @SerializedName(SERIALIZED_NAME_DOC_FIELDS_GRAPHICS) + @javax.annotation.Nonnull + private List docFieldsGraphics; + + public static final String SERIALIZED_NAME_DOC_FIELDS_ORIGINALS = "DocFields_Originals"; + + @SerializedName(SERIALIZED_NAME_DOC_FIELDS_ORIGINALS) + @javax.annotation.Nonnull + private List docFieldsOriginals; + + public RfidDataFile() {} + + public RfidDataFile fileID(@javax.annotation.Nullable String fileID) { + this.fileID = fileID; + return this; + } + + /** + * File identifier. Each byte of FileID represented by its hexadecimal value. The individual bytes + * are separated by spaces (e.g. 01 1E) + * + * @return fileID + */ + @javax.annotation.Nullable + public String getFileID() { + return fileID; + } + + public void setFileID(@javax.annotation.Nullable String fileID) { + this.fileID = fileID; + } + + public RfidDataFile type(@javax.annotation.Nonnull RfidDataFileType type) { + this.type = type; + return this; + } + + /** + * Get type + * + * @return type + */ + @javax.annotation.Nonnull + public RfidDataFileType getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull RfidDataFileType type) { + this.type = type; + } + + public RfidDataFile fileData(@javax.annotation.Nullable TrfFtBytes fileData) { + this.fileData = fileData; + return this; + } + + /** + * Get fileData + * + * @return fileData + */ + @javax.annotation.Nullable + public TrfFtBytes getFileData() { + return fileData; + } + + public void setFileData(@javax.annotation.Nullable TrfFtBytes fileData) { + this.fileData = fileData; + } + + public RfidDataFile readingStatus(@javax.annotation.Nonnull RFIDErrorCodes readingStatus) { + this.readingStatus = readingStatus; + return this; + } + + /** + * Get readingStatus + * + * @return readingStatus + */ + @javax.annotation.Nonnull + public RFIDErrorCodes getReadingStatus() { + return readingStatus; + } + + public void setReadingStatus(@javax.annotation.Nonnull RFIDErrorCodes readingStatus) { + this.readingStatus = readingStatus; + } + + public RfidDataFile readingTime(@javax.annotation.Nonnull BigDecimal readingTime) { + this.readingTime = readingTime; + return this; + } + + /** + * Time of reading, milliseconds + * + * @return readingTime + */ + @javax.annotation.Nonnull + public BigDecimal getReadingTime() { + return readingTime; + } + + public void setReadingTime(@javax.annotation.Nonnull BigDecimal readingTime) { + this.readingTime = readingTime; + } + + public RfidDataFile paStatus(@javax.annotation.Nonnull RFIDErrorCodes paStatus) { + this.paStatus = paStatus; + return this; + } + + /** + * Get paStatus + * + * @return paStatus + */ + @javax.annotation.Nonnull + public RFIDErrorCodes getPaStatus() { + return paStatus; + } + + public void setPaStatus(@javax.annotation.Nonnull RFIDErrorCodes paStatus) { + this.paStatus = paStatus; + } + + public RfidDataFile notifications( + @javax.annotation.Nonnull List notifications) { + this.notifications = notifications; + return this; + } + + public RfidDataFile addNotificationsItem(ParsingErrorCodes notificationsItem) { + if (this.notifications == null) { + this.notifications = new ArrayList<>(); + } + this.notifications.add(notificationsItem); + return this; + } + + /** + * List of remarks arisen when reading data from the memory of the chip and analysing their + * ASN.1-structure. + * + * @return notifications + */ + @javax.annotation.Nonnull + public List getNotifications() { + return notifications; + } + + public void setNotifications(@javax.annotation.Nonnull List notifications) { + this.notifications = notifications; + } + + public RfidDataFile docFieldsText(@javax.annotation.Nonnull List docFieldsText) { + this.docFieldsText = docFieldsText; + return this; + } + + public RfidDataFile addDocFieldsTextItem(TextFieldType docFieldsTextItem) { + if (this.docFieldsText == null) { + this.docFieldsText = new ArrayList<>(); + } + this.docFieldsText.add(docFieldsTextItem); + return this; + } + + /** + * List of document text fields formed on the basis of the file contents + * + * @return docFieldsText + */ + @javax.annotation.Nonnull + public List getDocFieldsText() { + return docFieldsText; + } + + public void setDocFieldsText(@javax.annotation.Nonnull List docFieldsText) { + this.docFieldsText = docFieldsText; + } + + public RfidDataFile docFieldsGraphics( + @javax.annotation.Nonnull List docFieldsGraphics) { + this.docFieldsGraphics = docFieldsGraphics; + return this; + } + + public RfidDataFile addDocFieldsGraphicsItem(GraphicFieldType docFieldsGraphicsItem) { + if (this.docFieldsGraphics == null) { + this.docFieldsGraphics = new ArrayList<>(); + } + this.docFieldsGraphics.add(docFieldsGraphicsItem); + return this; + } + + /** + * List of document graphic fields formed on the basis of the file contents + * + * @return docFieldsGraphics + */ + @javax.annotation.Nonnull + public List getDocFieldsGraphics() { + return docFieldsGraphics; + } + + public void setDocFieldsGraphics( + @javax.annotation.Nonnull List docFieldsGraphics) { + this.docFieldsGraphics = docFieldsGraphics; + } + + public RfidDataFile docFieldsOriginals( + @javax.annotation.Nonnull List docFieldsOriginals) { + this.docFieldsOriginals = docFieldsOriginals; + return this; + } + + public RfidDataFile addDocFieldsOriginalsItem(GraphicFieldType docFieldsOriginalsItem) { + if (this.docFieldsOriginals == null) { + this.docFieldsOriginals = new ArrayList<>(); + } + this.docFieldsOriginals.add(docFieldsOriginalsItem); + return this; + } + + /** + * List of the original binary representation of graphic document fields formed on the basis of + * the file contents + * + * @return docFieldsOriginals + */ + @javax.annotation.Nonnull + public List getDocFieldsOriginals() { + return docFieldsOriginals; + } + + public void setDocFieldsOriginals( + @javax.annotation.Nonnull List docFieldsOriginals) { + this.docFieldsOriginals = docFieldsOriginals; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidDataFile rfidDataFile = (RfidDataFile) o; + return Objects.equals(this.fileID, rfidDataFile.fileID) + && Objects.equals(this.type, rfidDataFile.type) + && Objects.equals(this.fileData, rfidDataFile.fileData) + && Objects.equals(this.readingStatus, rfidDataFile.readingStatus) + && Objects.equals(this.readingTime, rfidDataFile.readingTime) + && Objects.equals(this.paStatus, rfidDataFile.paStatus) + && Objects.equals(this.notifications, rfidDataFile.notifications) + && Objects.equals(this.docFieldsText, rfidDataFile.docFieldsText) + && Objects.equals(this.docFieldsGraphics, rfidDataFile.docFieldsGraphics) + && Objects.equals(this.docFieldsOriginals, rfidDataFile.docFieldsOriginals); + } + + @Override + public int hashCode() { + return Objects.hash( + fileID, + type, + fileData, + readingStatus, + readingTime, + paStatus, + notifications, + docFieldsText, + docFieldsGraphics, + docFieldsOriginals); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidDataFile {\n"); + sb.append(" fileID: ").append(toIndentedString(fileID)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" fileData: ").append(toIndentedString(fileData)).append("\n"); + sb.append(" readingStatus: ").append(toIndentedString(readingStatus)).append("\n"); + sb.append(" readingTime: ").append(toIndentedString(readingTime)).append("\n"); + sb.append(" paStatus: ").append(toIndentedString(paStatus)).append("\n"); + sb.append(" notifications: ").append(toIndentedString(notifications)).append("\n"); + sb.append(" docFieldsText: ").append(toIndentedString(docFieldsText)).append("\n"); + sb.append(" docFieldsGraphics: ").append(toIndentedString(docFieldsGraphics)).append("\n"); + sb.append(" docFieldsOriginals: ").append(toIndentedString(docFieldsOriginals)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FileID"); + openapiFields.add("Type"); + openapiFields.add("FileData"); + openapiFields.add("ReadingStatus"); + openapiFields.add("ReadingTime"); + openapiFields.add("PA_Status"); + openapiFields.add("Notifications"); + openapiFields.add("DocFields_Text"); + openapiFields.add("DocFields_Graphics"); + openapiFields.add("DocFields_Originals"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Type"); + openapiRequiredFields.add("ReadingStatus"); + openapiRequiredFields.add("ReadingTime"); + openapiRequiredFields.add("PA_Status"); + openapiRequiredFields.add("Notifications"); + openapiRequiredFields.add("DocFields_Text"); + openapiRequiredFields.add("DocFields_Graphics"); + openapiRequiredFields.add("DocFields_Originals"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidDataFile + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidDataFile.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidDataFile is not found in the empty JSON string", + RfidDataFile.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidDataFile.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidDataFile` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidDataFile.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("FileID") != null && !jsonObj.get("FileID").isJsonNull()) + && !jsonObj.get("FileID").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `FileID` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("FileID").toString())); + } + // validate the required field `Type` + RfidDataFileType.validateJsonElement(jsonObj.get("Type")); + // validate the optional field `FileData` + if (jsonObj.get("FileData") != null && !jsonObj.get("FileData").isJsonNull()) { + TrfFtBytes.validateJsonElement(jsonObj.get("FileData")); + } + // validate the required field `ReadingStatus` + RFIDErrorCodes.validateJsonElement(jsonObj.get("ReadingStatus")); + // validate the required field `PA_Status` + RFIDErrorCodes.validateJsonElement(jsonObj.get("PA_Status")); + // ensure the required json array is present + if (jsonObj.get("Notifications") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("Notifications").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Notifications` to be an array in the JSON string but got `%s`", + jsonObj.get("Notifications").toString())); + } + // ensure the required json array is present + if (jsonObj.get("DocFields_Text") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("DocFields_Text").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `DocFields_Text` to be an array in the JSON string but got `%s`", + jsonObj.get("DocFields_Text").toString())); + } + // ensure the required json array is present + if (jsonObj.get("DocFields_Graphics") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("DocFields_Graphics").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `DocFields_Graphics` to be an array in the JSON string but got `%s`", + jsonObj.get("DocFields_Graphics").toString())); + } + // ensure the required json array is present + if (jsonObj.get("DocFields_Originals") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("DocFields_Originals").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `DocFields_Originals` to be an array in the JSON string but got `%s`", + jsonObj.get("DocFields_Originals").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidDataFile.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidDataFile' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidDataFile.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidDataFile value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidDataFile read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidDataFile given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidDataFile + * @throws IOException if the JSON string is invalid with respect to RfidDataFile + */ + public static RfidDataFile fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidDataFile.class); + } + + /** + * Convert an instance of RfidDataFile to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFileType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFileType.java new file mode 100644 index 00000000..e4c51d97 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFileType.java @@ -0,0 +1,254 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains a set of constants that define the file type (or logical belonging of the + * data object) within the context of the communication session with electronic document + */ +@JsonAdapter(RfidDataFileType.Adapter.class) +public enum RfidDataFileType { + UNSPECIFIED(0), + + PASSPORT_DG1(1), + + PASSPORT_DG2(2), + + PASSPORT_DG3(3), + + PASSPORT_DG4(4), + + PASSPORT_DG5(5), + + PASSPORT_DG6(6), + + PASSPORT_DG7(7), + + PASSPORT_DG8(8), + + PASSPORT_DG9(9), + + PASSPORT_DG10(10), + + PASSPORT_DG11(11), + + PASSPORT_DG12(12), + + PASSPORT_DG13(13), + + PASSPORT_DG14(14), + + PASSPORT_DG15(15), + + PASSPORT_DG16(16), + + PASSPORT_DG17(17), + + PASSPORT_DG18(18), + + PASSPORT_DG19(19), + + PASSPORT_DG20(20), + + PASSPORT_SOD(21), + + PASSPORT_CVCA(22), + + PASSPORT_COM(23), + + DTC_DG17(57), + + DTC_DG18(58), + + DTC_DG22(62), + + DTC_DG23(63), + + DTC_DG24(64), + + ID_DG1(101), + + ID_DG2(102), + + ID_DG3(103), + + ID_DG4(104), + + ID_DG5(105), + + ID_DG6(106), + + ID_DG7(107), + + ID_DG8(108), + + ID_DG9(109), + + ID_DG10(110), + + ID_DG11(111), + + ID_DG12(112), + + ID_DG13(113), + + ID_DG14(114), + + ID_DG15(115), + + ID_DG16(116), + + ID_DG17(117), + + ID_DG18(118), + + ID_DG19(119), + + ID_DG20(120), + + ID_DG21(121), + + DL_COM(150), + + DL_DG1(151), + + DL_DG2(152), + + DL_DG3(153), + + DL_DG4(154), + + DL_DG5(155), + + DL_DG6(156), + + DL_DG7(157), + + DL_DG8(158), + + DL_DG9(159), + + DL_DG10(160), + + DL_DG11(161), + + DL_DG12(162), + + DL_DG13(163), + + DL_DG14(164), + + DL_SOD(165), + + DL_CE(166), + + DL_CVCA(167), + + PACE_CARD_ACCESS(200), + + PACE_CARD_SECURITY(201), + + PACE_CHIP_SECURITY(202), + + MIFARE_DATA(300), + + MIFARE_VALIDITY(301), + + AUTHENTICITY_V2(302), + + ATR(400), + + _E_SIGN_PK(500), + + _E_SIGN_SIGNED_DATA(501), + + CERTIFICATE(600), + + MASTER_LIST(601), + + DEFECT_LIST(602), + + BLACK_LIST(603), + + APP_DIRECTORY(700), + + SESSION(701), + + LOG_DATA(702), + + CHIP_PROPERTIES(703), + + POST_CA_RESPONSE(710), + + POST_CA_PUBLIC_KEY(711), + + POST_CA_INFO(712), + + POST_CA_D_PARAMS(713), + + POST_CA_CHECK_PK(714), + + POST_CA_CHECK_SK(715), + + USER_DEFINED(1000); + + private Integer value; + + RfidDataFileType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidDataFileType fromValue(Integer value) { + for (RfidDataFileType b : RfidDataFileType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RfidDataFileType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidDataFileType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidDataFileType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidDataFileType.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java new file mode 100644 index 00000000..c73c5eed --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java @@ -0,0 +1,237 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration representing RFID Data Group Types. Constants with prefix correspond to the + * informational data groups of ePassport application, with prefix EID_ – those of eID application, + * with prefix EDL_ – eDL application + */ +@JsonAdapter(RfidDataGroupTypeTag.Adapter.class) +public enum RfidDataGroupTypeTag { + + /** Common Data Group Type */ + COM(96), + + /** Data Group 1 */ + DG1(97), + + /** Data Group 2 */ + DG2(117), + + /** Data Group 3 */ + DG3(99), + + /** Data Group 4 */ + DG4(118), + + /** Data Group 5 */ + DG5(101), + + /** Data Group 6 */ + DG6(102), + + /** Data Group 7 */ + DG7(103), + + /** Data Group 8 */ + DG8(104), + + /** Data Group 9 */ + DG9(105), + + /** Data Group 10 */ + DG10(106), + + /** Data Group 11 */ + DG11(107), + + /** Data Group 12 */ + DG12(108), + + /** Data Group 13 */ + DG13(109), + + /** Data Group 14 */ + DG14(110), + + /** Data Group 15 */ + DG15(111), + + /** Data Group 16 */ + DG16(112), + + /** Start of Data */ + SOD(119), + + /** Extended Interoperable Data, Data Group 1 */ + EID_DG1(97), + + /** Extended Interoperable Data, Data Group 2 */ + EID_DG2(98), + + /** Extended Interoperable Data, Data Group 3 */ + EID_DG3(99), + + /** Extended Interoperable Data, Data Group 4 */ + EID_DG4(100), + + /** Extended Interoperable Data, Data Group 5 */ + EID_DG5(101), + + /** Extended Interoperable Data, Data Group 6 */ + EID_DG6(102), + + /** Extended Interoperable Data, Data Group 7 */ + EID_DG7(103), + + /** Extended Interoperable Data, Data Group 8 */ + EID_DG8(104), + + /** Extended Interoperable Data, Data Group 9 */ + EID_DG9(105), + + /** Extended Interoperable Data, Data Group 10 */ + EID_DG10(106), + + /** Extended Interoperable Data, Data Group 11 */ + EID_DG11(107), + + /** Extended Interoperable Data, Data Group 12 */ + EID_DG12(108), + + /** Extended Interoperable Data, Data Group 13 */ + EID_DG13(109), + + /** Extended Interoperable Data, Data Group 14 */ + EID_DG14(110), + + /** Extended Interoperable Data, Data Group 15 */ + EID_DG15(111), + + /** Extended Interoperable Data, Data Group 16 */ + EID_DG16(112), + + /** Extended Interoperable Data, Data Group 17 */ + EID_DG17(113), + + /** Extended Interoperable Data, Data Group 18 */ + EID_DG18(114), + + /** Extended Interoperable Data, Data Group 19 */ + EID_DG19(115), + + /** Extended Interoperable Data, Data Group 20 */ + EID_DG20(116), + + /** Extended Interoperable Data, Data Group 21 */ + EID_DG21(117), + + /** Extended Length Data, Common Data Group Type */ + EDL_COM(96), + + /** Extended Length Data, Start of Data */ + EDL_SOD(119), + + /** Extended Length Data, Certificate Holder Authorization */ + EDL_CE(119), + + /** Extended Length Data, Data Group 1 */ + EDL_DG1(97), + + /** Extended Length Data, Data Group 2 */ + EDL_DG2(107), + + /** Extended Length Data, Data Group 3 */ + EDL_DG3(108), + + /** Extended Length Data, Data Group 4 */ + EDL_DG4(101), + + /** Extended Length Data, Data Group 5 */ + EDL_DG5(103), + + /** Extended Length Data, Data Group 6 */ + EDL_DG6(117), + + /** Extended Length Data, Data Group 7 */ + EDL_DG7(99), + + /** Extended Length Data, Data Group 8 */ + EDL_DG8(118), + + /** Extended Length Data, Data Group 9 */ + EDL_DG9(112), + + /** Extended Length Data, Data Group 11 */ + EDL_DG11(109), + + /** Extended Length Data, Data Group 12 */ + EDL_DG12(113), + + /** Extended Length Data, Data Group 13 */ + EDL_DG14(111), + + /** Extended Length Data, Data Group 14 */ + NUMBER_1103(110); + + private Integer value; + + RfidDataGroupTypeTag(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidDataGroupTypeTag fromValue(Integer value) { + for (RfidDataGroupTypeTag b : RfidDataGroupTypeTag.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RfidDataGroupTypeTag enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidDataGroupTypeTag read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidDataGroupTypeTag.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidDataGroupTypeTag.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDistinguishedName.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDistinguishedName.java new file mode 100644 index 00000000..520a1819 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDistinguishedName.java @@ -0,0 +1,292 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** Contents of the identifier in binary form. Base64 encoded. */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidDistinguishedName { + public static final String SERIALIZED_NAME_DATA = "Data"; + + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nonnull + private String data; + + public static final String SERIALIZED_NAME_FRIENDLY_NAME = "FriendlyName"; + + @SerializedName(SERIALIZED_NAME_FRIENDLY_NAME) + @javax.annotation.Nonnull + private TrfFtString friendlyName; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "Attributes"; + + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + @javax.annotation.Nonnull + private List attributes; + + public RfidDistinguishedName() {} + + public RfidDistinguishedName data(@javax.annotation.Nonnull String data) { + this.data = data; + return this; + } + + /** + * Contents of the identifier in binary form. Base64 encoded. + * + * @return data + */ + @javax.annotation.Nonnull + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nonnull String data) { + this.data = data; + } + + public RfidDistinguishedName friendlyName(@javax.annotation.Nonnull TrfFtString friendlyName) { + this.friendlyName = friendlyName; + return this; + } + + /** + * Get friendlyName + * + * @return friendlyName + */ + @javax.annotation.Nonnull + public TrfFtString getFriendlyName() { + return friendlyName; + } + + public void setFriendlyName(@javax.annotation.Nonnull TrfFtString friendlyName) { + this.friendlyName = friendlyName; + } + + public RfidDistinguishedName attributes( + @javax.annotation.Nonnull List attributes) { + this.attributes = attributes; + return this; + } + + public RfidDistinguishedName addAttributesItem(RfidAttributeName attributesItem) { + if (this.attributes == null) { + this.attributes = new ArrayList<>(); + } + this.attributes.add(attributesItem); + return this; + } + + /** + * List of individual attributes contained in the identifier + * + * @return attributes + */ + @javax.annotation.Nonnull + public List getAttributes() { + return attributes; + } + + public void setAttributes(@javax.annotation.Nonnull List attributes) { + this.attributes = attributes; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidDistinguishedName rfidDistinguishedName = (RfidDistinguishedName) o; + return Objects.equals(this.data, rfidDistinguishedName.data) + && Objects.equals(this.friendlyName, rfidDistinguishedName.friendlyName) + && Objects.equals(this.attributes, rfidDistinguishedName.attributes); + } + + @Override + public int hashCode() { + return Objects.hash(data, friendlyName, attributes); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidDistinguishedName {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" friendlyName: ").append(toIndentedString(friendlyName)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("FriendlyName"); + openapiFields.add("Attributes"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Data"); + openapiRequiredFields.add("FriendlyName"); + openapiRequiredFields.add("Attributes"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidDistinguishedName + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidDistinguishedName.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidDistinguishedName is not found in the empty JSON string", + RfidDistinguishedName.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidDistinguishedName.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidDistinguishedName` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidDistinguishedName.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Data` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Data").toString())); + } + // validate the required field `FriendlyName` + TrfFtString.validateJsonElement(jsonObj.get("FriendlyName")); + // ensure the json data is an array + if (!jsonObj.get("Attributes").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Attributes` to be an array in the JSON string but got `%s`", + jsonObj.get("Attributes").toString())); + } + + JsonArray jsonArrayattributes = jsonObj.getAsJsonArray("Attributes"); + // validate the required field `Attributes` (array) + for (int i = 0; i < jsonArrayattributes.size(); i++) { + RfidAttributeName.validateJsonElement(jsonArrayattributes.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidDistinguishedName.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidDistinguishedName' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidDistinguishedName.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidDistinguishedName value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidDistinguishedName read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidDistinguishedName given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidDistinguishedName + * @throws IOException if the JSON string is invalid with respect to RfidDistinguishedName + */ + public static RfidDistinguishedName fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidDistinguishedName.class); + } + + /** + * Convert an instance of RfidDistinguishedName to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidLocation.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidLocation.java old mode 100755 new mode 100644 index aceb5095..6121ff58 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidLocation.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidLocation.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,14 +12,69 @@ package com.regula.documentreader.webclient.model; -public class RfidLocation { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Determines the presence and location of an RFID chip in a document. 0 - no rfid chip; 1 - chip is + * located in the document data page; 2 - chip is located in the back page or inlay of the document + */ +@JsonAdapter(RfidLocation.Adapter.class) +public enum RfidLocation { /** There is no RFID chip in the document */ - public static final int NONE = 0; + NONE(0), /** The RFID chip is located in the document data page */ - public static final int MAIN_PAGE = 1; + MAIN_PAGE(1), /** The RFID chip is located in the back page or inlay of the document */ - public static final int BACK_PAGE = 2; + BACK_PAGE(2); + + private Integer value; + + RfidLocation(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidLocation fromValue(Integer value) { + for (RfidLocation b : RfidLocation.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RfidLocation enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidLocation read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidLocation.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidLocation.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidOrigin.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidOrigin.java old mode 100755 new mode 100644 index 738b982e..93b6983e --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidOrigin.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidOrigin.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,32 +12,54 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Location of data in RFID chip */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class RfidOrigin { public static final String SERIALIZED_NAME_DG = "dg"; @SerializedName(SERIALIZED_NAME_DG) + @javax.annotation.Nonnull private Integer dg; public static final String SERIALIZED_NAME_DG_TAG = "dgTag"; @SerializedName(SERIALIZED_NAME_DG_TAG) + @javax.annotation.Nonnull private Integer dgTag; public static final String SERIALIZED_NAME_TAG_ENTRY = "tagEntry"; @SerializedName(SERIALIZED_NAME_TAG_ENTRY) + @javax.annotation.Nonnull private Integer tagEntry; public static final String SERIALIZED_NAME_ENTRY_VIEW = "entryView"; @SerializedName(SERIALIZED_NAME_ENTRY_VIEW) + @javax.annotation.Nonnull private Integer entryView; - public RfidOrigin withDg(Integer dg) { + public RfidOrigin() {} + + public RfidOrigin dg(@javax.annotation.Nonnull Integer dg) { this.dg = dg; return this; } @@ -47,15 +69,16 @@ public RfidOrigin withDg(Integer dg) { * * @return dg */ + @javax.annotation.Nonnull public Integer getDg() { return dg; } - public void setDg(Integer dg) { + public void setDg(@javax.annotation.Nonnull Integer dg) { this.dg = dg; } - public RfidOrigin withDgTag(Integer dgTag) { + public RfidOrigin dgTag(@javax.annotation.Nonnull Integer dgTag) { this.dgTag = dgTag; return this; } @@ -66,16 +89,16 @@ public RfidOrigin withDgTag(Integer dgTag) { * * @return dgTag */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getDgTag() { return dgTag; } - public void setDgTag(Integer dgTag) { + public void setDgTag(@javax.annotation.Nonnull Integer dgTag) { this.dgTag = dgTag; } - public RfidOrigin withTagEntry(Integer tagEntry) { + public RfidOrigin tagEntry(@javax.annotation.Nonnull Integer tagEntry) { this.tagEntry = tagEntry; return this; } @@ -85,16 +108,16 @@ public RfidOrigin withTagEntry(Integer tagEntry) { * * @return tagEntry */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getTagEntry() { return tagEntry; } - public void setTagEntry(Integer tagEntry) { + public void setTagEntry(@javax.annotation.Nonnull Integer tagEntry) { this.tagEntry = tagEntry; } - public RfidOrigin withEntryView(Integer entryView) { + public RfidOrigin entryView(@javax.annotation.Nonnull Integer entryView) { this.entryView = entryView; return this; } @@ -104,17 +127,17 @@ public RfidOrigin withEntryView(Integer entryView) { * * @return entryView */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getEntryView() { return entryView; } - public void setEntryView(Integer entryView) { + public void setEntryView(@javax.annotation.Nonnull Integer entryView) { this.entryView = entryView; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -148,10 +171,118 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("dg"); + openapiFields.add("dgTag"); + openapiFields.add("tagEntry"); + openapiFields.add("entryView"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("dg"); + openapiRequiredFields.add("dgTag"); + openapiRequiredFields.add("tagEntry"); + openapiRequiredFields.add("entryView"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidOrigin + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidOrigin.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidOrigin is not found in the empty JSON string", + RfidOrigin.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidOrigin.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidOrigin` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidOrigin.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidOrigin.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidOrigin' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidOrigin.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidOrigin value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidOrigin read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidOrigin given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidOrigin + * @throws IOException if the JSON string is invalid with respect to RfidOrigin + */ + public static RfidOrigin fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidOrigin.class); + } + + /** + * Convert an instance of RfidOrigin to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPasswordType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPasswordType.java new file mode 100644 index 00000000..66deddbc --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPasswordType.java @@ -0,0 +1,92 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains a set of constants specifying the rate of data exchange between the reader + * and the RFID-chip + */ +@JsonAdapter(RfidPasswordType.Adapter.class) +public enum RfidPasswordType { + + /** Unknown type */ + UNKNOWN(0), + + /** MRZ */ + MRZ(1), + + /** CAN */ + CAN(2), + + /** PIN */ + PIN(3), + + /** PUK */ + PUK(4), + + /** eSign-PIN */ + PIN_E_SIGN(5), + + /** Scanning Area Identifier (for eDL application) */ + SAI(6); + + private Integer value; + + RfidPasswordType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidPasswordType fromValue(Integer value) { + for (RfidPasswordType b : RfidPasswordType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RfidPasswordType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidPasswordType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidPasswordType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidPasswordType.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPkiExtension.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPkiExtension.java new file mode 100644 index 00000000..75cc13ee --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPkiExtension.java @@ -0,0 +1,245 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Extension identifier (OID, ASCII string); Contents of the identifier in the format S1 (S2), where + * S1 – attribute name, S2 – identifier (OID string) + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidPkiExtension { + public static final String SERIALIZED_NAME_TYPE = "Type"; + + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private String type; + + public static final String SERIALIZED_NAME_DATA = "Data"; + + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nonnull + private String data; + + public RfidPkiExtension() {} + + public RfidPkiExtension type(@javax.annotation.Nonnull String type) { + this.type = type; + return this; + } + + /** + * Extension identifier (OID, ASCII string); Contents of the identifier in the format S1 (S2), + * where S1 – attribute name, S2 – identifier (OID string) + * + * @return type + */ + @javax.annotation.Nonnull + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull String type) { + this.type = type; + } + + public RfidPkiExtension data(@javax.annotation.Nonnull String data) { + this.data = data; + return this; + } + + /** + * Extension binary data. Base64 encoded. + * + * @return data + */ + @javax.annotation.Nonnull + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nonnull String data) { + this.data = data; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidPkiExtension rfidPkiExtension = (RfidPkiExtension) o; + return Objects.equals(this.type, rfidPkiExtension.type) + && Objects.equals(this.data, rfidPkiExtension.data); + } + + @Override + public int hashCode() { + return Objects.hash(type, data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidPkiExtension {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Type"); + openapiRequiredFields.add("Data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidPkiExtension + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidPkiExtension.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidPkiExtension is not found in the empty JSON string", + RfidPkiExtension.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidPkiExtension.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidPkiExtension` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidPkiExtension.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Type").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Type` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Type").toString())); + } + if (!jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Data` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Data").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidPkiExtension.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidPkiExtension' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidPkiExtension.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidPkiExtension value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidPkiExtension read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidPkiExtension given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidPkiExtension + * @throws IOException if the JSON string is invalid with respect to RfidPkiExtension + */ + public static RfidPkiExtension fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidPkiExtension.class); + } + + /** + * Convert an instance of RfidPkiExtension to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java new file mode 100644 index 00000000..7d88f8b9 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java @@ -0,0 +1,371 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure is used to describe the contents of a single document security object (SO) and the + * results of its check within the context of the communication session with electronic document + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidSecurityObject { + public static final String SERIALIZED_NAME_VERSION = "Version"; + + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nonnull + private BigDecimal version; + + public static final String SERIALIZED_NAME_OBJECT_TYPE = "ObjectType"; + + @SerializedName(SERIALIZED_NAME_OBJECT_TYPE) + @javax.annotation.Nonnull + private String objectType; + + public static final String SERIALIZED_NAME_FILE_REFERENCE = "FileReference"; + + @SerializedName(SERIALIZED_NAME_FILE_REFERENCE) + @javax.annotation.Nonnull + private BigDecimal fileReference; + + public static final String SERIALIZED_NAME_NOTIFICATIONS = "Notifications"; + + @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) + @javax.annotation.Nonnull + private List notifications; + + public static final String SERIALIZED_NAME_SIGNER_INFOS = "SignerInfos"; + + @SerializedName(SERIALIZED_NAME_SIGNER_INFOS) + @javax.annotation.Nonnull + private List signerInfos; + + public RfidSecurityObject() {} + + public RfidSecurityObject version(@javax.annotation.Nonnull BigDecimal version) { + this.version = version; + return this; + } + + /** + * Security object version + * + * @return version + */ + @javax.annotation.Nonnull + public BigDecimal getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nonnull BigDecimal version) { + this.version = version; + } + + public RfidSecurityObject objectType(@javax.annotation.Nonnull String objectType) { + this.objectType = objectType; + return this; + } + + /** + * Identifier of the security object + * + * @return objectType + */ + @javax.annotation.Nonnull + public String getObjectType() { + return objectType; + } + + public void setObjectType(@javax.annotation.Nonnull String objectType) { + this.objectType = objectType; + } + + public RfidSecurityObject fileReference(@javax.annotation.Nonnull BigDecimal fileReference) { + this.fileReference = fileReference; + return this; + } + + /** + * Reference to the source file of the security object data + * + * @return fileReference + */ + @javax.annotation.Nonnull + public BigDecimal getFileReference() { + return fileReference; + } + + public void setFileReference(@javax.annotation.Nonnull BigDecimal fileReference) { + this.fileReference = fileReference; + } + + public RfidSecurityObject notifications( + @javax.annotation.Nonnull List notifications) { + this.notifications = notifications; + return this; + } + + public RfidSecurityObject addNotificationsItem(ParsingErrorCodes notificationsItem) { + if (this.notifications == null) { + this.notifications = new ArrayList<>(); + } + this.notifications.add(notificationsItem); + return this; + } + + /** + * List of remarks arisen during the analysis of SO data structure. + * + * @return notifications + */ + @javax.annotation.Nonnull + public List getNotifications() { + return notifications; + } + + public void setNotifications(@javax.annotation.Nonnull List notifications) { + this.notifications = notifications; + } + + public RfidSecurityObject signerInfos( + @javax.annotation.Nonnull List signerInfos) { + this.signerInfos = signerInfos; + return this; + } + + public RfidSecurityObject addSignerInfosItem(RfidSignerInfoEx signerInfosItem) { + if (this.signerInfos == null) { + this.signerInfos = new ArrayList<>(); + } + this.signerInfos.add(signerInfosItem); + return this; + } + + /** + * List of containers to store information about digital signature objects contained in the SO + * + * @return signerInfos + */ + @javax.annotation.Nonnull + public List getSignerInfos() { + return signerInfos; + } + + public void setSignerInfos(@javax.annotation.Nonnull List signerInfos) { + this.signerInfos = signerInfos; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidSecurityObject rfidSecurityObject = (RfidSecurityObject) o; + return Objects.equals(this.version, rfidSecurityObject.version) + && Objects.equals(this.objectType, rfidSecurityObject.objectType) + && Objects.equals(this.fileReference, rfidSecurityObject.fileReference) + && Objects.equals(this.notifications, rfidSecurityObject.notifications) + && Objects.equals(this.signerInfos, rfidSecurityObject.signerInfos); + } + + @Override + public int hashCode() { + return Objects.hash(version, objectType, fileReference, notifications, signerInfos); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidSecurityObject {\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" objectType: ").append(toIndentedString(objectType)).append("\n"); + sb.append(" fileReference: ").append(toIndentedString(fileReference)).append("\n"); + sb.append(" notifications: ").append(toIndentedString(notifications)).append("\n"); + sb.append(" signerInfos: ").append(toIndentedString(signerInfos)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Version"); + openapiFields.add("ObjectType"); + openapiFields.add("FileReference"); + openapiFields.add("Notifications"); + openapiFields.add("SignerInfos"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Version"); + openapiRequiredFields.add("ObjectType"); + openapiRequiredFields.add("FileReference"); + openapiRequiredFields.add("Notifications"); + openapiRequiredFields.add("SignerInfos"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidSecurityObject + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidSecurityObject.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidSecurityObject is not found in the empty JSON string", + RfidSecurityObject.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidSecurityObject.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidSecurityObject` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidSecurityObject.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("ObjectType").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ObjectType` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("ObjectType").toString())); + } + // ensure the required json array is present + if (jsonObj.get("Notifications") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("Notifications").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Notifications` to be an array in the JSON string but got `%s`", + jsonObj.get("Notifications").toString())); + } + // ensure the json data is an array + if (!jsonObj.get("SignerInfos").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `SignerInfos` to be an array in the JSON string but got `%s`", + jsonObj.get("SignerInfos").toString())); + } + + JsonArray jsonArraysignerInfos = jsonObj.getAsJsonArray("SignerInfos"); + // validate the required field `SignerInfos` (array) + for (int i = 0; i < jsonArraysignerInfos.size(); i++) { + RfidSignerInfoEx.validateJsonElement(jsonArraysignerInfos.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidSecurityObject.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidSecurityObject' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidSecurityObject.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidSecurityObject value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidSecurityObject read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidSecurityObject given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidSecurityObject + * @throws IOException if the JSON string is invalid with respect to RfidSecurityObject + */ + public static RfidSecurityObject fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidSecurityObject.class); + } + + /** + * Convert an instance of RfidSecurityObject to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java new file mode 100644 index 00000000..374df9dc --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java @@ -0,0 +1,763 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure is used to describe the results of work with the SDK within the context of the current + * communication session with electronic document + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidSessionData { + public static final String SERIALIZED_NAME_VIRTUAL_MODE = "VirtualMode"; + + @SerializedName(SERIALIZED_NAME_VIRTUAL_MODE) + @javax.annotation.Nullable + private Object virtualMode = null; + + public static final String SERIALIZED_NAME_SD_K_VERSION = "SDKVersion"; + + @SerializedName(SERIALIZED_NAME_SD_K_VERSION) + @javax.annotation.Nullable + private Object sdKVersion = null; + + public static final String SERIALIZED_NAME_DRIVER_VERSION = "DriverVersion"; + + @SerializedName(SERIALIZED_NAME_DRIVER_VERSION) + @javax.annotation.Nullable + private Object driverVersion = null; + + public static final String SERIALIZED_NAME_FIRMWARE_VERSION = "FirmwareVersion"; + + @SerializedName(SERIALIZED_NAME_FIRMWARE_VERSION) + @javax.annotation.Nullable + private Object firmwareVersion = null; + + public static final String SERIALIZED_NAME_APPLICATIONS = "Applications"; + + @SerializedName(SERIALIZED_NAME_APPLICATIONS) + @javax.annotation.Nonnull + private List applications; + + public static final String SERIALIZED_NAME_ACCESS_CONTROLS = "AccessControls"; + + @SerializedName(SERIALIZED_NAME_ACCESS_CONTROLS) + @javax.annotation.Nonnull + private List accessControls; + + public static final String SERIALIZED_NAME_CARD_PROPERTIES = "CardProperties"; + + @SerializedName(SERIALIZED_NAME_CARD_PROPERTIES) + @javax.annotation.Nonnull + private RfidCardPropertiesExt cardProperties; + + public static final String SERIALIZED_NAME_EXT_LE_SUPPORT = "ExtLeSupport"; + + @SerializedName(SERIALIZED_NAME_EXT_LE_SUPPORT) + @javax.annotation.Nonnull + private RFIDErrorCodes extLeSupport; + + public static final String SERIALIZED_NAME_PROCESS_TIME = "ProcessTime"; + + @SerializedName(SERIALIZED_NAME_PROCESS_TIME) + @javax.annotation.Nonnull + private BigDecimal processTime; + + public static final String SERIALIZED_NAME_ROOT_FILES = "RootFiles"; + + @SerializedName(SERIALIZED_NAME_ROOT_FILES) + @javax.annotation.Nonnull + private List rootFiles; + + public static final String SERIALIZED_NAME_TOTAL_BYTES_SENT = "TotalBytesSent"; + + @SerializedName(SERIALIZED_NAME_TOTAL_BYTES_SENT) + @javax.annotation.Nonnull + private BigDecimal totalBytesSent; + + public static final String SERIALIZED_NAME_TOTAL_BYTES_RECEIVED = "TotalBytesReceived"; + + @SerializedName(SERIALIZED_NAME_TOTAL_BYTES_RECEIVED) + @javax.annotation.Nonnull + private BigDecimal totalBytesReceived; + + public static final String SERIALIZED_NAME_SESSION_KEY = "Session_key"; + + @SerializedName(SERIALIZED_NAME_SESSION_KEY) + @javax.annotation.Nonnull + private RfidAccessKey sessionKey; + + public static final String SERIALIZED_NAME_SESSION_TERMINAL = "Session_terminal"; + + @SerializedName(SERIALIZED_NAME_SESSION_TERMINAL) + @javax.annotation.Nonnull + private RfidTerminal sessionTerminal; + + public static final String SERIALIZED_NAME_SESSION_PROCEDURE = "Session_procedure"; + + @SerializedName(SERIALIZED_NAME_SESSION_PROCEDURE) + @javax.annotation.Nonnull + private RfidAuthenticationProcedureType sessionProcedure; + + public static final String SERIALIZED_NAME_SECURITY_OBJECTS = "SecurityObjects"; + + @SerializedName(SERIALIZED_NAME_SECURITY_OBJECTS) + @javax.annotation.Nonnull + private List securityObjects; + + public RfidSessionData() {} + + public RfidSessionData virtualMode(@javax.annotation.Nullable Object virtualMode) { + this.virtualMode = virtualMode; + return this; + } + + /** + * Sign of virtual session when working with loaded data from a previous communication session + * with the electronic document + * + * @return virtualMode + */ + @javax.annotation.Nullable + public Object getVirtualMode() { + return virtualMode; + } + + public void setVirtualMode(@javax.annotation.Nullable Object virtualMode) { + this.virtualMode = virtualMode; + } + + public RfidSessionData sdKVersion(@javax.annotation.Nullable Object sdKVersion) { + this.sdKVersion = sdKVersion; + return this; + } + + /** + * Text SDKVersion value in format A.B (e.g. 3.1) + * + * @return sdKVersion + */ + @javax.annotation.Nullable + public Object getSdKVersion() { + return sdKVersion; + } + + public void setSdKVersion(@javax.annotation.Nullable Object sdKVersion) { + this.sdKVersion = sdKVersion; + } + + public RfidSessionData driverVersion(@javax.annotation.Nullable Object driverVersion) { + this.driverVersion = driverVersion; + return this; + } + + /** + * Text DriverVersion value in format A.B.C.D (e.g. 6.2.5.4) + * + * @return driverVersion + */ + @javax.annotation.Nullable + public Object getDriverVersion() { + return driverVersion; + } + + public void setDriverVersion(@javax.annotation.Nullable Object driverVersion) { + this.driverVersion = driverVersion; + } + + public RfidSessionData firmwareVersion(@javax.annotation.Nullable Object firmwareVersion) { + this.firmwareVersion = firmwareVersion; + return this; + } + + /** + * Text FirmwareVersion value in format A.B (e.g. 5.19) + * + * @return firmwareVersion + */ + @javax.annotation.Nullable + public Object getFirmwareVersion() { + return firmwareVersion; + } + + public void setFirmwareVersion(@javax.annotation.Nullable Object firmwareVersion) { + this.firmwareVersion = firmwareVersion; + } + + public RfidSessionData applications( + @javax.annotation.Nonnull List applications) { + this.applications = applications; + return this; + } + + public RfidSessionData addApplicationsItem(RfidApplication applicationsItem) { + if (this.applications == null) { + this.applications = new ArrayList<>(); + } + this.applications.add(applicationsItem); + return this; + } + + /** + * List of containers to store information about the involved applications of electronic document + * + * @return applications + */ + @javax.annotation.Nonnull + public List getApplications() { + return applications; + } + + public void setApplications(@javax.annotation.Nonnull List applications) { + this.applications = applications; + } + + public RfidSessionData accessControls( + @javax.annotation.Nonnull List accessControls) { + this.accessControls = accessControls; + return this; + } + + public RfidSessionData addAccessControlsItem(RfidAccessControlInfo accessControlsItem) { + if (this.accessControls == null) { + this.accessControls = new ArrayList<>(); + } + this.accessControls.add(accessControlsItem); + return this; + } + + /** + * List of containers to store information about the supported procedures of authentication and + * secure data access within the context of the session + * + * @return accessControls + */ + @javax.annotation.Nonnull + public List getAccessControls() { + return accessControls; + } + + public void setAccessControls( + @javax.annotation.Nonnull List accessControls) { + this.accessControls = accessControls; + } + + public RfidSessionData cardProperties( + @javax.annotation.Nonnull RfidCardPropertiesExt cardProperties) { + this.cardProperties = cardProperties; + return this; + } + + /** + * Get cardProperties + * + * @return cardProperties + */ + @javax.annotation.Nonnull + public RfidCardPropertiesExt getCardProperties() { + return cardProperties; + } + + public void setCardProperties(@javax.annotation.Nonnull RfidCardPropertiesExt cardProperties) { + this.cardProperties = cardProperties; + } + + public RfidSessionData extLeSupport(@javax.annotation.Nonnull RFIDErrorCodes extLeSupport) { + this.extLeSupport = extLeSupport; + return this; + } + + /** + * Get extLeSupport + * + * @return extLeSupport + */ + @javax.annotation.Nonnull + public RFIDErrorCodes getExtLeSupport() { + return extLeSupport; + } + + public void setExtLeSupport(@javax.annotation.Nonnull RFIDErrorCodes extLeSupport) { + this.extLeSupport = extLeSupport; + } + + public RfidSessionData processTime(@javax.annotation.Nonnull BigDecimal processTime) { + this.processTime = processTime; + return this; + } + + /** + * Time of processing, milliseconds + * + * @return processTime + */ + @javax.annotation.Nonnull + public BigDecimal getProcessTime() { + return processTime; + } + + public void setProcessTime(@javax.annotation.Nonnull BigDecimal processTime) { + this.processTime = processTime; + } + + public RfidSessionData rootFiles(@javax.annotation.Nonnull List rootFiles) { + this.rootFiles = rootFiles; + return this; + } + + public RfidSessionData addRootFilesItem(Object rootFilesItem) { + if (this.rootFiles == null) { + this.rootFiles = new ArrayList<>(); + } + this.rootFiles.add(rootFilesItem); + return this; + } + + /** + * List of containers to store information about the read files of the root Master File + * + * @return rootFiles + */ + @javax.annotation.Nonnull + public List getRootFiles() { + return rootFiles; + } + + public void setRootFiles(@javax.annotation.Nonnull List rootFiles) { + this.rootFiles = rootFiles; + } + + public RfidSessionData totalBytesSent(@javax.annotation.Nonnull BigDecimal totalBytesSent) { + this.totalBytesSent = totalBytesSent; + return this; + } + + /** + * Total number of bytes transmitted to the RFID-chip during the whole session + * + * @return totalBytesSent + */ + @javax.annotation.Nonnull + public BigDecimal getTotalBytesSent() { + return totalBytesSent; + } + + public void setTotalBytesSent(@javax.annotation.Nonnull BigDecimal totalBytesSent) { + this.totalBytesSent = totalBytesSent; + } + + public RfidSessionData totalBytesReceived( + @javax.annotation.Nonnull BigDecimal totalBytesReceived) { + this.totalBytesReceived = totalBytesReceived; + return this; + } + + /** + * Total number of bytes received from the RFID-chip during the whole session + * + * @return totalBytesReceived + */ + @javax.annotation.Nonnull + public BigDecimal getTotalBytesReceived() { + return totalBytesReceived; + } + + public void setTotalBytesReceived(@javax.annotation.Nonnull BigDecimal totalBytesReceived) { + this.totalBytesReceived = totalBytesReceived; + } + + public RfidSessionData sessionKey(@javax.annotation.Nonnull RfidAccessKey sessionKey) { + this.sessionKey = sessionKey; + return this; + } + + /** + * Get sessionKey + * + * @return sessionKey + */ + @javax.annotation.Nonnull + public RfidAccessKey getSessionKey() { + return sessionKey; + } + + public void setSessionKey(@javax.annotation.Nonnull RfidAccessKey sessionKey) { + this.sessionKey = sessionKey; + } + + public RfidSessionData sessionTerminal(@javax.annotation.Nonnull RfidTerminal sessionTerminal) { + this.sessionTerminal = sessionTerminal; + return this; + } + + /** + * Get sessionTerminal + * + * @return sessionTerminal + */ + @javax.annotation.Nonnull + public RfidTerminal getSessionTerminal() { + return sessionTerminal; + } + + public void setSessionTerminal(@javax.annotation.Nonnull RfidTerminal sessionTerminal) { + this.sessionTerminal = sessionTerminal; + } + + public RfidSessionData sessionProcedure( + @javax.annotation.Nonnull RfidAuthenticationProcedureType sessionProcedure) { + this.sessionProcedure = sessionProcedure; + return this; + } + + /** + * Get sessionProcedure + * + * @return sessionProcedure + */ + @javax.annotation.Nonnull + public RfidAuthenticationProcedureType getSessionProcedure() { + return sessionProcedure; + } + + public void setSessionProcedure( + @javax.annotation.Nonnull RfidAuthenticationProcedureType sessionProcedure) { + this.sessionProcedure = sessionProcedure; + } + + public RfidSessionData securityObjects( + @javax.annotation.Nonnull List securityObjects) { + this.securityObjects = securityObjects; + return this; + } + + public RfidSessionData addSecurityObjectsItem(RfidSecurityObject securityObjectsItem) { + if (this.securityObjects == null) { + this.securityObjects = new ArrayList<>(); + } + this.securityObjects.add(securityObjectsItem); + return this; + } + + /** + * List of containers to store information about the detected document security objects + * + * @return securityObjects + */ + @javax.annotation.Nonnull + public List getSecurityObjects() { + return securityObjects; + } + + public void setSecurityObjects( + @javax.annotation.Nonnull List securityObjects) { + this.securityObjects = securityObjects; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidSessionData rfidSessionData = (RfidSessionData) o; + return Objects.equals(this.virtualMode, rfidSessionData.virtualMode) + && Objects.equals(this.sdKVersion, rfidSessionData.sdKVersion) + && Objects.equals(this.driverVersion, rfidSessionData.driverVersion) + && Objects.equals(this.firmwareVersion, rfidSessionData.firmwareVersion) + && Objects.equals(this.applications, rfidSessionData.applications) + && Objects.equals(this.accessControls, rfidSessionData.accessControls) + && Objects.equals(this.cardProperties, rfidSessionData.cardProperties) + && Objects.equals(this.extLeSupport, rfidSessionData.extLeSupport) + && Objects.equals(this.processTime, rfidSessionData.processTime) + && Objects.equals(this.rootFiles, rfidSessionData.rootFiles) + && Objects.equals(this.totalBytesSent, rfidSessionData.totalBytesSent) + && Objects.equals(this.totalBytesReceived, rfidSessionData.totalBytesReceived) + && Objects.equals(this.sessionKey, rfidSessionData.sessionKey) + && Objects.equals(this.sessionTerminal, rfidSessionData.sessionTerminal) + && Objects.equals(this.sessionProcedure, rfidSessionData.sessionProcedure) + && Objects.equals(this.securityObjects, rfidSessionData.securityObjects); + } + + @Override + public int hashCode() { + return Objects.hash( + virtualMode, + sdKVersion, + driverVersion, + firmwareVersion, + applications, + accessControls, + cardProperties, + extLeSupport, + processTime, + rootFiles, + totalBytesSent, + totalBytesReceived, + sessionKey, + sessionTerminal, + sessionProcedure, + securityObjects); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidSessionData {\n"); + sb.append(" virtualMode: ").append(toIndentedString(virtualMode)).append("\n"); + sb.append(" sdKVersion: ").append(toIndentedString(sdKVersion)).append("\n"); + sb.append(" driverVersion: ").append(toIndentedString(driverVersion)).append("\n"); + sb.append(" firmwareVersion: ").append(toIndentedString(firmwareVersion)).append("\n"); + sb.append(" applications: ").append(toIndentedString(applications)).append("\n"); + sb.append(" accessControls: ").append(toIndentedString(accessControls)).append("\n"); + sb.append(" cardProperties: ").append(toIndentedString(cardProperties)).append("\n"); + sb.append(" extLeSupport: ").append(toIndentedString(extLeSupport)).append("\n"); + sb.append(" processTime: ").append(toIndentedString(processTime)).append("\n"); + sb.append(" rootFiles: ").append(toIndentedString(rootFiles)).append("\n"); + sb.append(" totalBytesSent: ").append(toIndentedString(totalBytesSent)).append("\n"); + sb.append(" totalBytesReceived: ").append(toIndentedString(totalBytesReceived)).append("\n"); + sb.append(" sessionKey: ").append(toIndentedString(sessionKey)).append("\n"); + sb.append(" sessionTerminal: ").append(toIndentedString(sessionTerminal)).append("\n"); + sb.append(" sessionProcedure: ").append(toIndentedString(sessionProcedure)).append("\n"); + sb.append(" securityObjects: ").append(toIndentedString(securityObjects)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("VirtualMode"); + openapiFields.add("SDKVersion"); + openapiFields.add("DriverVersion"); + openapiFields.add("FirmwareVersion"); + openapiFields.add("Applications"); + openapiFields.add("AccessControls"); + openapiFields.add("CardProperties"); + openapiFields.add("ExtLeSupport"); + openapiFields.add("ProcessTime"); + openapiFields.add("RootFiles"); + openapiFields.add("TotalBytesSent"); + openapiFields.add("TotalBytesReceived"); + openapiFields.add("Session_key"); + openapiFields.add("Session_terminal"); + openapiFields.add("Session_procedure"); + openapiFields.add("SecurityObjects"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("VirtualMode"); + openapiRequiredFields.add("SDKVersion"); + openapiRequiredFields.add("DriverVersion"); + openapiRequiredFields.add("FirmwareVersion"); + openapiRequiredFields.add("Applications"); + openapiRequiredFields.add("AccessControls"); + openapiRequiredFields.add("CardProperties"); + openapiRequiredFields.add("ExtLeSupport"); + openapiRequiredFields.add("ProcessTime"); + openapiRequiredFields.add("RootFiles"); + openapiRequiredFields.add("TotalBytesSent"); + openapiRequiredFields.add("TotalBytesReceived"); + openapiRequiredFields.add("Session_key"); + openapiRequiredFields.add("Session_terminal"); + openapiRequiredFields.add("Session_procedure"); + openapiRequiredFields.add("SecurityObjects"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidSessionData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidSessionData.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidSessionData is not found in the empty JSON string", + RfidSessionData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidSessionData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidSessionData` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidSessionData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("Applications").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Applications` to be an array in the JSON string but got `%s`", + jsonObj.get("Applications").toString())); + } + + JsonArray jsonArrayapplications = jsonObj.getAsJsonArray("Applications"); + // validate the required field `Applications` (array) + for (int i = 0; i < jsonArrayapplications.size(); i++) { + RfidApplication.validateJsonElement(jsonArrayapplications.get(i)); + } + ; + // ensure the json data is an array + if (!jsonObj.get("AccessControls").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `AccessControls` to be an array in the JSON string but got `%s`", + jsonObj.get("AccessControls").toString())); + } + + JsonArray jsonArrayaccessControls = jsonObj.getAsJsonArray("AccessControls"); + // validate the required field `AccessControls` (array) + for (int i = 0; i < jsonArrayaccessControls.size(); i++) { + RfidAccessControlInfo.validateJsonElement(jsonArrayaccessControls.get(i)); + } + ; + // validate the required field `CardProperties` + RfidCardPropertiesExt.validateJsonElement(jsonObj.get("CardProperties")); + // validate the required field `ExtLeSupport` + RFIDErrorCodes.validateJsonElement(jsonObj.get("ExtLeSupport")); + // ensure the required json array is present + if (jsonObj.get("RootFiles") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("RootFiles").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `RootFiles` to be an array in the JSON string but got `%s`", + jsonObj.get("RootFiles").toString())); + } + // validate the required field `Session_key` + RfidAccessKey.validateJsonElement(jsonObj.get("Session_key")); + // validate the required field `Session_terminal` + RfidTerminal.validateJsonElement(jsonObj.get("Session_terminal")); + // validate the required field `Session_procedure` + RfidAuthenticationProcedureType.validateJsonElement(jsonObj.get("Session_procedure")); + // ensure the json data is an array + if (!jsonObj.get("SecurityObjects").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `SecurityObjects` to be an array in the JSON string but got `%s`", + jsonObj.get("SecurityObjects").toString())); + } + + JsonArray jsonArraysecurityObjects = jsonObj.getAsJsonArray("SecurityObjects"); + // validate the required field `SecurityObjects` (array) + for (int i = 0; i < jsonArraysecurityObjects.size(); i++) { + RfidSecurityObject.validateJsonElement(jsonArraysecurityObjects.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidSessionData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidSessionData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidSessionData.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidSessionData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidSessionData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidSessionData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidSessionData + * @throws IOException if the JSON string is invalid with respect to RfidSessionData + */ + public static RfidSessionData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidSessionData.class); + } + + /** + * Convert an instance of RfidSessionData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java new file mode 100644 index 00000000..7be40a1e --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java @@ -0,0 +1,621 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure is used to describe the contents of a single copy of digital signature of the document + * security object and the results of its check within the context of the communication session with + * electronic document + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidSignerInfoEx { + public static final String SERIALIZED_NAME_VERSION = "Version"; + + @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nonnull + private BigDecimal version; + + public static final String SERIALIZED_NAME_ISSUER = "Issuer"; + + @SerializedName(SERIALIZED_NAME_ISSUER) + @javax.annotation.Nonnull + private RfidDistinguishedName issuer; + + public static final String SERIALIZED_NAME_SERIAL_NUMBER = "SerialNumber"; + + @SerializedName(SERIALIZED_NAME_SERIAL_NUMBER) + @javax.annotation.Nonnull + private TrfFtBytes serialNumber; + + public static final String SERIALIZED_NAME_SUBJECT_KEY_IDENTIFIER = "SubjectKeyIdentifier"; + + @SerializedName(SERIALIZED_NAME_SUBJECT_KEY_IDENTIFIER) + @javax.annotation.Nonnull + private TrfFtBytes subjectKeyIdentifier; + + public static final String SERIALIZED_NAME_DIGEST_ALGORITHM = "DigestAlgorithm"; + + @SerializedName(SERIALIZED_NAME_DIGEST_ALGORITHM) + @javax.annotation.Nonnull + private String digestAlgorithm; + + public static final String SERIALIZED_NAME_SIGNED_ATTRIBUTES = "SignedAttributes"; + + @SerializedName(SERIALIZED_NAME_SIGNED_ATTRIBUTES) + @javax.annotation.Nonnull + private List signedAttributes; + + public static final String SERIALIZED_NAME_SIGNATURE_ALGORITHM = "SignatureAlgorithm"; + + @SerializedName(SERIALIZED_NAME_SIGNATURE_ALGORITHM) + @javax.annotation.Nonnull + private String signatureAlgorithm; + + public static final String SERIALIZED_NAME_SIGNATURE = "Signature"; + + @SerializedName(SERIALIZED_NAME_SIGNATURE) + @javax.annotation.Nonnull + private TrfFtBytes signature; + + public static final String SERIALIZED_NAME_PA_STATUS = "PA_Status"; + + @SerializedName(SERIALIZED_NAME_PA_STATUS) + @javax.annotation.Nonnull + private RFIDErrorCodes paStatus; + + public static final String SERIALIZED_NAME_CERTIFICATE_CHAIN = "CertificateChain"; + + @SerializedName(SERIALIZED_NAME_CERTIFICATE_CHAIN) + @javax.annotation.Nonnull + private List certificateChain; + + public static final String SERIALIZED_NAME_DATA_TO_HASH = "DataToHash"; + + @SerializedName(SERIALIZED_NAME_DATA_TO_HASH) + @javax.annotation.Nonnull + private String dataToHash; + + public static final String SERIALIZED_NAME_NOTIFICATIONS = "Notifications"; + + @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) + @javax.annotation.Nonnull + private ParsingErrorCodes notifications; + + public RfidSignerInfoEx() {} + + public RfidSignerInfoEx version(@javax.annotation.Nonnull BigDecimal version) { + this.version = version; + return this; + } + + /** + * Version of SignerInfo ASN.1 structure + * + * @return version + */ + @javax.annotation.Nonnull + public BigDecimal getVersion() { + return version; + } + + public void setVersion(@javax.annotation.Nonnull BigDecimal version) { + this.version = version; + } + + public RfidSignerInfoEx issuer(@javax.annotation.Nonnull RfidDistinguishedName issuer) { + this.issuer = issuer; + return this; + } + + /** + * Get issuer + * + * @return issuer + */ + @javax.annotation.Nonnull + public RfidDistinguishedName getIssuer() { + return issuer; + } + + public void setIssuer(@javax.annotation.Nonnull RfidDistinguishedName issuer) { + this.issuer = issuer; + } + + public RfidSignerInfoEx serialNumber(@javax.annotation.Nonnull TrfFtBytes serialNumber) { + this.serialNumber = serialNumber; + return this; + } + + /** + * Get serialNumber + * + * @return serialNumber + */ + @javax.annotation.Nonnull + public TrfFtBytes getSerialNumber() { + return serialNumber; + } + + public void setSerialNumber(@javax.annotation.Nonnull TrfFtBytes serialNumber) { + this.serialNumber = serialNumber; + } + + public RfidSignerInfoEx subjectKeyIdentifier( + @javax.annotation.Nonnull TrfFtBytes subjectKeyIdentifier) { + this.subjectKeyIdentifier = subjectKeyIdentifier; + return this; + } + + /** + * Get subjectKeyIdentifier + * + * @return subjectKeyIdentifier + */ + @javax.annotation.Nonnull + public TrfFtBytes getSubjectKeyIdentifier() { + return subjectKeyIdentifier; + } + + public void setSubjectKeyIdentifier(@javax.annotation.Nonnull TrfFtBytes subjectKeyIdentifier) { + this.subjectKeyIdentifier = subjectKeyIdentifier; + } + + public RfidSignerInfoEx digestAlgorithm(@javax.annotation.Nonnull String digestAlgorithm) { + this.digestAlgorithm = digestAlgorithm; + return this; + } + + /** + * Hash algorithm identifier (OID) for digital signature generation + * + * @return digestAlgorithm + */ + @javax.annotation.Nonnull + public String getDigestAlgorithm() { + return digestAlgorithm; + } + + public void setDigestAlgorithm(@javax.annotation.Nonnull String digestAlgorithm) { + this.digestAlgorithm = digestAlgorithm; + } + + public RfidSignerInfoEx signedAttributes( + @javax.annotation.Nonnull List signedAttributes) { + this.signedAttributes = signedAttributes; + return this; + } + + public RfidSignerInfoEx addSignedAttributesItem(RfidAttributeData signedAttributesItem) { + if (this.signedAttributes == null) { + this.signedAttributes = new ArrayList<>(); + } + this.signedAttributes.add(signedAttributesItem); + return this; + } + + /** + * List of the signed attributes + * + * @return signedAttributes + */ + @javax.annotation.Nonnull + public List getSignedAttributes() { + return signedAttributes; + } + + public void setSignedAttributes( + @javax.annotation.Nonnull List signedAttributes) { + this.signedAttributes = signedAttributes; + } + + public RfidSignerInfoEx signatureAlgorithm(@javax.annotation.Nonnull String signatureAlgorithm) { + this.signatureAlgorithm = signatureAlgorithm; + return this; + } + + /** + * Digital signature algorithm identifier (OID) + * + * @return signatureAlgorithm + */ + @javax.annotation.Nonnull + public String getSignatureAlgorithm() { + return signatureAlgorithm; + } + + public void setSignatureAlgorithm(@javax.annotation.Nonnull String signatureAlgorithm) { + this.signatureAlgorithm = signatureAlgorithm; + } + + public RfidSignerInfoEx signature(@javax.annotation.Nonnull TrfFtBytes signature) { + this.signature = signature; + return this; + } + + /** + * Get signature + * + * @return signature + */ + @javax.annotation.Nonnull + public TrfFtBytes getSignature() { + return signature; + } + + public void setSignature(@javax.annotation.Nonnull TrfFtBytes signature) { + this.signature = signature; + } + + public RfidSignerInfoEx paStatus(@javax.annotation.Nonnull RFIDErrorCodes paStatus) { + this.paStatus = paStatus; + return this; + } + + /** + * Get paStatus + * + * @return paStatus + */ + @javax.annotation.Nonnull + public RFIDErrorCodes getPaStatus() { + return paStatus; + } + + public void setPaStatus(@javax.annotation.Nonnull RFIDErrorCodes paStatus) { + this.paStatus = paStatus; + } + + public RfidSignerInfoEx certificateChain( + @javax.annotation.Nonnull List certificateChain) { + this.certificateChain = certificateChain; + return this; + } + + public RfidSignerInfoEx addCertificateChainItem(RfidCertificateEx certificateChainItem) { + if (this.certificateChain == null) { + this.certificateChain = new ArrayList<>(); + } + this.certificateChain.add(certificateChainItem); + return this; + } + + /** + * Certificate chain, used for the digital signature verification. + * + * @return certificateChain + */ + @javax.annotation.Nonnull + public List getCertificateChain() { + return certificateChain; + } + + public void setCertificateChain( + @javax.annotation.Nonnull List certificateChain) { + this.certificateChain = certificateChain; + } + + public RfidSignerInfoEx dataToHash(@javax.annotation.Nonnull String dataToHash) { + this.dataToHash = dataToHash; + return this; + } + + /** + * Binary data array used to calculate the hash value for digital signature verification. Base64 + * encoded. + * + * @return dataToHash + */ + @javax.annotation.Nonnull + public String getDataToHash() { + return dataToHash; + } + + public void setDataToHash(@javax.annotation.Nonnull String dataToHash) { + this.dataToHash = dataToHash; + } + + public RfidSignerInfoEx notifications(@javax.annotation.Nonnull ParsingErrorCodes notifications) { + this.notifications = notifications; + return this; + } + + /** + * Get notifications + * + * @return notifications + */ + @javax.annotation.Nonnull + public ParsingErrorCodes getNotifications() { + return notifications; + } + + public void setNotifications(@javax.annotation.Nonnull ParsingErrorCodes notifications) { + this.notifications = notifications; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidSignerInfoEx rfidSignerInfoEx = (RfidSignerInfoEx) o; + return Objects.equals(this.version, rfidSignerInfoEx.version) + && Objects.equals(this.issuer, rfidSignerInfoEx.issuer) + && Objects.equals(this.serialNumber, rfidSignerInfoEx.serialNumber) + && Objects.equals(this.subjectKeyIdentifier, rfidSignerInfoEx.subjectKeyIdentifier) + && Objects.equals(this.digestAlgorithm, rfidSignerInfoEx.digestAlgorithm) + && Objects.equals(this.signedAttributes, rfidSignerInfoEx.signedAttributes) + && Objects.equals(this.signatureAlgorithm, rfidSignerInfoEx.signatureAlgorithm) + && Objects.equals(this.signature, rfidSignerInfoEx.signature) + && Objects.equals(this.paStatus, rfidSignerInfoEx.paStatus) + && Objects.equals(this.certificateChain, rfidSignerInfoEx.certificateChain) + && Objects.equals(this.dataToHash, rfidSignerInfoEx.dataToHash) + && Objects.equals(this.notifications, rfidSignerInfoEx.notifications); + } + + @Override + public int hashCode() { + return Objects.hash( + version, + issuer, + serialNumber, + subjectKeyIdentifier, + digestAlgorithm, + signedAttributes, + signatureAlgorithm, + signature, + paStatus, + certificateChain, + dataToHash, + notifications); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidSignerInfoEx {\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" issuer: ").append(toIndentedString(issuer)).append("\n"); + sb.append(" serialNumber: ").append(toIndentedString(serialNumber)).append("\n"); + sb.append(" subjectKeyIdentifier: ") + .append(toIndentedString(subjectKeyIdentifier)) + .append("\n"); + sb.append(" digestAlgorithm: ").append(toIndentedString(digestAlgorithm)).append("\n"); + sb.append(" signedAttributes: ").append(toIndentedString(signedAttributes)).append("\n"); + sb.append(" signatureAlgorithm: ").append(toIndentedString(signatureAlgorithm)).append("\n"); + sb.append(" signature: ").append(toIndentedString(signature)).append("\n"); + sb.append(" paStatus: ").append(toIndentedString(paStatus)).append("\n"); + sb.append(" certificateChain: ").append(toIndentedString(certificateChain)).append("\n"); + sb.append(" dataToHash: ").append(toIndentedString(dataToHash)).append("\n"); + sb.append(" notifications: ").append(toIndentedString(notifications)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Version"); + openapiFields.add("Issuer"); + openapiFields.add("SerialNumber"); + openapiFields.add("SubjectKeyIdentifier"); + openapiFields.add("DigestAlgorithm"); + openapiFields.add("SignedAttributes"); + openapiFields.add("SignatureAlgorithm"); + openapiFields.add("Signature"); + openapiFields.add("PA_Status"); + openapiFields.add("CertificateChain"); + openapiFields.add("DataToHash"); + openapiFields.add("Notifications"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Version"); + openapiRequiredFields.add("Issuer"); + openapiRequiredFields.add("SerialNumber"); + openapiRequiredFields.add("SubjectKeyIdentifier"); + openapiRequiredFields.add("DigestAlgorithm"); + openapiRequiredFields.add("SignedAttributes"); + openapiRequiredFields.add("SignatureAlgorithm"); + openapiRequiredFields.add("Signature"); + openapiRequiredFields.add("PA_Status"); + openapiRequiredFields.add("CertificateChain"); + openapiRequiredFields.add("DataToHash"); + openapiRequiredFields.add("Notifications"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidSignerInfoEx + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidSignerInfoEx.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidSignerInfoEx is not found in the empty JSON string", + RfidSignerInfoEx.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidSignerInfoEx.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidSignerInfoEx` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidSignerInfoEx.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `Issuer` + RfidDistinguishedName.validateJsonElement(jsonObj.get("Issuer")); + // validate the required field `SerialNumber` + TrfFtBytes.validateJsonElement(jsonObj.get("SerialNumber")); + // validate the required field `SubjectKeyIdentifier` + TrfFtBytes.validateJsonElement(jsonObj.get("SubjectKeyIdentifier")); + if (!jsonObj.get("DigestAlgorithm").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `DigestAlgorithm` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("DigestAlgorithm").toString())); + } + // ensure the json data is an array + if (!jsonObj.get("SignedAttributes").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `SignedAttributes` to be an array in the JSON string but got `%s`", + jsonObj.get("SignedAttributes").toString())); + } + + JsonArray jsonArraysignedAttributes = jsonObj.getAsJsonArray("SignedAttributes"); + // validate the required field `SignedAttributes` (array) + for (int i = 0; i < jsonArraysignedAttributes.size(); i++) { + RfidAttributeData.validateJsonElement(jsonArraysignedAttributes.get(i)); + } + ; + if (!jsonObj.get("SignatureAlgorithm").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `SignatureAlgorithm` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("SignatureAlgorithm").toString())); + } + // validate the required field `Signature` + TrfFtBytes.validateJsonElement(jsonObj.get("Signature")); + // validate the required field `PA_Status` + RFIDErrorCodes.validateJsonElement(jsonObj.get("PA_Status")); + // ensure the json data is an array + if (!jsonObj.get("CertificateChain").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `CertificateChain` to be an array in the JSON string but got `%s`", + jsonObj.get("CertificateChain").toString())); + } + + JsonArray jsonArraycertificateChain = jsonObj.getAsJsonArray("CertificateChain"); + // validate the required field `CertificateChain` (array) + for (int i = 0; i < jsonArraycertificateChain.size(); i++) { + RfidCertificateEx.validateJsonElement(jsonArraycertificateChain.get(i)); + } + ; + if (!jsonObj.get("DataToHash").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `DataToHash` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("DataToHash").toString())); + } + // validate the required field `Notifications` + ParsingErrorCodes.validateJsonElement(jsonObj.get("Notifications")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidSignerInfoEx.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidSignerInfoEx' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidSignerInfoEx.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidSignerInfoEx value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidSignerInfoEx read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidSignerInfoEx given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidSignerInfoEx + * @throws IOException if the JSON string is invalid with respect to RfidSignerInfoEx + */ + public static RfidSignerInfoEx fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidSignerInfoEx.class); + } + + /** + * Convert an instance of RfidSignerInfoEx to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminal.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminal.java new file mode 100644 index 00000000..b534560d --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminal.java @@ -0,0 +1,266 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure is used to describe the terminal type within the context of the communication session + * with electronic document + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidTerminal { + public static final String SERIALIZED_NAME_TERM_TYPE = "TermType"; + + @SerializedName(SERIALIZED_NAME_TERM_TYPE) + @javax.annotation.Nonnull + private RfidTerminalType termType; + + public static final String SERIALIZED_NAME_AUTH_REQ = "AuthReq"; + + @SerializedName(SERIALIZED_NAME_AUTH_REQ) + @javax.annotation.Nonnull + private BigDecimal authReq; + + public static final String SERIALIZED_NAME_AUTH_REQ2 = "AuthReq2"; + + @SerializedName(SERIALIZED_NAME_AUTH_REQ2) + @javax.annotation.Nonnull + private BigDecimal authReq2; + + public RfidTerminal() {} + + public RfidTerminal termType(@javax.annotation.Nonnull RfidTerminalType termType) { + this.termType = termType; + return this; + } + + /** + * Get termType + * + * @return termType + */ + @javax.annotation.Nonnull + public RfidTerminalType getTermType() { + return termType; + } + + public void setTermType(@javax.annotation.Nonnull RfidTerminalType termType) { + this.termType = termType; + } + + public RfidTerminal authReq(@javax.annotation.Nonnull BigDecimal authReq) { + this.authReq = authReq; + return this; + } + + /** + * Declared (set) combination of flags of access rights to the functionality of the document + * (combination of eRfidTerminalAuthorizationRequirement values) + * + * @return authReq + */ + @javax.annotation.Nonnull + public BigDecimal getAuthReq() { + return authReq; + } + + public void setAuthReq(@javax.annotation.Nonnull BigDecimal authReq) { + this.authReq = authReq; + } + + public RfidTerminal authReq2(@javax.annotation.Nonnull BigDecimal authReq2) { + this.authReq2 = authReq2; + return this; + } + + /** + * Declared (set) combination of flags of access rights to the functionality of the document + * (combination of RfidTerminalAuthorizationRequirement values) + * + * @return authReq2 + */ + @javax.annotation.Nonnull + public BigDecimal getAuthReq2() { + return authReq2; + } + + public void setAuthReq2(@javax.annotation.Nonnull BigDecimal authReq2) { + this.authReq2 = authReq2; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidTerminal rfidTerminal = (RfidTerminal) o; + return Objects.equals(this.termType, rfidTerminal.termType) + && Objects.equals(this.authReq, rfidTerminal.authReq) + && Objects.equals(this.authReq2, rfidTerminal.authReq2); + } + + @Override + public int hashCode() { + return Objects.hash(termType, authReq, authReq2); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidTerminal {\n"); + sb.append(" termType: ").append(toIndentedString(termType)).append("\n"); + sb.append(" authReq: ").append(toIndentedString(authReq)).append("\n"); + sb.append(" authReq2: ").append(toIndentedString(authReq2)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("TermType"); + openapiFields.add("AuthReq"); + openapiFields.add("AuthReq2"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("TermType"); + openapiRequiredFields.add("AuthReq"); + openapiRequiredFields.add("AuthReq2"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidTerminal + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidTerminal.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidTerminal is not found in the empty JSON string", + RfidTerminal.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidTerminal.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidTerminal` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidTerminal.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `TermType` + RfidTerminalType.validateJsonElement(jsonObj.get("TermType")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidTerminal.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidTerminal' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidTerminal.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidTerminal value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidTerminal read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidTerminal given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidTerminal + * @throws IOException if the JSON string is invalid with respect to RfidTerminal + */ + public static RfidTerminal fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidTerminal.class); + } + + /** + * Convert an instance of RfidTerminal to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminalType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminalType.java new file mode 100644 index 00000000..8cf1d437 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminalType.java @@ -0,0 +1,86 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains a set of constants that define the type of terminal within the context of + * the communication session with electronic document + */ +@JsonAdapter(RfidTerminalType.Adapter.class) +public enum RfidTerminalType { + + /** Not defined */ + UNDEFINED(0), + + /** Inspection system */ + INSPECTION_SYSTEM(1), + + /** Authentication terminal */ + AUTHENTICATION_TERMINAL(2), + + /** Signature terminal */ + SIGNATURE_TERMINAL(3), + + /** Unauthenticated terminal */ + UNAUTHENTICATED_TERMINAL(4); + + private Integer value; + + RfidTerminalType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidTerminalType fromValue(Integer value) { + for (RfidTerminalType b : RfidTerminalType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RfidTerminalType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidTerminalType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidTerminalType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidTerminalType.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTextDataResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTextDataResult.java deleted file mode 100755 index 35144c91..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTextDataResult.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.Objects; - -/** Text fields extracted from document RFID chip */ -public class RfidTextDataResult extends ResultItem { - public static final String SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO = "DocVisualExtendedInfo"; - - @SerializedName(SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO) - private DocVisualExtendedInfo docVisualExtendedInfo; - - public RfidTextDataResult withDocVisualExtendedInfo(DocVisualExtendedInfo docVisualExtendedInfo) { - this.docVisualExtendedInfo = docVisualExtendedInfo; - return this; - } - - /** - * Get docVisualExtendedInfo - * - * @return docVisualExtendedInfo - */ - @javax.annotation.Nullable - public DocVisualExtendedInfo getDocVisualExtendedInfo() { - return docVisualExtendedInfo; - } - - public void setDocVisualExtendedInfo(DocVisualExtendedInfo docVisualExtendedInfo) { - this.docVisualExtendedInfo = docVisualExtendedInfo; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RfidTextDataResult rfidTextDataResult = (RfidTextDataResult) o; - return Objects.equals(this.docVisualExtendedInfo, rfidTextDataResult.docVisualExtendedInfo) - && super.equals(o); - } - - @Override - public int hashCode() { - return Objects.hash(docVisualExtendedInfo, super.hashCode()); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RfidTextDataResult {\n"); - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - sb.append(" docVisualExtendedInfo: ") - .append(toIndentedString(docVisualExtendedInfo)) - .append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidType.java new file mode 100644 index 00000000..2f45c973 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidType.java @@ -0,0 +1,79 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains a set of constants specifying the type of the RFID-chip by the physical + * parameters of connection between antennas of the chip and the reader + */ +@JsonAdapter(RfidType.Adapter.class) +public enum RfidType { + + /** Unknown */ + UNKNOWN(0), + + /** Type A */ + A(1), + + /** Type B */ + B(2); + + private Integer value; + + RfidType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RfidType fromValue(Integer value) { + for (RfidType b : RfidType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final RfidType enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RfidType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return RfidType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + RfidType.fromValue(value); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidValidity.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidValidity.java new file mode 100644 index 00000000..c5840bcd --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidValidity.java @@ -0,0 +1,233 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** Structure contains information on a certificate validity. */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidValidity { + public static final String SERIALIZED_NAME_NOT_BEFORE = "NotBefore"; + + @SerializedName(SERIALIZED_NAME_NOT_BEFORE) + @javax.annotation.Nonnull + private TrfFtString notBefore; + + public static final String SERIALIZED_NAME_NOT_AFTER = "NotAfter"; + + @SerializedName(SERIALIZED_NAME_NOT_AFTER) + @javax.annotation.Nonnull + private TrfFtString notAfter; + + public RfidValidity() {} + + public RfidValidity notBefore(@javax.annotation.Nonnull TrfFtString notBefore) { + this.notBefore = notBefore; + return this; + } + + /** + * Get notBefore + * + * @return notBefore + */ + @javax.annotation.Nonnull + public TrfFtString getNotBefore() { + return notBefore; + } + + public void setNotBefore(@javax.annotation.Nonnull TrfFtString notBefore) { + this.notBefore = notBefore; + } + + public RfidValidity notAfter(@javax.annotation.Nonnull TrfFtString notAfter) { + this.notAfter = notAfter; + return this; + } + + /** + * Get notAfter + * + * @return notAfter + */ + @javax.annotation.Nonnull + public TrfFtString getNotAfter() { + return notAfter; + } + + public void setNotAfter(@javax.annotation.Nonnull TrfFtString notAfter) { + this.notAfter = notAfter; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidValidity rfidValidity = (RfidValidity) o; + return Objects.equals(this.notBefore, rfidValidity.notBefore) + && Objects.equals(this.notAfter, rfidValidity.notAfter); + } + + @Override + public int hashCode() { + return Objects.hash(notBefore, notAfter); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidValidity {\n"); + sb.append(" notBefore: ").append(toIndentedString(notBefore)).append("\n"); + sb.append(" notAfter: ").append(toIndentedString(notAfter)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("NotBefore"); + openapiFields.add("NotAfter"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("NotBefore"); + openapiRequiredFields.add("NotAfter"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidValidity + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidValidity.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidValidity is not found in the empty JSON string", + RfidValidity.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidValidity.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidValidity` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidValidity.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `NotBefore` + TrfFtString.validateJsonElement(jsonObj.get("NotBefore")); + // validate the required field `NotAfter` + TrfFtString.validateJsonElement(jsonObj.get("NotAfter")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidValidity.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidValidity' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidValidity.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidValidity value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidValidity read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidValidity given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidValidity + * @throws IOException if the JSON string is invalid with respect to RfidValidity + */ + public static RfidValidity fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidValidity.class); + } + + /** + * Convert an instance of RfidValidity to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Scenario.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Scenario.java old mode 100755 new mode 100644 index 17ad87c1..fe8904fa --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Scenario.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Scenario.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,65 +12,116 @@ package com.regula.documentreader.webclient.model; -public class Scenario { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Document processing scenario */ +@JsonAdapter(Scenario.Adapter.class) +public enum Scenario { /** Processing scenario for obtaining MRZ data */ - public static final String MRZ = "Mrz"; + MRZ("Mrz"), /** Processing scenario for obtaining barcode data */ - public static final String BARCODE = "Barcode"; + BARCODE("Barcode"), /** Processing scenario for detecting document boundaries */ - public static final String LOCATE = "Locate"; + LOCATE("Locate"), /** Processing scenario for obtaining visual zone OCR results */ - public static final String OCR = "Ocr"; + OCR("Ocr"), /** Processing scenario for document type recognition */ - public static final String DOCTYPE = "DocType"; + DOCTYPE("DocType"), /** Processing scenario for obtaining MRZ and/or barcode data */ - public static final String MRZ_OR_BARCODE = "MrzOrBarcode"; + MRZ_OR_BARCODE("MrzOrBarcode"), /** Processing scenario for detecting document boundaries and/or obtaining MRZ data */ - public static final String MRZ_OR_LOCATE = "MrzOrLocate"; + MRZ_OR_LOCATE("MrzOrLocate"), /** Processing scenario for detecting document boundaries and obtaining MRZ data */ - public static final String MRZ_AND_LOCATE = "MrzAndLocate"; + MRZ_AND_LOCATE("MrzAndLocate"), /** Processing scenario for detecting the document boundaries and obtaining barcode data */ - public static final String BARCODE_AND_LOCATE = "BarcodeAndLocate"; + BARCODE_AND_LOCATE("BarcodeAndLocate"), /** Processing scenario for obtaining MRZ data or visual zone OCR results */ - public static final String MRZ_OR_OCR = "MrzOrOcr"; + MRZ_OR_OCR("MrzOrOcr"), /** Processing scenario for obtaining MRZ or barcode or visual zone OCR results */ - public static final String MRZ_OR_BARCODE_OR_OCR = "MrzOrBarcodeOrOcr"; + MRZ_OR_BARCODE_OR_OCR("MrzOrBarcodeOrOcr"), /** * Processing scenario for detecting document boundaries and obtaining MRZ data or visual zone OCR * results */ - public static final String LOCATE_VISUAL_AND_MRZ_OR_OCR = "LocateVisual_And_MrzOrOcr"; + LOCATE_VISUAL_AND_MRZ_OR_OCR("LocateVisual_And_MrzOrOcr"), /** Processing scenario for obtaining all document data */ - public static final String FULL_PROCESS = "FullProcess"; + FULL_PROCESS("FullProcess"), /** Processing scenario for obtaining all document data and document authentication */ - public static final String FULL_AUTH = "FullAuth"; + FULL_AUTH("FullAuth"), /** Processing scenario for obtaining data from registration stamps */ - public static final String RUS_STAMP = "RusStamp"; + RUS_STAMP("RusStamp"), /** Processing scenario for obtaining OCR results of any image */ - public static final String OCR_FREE = "OcrFree"; + OCR_FREE("OcrFree"), /** Processing scenario for obtaining bank card data */ - public static final String CREDIT_CARD = "CreditCard"; + CREDIT_CARD("CreditCard"), /** Scenario for obtaining an original image without any processing */ - public static final String CAPTURE = "Capture"; + CAPTURE("Capture"), /** Processing scenario for Digital Travel Credentials (DTC-VC) data processing */ - public static final String DTC = "DTC"; + DTC("DTC"); + + private String value; + + Scenario(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static Scenario fromValue(String value) { + for (Scenario b : Scenario.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final Scenario enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public Scenario read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return Scenario.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + Scenario.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureResult.java index bb3d26b6..5deca51e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,42 +12,67 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** SecurityFeatureResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class SecurityFeatureResult extends AuthenticityCheckResultItem { public static final String SERIALIZED_NAME_ELEMENT_TYPE = "ElementType"; @SerializedName(SERIALIZED_NAME_ELEMENT_TYPE) - private Integer elementType; + @javax.annotation.Nonnull + private SecurityFeatureType elementType; public static final String SERIALIZED_NAME_ELEMENT_RECT = "ElementRect"; @SerializedName(SERIALIZED_NAME_ELEMENT_RECT) + @javax.annotation.Nonnull private RectangleCoordinates elementRect; public static final String SERIALIZED_NAME_VISIBILITY = "Visibility"; @SerializedName(SERIALIZED_NAME_VISIBILITY) - private Integer visibility; + @javax.annotation.Nonnull + private Visibility visibility; public static final String SERIALIZED_NAME_CRITICAL_FLAG = "CriticalFlag"; @SerializedName(SERIALIZED_NAME_CRITICAL_FLAG) - private Integer criticalFlag; + @javax.annotation.Nonnull + private Critical criticalFlag; public static final String SERIALIZED_NAME_AREA_LIST = "AreaList"; @SerializedName(SERIALIZED_NAME_AREA_LIST) + @javax.annotation.Nullable private AreaContainer areaList; public static final String SERIALIZED_NAME_RESERVED2 = "Reserved2"; @SerializedName(SERIALIZED_NAME_RESERVED2) + @javax.annotation.Nullable private Integer reserved2; - public SecurityFeatureResult withElementType(Integer elementType) { + public SecurityFeatureResult() {} + + public SecurityFeatureResult elementType( + @javax.annotation.Nonnull SecurityFeatureType elementType) { this.elementType = elementType; return this; } @@ -57,16 +82,17 @@ public SecurityFeatureResult withElementType(Integer elementType) { * * @return elementType */ - @javax.annotation.Nullable - public Integer getElementType() { + @javax.annotation.Nonnull + public SecurityFeatureType getElementType() { return elementType; } - public void setElementType(Integer elementType) { + public void setElementType(@javax.annotation.Nonnull SecurityFeatureType elementType) { this.elementType = elementType; } - public SecurityFeatureResult withElementRect(RectangleCoordinates elementRect) { + public SecurityFeatureResult elementRect( + @javax.annotation.Nonnull RectangleCoordinates elementRect) { this.elementRect = elementRect; return this; } @@ -76,16 +102,16 @@ public SecurityFeatureResult withElementRect(RectangleCoordinates elementRect) { * * @return elementRect */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public RectangleCoordinates getElementRect() { return elementRect; } - public void setElementRect(RectangleCoordinates elementRect) { + public void setElementRect(@javax.annotation.Nonnull RectangleCoordinates elementRect) { this.elementRect = elementRect; } - public SecurityFeatureResult withVisibility(Integer visibility) { + public SecurityFeatureResult visibility(@javax.annotation.Nonnull Visibility visibility) { this.visibility = visibility; return this; } @@ -95,16 +121,16 @@ public SecurityFeatureResult withVisibility(Integer visibility) { * * @return visibility */ - @javax.annotation.Nullable - public Integer getVisibility() { + @javax.annotation.Nonnull + public Visibility getVisibility() { return visibility; } - public void setVisibility(Integer visibility) { + public void setVisibility(@javax.annotation.Nonnull Visibility visibility) { this.visibility = visibility; } - public SecurityFeatureResult withCriticalFlag(Integer criticalFlag) { + public SecurityFeatureResult criticalFlag(@javax.annotation.Nonnull Critical criticalFlag) { this.criticalFlag = criticalFlag; return this; } @@ -114,16 +140,16 @@ public SecurityFeatureResult withCriticalFlag(Integer criticalFlag) { * * @return criticalFlag */ - @javax.annotation.Nullable - public Integer getCriticalFlag() { + @javax.annotation.Nonnull + public Critical getCriticalFlag() { return criticalFlag; } - public void setCriticalFlag(Integer criticalFlag) { + public void setCriticalFlag(@javax.annotation.Nonnull Critical criticalFlag) { this.criticalFlag = criticalFlag; } - public SecurityFeatureResult withAreaList(AreaContainer areaList) { + public SecurityFeatureResult areaList(@javax.annotation.Nullable AreaContainer areaList) { this.areaList = areaList; return this; } @@ -138,11 +164,11 @@ public AreaContainer getAreaList() { return areaList; } - public void setAreaList(AreaContainer areaList) { + public void setAreaList(@javax.annotation.Nullable AreaContainer areaList) { this.areaList = areaList; } - public SecurityFeatureResult withReserved2(Integer reserved2) { + public SecurityFeatureResult reserved2(@javax.annotation.Nullable Integer reserved2) { this.reserved2 = reserved2; return this; } @@ -157,12 +183,12 @@ public Integer getReserved2() { return reserved2; } - public void setReserved2(Integer reserved2) { + public void setReserved2(@javax.annotation.Nullable Integer reserved2) { this.reserved2 = reserved2; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -203,10 +229,124 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("ElementResult"); + openapiFields.add("ElementDiagnose"); + openapiFields.add("PercentValue"); + openapiFields.add("ElementType"); + openapiFields.add("ElementRect"); + openapiFields.add("Visibility"); + openapiFields.add("CriticalFlag"); + openapiFields.add("AreaList"); + openapiFields.add("Reserved2"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ElementType"); + openapiRequiredFields.add("ElementRect"); + openapiRequiredFields.add("Visibility"); + openapiRequiredFields.add("CriticalFlag"); + openapiRequiredFields.add("Type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SecurityFeatureResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SecurityFeatureResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in SecurityFeatureResult is not found in the empty JSON string", + SecurityFeatureResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SecurityFeatureResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `SecurityFeatureResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SecurityFeatureResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SecurityFeatureResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SecurityFeatureResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(SecurityFeatureResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, SecurityFeatureResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SecurityFeatureResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of SecurityFeatureResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of SecurityFeatureResult + * @throws IOException if the JSON string is invalid with respect to SecurityFeatureResult + */ + public static SecurityFeatureResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SecurityFeatureResult.class); + } + + /** + * Convert an instance of SecurityFeatureResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureType.java index 39c43acd..ef9b802e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureType.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,164 +12,219 @@ package com.regula.documentreader.webclient.model; -public class SecurityFeatureType { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** + * Enumeration contains identifiers determining type of features for a document authenticity checks: + * https://docs.regulaforensics.com/develop/doc-reader-sdk/web-service/development/enums/security-feature-type/ + */ +@JsonAdapter(SecurityFeatureType.Adapter.class) +public enum SecurityFeatureType { /** Blank element */ - public static final int BLANK = 0; + BLANK(0), /** Personalization element */ - public static final int FILL = 1; + FILL(1), /** Photo */ - public static final int PHOTO = 2; + PHOTO(2), /** MRZ */ - public static final int MRZ = 3; + MRZ(3), /** False luminescence */ - public static final int FALSE_LUMINESCENCE = 4; + FALSE_LUMINESCENCE(4), /** Hologram (static) */ - public static final int HOLO_SIMPLE = 5; + HOLO_SIMPLE(5), /** Hologram (static verify) */ - public static final int HOLO_VERIFY_STATIC = 6; + HOLO_VERIFY_STATIC(6), /** Hologram (static verify multiple) */ - public static final int HOLO_VERIFY_MULTI_STATIC = 7; + HOLO_VERIFY_MULTI_STATIC(7), /** Hologram (dynamic verify) */ - public static final int HOLO_VERIFY_DYNAMIC = 8; + HOLO_VERIFY_DYNAMIC(8), /** Pattern (non-interrupted) */ - public static final int PATTERN_NOT_INTERRUPTED = 9; + PATTERN_NOT_INTERRUPTED(9), /** Pattern (non-shifted) */ - public static final int PATTERN_NOT_SHIFTED = 10; + PATTERN_NOT_SHIFTED(10), /** Pattern (same colors) */ - public static final int PATTERN_SAME_COLORS = 11; + PATTERN_SAME_COLORS(11), /** Pattern (IR invisible) */ - public static final int PATTERN_IR_INVISIBLE = 12; + PATTERN_IR_INVISIBLE(12), /** Photo size */ - public static final int PHOTO_SIZE_CHECK = 13; + PHOTO_SIZE_CHECK(13), /** Main vs ghost portrait comparison */ - public static final int PORTRAIT_COMPARISON_VS_GHOST = 14; + PORTRAIT_COMPARISON_VS_GHOST(14), /** Main vs RFID portrait comparison */ - public static final int PORTRAIT_COMPARISON_VS_RFID = 15; + PORTRAIT_COMPARISON_VS_RFID(15), /** Main vs other page portrait comparison */ - public static final int PORTRAIT_COMPARISON_VS_VISUAL = 16; + PORTRAIT_COMPARISON_VS_VISUAL(16), /** Barcode */ - public static final int BARCODE = 17; + BARCODE(17), /** Pattern (different line thickness) */ - public static final int PATTERN_DIFFERENT_LINES_THICKNESS = 18; + PATTERN_DIFFERENT_LINES_THICKNESS(18), /** Main vs live camera portrait comparison */ - public static final int PORTRAIT_COMPARISON_VS_CAMERA = 19; + PORTRAIT_COMPARISON_VS_CAMERA(19), /** RFID vs live camera portrait comparison */ - public static final int PORTRAIT_COMPARISON_RFID_VS_CAMERA = 20; + PORTRAIT_COMPARISON_RFID_VS_CAMERA(20), /** Ghost photo */ - public static final int GHOST_PHOTO = 21; + GHOST_PHOTO(21), /** Clear ghost photo */ - public static final int CLEAR_GHOST_PHOTO = 22; + CLEAR_GHOST_PHOTO(22), /** Invisible object */ - public static final int INVISIBLE_OBJECT = 23; + INVISIBLE_OBJECT(23), /** Low contrast object */ - public static final int LOW_CONTRAST_OBJECT = 24; + LOW_CONTRAST_OBJECT(24), /** Photo color check */ - public static final int PHOTO_COLOR = 25; + PHOTO_COLOR(25), /** Photo squareness */ - public static final int PHOTO_SHAPE = 26; + PHOTO_SHAPE(26), /** Photo corners shape */ - public static final int PHOTO_CORNERS = 27; + PHOTO_CORNERS(27), /** OCR */ - public static final int OCR = 28; + OCR(28), /** External vs main portrait comparison */ - public static final int PORTRAIT_COMPARISON_EXT_VS_VISUAL = 29; + PORTRAIT_COMPARISON_EXT_VS_VISUAL(29), /** External vs RFID portrait comparison */ - public static final int PORTRAIT_COMPARISON_EXT_VS_RFID = 30; + PORTRAIT_COMPARISON_EXT_VS_RFID(30), /** External vs live camera portrait comparison */ - public static final int PORTRAIT_COMPARISON_EXT_VS_CAMERA = 31; + PORTRAIT_COMPARISON_EXT_VS_CAMERA(31), /** Portrait Depth */ - public static final int LIVENESS_DEPTH = 32; + LIVENESS_DEPTH(32), /** Micro text */ - public static final int MICRO_TEXT = 33; + MICRO_TEXT(33), /** Fluorescent Object */ - public static final int FLUORESCENT_OBJECT = 34; + FLUORESCENT_OBJECT(34), /** Facial landmarks check */ - public static final int LANDMARK_CHECK = 35; + LANDMARK_CHECK(35), /** Facial image presence */ - public static final int FACE_PRESENCE = 36; + FACE_PRESENCE(36), /** Facial image absence */ - public static final int FACE_ABSENCE = 38; + FACE_ABSENCE(38), /** Liveness screen capture. Deprecated. LIVENESS_ELECTRONIC_DEVICE is used instead. */ - public static final int LIVENESS_SCREEN_CAPTURE = 39; + LIVENESS_SCREEN_CAPTURE(39), /** Liveness electronic device */ - public static final int LIVENESS_ELECTRONIC_DEVICE = 40; + LIVENESS_ELECTRONIC_DEVICE(40), /** Liveness OVI */ - public static final int LIVENESS_OVI = 41; + LIVENESS_OVI(41), /** Barcode size check */ - public static final int BARCODE_SIZE_CHECK = 42; + BARCODE_SIZE_CHECK(42), /** LASINK */ - public static final int LASINK = 43; + LASINK(43), /** Liveness MLI */ - public static final int LIVENESS_MLI = 44; + LIVENESS_MLI(44), /** Liveness barcode background */ - public static final int LIVENESS_BARCODE_BACKGROUND = 45; + LIVENESS_BARCODE_BACKGROUND(45), /** Visual zone portrait image vs. image from barcode */ - public static final int PORTRAIT_COMPARISON_VS_BARCODE = 46; + PORTRAIT_COMPARISON_VS_BARCODE(46), /** Image from barcode vs. image from RFID */ - public static final int PORTRAIT_COMPARISON_RFID_VS_BARCODE = 47; + PORTRAIT_COMPARISON_RFID_VS_BARCODE(47), /** Image from barcode vs. external source image */ - public static final int PORTRAIT_COMPARISON_EXT_VS_BARCODE = 48; + PORTRAIT_COMPARISON_EXT_VS_BARCODE(48), /** Image from barcode vs. photo from camera */ - public static final int PORTRAIT_COMPARISON_BARCODE_VS_CAMERA = 49; + PORTRAIT_COMPARISON_BARCODE_VS_CAMERA(49), /** Digital signature check */ - public static final int CHECK_DIGITAL_SIGNATURE = 50; + CHECK_DIGITAL_SIGNATURE(50), /** Contact chip check */ - public static final int CONTACT_CHIP_CLASSIFICATION = 51; + CONTACT_CHIP_CLASSIFICATION(51), /** Head position check */ - public static final int HEAD_POSITION_CHECK = 52; + HEAD_POSITION_CHECK(52), /** Black and white copy check */ - public static final int LIVENESS_BLACK_AND_WHITE_COPY_CHECK = 53; + LIVENESS_BLACK_AND_WHITE_COPY_CHECK(53); + + private Integer value; + + SecurityFeatureType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static SecurityFeatureType fromValue(Integer value) { + for (SecurityFeatureType b : SecurityFeatureType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final SecurityFeatureType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public SecurityFeatureType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return SecurityFeatureType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + SecurityFeatureType.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Source.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Source.java old mode 100755 new mode 100644 index 870d0eb6..8d4903ed --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Source.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Source.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,20 +12,74 @@ package com.regula.documentreader.webclient.model; -public class Source { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Document data sources */ +@JsonAdapter(Source.Adapter.class) +public enum Source { /** Machine readable zone (MRZ) */ - public static final String MRZ = "MRZ"; + MRZ("MRZ"), /** Visual zone */ - public static final String VISUAL = "VISUAL"; + VISUAL("VISUAL"), /** Barcode */ - public static final String BARCODE = "BARCODE"; + BARCODE("BARCODE"), /** RFID */ - public static final String RFID = "RFID"; + RFID("RFID"), /** Magnetic */ - public static final String MAGNETIC = "MAGNETIC"; + MAGNETIC("MAGNETIC"), + + /** External */ + EXTERNAL("EXTERNAL"); + + private String value; + + Source(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static Source fromValue(String value) { + for (Source b : Source.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final Source enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public Source read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return Source.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + Source.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SourceValidity.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SourceValidity.java old mode 100755 new mode 100644 index a517a1e0..263b0197 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SourceValidity.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SourceValidity.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,22 +12,42 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** SourceValidity */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class SourceValidity { public static final String SERIALIZED_NAME_SOURCE = "source"; @SerializedName(SERIALIZED_NAME_SOURCE) - private String source; + @javax.annotation.Nonnull + private Source source; public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) - private Integer status; + @javax.annotation.Nonnull + private CheckResult status; - public SourceValidity withSource(String source) { + public SourceValidity() {} + + public SourceValidity source(@javax.annotation.Nonnull Source source) { this.source = source; return this; } @@ -37,15 +57,16 @@ public SourceValidity withSource(String source) { * * @return source */ - public String getSource() { + @javax.annotation.Nonnull + public Source getSource() { return source; } - public void setSource(String source) { + public void setSource(@javax.annotation.Nonnull Source source) { this.source = source; } - public SourceValidity withStatus(Integer status) { + public SourceValidity status(@javax.annotation.Nonnull CheckResult status) { this.status = status; return this; } @@ -55,16 +76,17 @@ public SourceValidity withStatus(Integer status) { * * @return status */ - public Integer getStatus() { + @javax.annotation.Nonnull + public CheckResult getStatus() { return status; } - public void setStatus(Integer status) { + public void setStatus(@javax.annotation.Nonnull CheckResult status) { this.status = status; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -94,10 +116,118 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("source"); + openapiFields.add("status"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("source"); + openapiRequiredFields.add("status"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SourceValidity + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SourceValidity.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in SourceValidity is not found in the empty JSON string", + SourceValidity.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SourceValidity.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `SourceValidity` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SourceValidity.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `source` + Source.validateJsonElement(jsonObj.get("source")); + // validate the required field `status` + CheckResult.validateJsonElement(jsonObj.get("status")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SourceValidity.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SourceValidity' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(SourceValidity.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, SourceValidity value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SourceValidity read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of SourceValidity given an JSON string + * + * @param jsonString JSON string + * @return An instance of SourceValidity + * @throws IOException if the JSON string is invalid with respect to SourceValidity + */ + public static SourceValidity fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SourceValidity.class); + } + + /** + * Convert an instance of SourceValidity to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Status.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Status.java old mode 100755 new mode 100644 index 7c0f7ab9..d24168da --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Status.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Status.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,47 +12,72 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Status */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class Status { public static final String SERIALIZED_NAME_OVERALL_STATUS = "overallStatus"; @SerializedName(SERIALIZED_NAME_OVERALL_STATUS) - private Integer overallStatus; + @javax.annotation.Nonnull + private CheckResult overallStatus; public static final String SERIALIZED_NAME_OPTICAL = "optical"; @SerializedName(SERIALIZED_NAME_OPTICAL) - private Integer optical; + @javax.annotation.Nonnull + private CheckResult optical; public static final String SERIALIZED_NAME_PORTRAIT = "portrait"; @SerializedName(SERIALIZED_NAME_PORTRAIT) - private Integer portrait; + @javax.annotation.Nonnull + private CheckResult portrait; public static final String SERIALIZED_NAME_RFID = "rfid"; @SerializedName(SERIALIZED_NAME_RFID) - private Integer rfid; + @javax.annotation.Nonnull + private CheckResult rfid; public static final String SERIALIZED_NAME_STOP_LIST = "stopList"; @SerializedName(SERIALIZED_NAME_STOP_LIST) - private Integer stopList; + @javax.annotation.Nonnull + private CheckResult stopList; public static final String SERIALIZED_NAME_DETAILS_R_F_I_D = "detailsRFID"; @SerializedName(SERIALIZED_NAME_DETAILS_R_F_I_D) + @javax.annotation.Nullable private DetailsRFID detailsRFID; public static final String SERIALIZED_NAME_DETAILS_OPTICAL = "detailsOptical"; @SerializedName(SERIALIZED_NAME_DETAILS_OPTICAL) + @javax.annotation.Nonnull private DetailsOptical detailsOptical; - public Status withOverallStatus(Integer overallStatus) { + public Status() {} + + public Status overallStatus(@javax.annotation.Nonnull CheckResult overallStatus) { this.overallStatus = overallStatus; return this; } @@ -62,15 +87,16 @@ public Status withOverallStatus(Integer overallStatus) { * * @return overallStatus */ - public Integer getOverallStatus() { + @javax.annotation.Nonnull + public CheckResult getOverallStatus() { return overallStatus; } - public void setOverallStatus(Integer overallStatus) { + public void setOverallStatus(@javax.annotation.Nonnull CheckResult overallStatus) { this.overallStatus = overallStatus; } - public Status withOptical(Integer optical) { + public Status optical(@javax.annotation.Nonnull CheckResult optical) { this.optical = optical; return this; } @@ -80,15 +106,16 @@ public Status withOptical(Integer optical) { * * @return optical */ - public Integer getOptical() { + @javax.annotation.Nonnull + public CheckResult getOptical() { return optical; } - public void setOptical(Integer optical) { + public void setOptical(@javax.annotation.Nonnull CheckResult optical) { this.optical = optical; } - public Status withPortrait(Integer portrait) { + public Status portrait(@javax.annotation.Nonnull CheckResult portrait) { this.portrait = portrait; return this; } @@ -98,16 +125,16 @@ public Status withPortrait(Integer portrait) { * * @return portrait */ - @javax.annotation.Nullable - public Integer getPortrait() { + @javax.annotation.Nonnull + public CheckResult getPortrait() { return portrait; } - public void setPortrait(Integer portrait) { + public void setPortrait(@javax.annotation.Nonnull CheckResult portrait) { this.portrait = portrait; } - public Status withRfid(Integer rfid) { + public Status rfid(@javax.annotation.Nonnull CheckResult rfid) { this.rfid = rfid; return this; } @@ -117,16 +144,16 @@ public Status withRfid(Integer rfid) { * * @return rfid */ - @javax.annotation.Nullable - public Integer getRfid() { + @javax.annotation.Nonnull + public CheckResult getRfid() { return rfid; } - public void setRfid(Integer rfid) { + public void setRfid(@javax.annotation.Nonnull CheckResult rfid) { this.rfid = rfid; } - public Status withStopList(Integer stopList) { + public Status stopList(@javax.annotation.Nonnull CheckResult stopList) { this.stopList = stopList; return this; } @@ -136,16 +163,16 @@ public Status withStopList(Integer stopList) { * * @return stopList */ - @javax.annotation.Nullable - public Integer getStopList() { + @javax.annotation.Nonnull + public CheckResult getStopList() { return stopList; } - public void setStopList(Integer stopList) { + public void setStopList(@javax.annotation.Nonnull CheckResult stopList) { this.stopList = stopList; } - public Status withDetailsRFID(DetailsRFID detailsRFID) { + public Status detailsRFID(@javax.annotation.Nullable DetailsRFID detailsRFID) { this.detailsRFID = detailsRFID; return this; } @@ -160,11 +187,11 @@ public DetailsRFID getDetailsRFID() { return detailsRFID; } - public void setDetailsRFID(DetailsRFID detailsRFID) { + public void setDetailsRFID(@javax.annotation.Nullable DetailsRFID detailsRFID) { this.detailsRFID = detailsRFID; } - public Status withDetailsOptical(DetailsOptical detailsOptical) { + public Status detailsOptical(@javax.annotation.Nonnull DetailsOptical detailsOptical) { this.detailsOptical = detailsOptical; return this; } @@ -174,16 +201,17 @@ public Status withDetailsOptical(DetailsOptical detailsOptical) { * * @return detailsOptical */ + @javax.annotation.Nonnull public DetailsOptical getDetailsOptical() { return detailsOptical; } - public void setDetailsOptical(DetailsOptical detailsOptical) { + public void setDetailsOptical(@javax.annotation.Nonnull DetailsOptical detailsOptical) { this.detailsOptical = detailsOptical; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -224,10 +252,138 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("overallStatus"); + openapiFields.add("optical"); + openapiFields.add("portrait"); + openapiFields.add("rfid"); + openapiFields.add("stopList"); + openapiFields.add("detailsRFID"); + openapiFields.add("detailsOptical"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("overallStatus"); + openapiRequiredFields.add("optical"); + openapiRequiredFields.add("portrait"); + openapiRequiredFields.add("rfid"); + openapiRequiredFields.add("stopList"); + openapiRequiredFields.add("detailsOptical"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to Status + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!Status.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in Status is not found in the empty JSON string", + Status.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!Status.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `Status` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : Status.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `overallStatus` + CheckResult.validateJsonElement(jsonObj.get("overallStatus")); + // validate the required field `optical` + CheckResult.validateJsonElement(jsonObj.get("optical")); + // validate the required field `portrait` + CheckResult.validateJsonElement(jsonObj.get("portrait")); + // validate the required field `rfid` + CheckResult.validateJsonElement(jsonObj.get("rfid")); + // validate the required field `stopList` + CheckResult.validateJsonElement(jsonObj.get("stopList")); + // validate the optional field `detailsRFID` + if (jsonObj.get("detailsRFID") != null && !jsonObj.get("detailsRFID").isJsonNull()) { + DetailsRFID.validateJsonElement(jsonObj.get("detailsRFID")); + } + // validate the required field `detailsOptical` + DetailsOptical.validateJsonElement(jsonObj.get("detailsOptical")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!Status.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'Status' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(Status.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, Status value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public Status read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of Status given an JSON string + * + * @param jsonString JSON string + * @return An instance of Status + * @throws IOException if the JSON string is invalid with respect to Status + */ + public static Status fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, Status.class); + } + + /** + * Convert an instance of Status to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/StatusResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/StatusResult.java old mode 100755 new mode 100644 index ef0b7464..279fb4f7 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/StatusResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/StatusResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,36 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** StatusResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class StatusResult extends ResultItem { public static final String SERIALIZED_NAME_STATUS = "Status"; @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nonnull private Status status; - public StatusResult withStatus(Status status) { + public StatusResult() {} + + public StatusResult status(@javax.annotation.Nonnull Status status) { this.status = status; return this; } @@ -32,16 +51,17 @@ public StatusResult withStatus(Status status) { * * @return status */ + @javax.annotation.Nonnull public Status getStatus() { return status; } - public void setStatus(Status status) { + public void setStatus(@javax.annotation.Nonnull Status status) { this.status = status; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -70,10 +90,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("Status"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Status"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in StatusResult is not found in the empty JSON string", + StatusResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `StatusResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(StatusResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of StatusResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusResult + * @throws IOException if the JSON string is invalid with respect to StatusResult + */ + public static StatusResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusResult.class); + } + + /** + * Convert an instance of StatusResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/StringItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/StringItem.java new file mode 100644 index 00000000..e945000d --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/StringItem.java @@ -0,0 +1,739 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** StringItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class StringItem { + public static final String SERIALIZED_NAME_A_L_I_G_N_M_E_N_T_S_Y_M_B_O_L_S_I_N_S_T_R_I_N_G = + "ALIGNMENT_SYMBOLS_IN_STRING"; + + @SerializedName(SERIALIZED_NAME_A_L_I_G_N_M_E_N_T_S_Y_M_B_O_L_S_I_N_S_T_R_I_N_G) + @javax.annotation.Nonnull + private Integer ALIGNMENT_SYMBOLS_IN_STRING; + + public static final String SERIALIZED_NAME_C_H_E_C_K_S_U_M_S = "CHECK_SUMS"; + + @SerializedName(SERIALIZED_NAME_C_H_E_C_K_S_U_M_S) + @javax.annotation.Nonnull + private Integer CHECK_SUMS; + + public static final String SERIALIZED_NAME_ERROR_P_O_S_I_T_I_O_N = "ErrorPOSITION"; + + @SerializedName(SERIALIZED_NAME_ERROR_P_O_S_I_T_I_O_N) + @javax.annotation.Nonnull + private ErrorCoordinates errorPOSITION; + + public static final String SERIALIZED_NAME_FIELD_COUNT = "FieldCount"; + + @SerializedName(SERIALIZED_NAME_FIELD_COUNT) + @javax.annotation.Nonnull + private Integer fieldCount; + + public static final String SERIALIZED_NAME_FIELDS = "Fields"; + + @SerializedName(SERIALIZED_NAME_FIELDS) + @javax.annotation.Nonnull + private List fields; + + public static final String SERIALIZED_NAME_S_T_R_I_N_G_S_D_I_S_T_A_N_C_E = "STRINGS_DISTANCE"; + + @SerializedName(SERIALIZED_NAME_S_T_R_I_N_G_S_D_I_S_T_A_N_C_E) + @javax.annotation.Nonnull + private Integer STRINGS_DISTANCE; + + public static final String SERIALIZED_NAME_S_T_R_I_N_G_S_I_N_T_E_R_V_A_L = "STRINGS_INTERVAL"; + + @SerializedName(SERIALIZED_NAME_S_T_R_I_N_G_S_I_N_T_E_R_V_A_L) + @javax.annotation.Nonnull + private Integer STRINGS_INTERVAL; + + public static final String SERIALIZED_NAME_S_T_R_I_N_G_F_I_L_L_I_N_G = "STRING_FILLING"; + + @SerializedName(SERIALIZED_NAME_S_T_R_I_N_G_F_I_L_L_I_N_G) + @javax.annotation.Nonnull + private Integer STRING_FILLING; + + public static final String SERIALIZED_NAME_S_T_R_I_N_G_P_O_S_I_T_I_O_N = "STRING_POSITION"; + + @SerializedName(SERIALIZED_NAME_S_T_R_I_N_G_P_O_S_I_T_I_O_N) + @javax.annotation.Nonnull + private Integer STRING_POSITION; + + public static final String SERIALIZED_NAME_S_Y_M_B_O_L_S_P_A_R_A_M = "SYMBOLS_PARAM"; + + @SerializedName(SERIALIZED_NAME_S_Y_M_B_O_L_S_P_A_R_A_M) + @javax.annotation.Nonnull + private Integer SYMBOLS_PARAM; + + public static final String SERIALIZED_NAME_SIZE_ERROR_A_L_I_G_N_M_E_N_T = "SizeError_ALIGNMENT"; + + @SerializedName(SERIALIZED_NAME_SIZE_ERROR_A_L_I_G_N_M_E_N_T) + @javax.annotation.Nonnull + private Integer sizeErrorALIGNMENT; + + public static final String SERIALIZED_NAME_SIZE_ERROR_D_I_S_T_A_N_C_E = "SizeError_DISTANCE"; + + @SerializedName(SERIALIZED_NAME_SIZE_ERROR_D_I_S_T_A_N_C_E) + @javax.annotation.Nonnull + private Integer sizeErrorDISTANCE; + + public static final String SERIALIZED_NAME_SIZE_ERROR_I_N_T_E_R_V_A_L = "SizeError_INTERVAL"; + + @SerializedName(SERIALIZED_NAME_SIZE_ERROR_I_N_T_E_R_V_A_L) + @javax.annotation.Nonnull + private Integer sizeErrorINTERVAL; + + public static final String SERIALIZED_NAME_STRING_ANGLE = "StringAngle"; + + @SerializedName(SERIALIZED_NAME_STRING_ANGLE) + @javax.annotation.Nonnull + private Integer stringAngle; + + public static final String SERIALIZED_NAME_STRING_BORDERS = "StringBorders"; + + @SerializedName(SERIALIZED_NAME_STRING_BORDERS) + @javax.annotation.Nonnull + private RectangleCoordinates stringBorders; + + public static final String SERIALIZED_NAME_SYMBOLS_COUNT = "SymbolsCount"; + + @SerializedName(SERIALIZED_NAME_SYMBOLS_COUNT) + @javax.annotation.Nonnull + private Integer symbolsCount; + + public static final String SERIALIZED_NAME_SYMBOLS_ESTIMATIONS = "SymbolsEstimations"; + + @SerializedName(SERIALIZED_NAME_SYMBOLS_ESTIMATIONS) + @javax.annotation.Nonnull + private List symbolsEstimations; + + public StringItem() {} + + public StringItem ALIGNMENT_SYMBOLS_IN_STRING( + @javax.annotation.Nonnull Integer ALIGNMENT_SYMBOLS_IN_STRING) { + this.ALIGNMENT_SYMBOLS_IN_STRING = ALIGNMENT_SYMBOLS_IN_STRING; + return this; + } + + /** + * Get ALIGNMENT_SYMBOLS_IN_STRING + * + * @return ALIGNMENT_SYMBOLS_IN_STRING + */ + @javax.annotation.Nonnull + public Integer getALIGNMENTSYMBOLSINSTRING() { + return ALIGNMENT_SYMBOLS_IN_STRING; + } + + public void setALIGNMENTSYMBOLSINSTRING( + @javax.annotation.Nonnull Integer ALIGNMENT_SYMBOLS_IN_STRING) { + this.ALIGNMENT_SYMBOLS_IN_STRING = ALIGNMENT_SYMBOLS_IN_STRING; + } + + public StringItem CHECK_SUMS(@javax.annotation.Nonnull Integer CHECK_SUMS) { + this.CHECK_SUMS = CHECK_SUMS; + return this; + } + + /** + * Get CHECK_SUMS + * + * @return CHECK_SUMS + */ + @javax.annotation.Nonnull + public Integer getCHECKSUMS() { + return CHECK_SUMS; + } + + public void setCHECKSUMS(@javax.annotation.Nonnull Integer CHECK_SUMS) { + this.CHECK_SUMS = CHECK_SUMS; + } + + public StringItem errorPOSITION(@javax.annotation.Nonnull ErrorCoordinates errorPOSITION) { + this.errorPOSITION = errorPOSITION; + return this; + } + + /** + * Get errorPOSITION + * + * @return errorPOSITION + */ + @javax.annotation.Nonnull + public ErrorCoordinates getErrorPOSITION() { + return errorPOSITION; + } + + public void setErrorPOSITION(@javax.annotation.Nonnull ErrorCoordinates errorPOSITION) { + this.errorPOSITION = errorPOSITION; + } + + public StringItem fieldCount(@javax.annotation.Nonnull Integer fieldCount) { + this.fieldCount = fieldCount; + return this; + } + + /** + * Get fieldCount + * + * @return fieldCount + */ + @javax.annotation.Nonnull + public Integer getFieldCount() { + return fieldCount; + } + + public void setFieldCount(@javax.annotation.Nonnull Integer fieldCount) { + this.fieldCount = fieldCount; + } + + public StringItem fields(@javax.annotation.Nonnull List fields) { + this.fields = fields; + return this; + } + + public StringItem addFieldsItem(FieldItem fieldsItem) { + if (this.fields == null) { + this.fields = new ArrayList<>(); + } + this.fields.add(fieldsItem); + return this; + } + + /** + * Get fields + * + * @return fields + */ + @javax.annotation.Nonnull + public List getFields() { + return fields; + } + + public void setFields(@javax.annotation.Nonnull List fields) { + this.fields = fields; + } + + public StringItem STRINGS_DISTANCE(@javax.annotation.Nonnull Integer STRINGS_DISTANCE) { + this.STRINGS_DISTANCE = STRINGS_DISTANCE; + return this; + } + + /** + * Get STRINGS_DISTANCE + * + * @return STRINGS_DISTANCE + */ + @javax.annotation.Nonnull + public Integer getSTRINGSDISTANCE() { + return STRINGS_DISTANCE; + } + + public void setSTRINGSDISTANCE(@javax.annotation.Nonnull Integer STRINGS_DISTANCE) { + this.STRINGS_DISTANCE = STRINGS_DISTANCE; + } + + public StringItem STRINGS_INTERVAL(@javax.annotation.Nonnull Integer STRINGS_INTERVAL) { + this.STRINGS_INTERVAL = STRINGS_INTERVAL; + return this; + } + + /** + * Get STRINGS_INTERVAL + * + * @return STRINGS_INTERVAL + */ + @javax.annotation.Nonnull + public Integer getSTRINGSINTERVAL() { + return STRINGS_INTERVAL; + } + + public void setSTRINGSINTERVAL(@javax.annotation.Nonnull Integer STRINGS_INTERVAL) { + this.STRINGS_INTERVAL = STRINGS_INTERVAL; + } + + public StringItem STRING_FILLING(@javax.annotation.Nonnull Integer STRING_FILLING) { + this.STRING_FILLING = STRING_FILLING; + return this; + } + + /** + * Get STRING_FILLING + * + * @return STRING_FILLING + */ + @javax.annotation.Nonnull + public Integer getSTRINGFILLING() { + return STRING_FILLING; + } + + public void setSTRINGFILLING(@javax.annotation.Nonnull Integer STRING_FILLING) { + this.STRING_FILLING = STRING_FILLING; + } + + public StringItem STRING_POSITION(@javax.annotation.Nonnull Integer STRING_POSITION) { + this.STRING_POSITION = STRING_POSITION; + return this; + } + + /** + * Get STRING_POSITION + * + * @return STRING_POSITION + */ + @javax.annotation.Nonnull + public Integer getSTRINGPOSITION() { + return STRING_POSITION; + } + + public void setSTRINGPOSITION(@javax.annotation.Nonnull Integer STRING_POSITION) { + this.STRING_POSITION = STRING_POSITION; + } + + public StringItem SYMBOLS_PARAM(@javax.annotation.Nonnull Integer SYMBOLS_PARAM) { + this.SYMBOLS_PARAM = SYMBOLS_PARAM; + return this; + } + + /** + * Get SYMBOLS_PARAM + * + * @return SYMBOLS_PARAM + */ + @javax.annotation.Nonnull + public Integer getSYMBOLSPARAM() { + return SYMBOLS_PARAM; + } + + public void setSYMBOLSPARAM(@javax.annotation.Nonnull Integer SYMBOLS_PARAM) { + this.SYMBOLS_PARAM = SYMBOLS_PARAM; + } + + public StringItem sizeErrorALIGNMENT(@javax.annotation.Nonnull Integer sizeErrorALIGNMENT) { + this.sizeErrorALIGNMENT = sizeErrorALIGNMENT; + return this; + } + + /** + * Get sizeErrorALIGNMENT + * + * @return sizeErrorALIGNMENT + */ + @javax.annotation.Nonnull + public Integer getSizeErrorALIGNMENT() { + return sizeErrorALIGNMENT; + } + + public void setSizeErrorALIGNMENT(@javax.annotation.Nonnull Integer sizeErrorALIGNMENT) { + this.sizeErrorALIGNMENT = sizeErrorALIGNMENT; + } + + public StringItem sizeErrorDISTANCE(@javax.annotation.Nonnull Integer sizeErrorDISTANCE) { + this.sizeErrorDISTANCE = sizeErrorDISTANCE; + return this; + } + + /** + * Get sizeErrorDISTANCE + * + * @return sizeErrorDISTANCE + */ + @javax.annotation.Nonnull + public Integer getSizeErrorDISTANCE() { + return sizeErrorDISTANCE; + } + + public void setSizeErrorDISTANCE(@javax.annotation.Nonnull Integer sizeErrorDISTANCE) { + this.sizeErrorDISTANCE = sizeErrorDISTANCE; + } + + public StringItem sizeErrorINTERVAL(@javax.annotation.Nonnull Integer sizeErrorINTERVAL) { + this.sizeErrorINTERVAL = sizeErrorINTERVAL; + return this; + } + + /** + * Get sizeErrorINTERVAL + * + * @return sizeErrorINTERVAL + */ + @javax.annotation.Nonnull + public Integer getSizeErrorINTERVAL() { + return sizeErrorINTERVAL; + } + + public void setSizeErrorINTERVAL(@javax.annotation.Nonnull Integer sizeErrorINTERVAL) { + this.sizeErrorINTERVAL = sizeErrorINTERVAL; + } + + public StringItem stringAngle(@javax.annotation.Nonnull Integer stringAngle) { + this.stringAngle = stringAngle; + return this; + } + + /** + * Get stringAngle + * + * @return stringAngle + */ + @javax.annotation.Nonnull + public Integer getStringAngle() { + return stringAngle; + } + + public void setStringAngle(@javax.annotation.Nonnull Integer stringAngle) { + this.stringAngle = stringAngle; + } + + public StringItem stringBorders(@javax.annotation.Nonnull RectangleCoordinates stringBorders) { + this.stringBorders = stringBorders; + return this; + } + + /** + * Get stringBorders + * + * @return stringBorders + */ + @javax.annotation.Nonnull + public RectangleCoordinates getStringBorders() { + return stringBorders; + } + + public void setStringBorders(@javax.annotation.Nonnull RectangleCoordinates stringBorders) { + this.stringBorders = stringBorders; + } + + public StringItem symbolsCount(@javax.annotation.Nonnull Integer symbolsCount) { + this.symbolsCount = symbolsCount; + return this; + } + + /** + * Get symbolsCount + * + * @return symbolsCount + */ + @javax.annotation.Nonnull + public Integer getSymbolsCount() { + return symbolsCount; + } + + public void setSymbolsCount(@javax.annotation.Nonnull Integer symbolsCount) { + this.symbolsCount = symbolsCount; + } + + public StringItem symbolsEstimations( + @javax.annotation.Nonnull List symbolsEstimations) { + this.symbolsEstimations = symbolsEstimations; + return this; + } + + public StringItem addSymbolsEstimationsItem(SymbolEstimationItem symbolsEstimationsItem) { + if (this.symbolsEstimations == null) { + this.symbolsEstimations = new ArrayList<>(); + } + this.symbolsEstimations.add(symbolsEstimationsItem); + return this; + } + + /** + * Get symbolsEstimations + * + * @return symbolsEstimations + */ + @javax.annotation.Nonnull + public List getSymbolsEstimations() { + return symbolsEstimations; + } + + public void setSymbolsEstimations( + @javax.annotation.Nonnull List symbolsEstimations) { + this.symbolsEstimations = symbolsEstimations; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StringItem stringItem = (StringItem) o; + return Objects.equals(this.ALIGNMENT_SYMBOLS_IN_STRING, stringItem.ALIGNMENT_SYMBOLS_IN_STRING) + && Objects.equals(this.CHECK_SUMS, stringItem.CHECK_SUMS) + && Objects.equals(this.errorPOSITION, stringItem.errorPOSITION) + && Objects.equals(this.fieldCount, stringItem.fieldCount) + && Objects.equals(this.fields, stringItem.fields) + && Objects.equals(this.STRINGS_DISTANCE, stringItem.STRINGS_DISTANCE) + && Objects.equals(this.STRINGS_INTERVAL, stringItem.STRINGS_INTERVAL) + && Objects.equals(this.STRING_FILLING, stringItem.STRING_FILLING) + && Objects.equals(this.STRING_POSITION, stringItem.STRING_POSITION) + && Objects.equals(this.SYMBOLS_PARAM, stringItem.SYMBOLS_PARAM) + && Objects.equals(this.sizeErrorALIGNMENT, stringItem.sizeErrorALIGNMENT) + && Objects.equals(this.sizeErrorDISTANCE, stringItem.sizeErrorDISTANCE) + && Objects.equals(this.sizeErrorINTERVAL, stringItem.sizeErrorINTERVAL) + && Objects.equals(this.stringAngle, stringItem.stringAngle) + && Objects.equals(this.stringBorders, stringItem.stringBorders) + && Objects.equals(this.symbolsCount, stringItem.symbolsCount) + && Objects.equals(this.symbolsEstimations, stringItem.symbolsEstimations); + } + + @Override + public int hashCode() { + return Objects.hash( + ALIGNMENT_SYMBOLS_IN_STRING, + CHECK_SUMS, + errorPOSITION, + fieldCount, + fields, + STRINGS_DISTANCE, + STRINGS_INTERVAL, + STRING_FILLING, + STRING_POSITION, + SYMBOLS_PARAM, + sizeErrorALIGNMENT, + sizeErrorDISTANCE, + sizeErrorINTERVAL, + stringAngle, + stringBorders, + symbolsCount, + symbolsEstimations); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StringItem {\n"); + sb.append(" ALIGNMENT_SYMBOLS_IN_STRING: ") + .append(toIndentedString(ALIGNMENT_SYMBOLS_IN_STRING)) + .append("\n"); + sb.append(" CHECK_SUMS: ").append(toIndentedString(CHECK_SUMS)).append("\n"); + sb.append(" errorPOSITION: ").append(toIndentedString(errorPOSITION)).append("\n"); + sb.append(" fieldCount: ").append(toIndentedString(fieldCount)).append("\n"); + sb.append(" fields: ").append(toIndentedString(fields)).append("\n"); + sb.append(" STRINGS_DISTANCE: ").append(toIndentedString(STRINGS_DISTANCE)).append("\n"); + sb.append(" STRINGS_INTERVAL: ").append(toIndentedString(STRINGS_INTERVAL)).append("\n"); + sb.append(" STRING_FILLING: ").append(toIndentedString(STRING_FILLING)).append("\n"); + sb.append(" STRING_POSITION: ").append(toIndentedString(STRING_POSITION)).append("\n"); + sb.append(" SYMBOLS_PARAM: ").append(toIndentedString(SYMBOLS_PARAM)).append("\n"); + sb.append(" sizeErrorALIGNMENT: ").append(toIndentedString(sizeErrorALIGNMENT)).append("\n"); + sb.append(" sizeErrorDISTANCE: ").append(toIndentedString(sizeErrorDISTANCE)).append("\n"); + sb.append(" sizeErrorINTERVAL: ").append(toIndentedString(sizeErrorINTERVAL)).append("\n"); + sb.append(" stringAngle: ").append(toIndentedString(stringAngle)).append("\n"); + sb.append(" stringBorders: ").append(toIndentedString(stringBorders)).append("\n"); + sb.append(" symbolsCount: ").append(toIndentedString(symbolsCount)).append("\n"); + sb.append(" symbolsEstimations: ").append(toIndentedString(symbolsEstimations)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ALIGNMENT_SYMBOLS_IN_STRING"); + openapiFields.add("CHECK_SUMS"); + openapiFields.add("ErrorPOSITION"); + openapiFields.add("FieldCount"); + openapiFields.add("Fields"); + openapiFields.add("STRINGS_DISTANCE"); + openapiFields.add("STRINGS_INTERVAL"); + openapiFields.add("STRING_FILLING"); + openapiFields.add("STRING_POSITION"); + openapiFields.add("SYMBOLS_PARAM"); + openapiFields.add("SizeError_ALIGNMENT"); + openapiFields.add("SizeError_DISTANCE"); + openapiFields.add("SizeError_INTERVAL"); + openapiFields.add("StringAngle"); + openapiFields.add("StringBorders"); + openapiFields.add("SymbolsCount"); + openapiFields.add("SymbolsEstimations"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ALIGNMENT_SYMBOLS_IN_STRING"); + openapiRequiredFields.add("CHECK_SUMS"); + openapiRequiredFields.add("ErrorPOSITION"); + openapiRequiredFields.add("FieldCount"); + openapiRequiredFields.add("Fields"); + openapiRequiredFields.add("STRINGS_DISTANCE"); + openapiRequiredFields.add("STRINGS_INTERVAL"); + openapiRequiredFields.add("STRING_FILLING"); + openapiRequiredFields.add("STRING_POSITION"); + openapiRequiredFields.add("SYMBOLS_PARAM"); + openapiRequiredFields.add("SizeError_ALIGNMENT"); + openapiRequiredFields.add("SizeError_DISTANCE"); + openapiRequiredFields.add("SizeError_INTERVAL"); + openapiRequiredFields.add("StringAngle"); + openapiRequiredFields.add("StringBorders"); + openapiRequiredFields.add("SymbolsCount"); + openapiRequiredFields.add("SymbolsEstimations"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StringItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StringItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in StringItem is not found in the empty JSON string", + StringItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StringItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `StringItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StringItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `ErrorPOSITION` + ErrorCoordinates.validateJsonElement(jsonObj.get("ErrorPOSITION")); + // ensure the json data is an array + if (!jsonObj.get("Fields").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Fields` to be an array in the JSON string but got `%s`", + jsonObj.get("Fields").toString())); + } + + JsonArray jsonArrayfields = jsonObj.getAsJsonArray("Fields"); + // validate the required field `Fields` (array) + for (int i = 0; i < jsonArrayfields.size(); i++) { + FieldItem.validateJsonElement(jsonArrayfields.get(i)); + } + ; + // validate the required field `StringBorders` + RectangleCoordinates.validateJsonElement(jsonObj.get("StringBorders")); + // ensure the json data is an array + if (!jsonObj.get("SymbolsEstimations").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `SymbolsEstimations` to be an array in the JSON string but got `%s`", + jsonObj.get("SymbolsEstimations").toString())); + } + + JsonArray jsonArraysymbolsEstimations = jsonObj.getAsJsonArray("SymbolsEstimations"); + // validate the required field `SymbolsEstimations` (array) + for (int i = 0; i < jsonArraysymbolsEstimations.size(); i++) { + SymbolEstimationItem.validateJsonElement(jsonArraysymbolsEstimations.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StringItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StringItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(StringItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, StringItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StringItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of StringItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of StringItem + * @throws IOException if the JSON string is invalid with respect to StringItem + */ + public static StringItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StringItem.class); + } + + /** + * Convert an instance of StringItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/StringRecognitionResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/StringRecognitionResult.java old mode 100755 new mode 100644 index 93eac363..78da9705 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/StringRecognitionResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/StringRecognitionResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,24 +12,92 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Describes single row recognition results in multi-line text field of a document */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class StringRecognitionResult { + public static final String SERIALIZED_NAME_SYMBOLS_COUNT = "SymbolsCount"; + + @SerializedName(SERIALIZED_NAME_SYMBOLS_COUNT) + @javax.annotation.Nonnull + private BigDecimal symbolsCount; + public static final String SERIALIZED_NAME_STRING_RESULT = "StringResult"; @SerializedName(SERIALIZED_NAME_STRING_RESULT) - private List stringResult = new ArrayList(); + @javax.annotation.Nonnull + private List stringResult; + + public static final String SERIALIZED_NAME_BUF_LENGTH = "Buf_Length"; + + @SerializedName(SERIALIZED_NAME_BUF_LENGTH) + @javax.annotation.Nullable + private BigDecimal bufLength; + + public static final String SERIALIZED_NAME_BUF_TEXT = "Buf_Text"; + + @SerializedName(SERIALIZED_NAME_BUF_TEXT) + @javax.annotation.Nullable + private String bufText; - public StringRecognitionResult withStringResult(List stringResult) { + public static final String SERIALIZED_NAME_RESERVED = "Reserved"; + + @SerializedName(SERIALIZED_NAME_RESERVED) + @javax.annotation.Nullable + private Integer reserved; + + public StringRecognitionResult() {} + + public StringRecognitionResult symbolsCount(@javax.annotation.Nonnull BigDecimal symbolsCount) { + this.symbolsCount = symbolsCount; + return this; + } + + /** + * Number of StringResult array elements + * + * @return symbolsCount + */ + @javax.annotation.Nonnull + public BigDecimal getSymbolsCount() { + return symbolsCount; + } + + public void setSymbolsCount(@javax.annotation.Nonnull BigDecimal symbolsCount) { + this.symbolsCount = symbolsCount; + } + + public StringRecognitionResult stringResult( + @javax.annotation.Nonnull List stringResult) { this.stringResult = stringResult; return this; } public StringRecognitionResult addStringResultItem(SymbolRecognitionResult stringResultItem) { + if (this.stringResult == null) { + this.stringResult = new ArrayList<>(); + } this.stringResult.add(stringResultItem); return this; } @@ -39,16 +107,76 @@ public StringRecognitionResult addStringResultItem(SymbolRecognitionResult strin * * @return stringResult */ + @javax.annotation.Nonnull public List getStringResult() { return stringResult; } - public void setStringResult(List stringResult) { + public void setStringResult( + @javax.annotation.Nonnull List stringResult) { this.stringResult = stringResult; } + public StringRecognitionResult bufLength(@javax.annotation.Nullable BigDecimal bufLength) { + this.bufLength = bufLength; + return this; + } + + /** + * Buf_Text text string length + * + * @return bufLength + */ + @javax.annotation.Nullable + public BigDecimal getBufLength() { + return bufLength; + } + + public void setBufLength(@javax.annotation.Nullable BigDecimal bufLength) { + this.bufLength = bufLength; + } + + public StringRecognitionResult bufText(@javax.annotation.Nullable String bufText) { + this.bufText = bufText; + return this; + } + + /** + * Text field data in UTF8 format. Results of reading different lines of a multi-line field are + * separated by '^' + * + * @return bufText + */ + @javax.annotation.Nullable + public String getBufText() { + return bufText; + } + + public void setBufText(@javax.annotation.Nullable String bufText) { + this.bufText = bufText; + } + + public StringRecognitionResult reserved(@javax.annotation.Nullable Integer reserved) { + this.reserved = reserved; + return this; + } + + /** + * Get reserved + * + * @return reserved + */ + @javax.annotation.Nullable + public Integer getReserved() { + return reserved; + } + + public void setReserved(@javax.annotation.Nullable Integer reserved) { + this.reserved = reserved; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -56,19 +184,27 @@ public boolean equals(java.lang.Object o) { return false; } StringRecognitionResult stringRecognitionResult = (StringRecognitionResult) o; - return Objects.equals(this.stringResult, stringRecognitionResult.stringResult); + return Objects.equals(this.symbolsCount, stringRecognitionResult.symbolsCount) + && Objects.equals(this.stringResult, stringRecognitionResult.stringResult) + && Objects.equals(this.bufLength, stringRecognitionResult.bufLength) + && Objects.equals(this.bufText, stringRecognitionResult.bufText) + && Objects.equals(this.reserved, stringRecognitionResult.reserved); } @Override public int hashCode() { - return Objects.hash(stringResult); + return Objects.hash(symbolsCount, stringResult, bufLength, bufText, reserved); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class StringRecognitionResult {\n"); + sb.append(" symbolsCount: ").append(toIndentedString(symbolsCount)).append("\n"); sb.append(" stringResult: ").append(toIndentedString(stringResult)).append("\n"); + sb.append(" bufLength: ").append(toIndentedString(bufLength)).append("\n"); + sb.append(" bufText: ").append(toIndentedString(bufText)).append("\n"); + sb.append(" reserved: ").append(toIndentedString(reserved)).append("\n"); sb.append("}"); return sb.toString(); } @@ -76,10 +212,138 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SymbolsCount"); + openapiFields.add("StringResult"); + openapiFields.add("Buf_Length"); + openapiFields.add("Buf_Text"); + openapiFields.add("Reserved"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("SymbolsCount"); + openapiRequiredFields.add("StringResult"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StringRecognitionResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StringRecognitionResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in StringRecognitionResult is not found in the empty JSON string", + StringRecognitionResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StringRecognitionResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `StringRecognitionResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StringRecognitionResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("StringResult").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `StringResult` to be an array in the JSON string but got `%s`", + jsonObj.get("StringResult").toString())); + } + + JsonArray jsonArraystringResult = jsonObj.getAsJsonArray("StringResult"); + // validate the required field `StringResult` (array) + for (int i = 0; i < jsonArraystringResult.size(); i++) { + SymbolRecognitionResult.validateJsonElement(jsonArraystringResult.get(i)); + } + ; + if ((jsonObj.get("Buf_Text") != null && !jsonObj.get("Buf_Text").isJsonNull()) + && !jsonObj.get("Buf_Text").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Buf_Text` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Buf_Text").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StringRecognitionResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StringRecognitionResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(StringRecognitionResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, StringRecognitionResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StringRecognitionResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of StringRecognitionResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of StringRecognitionResult + * @throws IOException if the JSON string is invalid with respect to StringRecognitionResult + */ + public static StringRecognitionResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StringRecognitionResult.class); + } + + /** + * Convert an instance of StringRecognitionResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Symbol.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Symbol.java new file mode 100644 index 00000000..3ebc7f8d --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Symbol.java @@ -0,0 +1,219 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** Symbol */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class Symbol { + public static final String SERIALIZED_NAME_BOUNDING_RECT = "boundingRect"; + + @SerializedName(SERIALIZED_NAME_BOUNDING_RECT) + @javax.annotation.Nonnull + private List boundingRect; + + public Symbol() {} + + public Symbol boundingRect(@javax.annotation.Nonnull List boundingRect) { + this.boundingRect = boundingRect; + return this; + } + + public Symbol addBoundingRectItem(Integer boundingRectItem) { + if (this.boundingRect == null) { + this.boundingRect = new ArrayList<>(); + } + this.boundingRect.add(boundingRectItem); + return this; + } + + /** + * Get boundingRect + * + * @return boundingRect + */ + @javax.annotation.Nonnull + public List getBoundingRect() { + return boundingRect; + } + + public void setBoundingRect(@javax.annotation.Nonnull List boundingRect) { + this.boundingRect = boundingRect; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Symbol symbol = (Symbol) o; + return Objects.equals(this.boundingRect, symbol.boundingRect); + } + + @Override + public int hashCode() { + return Objects.hash(boundingRect); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Symbol {\n"); + sb.append(" boundingRect: ").append(toIndentedString(boundingRect)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("boundingRect"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("boundingRect"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to Symbol + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!Symbol.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in Symbol is not found in the empty JSON string", + Symbol.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!Symbol.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `Symbol` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : Symbol.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the required json array is present + if (jsonObj.get("boundingRect") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("boundingRect").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `boundingRect` to be an array in the JSON string but got `%s`", + jsonObj.get("boundingRect").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!Symbol.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'Symbol' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(Symbol.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, Symbol value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public Symbol read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of Symbol given an JSON string + * + * @param jsonString JSON string + * @return An instance of Symbol + * @throws IOException if the JSON string is invalid with respect to Symbol + */ + public static Symbol fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, Symbol.class); + } + + /** + * Convert an instance of Symbol to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolCandidate.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolCandidate.java old mode 100755 new mode 100644 index d124c093..0bb2a18b --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolCandidate.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolCandidate.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,22 +12,54 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Describes an individual character recognition candidate */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class SymbolCandidate { public static final String SERIALIZED_NAME_SYMBOL_CODE = "SymbolCode"; @SerializedName(SERIALIZED_NAME_SYMBOL_CODE) + @javax.annotation.Nonnull private Integer symbolCode; public static final String SERIALIZED_NAME_SYMBOL_PROBABILITY = "SymbolProbability"; @SerializedName(SERIALIZED_NAME_SYMBOL_PROBABILITY) + @javax.annotation.Nonnull private Integer symbolProbability; - public SymbolCandidate withSymbolCode(Integer symbolCode) { + public static final String SERIALIZED_NAME_PROPERTY_CLASS = "Class"; + + @SerializedName(SERIALIZED_NAME_PROPERTY_CLASS) + @javax.annotation.Nullable + private Integer propertyClass; + + public static final String SERIALIZED_NAME_SUB_CLASS = "SubClass"; + + @SerializedName(SERIALIZED_NAME_SUB_CLASS) + @javax.annotation.Nullable + private Integer subClass; + + public SymbolCandidate() {} + + public SymbolCandidate symbolCode(@javax.annotation.Nonnull Integer symbolCode) { this.symbolCode = symbolCode; return this; } @@ -37,15 +69,16 @@ public SymbolCandidate withSymbolCode(Integer symbolCode) { * * @return symbolCode */ + @javax.annotation.Nonnull public Integer getSymbolCode() { return symbolCode; } - public void setSymbolCode(Integer symbolCode) { + public void setSymbolCode(@javax.annotation.Nonnull Integer symbolCode) { this.symbolCode = symbolCode; } - public SymbolCandidate withSymbolProbability(Integer symbolProbability) { + public SymbolCandidate symbolProbability(@javax.annotation.Nonnull Integer symbolProbability) { this.symbolProbability = symbolProbability; return this; } @@ -55,16 +88,55 @@ public SymbolCandidate withSymbolProbability(Integer symbolProbability) { * * @return symbolProbability */ + @javax.annotation.Nonnull public Integer getSymbolProbability() { return symbolProbability; } - public void setSymbolProbability(Integer symbolProbability) { + public void setSymbolProbability(@javax.annotation.Nonnull Integer symbolProbability) { this.symbolProbability = symbolProbability; } + public SymbolCandidate propertyClass(@javax.annotation.Nullable Integer propertyClass) { + this.propertyClass = propertyClass; + return this; + } + + /** + * Get propertyClass + * + * @return propertyClass + */ + @javax.annotation.Nullable + public Integer getPropertyClass() { + return propertyClass; + } + + public void setPropertyClass(@javax.annotation.Nullable Integer propertyClass) { + this.propertyClass = propertyClass; + } + + public SymbolCandidate subClass(@javax.annotation.Nullable Integer subClass) { + this.subClass = subClass; + return this; + } + + /** + * Get subClass + * + * @return subClass + */ + @javax.annotation.Nullable + public Integer getSubClass() { + return subClass; + } + + public void setSubClass(@javax.annotation.Nullable Integer subClass) { + this.subClass = subClass; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -73,12 +145,14 @@ public boolean equals(java.lang.Object o) { } SymbolCandidate symbolCandidate = (SymbolCandidate) o; return Objects.equals(this.symbolCode, symbolCandidate.symbolCode) - && Objects.equals(this.symbolProbability, symbolCandidate.symbolProbability); + && Objects.equals(this.symbolProbability, symbolCandidate.symbolProbability) + && Objects.equals(this.propertyClass, symbolCandidate.propertyClass) + && Objects.equals(this.subClass, symbolCandidate.subClass); } @Override public int hashCode() { - return Objects.hash(symbolCode, symbolProbability); + return Objects.hash(symbolCode, symbolProbability, propertyClass, subClass); } @Override @@ -87,6 +161,8 @@ public String toString() { sb.append("class SymbolCandidate {\n"); sb.append(" symbolCode: ").append(toIndentedString(symbolCode)).append("\n"); sb.append(" symbolProbability: ").append(toIndentedString(symbolProbability)).append("\n"); + sb.append(" propertyClass: ").append(toIndentedString(propertyClass)).append("\n"); + sb.append(" subClass: ").append(toIndentedString(subClass)).append("\n"); sb.append("}"); return sb.toString(); } @@ -94,10 +170,116 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SymbolCode"); + openapiFields.add("SymbolProbability"); + openapiFields.add("Class"); + openapiFields.add("SubClass"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("SymbolCode"); + openapiRequiredFields.add("SymbolProbability"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SymbolCandidate + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SymbolCandidate.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in SymbolCandidate is not found in the empty JSON string", + SymbolCandidate.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SymbolCandidate.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `SymbolCandidate` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SymbolCandidate.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SymbolCandidate.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SymbolCandidate' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(SymbolCandidate.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, SymbolCandidate value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SymbolCandidate read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of SymbolCandidate given an JSON string + * + * @param jsonString JSON string + * @return An instance of SymbolCandidate + * @throws IOException if the JSON string is invalid with respect to SymbolCandidate + */ + public static SymbolCandidate fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SymbolCandidate.class); + } + + /** + * Convert an instance of SymbolCandidate to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java new file mode 100644 index 00000000..b216dea9 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java @@ -0,0 +1,714 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** SymbolEstimationItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class SymbolEstimationItem { + public static final String SERIALIZED_NAME_A_L_I_G_N_M_E_N_T_N_E_A_R_E_S_T_S_Y_M_B_O_L_S = + "ALIGNMENT_NEAREST_SYMBOLS"; + + @SerializedName(SERIALIZED_NAME_A_L_I_G_N_M_E_N_T_N_E_A_R_E_S_T_S_Y_M_B_O_L_S) + @javax.annotation.Nonnull + private Integer ALIGNMENT_NEAREST_SYMBOLS; + + public static final String SERIALIZED_NAME_C_O_N_T_R_A_S_T_P_R_I_N_T = "CONTRAST_PRINT"; + + @SerializedName(SERIALIZED_NAME_C_O_N_T_R_A_S_T_P_R_I_N_T) + @javax.annotation.Nonnull + private Integer CONTRAST_PRINT; + + public static final String SERIALIZED_NAME_C_O_N_T_R_A_S_T_S_Y_M_B_O_L = "CONTRAST_SYMBOL"; + + @SerializedName(SERIALIZED_NAME_C_O_N_T_R_A_S_T_S_Y_M_B_O_L) + @javax.annotation.Nonnull + private Integer CONTRAST_SYMBOL; + + public static final String SERIALIZED_NAME_CHAR_SYMBOL = "CharSymbol"; + + @SerializedName(SERIALIZED_NAME_CHAR_SYMBOL) + @javax.annotation.Nonnull + private Integer charSymbol; + + public static final String SERIALIZED_NAME_E_D_G_E = "EDGE"; + + @SerializedName(SERIALIZED_NAME_E_D_G_E) + @javax.annotation.Nonnull + private Integer EDGE; + + public static final String SERIALIZED_NAME_E_M_P_T_I_N_E_S_S = "EMPTINESS"; + + @SerializedName(SERIALIZED_NAME_E_M_P_T_I_N_E_S_S) + @javax.annotation.Nonnull + private Integer EMPTINESS; + + public static final String SERIALIZED_NAME_S_T_A_I_N = "STAIN"; + + @SerializedName(SERIALIZED_NAME_S_T_A_I_N) + @javax.annotation.Nonnull + private Integer STAIN; + + public static final String SERIALIZED_NAME_S_Y_M_B_O_L_S_I_N_T_E_R_V_A_L = "SYMBOLS_INTERVAL"; + + @SerializedName(SERIALIZED_NAME_S_Y_M_B_O_L_S_I_N_T_E_R_V_A_L) + @javax.annotation.Nonnull + private Integer SYMBOLS_INTERVAL; + + public static final String SERIALIZED_NAME_S_Y_M_B_O_L_P_A_R_A_M = "SYMBOL_PARAM"; + + @SerializedName(SERIALIZED_NAME_S_Y_M_B_O_L_P_A_R_A_M) + @javax.annotation.Nonnull + private Integer SYMBOL_PARAM; + + public static final String SERIALIZED_NAME_S_Y_M_B_O_L_S_I_Z_E = "SYMBOL_SIZE"; + + @SerializedName(SERIALIZED_NAME_S_Y_M_B_O_L_S_I_Z_E) + @javax.annotation.Nonnull + private Integer SYMBOL_SIZE; + + public static final String SERIALIZED_NAME_SIZE_ERROR_ALIGN_WITH_NEXT = "SizeErrorAlignWithNext"; + + @SerializedName(SERIALIZED_NAME_SIZE_ERROR_ALIGN_WITH_NEXT) + @javax.annotation.Nonnull + private Integer sizeErrorAlignWithNext; + + public static final String SERIALIZED_NAME_SIZE_ERROR_ALIGN_WITH_PREV = "SizeErrorAlignWithPrev"; + + @SerializedName(SERIALIZED_NAME_SIZE_ERROR_ALIGN_WITH_PREV) + @javax.annotation.Nonnull + private Integer sizeErrorAlignWithPrev; + + public static final String SERIALIZED_NAME_SIZE_ERROR_INTERV_WITH_NEXT = + "SizeErrorIntervWithNext"; + + @SerializedName(SERIALIZED_NAME_SIZE_ERROR_INTERV_WITH_NEXT) + @javax.annotation.Nonnull + private Integer sizeErrorIntervWithNext; + + public static final String SERIALIZED_NAME_SIZE_ERROR_INTERV_WITH_PREV = + "SizeErrorIntervWithPrev"; + + @SerializedName(SERIALIZED_NAME_SIZE_ERROR_INTERV_WITH_PREV) + @javax.annotation.Nonnull + private Integer sizeErrorIntervWithPrev; + + public static final String SERIALIZED_NAME_SIZE_ERROR_SYMBOL_HEIGHT = "SizeErrorSymbolHeight"; + + @SerializedName(SERIALIZED_NAME_SIZE_ERROR_SYMBOL_HEIGHT) + @javax.annotation.Nonnull + private Integer sizeErrorSymbolHeight; + + public static final String SERIALIZED_NAME_SIZE_ERROR_SYMBOL_WIDTH = "SizeErrorSymbolWidth"; + + @SerializedName(SERIALIZED_NAME_SIZE_ERROR_SYMBOL_WIDTH) + @javax.annotation.Nonnull + private Integer sizeErrorSymbolWidth; + + public static final String SERIALIZED_NAME_SYMBOL_BOUNDS = "SymbolBounds"; + + @SerializedName(SERIALIZED_NAME_SYMBOL_BOUNDS) + @javax.annotation.Nonnull + private RectangleCoordinates symbolBounds; + + public SymbolEstimationItem() {} + + public SymbolEstimationItem ALIGNMENT_NEAREST_SYMBOLS( + @javax.annotation.Nonnull Integer ALIGNMENT_NEAREST_SYMBOLS) { + this.ALIGNMENT_NEAREST_SYMBOLS = ALIGNMENT_NEAREST_SYMBOLS; + return this; + } + + /** + * Get ALIGNMENT_NEAREST_SYMBOLS + * + * @return ALIGNMENT_NEAREST_SYMBOLS + */ + @javax.annotation.Nonnull + public Integer getALIGNMENTNEARESTSYMBOLS() { + return ALIGNMENT_NEAREST_SYMBOLS; + } + + public void setALIGNMENTNEARESTSYMBOLS( + @javax.annotation.Nonnull Integer ALIGNMENT_NEAREST_SYMBOLS) { + this.ALIGNMENT_NEAREST_SYMBOLS = ALIGNMENT_NEAREST_SYMBOLS; + } + + public SymbolEstimationItem CONTRAST_PRINT(@javax.annotation.Nonnull Integer CONTRAST_PRINT) { + this.CONTRAST_PRINT = CONTRAST_PRINT; + return this; + } + + /** + * Get CONTRAST_PRINT + * + * @return CONTRAST_PRINT + */ + @javax.annotation.Nonnull + public Integer getCONTRASTPRINT() { + return CONTRAST_PRINT; + } + + public void setCONTRASTPRINT(@javax.annotation.Nonnull Integer CONTRAST_PRINT) { + this.CONTRAST_PRINT = CONTRAST_PRINT; + } + + public SymbolEstimationItem CONTRAST_SYMBOL(@javax.annotation.Nonnull Integer CONTRAST_SYMBOL) { + this.CONTRAST_SYMBOL = CONTRAST_SYMBOL; + return this; + } + + /** + * Get CONTRAST_SYMBOL + * + * @return CONTRAST_SYMBOL + */ + @javax.annotation.Nonnull + public Integer getCONTRASTSYMBOL() { + return CONTRAST_SYMBOL; + } + + public void setCONTRASTSYMBOL(@javax.annotation.Nonnull Integer CONTRAST_SYMBOL) { + this.CONTRAST_SYMBOL = CONTRAST_SYMBOL; + } + + public SymbolEstimationItem charSymbol(@javax.annotation.Nonnull Integer charSymbol) { + this.charSymbol = charSymbol; + return this; + } + + /** + * Get charSymbol + * + * @return charSymbol + */ + @javax.annotation.Nonnull + public Integer getCharSymbol() { + return charSymbol; + } + + public void setCharSymbol(@javax.annotation.Nonnull Integer charSymbol) { + this.charSymbol = charSymbol; + } + + public SymbolEstimationItem EDGE(@javax.annotation.Nonnull Integer EDGE) { + this.EDGE = EDGE; + return this; + } + + /** + * Get EDGE + * + * @return EDGE + */ + @javax.annotation.Nonnull + public Integer getEDGE() { + return EDGE; + } + + public void setEDGE(@javax.annotation.Nonnull Integer EDGE) { + this.EDGE = EDGE; + } + + public SymbolEstimationItem EMPTINESS(@javax.annotation.Nonnull Integer EMPTINESS) { + this.EMPTINESS = EMPTINESS; + return this; + } + + /** + * Get EMPTINESS + * + * @return EMPTINESS + */ + @javax.annotation.Nonnull + public Integer getEMPTINESS() { + return EMPTINESS; + } + + public void setEMPTINESS(@javax.annotation.Nonnull Integer EMPTINESS) { + this.EMPTINESS = EMPTINESS; + } + + public SymbolEstimationItem STAIN(@javax.annotation.Nonnull Integer STAIN) { + this.STAIN = STAIN; + return this; + } + + /** + * Get STAIN + * + * @return STAIN + */ + @javax.annotation.Nonnull + public Integer getSTAIN() { + return STAIN; + } + + public void setSTAIN(@javax.annotation.Nonnull Integer STAIN) { + this.STAIN = STAIN; + } + + public SymbolEstimationItem SYMBOLS_INTERVAL(@javax.annotation.Nonnull Integer SYMBOLS_INTERVAL) { + this.SYMBOLS_INTERVAL = SYMBOLS_INTERVAL; + return this; + } + + /** + * Get SYMBOLS_INTERVAL + * + * @return SYMBOLS_INTERVAL + */ + @javax.annotation.Nonnull + public Integer getSYMBOLSINTERVAL() { + return SYMBOLS_INTERVAL; + } + + public void setSYMBOLSINTERVAL(@javax.annotation.Nonnull Integer SYMBOLS_INTERVAL) { + this.SYMBOLS_INTERVAL = SYMBOLS_INTERVAL; + } + + public SymbolEstimationItem SYMBOL_PARAM(@javax.annotation.Nonnull Integer SYMBOL_PARAM) { + this.SYMBOL_PARAM = SYMBOL_PARAM; + return this; + } + + /** + * Get SYMBOL_PARAM + * + * @return SYMBOL_PARAM + */ + @javax.annotation.Nonnull + public Integer getSYMBOLPARAM() { + return SYMBOL_PARAM; + } + + public void setSYMBOLPARAM(@javax.annotation.Nonnull Integer SYMBOL_PARAM) { + this.SYMBOL_PARAM = SYMBOL_PARAM; + } + + public SymbolEstimationItem SYMBOL_SIZE(@javax.annotation.Nonnull Integer SYMBOL_SIZE) { + this.SYMBOL_SIZE = SYMBOL_SIZE; + return this; + } + + /** + * Get SYMBOL_SIZE + * + * @return SYMBOL_SIZE + */ + @javax.annotation.Nonnull + public Integer getSYMBOLSIZE() { + return SYMBOL_SIZE; + } + + public void setSYMBOLSIZE(@javax.annotation.Nonnull Integer SYMBOL_SIZE) { + this.SYMBOL_SIZE = SYMBOL_SIZE; + } + + public SymbolEstimationItem sizeErrorAlignWithNext( + @javax.annotation.Nonnull Integer sizeErrorAlignWithNext) { + this.sizeErrorAlignWithNext = sizeErrorAlignWithNext; + return this; + } + + /** + * Get sizeErrorAlignWithNext + * + * @return sizeErrorAlignWithNext + */ + @javax.annotation.Nonnull + public Integer getSizeErrorAlignWithNext() { + return sizeErrorAlignWithNext; + } + + public void setSizeErrorAlignWithNext(@javax.annotation.Nonnull Integer sizeErrorAlignWithNext) { + this.sizeErrorAlignWithNext = sizeErrorAlignWithNext; + } + + public SymbolEstimationItem sizeErrorAlignWithPrev( + @javax.annotation.Nonnull Integer sizeErrorAlignWithPrev) { + this.sizeErrorAlignWithPrev = sizeErrorAlignWithPrev; + return this; + } + + /** + * Get sizeErrorAlignWithPrev + * + * @return sizeErrorAlignWithPrev + */ + @javax.annotation.Nonnull + public Integer getSizeErrorAlignWithPrev() { + return sizeErrorAlignWithPrev; + } + + public void setSizeErrorAlignWithPrev(@javax.annotation.Nonnull Integer sizeErrorAlignWithPrev) { + this.sizeErrorAlignWithPrev = sizeErrorAlignWithPrev; + } + + public SymbolEstimationItem sizeErrorIntervWithNext( + @javax.annotation.Nonnull Integer sizeErrorIntervWithNext) { + this.sizeErrorIntervWithNext = sizeErrorIntervWithNext; + return this; + } + + /** + * Get sizeErrorIntervWithNext + * + * @return sizeErrorIntervWithNext + */ + @javax.annotation.Nonnull + public Integer getSizeErrorIntervWithNext() { + return sizeErrorIntervWithNext; + } + + public void setSizeErrorIntervWithNext( + @javax.annotation.Nonnull Integer sizeErrorIntervWithNext) { + this.sizeErrorIntervWithNext = sizeErrorIntervWithNext; + } + + public SymbolEstimationItem sizeErrorIntervWithPrev( + @javax.annotation.Nonnull Integer sizeErrorIntervWithPrev) { + this.sizeErrorIntervWithPrev = sizeErrorIntervWithPrev; + return this; + } + + /** + * Get sizeErrorIntervWithPrev + * + * @return sizeErrorIntervWithPrev + */ + @javax.annotation.Nonnull + public Integer getSizeErrorIntervWithPrev() { + return sizeErrorIntervWithPrev; + } + + public void setSizeErrorIntervWithPrev( + @javax.annotation.Nonnull Integer sizeErrorIntervWithPrev) { + this.sizeErrorIntervWithPrev = sizeErrorIntervWithPrev; + } + + public SymbolEstimationItem sizeErrorSymbolHeight( + @javax.annotation.Nonnull Integer sizeErrorSymbolHeight) { + this.sizeErrorSymbolHeight = sizeErrorSymbolHeight; + return this; + } + + /** + * Get sizeErrorSymbolHeight + * + * @return sizeErrorSymbolHeight + */ + @javax.annotation.Nonnull + public Integer getSizeErrorSymbolHeight() { + return sizeErrorSymbolHeight; + } + + public void setSizeErrorSymbolHeight(@javax.annotation.Nonnull Integer sizeErrorSymbolHeight) { + this.sizeErrorSymbolHeight = sizeErrorSymbolHeight; + } + + public SymbolEstimationItem sizeErrorSymbolWidth( + @javax.annotation.Nonnull Integer sizeErrorSymbolWidth) { + this.sizeErrorSymbolWidth = sizeErrorSymbolWidth; + return this; + } + + /** + * Get sizeErrorSymbolWidth + * + * @return sizeErrorSymbolWidth + */ + @javax.annotation.Nonnull + public Integer getSizeErrorSymbolWidth() { + return sizeErrorSymbolWidth; + } + + public void setSizeErrorSymbolWidth(@javax.annotation.Nonnull Integer sizeErrorSymbolWidth) { + this.sizeErrorSymbolWidth = sizeErrorSymbolWidth; + } + + public SymbolEstimationItem symbolBounds( + @javax.annotation.Nonnull RectangleCoordinates symbolBounds) { + this.symbolBounds = symbolBounds; + return this; + } + + /** + * Get symbolBounds + * + * @return symbolBounds + */ + @javax.annotation.Nonnull + public RectangleCoordinates getSymbolBounds() { + return symbolBounds; + } + + public void setSymbolBounds(@javax.annotation.Nonnull RectangleCoordinates symbolBounds) { + this.symbolBounds = symbolBounds; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SymbolEstimationItem symbolEstimationItem = (SymbolEstimationItem) o; + return Objects.equals( + this.ALIGNMENT_NEAREST_SYMBOLS, symbolEstimationItem.ALIGNMENT_NEAREST_SYMBOLS) + && Objects.equals(this.CONTRAST_PRINT, symbolEstimationItem.CONTRAST_PRINT) + && Objects.equals(this.CONTRAST_SYMBOL, symbolEstimationItem.CONTRAST_SYMBOL) + && Objects.equals(this.charSymbol, symbolEstimationItem.charSymbol) + && Objects.equals(this.EDGE, symbolEstimationItem.EDGE) + && Objects.equals(this.EMPTINESS, symbolEstimationItem.EMPTINESS) + && Objects.equals(this.STAIN, symbolEstimationItem.STAIN) + && Objects.equals(this.SYMBOLS_INTERVAL, symbolEstimationItem.SYMBOLS_INTERVAL) + && Objects.equals(this.SYMBOL_PARAM, symbolEstimationItem.SYMBOL_PARAM) + && Objects.equals(this.SYMBOL_SIZE, symbolEstimationItem.SYMBOL_SIZE) + && Objects.equals(this.sizeErrorAlignWithNext, symbolEstimationItem.sizeErrorAlignWithNext) + && Objects.equals(this.sizeErrorAlignWithPrev, symbolEstimationItem.sizeErrorAlignWithPrev) + && Objects.equals( + this.sizeErrorIntervWithNext, symbolEstimationItem.sizeErrorIntervWithNext) + && Objects.equals( + this.sizeErrorIntervWithPrev, symbolEstimationItem.sizeErrorIntervWithPrev) + && Objects.equals(this.sizeErrorSymbolHeight, symbolEstimationItem.sizeErrorSymbolHeight) + && Objects.equals(this.sizeErrorSymbolWidth, symbolEstimationItem.sizeErrorSymbolWidth) + && Objects.equals(this.symbolBounds, symbolEstimationItem.symbolBounds); + } + + @Override + public int hashCode() { + return Objects.hash( + ALIGNMENT_NEAREST_SYMBOLS, + CONTRAST_PRINT, + CONTRAST_SYMBOL, + charSymbol, + EDGE, + EMPTINESS, + STAIN, + SYMBOLS_INTERVAL, + SYMBOL_PARAM, + SYMBOL_SIZE, + sizeErrorAlignWithNext, + sizeErrorAlignWithPrev, + sizeErrorIntervWithNext, + sizeErrorIntervWithPrev, + sizeErrorSymbolHeight, + sizeErrorSymbolWidth, + symbolBounds); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SymbolEstimationItem {\n"); + sb.append(" ALIGNMENT_NEAREST_SYMBOLS: ") + .append(toIndentedString(ALIGNMENT_NEAREST_SYMBOLS)) + .append("\n"); + sb.append(" CONTRAST_PRINT: ").append(toIndentedString(CONTRAST_PRINT)).append("\n"); + sb.append(" CONTRAST_SYMBOL: ").append(toIndentedString(CONTRAST_SYMBOL)).append("\n"); + sb.append(" charSymbol: ").append(toIndentedString(charSymbol)).append("\n"); + sb.append(" EDGE: ").append(toIndentedString(EDGE)).append("\n"); + sb.append(" EMPTINESS: ").append(toIndentedString(EMPTINESS)).append("\n"); + sb.append(" STAIN: ").append(toIndentedString(STAIN)).append("\n"); + sb.append(" SYMBOLS_INTERVAL: ").append(toIndentedString(SYMBOLS_INTERVAL)).append("\n"); + sb.append(" SYMBOL_PARAM: ").append(toIndentedString(SYMBOL_PARAM)).append("\n"); + sb.append(" SYMBOL_SIZE: ").append(toIndentedString(SYMBOL_SIZE)).append("\n"); + sb.append(" sizeErrorAlignWithNext: ") + .append(toIndentedString(sizeErrorAlignWithNext)) + .append("\n"); + sb.append(" sizeErrorAlignWithPrev: ") + .append(toIndentedString(sizeErrorAlignWithPrev)) + .append("\n"); + sb.append(" sizeErrorIntervWithNext: ") + .append(toIndentedString(sizeErrorIntervWithNext)) + .append("\n"); + sb.append(" sizeErrorIntervWithPrev: ") + .append(toIndentedString(sizeErrorIntervWithPrev)) + .append("\n"); + sb.append(" sizeErrorSymbolHeight: ") + .append(toIndentedString(sizeErrorSymbolHeight)) + .append("\n"); + sb.append(" sizeErrorSymbolWidth: ") + .append(toIndentedString(sizeErrorSymbolWidth)) + .append("\n"); + sb.append(" symbolBounds: ").append(toIndentedString(symbolBounds)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ALIGNMENT_NEAREST_SYMBOLS"); + openapiFields.add("CONTRAST_PRINT"); + openapiFields.add("CONTRAST_SYMBOL"); + openapiFields.add("CharSymbol"); + openapiFields.add("EDGE"); + openapiFields.add("EMPTINESS"); + openapiFields.add("STAIN"); + openapiFields.add("SYMBOLS_INTERVAL"); + openapiFields.add("SYMBOL_PARAM"); + openapiFields.add("SYMBOL_SIZE"); + openapiFields.add("SizeErrorAlignWithNext"); + openapiFields.add("SizeErrorAlignWithPrev"); + openapiFields.add("SizeErrorIntervWithNext"); + openapiFields.add("SizeErrorIntervWithPrev"); + openapiFields.add("SizeErrorSymbolHeight"); + openapiFields.add("SizeErrorSymbolWidth"); + openapiFields.add("SymbolBounds"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ALIGNMENT_NEAREST_SYMBOLS"); + openapiRequiredFields.add("CONTRAST_PRINT"); + openapiRequiredFields.add("CONTRAST_SYMBOL"); + openapiRequiredFields.add("CharSymbol"); + openapiRequiredFields.add("EDGE"); + openapiRequiredFields.add("EMPTINESS"); + openapiRequiredFields.add("STAIN"); + openapiRequiredFields.add("SYMBOLS_INTERVAL"); + openapiRequiredFields.add("SYMBOL_PARAM"); + openapiRequiredFields.add("SYMBOL_SIZE"); + openapiRequiredFields.add("SizeErrorAlignWithNext"); + openapiRequiredFields.add("SizeErrorAlignWithPrev"); + openapiRequiredFields.add("SizeErrorIntervWithNext"); + openapiRequiredFields.add("SizeErrorIntervWithPrev"); + openapiRequiredFields.add("SizeErrorSymbolHeight"); + openapiRequiredFields.add("SizeErrorSymbolWidth"); + openapiRequiredFields.add("SymbolBounds"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SymbolEstimationItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SymbolEstimationItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in SymbolEstimationItem is not found in the empty JSON string", + SymbolEstimationItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SymbolEstimationItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `SymbolEstimationItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SymbolEstimationItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `SymbolBounds` + RectangleCoordinates.validateJsonElement(jsonObj.get("SymbolBounds")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SymbolEstimationItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SymbolEstimationItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(SymbolEstimationItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, SymbolEstimationItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SymbolEstimationItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of SymbolEstimationItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of SymbolEstimationItem + * @throws IOException if the JSON string is invalid with respect to SymbolEstimationItem + */ + public static SymbolEstimationItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SymbolEstimationItem.class); + } + + /** + * Convert an instance of SymbolEstimationItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolRecognitionResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolRecognitionResult.java old mode 100755 new mode 100644 index 11057bba..4dcf64ea --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolRecognitionResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolRecognitionResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,24 +12,71 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Describes a single character recognition results in the text field line */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class SymbolRecognitionResult { public static final String SERIALIZED_NAME_SYMBOL_RECT = "SymbolRect"; @SerializedName(SERIALIZED_NAME_SYMBOL_RECT) + @javax.annotation.Nonnull private RectangleCoordinates symbolRect; + public static final String SERIALIZED_NAME_CANDIDATES_COUNT = "CandidatesCount"; + + @SerializedName(SERIALIZED_NAME_CANDIDATES_COUNT) + @javax.annotation.Nonnull + private BigDecimal candidatesCount; + public static final String SERIALIZED_NAME_LIST_OF_CANDIDATES = "ListOfCandidates"; @SerializedName(SERIALIZED_NAME_LIST_OF_CANDIDATES) - private List listOfCandidates = new ArrayList(); + @javax.annotation.Nonnull + private List listOfCandidates; + + public static final String SERIALIZED_NAME_BASE_LINE_BOTTOM = "BaseLineBottom"; + + @SerializedName(SERIALIZED_NAME_BASE_LINE_BOTTOM) + @javax.annotation.Nullable + private Integer baseLineBottom; + + public static final String SERIALIZED_NAME_BASE_LINE_TOP = "BaseLineTop"; + + @SerializedName(SERIALIZED_NAME_BASE_LINE_TOP) + @javax.annotation.Nullable + private Integer baseLineTop; - public SymbolRecognitionResult withSymbolRect(RectangleCoordinates symbolRect) { + public static final String SERIALIZED_NAME_RESERVED = "Reserved"; + + @SerializedName(SERIALIZED_NAME_RESERVED) + @javax.annotation.Nullable + private Integer reserved; + + public SymbolRecognitionResult() {} + + public SymbolRecognitionResult symbolRect( + @javax.annotation.Nonnull RectangleCoordinates symbolRect) { this.symbolRect = symbolRect; return this; } @@ -39,20 +86,45 @@ public SymbolRecognitionResult withSymbolRect(RectangleCoordinates symbolRect) { * * @return symbolRect */ + @javax.annotation.Nonnull public RectangleCoordinates getSymbolRect() { return symbolRect; } - public void setSymbolRect(RectangleCoordinates symbolRect) { + public void setSymbolRect(@javax.annotation.Nonnull RectangleCoordinates symbolRect) { this.symbolRect = symbolRect; } - public SymbolRecognitionResult withListOfCandidates(List listOfCandidates) { + public SymbolRecognitionResult candidatesCount( + @javax.annotation.Nonnull BigDecimal candidatesCount) { + this.candidatesCount = candidatesCount; + return this; + } + + /** + * Number of significant elements of ListOfCandidates array + * + * @return candidatesCount + */ + @javax.annotation.Nonnull + public BigDecimal getCandidatesCount() { + return candidatesCount; + } + + public void setCandidatesCount(@javax.annotation.Nonnull BigDecimal candidatesCount) { + this.candidatesCount = candidatesCount; + } + + public SymbolRecognitionResult listOfCandidates( + @javax.annotation.Nonnull List listOfCandidates) { this.listOfCandidates = listOfCandidates; return this; } public SymbolRecognitionResult addListOfCandidatesItem(SymbolCandidate listOfCandidatesItem) { + if (this.listOfCandidates == null) { + this.listOfCandidates = new ArrayList<>(); + } this.listOfCandidates.add(listOfCandidatesItem); return this; } @@ -63,16 +135,75 @@ public SymbolRecognitionResult addListOfCandidatesItem(SymbolCandidate listOfCan * * @return listOfCandidates */ + @javax.annotation.Nonnull public List getListOfCandidates() { return listOfCandidates; } - public void setListOfCandidates(List listOfCandidates) { + public void setListOfCandidates( + @javax.annotation.Nonnull List listOfCandidates) { this.listOfCandidates = listOfCandidates; } + public SymbolRecognitionResult baseLineBottom(@javax.annotation.Nullable Integer baseLineBottom) { + this.baseLineBottom = baseLineBottom; + return this; + } + + /** + * Get baseLineBottom + * + * @return baseLineBottom + */ + @javax.annotation.Nullable + public Integer getBaseLineBottom() { + return baseLineBottom; + } + + public void setBaseLineBottom(@javax.annotation.Nullable Integer baseLineBottom) { + this.baseLineBottom = baseLineBottom; + } + + public SymbolRecognitionResult baseLineTop(@javax.annotation.Nullable Integer baseLineTop) { + this.baseLineTop = baseLineTop; + return this; + } + + /** + * Get baseLineTop + * + * @return baseLineTop + */ + @javax.annotation.Nullable + public Integer getBaseLineTop() { + return baseLineTop; + } + + public void setBaseLineTop(@javax.annotation.Nullable Integer baseLineTop) { + this.baseLineTop = baseLineTop; + } + + public SymbolRecognitionResult reserved(@javax.annotation.Nullable Integer reserved) { + this.reserved = reserved; + return this; + } + + /** + * Get reserved + * + * @return reserved + */ + @javax.annotation.Nullable + public Integer getReserved() { + return reserved; + } + + public void setReserved(@javax.annotation.Nullable Integer reserved) { + this.reserved = reserved; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -81,12 +212,17 @@ public boolean equals(java.lang.Object o) { } SymbolRecognitionResult symbolRecognitionResult = (SymbolRecognitionResult) o; return Objects.equals(this.symbolRect, symbolRecognitionResult.symbolRect) - && Objects.equals(this.listOfCandidates, symbolRecognitionResult.listOfCandidates); + && Objects.equals(this.candidatesCount, symbolRecognitionResult.candidatesCount) + && Objects.equals(this.listOfCandidates, symbolRecognitionResult.listOfCandidates) + && Objects.equals(this.baseLineBottom, symbolRecognitionResult.baseLineBottom) + && Objects.equals(this.baseLineTop, symbolRecognitionResult.baseLineTop) + && Objects.equals(this.reserved, symbolRecognitionResult.reserved); } @Override public int hashCode() { - return Objects.hash(symbolRect, listOfCandidates); + return Objects.hash( + symbolRect, candidatesCount, listOfCandidates, baseLineBottom, baseLineTop, reserved); } @Override @@ -94,7 +230,11 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SymbolRecognitionResult {\n"); sb.append(" symbolRect: ").append(toIndentedString(symbolRect)).append("\n"); + sb.append(" candidatesCount: ").append(toIndentedString(candidatesCount)).append("\n"); sb.append(" listOfCandidates: ").append(toIndentedString(listOfCandidates)).append("\n"); + sb.append(" baseLineBottom: ").append(toIndentedString(baseLineBottom)).append("\n"); + sb.append(" baseLineTop: ").append(toIndentedString(baseLineTop)).append("\n"); + sb.append(" reserved: ").append(toIndentedString(reserved)).append("\n"); sb.append("}"); return sb.toString(); } @@ -102,10 +242,135 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("SymbolRect"); + openapiFields.add("CandidatesCount"); + openapiFields.add("ListOfCandidates"); + openapiFields.add("BaseLineBottom"); + openapiFields.add("BaseLineTop"); + openapiFields.add("Reserved"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("SymbolRect"); + openapiRequiredFields.add("CandidatesCount"); + openapiRequiredFields.add("ListOfCandidates"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SymbolRecognitionResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SymbolRecognitionResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in SymbolRecognitionResult is not found in the empty JSON string", + SymbolRecognitionResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SymbolRecognitionResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `SymbolRecognitionResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SymbolRecognitionResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `SymbolRect` + RectangleCoordinates.validateJsonElement(jsonObj.get("SymbolRect")); + // ensure the json data is an array + if (!jsonObj.get("ListOfCandidates").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ListOfCandidates` to be an array in the JSON string but got `%s`", + jsonObj.get("ListOfCandidates").toString())); + } + + JsonArray jsonArraylistOfCandidates = jsonObj.getAsJsonArray("ListOfCandidates"); + // validate the required field `ListOfCandidates` (array) + for (int i = 0; i < jsonArraylistOfCandidates.size(); i++) { + SymbolCandidate.validateJsonElement(jsonArraylistOfCandidates.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SymbolRecognitionResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SymbolRecognitionResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(SymbolRecognitionResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, SymbolRecognitionResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SymbolRecognitionResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of SymbolRecognitionResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of SymbolRecognitionResult + * @throws IOException if the JSON string is invalid with respect to SymbolRecognitionResult + */ + public static SymbolRecognitionResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SymbolRecognitionResult.class); + } + + /** + * Convert an instance of SymbolRecognitionResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java new file mode 100644 index 00000000..55cd0cea --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java @@ -0,0 +1,202 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** TDocBinaryInfo */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TDocBinaryInfo { + public static final String SERIALIZED_NAME_R_F_I_D_B_I_N_A_R_Y_D_A_T_A = "RFID_BINARY_DATA"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_B_I_N_A_R_Y_D_A_T_A) + @javax.annotation.Nonnull + private BinaryData RFID_BINARY_DATA; + + public TDocBinaryInfo() {} + + public TDocBinaryInfo RFID_BINARY_DATA(@javax.annotation.Nonnull BinaryData RFID_BINARY_DATA) { + this.RFID_BINARY_DATA = RFID_BINARY_DATA; + return this; + } + + /** + * Get RFID_BINARY_DATA + * + * @return RFID_BINARY_DATA + */ + @javax.annotation.Nonnull + public BinaryData getRFIDBINARYDATA() { + return RFID_BINARY_DATA; + } + + public void setRFIDBINARYDATA(@javax.annotation.Nonnull BinaryData RFID_BINARY_DATA) { + this.RFID_BINARY_DATA = RFID_BINARY_DATA; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TDocBinaryInfo tdocBinaryInfo = (TDocBinaryInfo) o; + return Objects.equals(this.RFID_BINARY_DATA, tdocBinaryInfo.RFID_BINARY_DATA); + } + + @Override + public int hashCode() { + return Objects.hash(RFID_BINARY_DATA); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TDocBinaryInfo {\n"); + sb.append(" RFID_BINARY_DATA: ").append(toIndentedString(RFID_BINARY_DATA)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RFID_BINARY_DATA"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("RFID_BINARY_DATA"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TDocBinaryInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TDocBinaryInfo.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TDocBinaryInfo is not found in the empty JSON string", + TDocBinaryInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TDocBinaryInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TDocBinaryInfo` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TDocBinaryInfo.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `RFID_BINARY_DATA` + BinaryData.validateJsonElement(jsonObj.get("RFID_BINARY_DATA")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TDocBinaryInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TDocBinaryInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TDocBinaryInfo.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TDocBinaryInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TDocBinaryInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TDocBinaryInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TDocBinaryInfo + * @throws IOException if the JSON string is invalid with respect to TDocBinaryInfo + */ + public static TDocBinaryInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TDocBinaryInfo.class); + } + + /** + * Convert an instance of TDocBinaryInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Text.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Text.java old mode 100755 new mode 100644 index ab456531..696274dd --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Text.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Text.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,40 +12,69 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Contains all document text fields data with validity and cross-source compare checks */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class Text { public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) - private Integer status; + @javax.annotation.Nonnull + private CheckResult status; public static final String SERIALIZED_NAME_VALIDITY_STATUS = "validityStatus"; @SerializedName(SERIALIZED_NAME_VALIDITY_STATUS) - private Integer validityStatus; + @javax.annotation.Nonnull + private CheckResult validityStatus; public static final String SERIALIZED_NAME_COMPARISON_STATUS = "comparisonStatus"; @SerializedName(SERIALIZED_NAME_COMPARISON_STATUS) - private Integer comparisonStatus; + @javax.annotation.Nonnull + private CheckResult comparisonStatus; + + public static final String SERIALIZED_NAME_DATE_FORMAT = "dateFormat"; + + @SerializedName(SERIALIZED_NAME_DATE_FORMAT) + @javax.annotation.Nonnull + private String dateFormat; public static final String SERIALIZED_NAME_FIELD_LIST = "fieldList"; @SerializedName(SERIALIZED_NAME_FIELD_LIST) - private List fieldList = - new ArrayList(); + @javax.annotation.Nonnull + private List fieldList; public static final String SERIALIZED_NAME_AVAILABLE_SOURCE_LIST = "availableSourceList"; @SerializedName(SERIALIZED_NAME_AVAILABLE_SOURCE_LIST) - private List availableSourceList = new ArrayList(); + @javax.annotation.Nonnull + private List availableSourceList; + + public Text() {} - public Text withStatus(Integer status) { + public Text status(@javax.annotation.Nonnull CheckResult status) { this.status = status; return this; } @@ -55,15 +84,16 @@ public Text withStatus(Integer status) { * * @return status */ - public Integer getStatus() { + @javax.annotation.Nonnull + public CheckResult getStatus() { return status; } - public void setStatus(Integer status) { + public void setStatus(@javax.annotation.Nonnull CheckResult status) { this.status = status; } - public Text withValidityStatus(Integer validityStatus) { + public Text validityStatus(@javax.annotation.Nonnull CheckResult validityStatus) { this.validityStatus = validityStatus; return this; } @@ -73,15 +103,16 @@ public Text withValidityStatus(Integer validityStatus) { * * @return validityStatus */ - public Integer getValidityStatus() { + @javax.annotation.Nonnull + public CheckResult getValidityStatus() { return validityStatus; } - public void setValidityStatus(Integer validityStatus) { + public void setValidityStatus(@javax.annotation.Nonnull CheckResult validityStatus) { this.validityStatus = validityStatus; } - public Text withComparisonStatus(Integer comparisonStatus) { + public Text comparisonStatus(@javax.annotation.Nonnull CheckResult comparisonStatus) { this.comparisonStatus = comparisonStatus; return this; } @@ -91,22 +122,46 @@ public Text withComparisonStatus(Integer comparisonStatus) { * * @return comparisonStatus */ - public Integer getComparisonStatus() { + @javax.annotation.Nonnull + public CheckResult getComparisonStatus() { return comparisonStatus; } - public void setComparisonStatus(Integer comparisonStatus) { + public void setComparisonStatus(@javax.annotation.Nonnull CheckResult comparisonStatus) { this.comparisonStatus = comparisonStatus; } - public Text withFieldList( - List fieldList) { + public Text dateFormat(@javax.annotation.Nonnull String dateFormat) { + this.dateFormat = dateFormat; + return this; + } + + /** + * Date format + * + * @return dateFormat + */ + @javax.annotation.Nonnull + public String getDateFormat() { + return dateFormat; + } + + public void setDateFormat(@javax.annotation.Nonnull String dateFormat) { + this.dateFormat = dateFormat; + } + + public Text fieldList( + @javax.annotation.Nonnull + List fieldList) { this.fieldList = fieldList; return this; } public Text addFieldListItem( com.regula.documentreader.webclient.model.ext.TextField fieldListItem) { + if (this.fieldList == null) { + this.fieldList = new ArrayList<>(); + } this.fieldList.add(fieldListItem); return this; } @@ -116,21 +171,27 @@ public Text addFieldListItem( * * @return fieldList */ + @javax.annotation.Nonnull public List getFieldList() { return fieldList; } public void setFieldList( - List fieldList) { + @javax.annotation.Nonnull + List fieldList) { this.fieldList = fieldList; } - public Text withAvailableSourceList(List availableSourceList) { + public Text availableSourceList( + @javax.annotation.Nonnull List availableSourceList) { this.availableSourceList = availableSourceList; return this; } public Text addAvailableSourceListItem(TextAvailableSource availableSourceListItem) { + if (this.availableSourceList == null) { + this.availableSourceList = new ArrayList<>(); + } this.availableSourceList.add(availableSourceListItem); return this; } @@ -140,16 +201,18 @@ public Text addAvailableSourceListItem(TextAvailableSource availableSourceListIt * * @return availableSourceList */ + @javax.annotation.Nonnull public List getAvailableSourceList() { return availableSourceList; } - public void setAvailableSourceList(List availableSourceList) { + public void setAvailableSourceList( + @javax.annotation.Nonnull List availableSourceList) { this.availableSourceList = availableSourceList; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -160,13 +223,15 @@ public boolean equals(java.lang.Object o) { return Objects.equals(this.status, text.status) && Objects.equals(this.validityStatus, text.validityStatus) && Objects.equals(this.comparisonStatus, text.comparisonStatus) + && Objects.equals(this.dateFormat, text.dateFormat) && Objects.equals(this.fieldList, text.fieldList) && Objects.equals(this.availableSourceList, text.availableSourceList); } @Override public int hashCode() { - return Objects.hash(status, validityStatus, comparisonStatus, fieldList, availableSourceList); + return Objects.hash( + status, validityStatus, comparisonStatus, dateFormat, fieldList, availableSourceList); } @Override @@ -176,6 +241,7 @@ public String toString() { sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" validityStatus: ").append(toIndentedString(validityStatus)).append("\n"); sb.append(" comparisonStatus: ").append(toIndentedString(comparisonStatus)).append("\n"); + sb.append(" dateFormat: ").append(toIndentedString(dateFormat)).append("\n"); sb.append(" fieldList: ").append(toIndentedString(fieldList)).append("\n"); sb.append(" availableSourceList: ") .append(toIndentedString(availableSourceList)) @@ -187,10 +253,162 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("status"); + openapiFields.add("validityStatus"); + openapiFields.add("comparisonStatus"); + openapiFields.add("dateFormat"); + openapiFields.add("fieldList"); + openapiFields.add("availableSourceList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("status"); + openapiRequiredFields.add("validityStatus"); + openapiRequiredFields.add("comparisonStatus"); + openapiRequiredFields.add("dateFormat"); + openapiRequiredFields.add("fieldList"); + openapiRequiredFields.add("availableSourceList"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to Text + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!Text.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in Text is not found in the empty JSON string", + Text.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!Text.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `Text` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : Text.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `status` + CheckResult.validateJsonElement(jsonObj.get("status")); + // validate the required field `validityStatus` + CheckResult.validateJsonElement(jsonObj.get("validityStatus")); + // validate the required field `comparisonStatus` + CheckResult.validateJsonElement(jsonObj.get("comparisonStatus")); + if (!jsonObj.get("dateFormat").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `dateFormat` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("dateFormat").toString())); + } + // ensure the json data is an array + if (!jsonObj.get("fieldList").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `fieldList` to be an array in the JSON string but got `%s`", + jsonObj.get("fieldList").toString())); + } + + JsonArray jsonArrayfieldList = jsonObj.getAsJsonArray("fieldList"); + // validate the required field `fieldList` (array) + for (int i = 0; i < jsonArrayfieldList.size(); i++) { + com.regula.documentreader.webclient.model.ext.TextField.validateJsonElement( + jsonArrayfieldList.get(i)); + } + ; + // ensure the json data is an array + if (!jsonObj.get("availableSourceList").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `availableSourceList` to be an array in the JSON string but got `%s`", + jsonObj.get("availableSourceList").toString())); + } + + JsonArray jsonArrayavailableSourceList = jsonObj.getAsJsonArray("availableSourceList"); + // validate the required field `availableSourceList` (array) + for (int i = 0; i < jsonArrayavailableSourceList.size(); i++) { + TextAvailableSource.validateJsonElement(jsonArrayavailableSourceList.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!Text.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'Text' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(Text.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, Text value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public Text read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of Text given an JSON string + * + * @param jsonString JSON string + * @return An instance of Text + * @throws IOException if the JSON string is invalid with respect to Text + */ + public static Text fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, Text.class); + } + + /** + * Convert an instance of Text to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextAvailableSource.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextAvailableSource.java old mode 100755 new mode 100644 index 99f101e8..e5f0d600 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextAvailableSource.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextAvailableSource.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,27 +12,48 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** TextAvailableSource */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class TextAvailableSource { public static final String SERIALIZED_NAME_SOURCE = "source"; @SerializedName(SERIALIZED_NAME_SOURCE) - private String source; + @javax.annotation.Nonnull + private Source source; public static final String SERIALIZED_NAME_VALIDITY_STATUS = "validityStatus"; @SerializedName(SERIALIZED_NAME_VALIDITY_STATUS) - private Integer validityStatus; + @javax.annotation.Nonnull + private CheckResult validityStatus; public static final String SERIALIZED_NAME_CONTAINER_TYPE = "containerType"; @SerializedName(SERIALIZED_NAME_CONTAINER_TYPE) + @javax.annotation.Nullable private Integer containerType = 0; - public TextAvailableSource withSource(String source) { + public TextAvailableSource() {} + + public TextAvailableSource source(@javax.annotation.Nonnull Source source) { this.source = source; return this; } @@ -42,15 +63,16 @@ public TextAvailableSource withSource(String source) { * * @return source */ - public String getSource() { + @javax.annotation.Nonnull + public Source getSource() { return source; } - public void setSource(String source) { + public void setSource(@javax.annotation.Nonnull Source source) { this.source = source; } - public TextAvailableSource withValidityStatus(Integer validityStatus) { + public TextAvailableSource validityStatus(@javax.annotation.Nonnull CheckResult validityStatus) { this.validityStatus = validityStatus; return this; } @@ -60,15 +82,16 @@ public TextAvailableSource withValidityStatus(Integer validityStatus) { * * @return validityStatus */ - public Integer getValidityStatus() { + @javax.annotation.Nonnull + public CheckResult getValidityStatus() { return validityStatus; } - public void setValidityStatus(Integer validityStatus) { + public void setValidityStatus(@javax.annotation.Nonnull CheckResult validityStatus) { this.validityStatus = validityStatus; } - public TextAvailableSource withContainerType(Integer containerType) { + public TextAvailableSource containerType(@javax.annotation.Nullable Integer containerType) { this.containerType = containerType; return this; } @@ -83,12 +106,12 @@ public Integer getContainerType() { return containerType; } - public void setContainerType(Integer containerType) { + public void setContainerType(@javax.annotation.Nullable Integer containerType) { this.containerType = containerType; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -120,10 +143,119 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("source"); + openapiFields.add("validityStatus"); + openapiFields.add("containerType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("source"); + openapiRequiredFields.add("validityStatus"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TextAvailableSource + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TextAvailableSource.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TextAvailableSource is not found in the empty JSON string", + TextAvailableSource.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TextAvailableSource.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TextAvailableSource` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TextAvailableSource.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `source` + Source.validateJsonElement(jsonObj.get("source")); + // validate the required field `validityStatus` + CheckResult.validateJsonElement(jsonObj.get("validityStatus")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TextAvailableSource.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TextAvailableSource' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TextAvailableSource.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TextAvailableSource value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TextAvailableSource read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TextAvailableSource given an JSON string + * + * @param jsonString JSON string + * @return An instance of TextAvailableSource + * @throws IOException if the JSON string is invalid with respect to TextAvailableSource + */ + public static TextAvailableSource fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TextAvailableSource.class); + } + + /** + * Convert an instance of TextAvailableSource to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java old mode 100755 new mode 100644 index 8a8d66ca..d780fb75 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,20 +12,43 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** * Text fields extracted from one document source. Contains results of specific source for each * provided page. */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class TextDataResult extends ResultItem { public static final String SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO = "DocVisualExtendedInfo"; @SerializedName(SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO) - private DocVisualExtendedInfo docVisualExtendedInfo; + @javax.annotation.Nonnull + private com.regula.documentreader.webclient.model.changed.DocVisualExtendedInfo + docVisualExtendedInfo; - public TextDataResult withDocVisualExtendedInfo(DocVisualExtendedInfo docVisualExtendedInfo) { + public TextDataResult() {} + + public TextDataResult docVisualExtendedInfo( + @javax.annotation.Nonnull + com.regula.documentreader.webclient.model.changed.DocVisualExtendedInfo + docVisualExtendedInfo) { this.docVisualExtendedInfo = docVisualExtendedInfo; return this; } @@ -35,17 +58,21 @@ public TextDataResult withDocVisualExtendedInfo(DocVisualExtendedInfo docVisualE * * @return docVisualExtendedInfo */ - @javax.annotation.Nullable - public DocVisualExtendedInfo getDocVisualExtendedInfo() { + @javax.annotation.Nonnull + public com.regula.documentreader.webclient.model.changed.DocVisualExtendedInfo + getDocVisualExtendedInfo() { return docVisualExtendedInfo; } - public void setDocVisualExtendedInfo(DocVisualExtendedInfo docVisualExtendedInfo) { + public void setDocVisualExtendedInfo( + @javax.annotation.Nonnull + com.regula.documentreader.webclient.model.changed.DocVisualExtendedInfo + docVisualExtendedInfo) { this.docVisualExtendedInfo = docVisualExtendedInfo; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -77,10 +104,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("DocVisualExtendedInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("DocVisualExtendedInfo"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TextDataResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TextDataResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TextDataResult is not found in the empty JSON string", + TextDataResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TextDataResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TextDataResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TextDataResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TextDataResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TextDataResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TextDataResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TextDataResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TextDataResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TextDataResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of TextDataResult + * @throws IOException if the JSON string is invalid with respect to TextDataResult + */ + public static TextDataResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TextDataResult.class); + } + + /** + * Convert an instance of TextDataResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextField.java old mode 100755 new mode 100644 index 8fb1233c..a8caf326 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextField.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,65 +12,99 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** TextField */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class TextField { public static final String SERIALIZED_NAME_FIELD_TYPE = "fieldType"; @SerializedName(SERIALIZED_NAME_FIELD_TYPE) - private Integer fieldType; + @javax.annotation.Nonnull + private TextFieldType fieldType; public static final String SERIALIZED_NAME_FIELD_NAME = "fieldName"; @SerializedName(SERIALIZED_NAME_FIELD_NAME) + @javax.annotation.Nonnull private String fieldName; public static final String SERIALIZED_NAME_LCID = "lcid"; @SerializedName(SERIALIZED_NAME_LCID) - private Integer lcid; + @javax.annotation.Nonnull + private LCID lcid; + + public static final String SERIALIZED_NAME_LCID_NAME = "lcidName"; + + @SerializedName(SERIALIZED_NAME_LCID_NAME) + @javax.annotation.Nullable + private String lcidName; public static final String SERIALIZED_NAME_STATUS = "status"; @SerializedName(SERIALIZED_NAME_STATUS) - private Integer status; + @javax.annotation.Nonnull + private CheckResult status; public static final String SERIALIZED_NAME_VALIDITY_STATUS = "validityStatus"; @SerializedName(SERIALIZED_NAME_VALIDITY_STATUS) - private Integer validityStatus; + @javax.annotation.Nonnull + private CheckResult validityStatus; public static final String SERIALIZED_NAME_COMPARISON_STATUS = "comparisonStatus"; @SerializedName(SERIALIZED_NAME_COMPARISON_STATUS) - private Integer comparisonStatus; + @javax.annotation.Nonnull + private CheckResult comparisonStatus; public static final String SERIALIZED_NAME_VALUE = "value"; @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nonnull private String value; public static final String SERIALIZED_NAME_VALUE_LIST = "valueList"; @SerializedName(SERIALIZED_NAME_VALUE_LIST) - private List valueList = new ArrayList(); + @javax.annotation.Nonnull + private List valueList; public static final String SERIALIZED_NAME_VALIDITY_LIST = "validityList"; @SerializedName(SERIALIZED_NAME_VALIDITY_LIST) - private List validityList = new ArrayList(); + @javax.annotation.Nonnull + private List validityList; public static final String SERIALIZED_NAME_COMPARISON_LIST = "comparisonList"; @SerializedName(SERIALIZED_NAME_COMPARISON_LIST) - private List comparisonList = - new ArrayList(); + @javax.annotation.Nonnull + private List comparisonList; + + public TextField() {} - public TextField withFieldType(Integer fieldType) { + public TextField fieldType(@javax.annotation.Nonnull TextFieldType fieldType) { this.fieldType = fieldType; return this; } @@ -80,15 +114,16 @@ public TextField withFieldType(Integer fieldType) { * * @return fieldType */ - public Integer getFieldType() { + @javax.annotation.Nonnull + public TextFieldType getFieldType() { return fieldType; } - public void setFieldType(Integer fieldType) { + public void setFieldType(@javax.annotation.Nonnull TextFieldType fieldType) { this.fieldType = fieldType; } - public TextField withFieldName(String fieldName) { + public TextField fieldName(@javax.annotation.Nonnull String fieldName) { this.fieldName = fieldName; return this; } @@ -99,15 +134,16 @@ public TextField withFieldName(String fieldName) { * * @return fieldName */ + @javax.annotation.Nonnull public String getFieldName() { return fieldName; } - public void setFieldName(String fieldName) { + public void setFieldName(@javax.annotation.Nonnull String fieldName) { this.fieldName = fieldName; } - public TextField withLcid(Integer lcid) { + public TextField lcid(@javax.annotation.Nonnull LCID lcid) { this.lcid = lcid; return this; } @@ -117,16 +153,35 @@ public TextField withLcid(Integer lcid) { * * @return lcid */ - @javax.annotation.Nullable - public Integer getLcid() { + @javax.annotation.Nonnull + public LCID getLcid() { return lcid; } - public void setLcid(Integer lcid) { + public void setLcid(@javax.annotation.Nonnull LCID lcid) { this.lcid = lcid; } - public TextField withStatus(Integer status) { + public TextField lcidName(@javax.annotation.Nullable String lcidName) { + this.lcidName = lcidName; + return this; + } + + /** + * LCID name + * + * @return lcidName + */ + @javax.annotation.Nullable + public String getLcidName() { + return lcidName; + } + + public void setLcidName(@javax.annotation.Nullable String lcidName) { + this.lcidName = lcidName; + } + + public TextField status(@javax.annotation.Nonnull CheckResult status) { this.status = status; return this; } @@ -136,15 +191,16 @@ public TextField withStatus(Integer status) { * * @return status */ - public Integer getStatus() { + @javax.annotation.Nonnull + public CheckResult getStatus() { return status; } - public void setStatus(Integer status) { + public void setStatus(@javax.annotation.Nonnull CheckResult status) { this.status = status; } - public TextField withValidityStatus(Integer validityStatus) { + public TextField validityStatus(@javax.annotation.Nonnull CheckResult validityStatus) { this.validityStatus = validityStatus; return this; } @@ -154,15 +210,16 @@ public TextField withValidityStatus(Integer validityStatus) { * * @return validityStatus */ - public Integer getValidityStatus() { + @javax.annotation.Nonnull + public CheckResult getValidityStatus() { return validityStatus; } - public void setValidityStatus(Integer validityStatus) { + public void setValidityStatus(@javax.annotation.Nonnull CheckResult validityStatus) { this.validityStatus = validityStatus; } - public TextField withComparisonStatus(Integer comparisonStatus) { + public TextField comparisonStatus(@javax.annotation.Nonnull CheckResult comparisonStatus) { this.comparisonStatus = comparisonStatus; return this; } @@ -172,15 +229,16 @@ public TextField withComparisonStatus(Integer comparisonStatus) { * * @return comparisonStatus */ - public Integer getComparisonStatus() { + @javax.annotation.Nonnull + public CheckResult getComparisonStatus() { return comparisonStatus; } - public void setComparisonStatus(Integer comparisonStatus) { + public void setComparisonStatus(@javax.annotation.Nonnull CheckResult comparisonStatus) { this.comparisonStatus = comparisonStatus; } - public TextField withValue(String value) { + public TextField value(@javax.annotation.Nonnull String value) { this.value = value; return this; } @@ -190,20 +248,24 @@ public TextField withValue(String value) { * * @return value */ + @javax.annotation.Nonnull public String getValue() { return value; } - public void setValue(String value) { + public void setValue(@javax.annotation.Nonnull String value) { this.value = value; } - public TextField withValueList(List valueList) { + public TextField valueList(@javax.annotation.Nonnull List valueList) { this.valueList = valueList; return this; } public TextField addValueListItem(TextFieldValue valueListItem) { + if (this.valueList == null) { + this.valueList = new ArrayList<>(); + } this.valueList.add(valueListItem); return this; } @@ -213,20 +275,24 @@ public TextField addValueListItem(TextFieldValue valueListItem) { * * @return valueList */ + @javax.annotation.Nonnull public List getValueList() { return valueList; } - public void setValueList(List valueList) { + public void setValueList(@javax.annotation.Nonnull List valueList) { this.valueList = valueList; } - public TextField withValidityList(List validityList) { + public TextField validityList(@javax.annotation.Nonnull List validityList) { this.validityList = validityList; return this; } public TextField addValidityListItem(SourceValidity validityListItem) { + if (this.validityList == null) { + this.validityList = new ArrayList<>(); + } this.validityList.add(validityListItem); return this; } @@ -238,20 +304,25 @@ public TextField addValidityListItem(SourceValidity validityListItem) { * * @return validityList */ + @javax.annotation.Nonnull public List getValidityList() { return validityList; } - public void setValidityList(List validityList) { + public void setValidityList(@javax.annotation.Nonnull List validityList) { this.validityList = validityList; } - public TextField withComparisonList(List comparisonList) { + public TextField comparisonList( + @javax.annotation.Nonnull List comparisonList) { this.comparisonList = comparisonList; return this; } public TextField addComparisonListItem(CrossSourceValueComparison comparisonListItem) { + if (this.comparisonList == null) { + this.comparisonList = new ArrayList<>(); + } this.comparisonList.add(comparisonListItem); return this; } @@ -261,16 +332,18 @@ public TextField addComparisonListItem(CrossSourceValueComparison comparisonList * * @return comparisonList */ + @javax.annotation.Nonnull public List getComparisonList() { return comparisonList; } - public void setComparisonList(List comparisonList) { + public void setComparisonList( + @javax.annotation.Nonnull List comparisonList) { this.comparisonList = comparisonList; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -281,6 +354,7 @@ public boolean equals(java.lang.Object o) { return Objects.equals(this.fieldType, textField.fieldType) && Objects.equals(this.fieldName, textField.fieldName) && Objects.equals(this.lcid, textField.lcid) + && Objects.equals(this.lcidName, textField.lcidName) && Objects.equals(this.status, textField.status) && Objects.equals(this.validityStatus, textField.validityStatus) && Objects.equals(this.comparisonStatus, textField.comparisonStatus) @@ -296,6 +370,7 @@ public int hashCode() { fieldType, fieldName, lcid, + lcidName, status, validityStatus, comparisonStatus, @@ -312,6 +387,7 @@ public String toString() { sb.append(" fieldType: ").append(toIndentedString(fieldType)).append("\n"); sb.append(" fieldName: ").append(toIndentedString(fieldName)).append("\n"); sb.append(" lcid: ").append(toIndentedString(lcid)).append("\n"); + sb.append(" lcidName: ").append(toIndentedString(lcidName)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" validityStatus: ").append(toIndentedString(validityStatus)).append("\n"); sb.append(" comparisonStatus: ").append(toIndentedString(comparisonStatus)).append("\n"); @@ -326,10 +402,202 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("fieldType"); + openapiFields.add("fieldName"); + openapiFields.add("lcid"); + openapiFields.add("lcidName"); + openapiFields.add("status"); + openapiFields.add("validityStatus"); + openapiFields.add("comparisonStatus"); + openapiFields.add("value"); + openapiFields.add("valueList"); + openapiFields.add("validityList"); + openapiFields.add("comparisonList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("fieldType"); + openapiRequiredFields.add("fieldName"); + openapiRequiredFields.add("lcid"); + openapiRequiredFields.add("status"); + openapiRequiredFields.add("validityStatus"); + openapiRequiredFields.add("comparisonStatus"); + openapiRequiredFields.add("value"); + openapiRequiredFields.add("valueList"); + openapiRequiredFields.add("validityList"); + openapiRequiredFields.add("comparisonList"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TextField + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TextField.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TextField is not found in the empty JSON string", + TextField.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TextField.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TextField` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TextField.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `fieldType` + TextFieldType.validateJsonElement(jsonObj.get("fieldType")); + if (!jsonObj.get("fieldName").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `fieldName` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("fieldName").toString())); + } + // validate the required field `lcid` + LCID.validateJsonElement(jsonObj.get("lcid")); + if ((jsonObj.get("lcidName") != null && !jsonObj.get("lcidName").isJsonNull()) + && !jsonObj.get("lcidName").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `lcidName` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("lcidName").toString())); + } + // validate the required field `status` + CheckResult.validateJsonElement(jsonObj.get("status")); + // validate the required field `validityStatus` + CheckResult.validateJsonElement(jsonObj.get("validityStatus")); + // validate the required field `comparisonStatus` + CheckResult.validateJsonElement(jsonObj.get("comparisonStatus")); + if (!jsonObj.get("value").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `value` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("value").toString())); + } + // ensure the json data is an array + if (!jsonObj.get("valueList").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `valueList` to be an array in the JSON string but got `%s`", + jsonObj.get("valueList").toString())); + } + + JsonArray jsonArrayvalueList = jsonObj.getAsJsonArray("valueList"); + // validate the required field `valueList` (array) + for (int i = 0; i < jsonArrayvalueList.size(); i++) { + TextFieldValue.validateJsonElement(jsonArrayvalueList.get(i)); + } + ; + // ensure the json data is an array + if (!jsonObj.get("validityList").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `validityList` to be an array in the JSON string but got `%s`", + jsonObj.get("validityList").toString())); + } + + JsonArray jsonArrayvalidityList = jsonObj.getAsJsonArray("validityList"); + // validate the required field `validityList` (array) + for (int i = 0; i < jsonArrayvalidityList.size(); i++) { + SourceValidity.validateJsonElement(jsonArrayvalidityList.get(i)); + } + ; + // ensure the json data is an array + if (!jsonObj.get("comparisonList").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `comparisonList` to be an array in the JSON string but got `%s`", + jsonObj.get("comparisonList").toString())); + } + + JsonArray jsonArraycomparisonList = jsonObj.getAsJsonArray("comparisonList"); + // validate the required field `comparisonList` (array) + for (int i = 0; i < jsonArraycomparisonList.size(); i++) { + CrossSourceValueComparison.validateJsonElement(jsonArraycomparisonList.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TextField.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TextField' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TextField.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TextField value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TextField read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TextField given an JSON string + * + * @param jsonString JSON string + * @return An instance of TextField + * @throws IOException if the JSON string is invalid with respect to TextField + */ + public static TextField fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TextField.class); + } + + /** + * Convert an instance of TextField to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java old mode 100755 new mode 100644 index 5d8e264c..50917444 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,1931 +12,1983 @@ package com.regula.documentreader.webclient.model; -public class TextFieldType { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Gets or Sets TextFieldType */ +@JsonAdapter(TextFieldType.Adapter.class) +public enum TextFieldType { /** Document class code */ - public static final int DOCUMENT_CLASS_CODE = 0; + DOCUMENT_CLASS_CODE(0), /** Issuing state code */ - public static final int ISSUING_STATE_CODE = 1; + ISSUING_STATE_CODE(1), /** Document number */ - public static final int DOCUMENT_NUMBER = 2; + DOCUMENT_NUMBER(2), /** Date of expiry */ - public static final int DATE_OF_EXPIRY = 3; + DATE_OF_EXPIRY(3), /** Date of issue */ - public static final int DATE_OF_ISSUE = 4; + DATE_OF_ISSUE(4), /** Date of birth */ - public static final int DATE_OF_BIRTH = 5; + DATE_OF_BIRTH(5), /** Place of birth */ - public static final int PLACE_OF_BIRTH = 6; + PLACE_OF_BIRTH(6), /** Personal number */ - public static final int PERSONAL_NUMBER = 7; + PERSONAL_NUMBER(7), /** Surname */ - public static final int SURNAME = 8; + SURNAME(8), /** Given name(s) */ - public static final int GIVEN_NAMES = 9; + GIVEN_NAMES(9), /** Mother's name */ - public static final int MOTHERS_NAME = 10; + MOTHERS_NAME(10), /** Nationality */ - public static final int NATIONALITY = 11; + NATIONALITY(11), /** Sex */ - public static final int SEX = 12; + SEX(12), /** Height */ - public static final int HEIGHT = 13; + HEIGHT(13), /** Weight */ - public static final int WEIGHT = 14; + WEIGHT(14), /** Eyes color */ - public static final int EYES_COLOR = 15; + EYES_COLOR(15), /** Hair color */ - public static final int HAIR_COLOR = 16; + HAIR_COLOR(16), /** Address */ - public static final int ADDRESS = 17; + ADDRESS(17), /** Donor */ - public static final int DONOR = 18; + DONOR(18), /** Social security number */ - public static final int SOCIAL_SECURITY_NUMBER = 19; + SOCIAL_SECURITY_NUMBER(19), /** DL class */ - public static final int DL_CLASS = 20; + DL_CLASS(20), /** DL endorsement code */ - public static final int DL_ENDORSED = 21; + DL_ENDORSED(21), /** DL restriction code */ - public static final int DL_RESTRICTION_CODE = 22; + DL_RESTRICTION_CODE(22), /** Date of 21st birthday */ - public static final int DL_UNDER_21_DATE = 23; + DL_UNDER_21_DATE(23), /** Issuing authority */ - public static final int AUTHORITY = 24; + AUTHORITY(24), /** Surname and given names */ - public static final int SURNAME_AND_GIVEN_NAMES = 25; + SURNAME_AND_GIVEN_NAMES(25), /** Nationality code */ - public static final int NATIONALITY_CODE = 26; + NATIONALITY_CODE(26), /** Passport number */ - public static final int PASSPORT_NUMBER = 27; + PASSPORT_NUMBER(27), /** Invitation number */ - public static final int INVITATION_NUMBER = 28; + INVITATION_NUMBER(28), /** Visa ID */ - public static final int VISA_ID = 29; + VISA_ID(29), /** Visa class */ - public static final int VISA_CLASS = 30; + VISA_CLASS(30), /** Visa subclass */ - public static final int VISA_SUBCLASS = 31; + VISA_SUBCLASS(31), /** MRZ type */ - public static final int MRZ_TYPE = 35; + MRZ_TYPE(35), /** Optional data */ - public static final int OPTIONAL_DATA = 36; + OPTIONAL_DATA(36), /** Document class name */ - public static final int DOCUMENT_CLASS_NAME = 37; + DOCUMENT_CLASS_NAME(37), /** Issuing state name */ - public static final int ISSUING_STATE_NAME = 38; + ISSUING_STATE_NAME(38), /** Place of issue */ - public static final int PLACE_OF_ISSUE = 39; + PLACE_OF_ISSUE(39), /** Document number checksum */ - public static final int DOCUMENT_NUMBER_CHECKSUM = 40; + DOCUMENT_NUMBER_CHECKSUM(40), /** Date of birth checksum */ - public static final int DATE_OF_BIRTH_CHECKSUM = 41; + DATE_OF_BIRTH_CHECKSUM(41), /** Date of expiry checksum */ - public static final int DATE_OF_EXPIRY_CHECKSUM = 42; + DATE_OF_EXPIRY_CHECKSUM(42), /** Personal number checksum */ - public static final int PERSONAL_NUMBER_CHECKSUM = 43; + PERSONAL_NUMBER_CHECKSUM(43), /** Final checksum */ - public static final int FINAL_CHECKSUM = 44; + FINAL_CHECKSUM(44), /** Passport number checksum */ - public static final int PASSPORT_NUMBER_CHECKSUM = 45; + PASSPORT_NUMBER_CHECKSUM(45), /** Invitation number checksum */ - public static final int INVITATION_NUMBER_CHECKSUM = 46; + INVITATION_NUMBER_CHECKSUM(46), /** Visa ID checksum */ - public static final int VISA_ID_CHECKSUM = 47; + VISA_ID_CHECKSUM(47), /** Surname and given names checksum */ - public static final int SURNAME_AND_GIVEN_NAMES_CHECKSUM = 48; + SURNAME_AND_GIVEN_NAMES_CHECKSUM(48), /** Visa valid until checksum */ - public static final int VISA_VALID_UNTIL_CHECKSUM = 49; + VISA_VALID_UNTIL_CHECKSUM(49), /** Other */ - public static final int OTHER = 50; + OTHER(50), /** MRZ strings */ - public static final int MRZ_STRINGS = 51; + MRZ_STRINGS(51), /** Name suffix */ - public static final int NAME_SUFFIX = 52; + NAME_SUFFIX(52), /** Name prefix */ - public static final int NAME_PREFIX = 53; + NAME_PREFIX(53), /** Date of issue checksum */ - public static final int DATE_OF_ISSUE_CHECKSUM = 54; + DATE_OF_ISSUE_CHECKSUM(54), /** Date of issue check digit */ - public static final int DATE_OF_ISSUE_CHECK_DIGIT = 55; + DATE_OF_ISSUE_CHECK_DIGIT(55), /** Document series */ - public static final int DOCUMENT_SERIES = 56; + DOCUMENT_SERIES(56), /** Registration number */ - public static final int REG_CERT_REG_NUMBER = 57; + REG_CERT_REG_NUMBER(57), /** Vehicle model */ - public static final int REG_CERT_CAR_MODEL = 58; + REG_CERT_CAR_MODEL(58), /** Vehicle color */ - public static final int REG_CERT_CAR_COLOR = 59; + REG_CERT_CAR_COLOR(59), /** Vehicle body number */ - public static final int REG_CERT_BODY_NUMBER = 60; + REG_CERT_BODY_NUMBER(60), /** Vehicle type */ - public static final int REG_CERT_CAR_TYPE = 61; + REG_CERT_CAR_TYPE(61), /** Max permissible weight */ - public static final int REG_CERT_MAX_WEIGHT = 62; + REG_CERT_MAX_WEIGHT(62), /** Unladen mass */ - public static final int REG_CERT_WEIGHT = 63; + REG_CERT_WEIGHT(63), /** Address: area */ - public static final int ADDRESS_AREA = 64; + ADDRESS_AREA(64), /** Address: state */ - public static final int ADDRESS_STATE = 65; + ADDRESS_STATE(65), /** Address: building */ - public static final int ADDRESS_BUILDING = 66; + ADDRESS_BUILDING(66), /** Address: house */ - public static final int ADDRESS_HOUSE = 67; + ADDRESS_HOUSE(67), /** Address: flat */ - public static final int ADDRESS_FLAT = 68; + ADDRESS_FLAT(68), /** Place of registration */ - public static final int PLACE_OF_REGISTRATION = 69; + PLACE_OF_REGISTRATION(69), /** Date of registration */ - public static final int DATE_OF_REGISTRATION = 70; + DATE_OF_REGISTRATION(70), /** Resident from */ - public static final int RESIDENT_FROM = 71; + RESIDENT_FROM(71), /** Resident until */ - public static final int RESIDENT_UNTIL = 72; + RESIDENT_UNTIL(72), /** Issuing authority code */ - public static final int AUTHORITY_CODE = 73; + AUTHORITY_CODE(73), /** Place of birth: area */ - public static final int PLACE_OF_BIRTH_AREA = 74; + PLACE_OF_BIRTH_AREA(74), /** Place of birth: state code */ - public static final int PLACE_OF_BIRTH_STATE_CODE = 75; + PLACE_OF_BIRTH_STATE_CODE(75), /** Address: street */ - public static final int ADDRESS_STREET = 76; + ADDRESS_STREET(76), /** Address: city */ - public static final int ADDRESS_CITY = 77; + ADDRESS_CITY(77), /** Address: jurisdiction code */ - public static final int ADDRESS_JURISDICTION_CODE = 78; + ADDRESS_JURISDICTION_CODE(78), /** Address: postal code */ - public static final int ADDRESS_POSTAL_CODE = 79; + ADDRESS_POSTAL_CODE(79), /** Document number check digit */ - public static final int DOCUMENT_NUMBER_CHECK_DIGIT = 80; + DOCUMENT_NUMBER_CHECK_DIGIT(80), /** Date of birth check digit */ - public static final int DATE_OF_BIRTH_CHECK_DIGIT = 81; + DATE_OF_BIRTH_CHECK_DIGIT(81), /** Date of expiry check digit */ - public static final int DATE_OF_EXPIRY_CHECK_DIGIT = 82; + DATE_OF_EXPIRY_CHECK_DIGIT(82), /** Personal number check digit */ - public static final int PERSONAL_NUMBER_CHECK_DIGIT = 83; + PERSONAL_NUMBER_CHECK_DIGIT(83), /** Final check digit */ - public static final int FINAL_CHECK_DIGIT = 84; + FINAL_CHECK_DIGIT(84), /** Passport number check digit */ - public static final int PASSPORT_NUMBER_CHECK_DIGIT = 85; + PASSPORT_NUMBER_CHECK_DIGIT(85), /** Invitation number check digit */ - public static final int INVITATION_NUMBER_CHECK_DIGIT = 86; + INVITATION_NUMBER_CHECK_DIGIT(86), /** Visa ID check digit */ - public static final int VISA_ID_CHECK_DIGIT = 87; + VISA_ID_CHECK_DIGIT(87), /** Surname and given names check digit */ - public static final int SURNAME_AND_GIVEN_NAMES_CHECK_DIGIT = 88; + SURNAME_AND_GIVEN_NAMES_CHECK_DIGIT(88), /** Visa valid until check digit */ - public static final int VISA_VALID_UNTIL_CHECK_DIGIT = 89; + VISA_VALID_UNTIL_CHECK_DIGIT(89), /** Permit class */ - public static final int PERMIT_DL_CLASS = 90; + PERMIT_DL_CLASS(90), /** Permit expiry date */ - public static final int PERMIT_DATE_OF_EXPIRY = 91; + PERMIT_DATE_OF_EXPIRY(91), /** Permit identifier */ - public static final int PERMIT_IDENTIFIER = 92; + PERMIT_IDENTIFIER(92), /** Permit issue date */ - public static final int PERMIT_DATE_OF_ISSUE = 93; + PERMIT_DATE_OF_ISSUE(93), /** Permit restriction code */ - public static final int PERMIT_RESTRICTION_CODE = 94; + PERMIT_RESTRICTION_CODE(94), /** Permit endorsement code */ - public static final int PERMIT_ENDORSED = 95; + PERMIT_ENDORSED(95), /** Issue timestamp */ - public static final int ISSUE_TIMESTAMP = 96; + ISSUE_TIMESTAMP(96), /** Number of duplicates */ - public static final int NUMBER_OF_DUPLICATES = 97; + NUMBER_OF_DUPLICATES(97), /** Medical indicator codes */ - public static final int MEDICAL_INDICATOR_CODES = 98; + MEDICAL_INDICATOR_CODES(98), /** Non-resident indicator */ - public static final int NON_RESIDENT_INDICATOR = 99; + NON_RESIDENT_INDICATOR(99), /** Visa type */ - public static final int VISA_TYPE = 100; + VISA_TYPE(100), /** Visa valid from */ - public static final int VISA_VALID_FROM = 101; + VISA_VALID_FROM(101), /** Visa valid until */ - public static final int VISA_VALID_UNTIL = 102; + VISA_VALID_UNTIL(102), /** Duration of stay */ - public static final int DURATION_OF_STAY = 103; + DURATION_OF_STAY(103), /** Number of entries */ - public static final int NUMBER_OF_ENTRIES = 104; + NUMBER_OF_ENTRIES(104), /** Day */ - public static final int DAY = 105; + DAY(105), /** Month */ - public static final int MONTH = 106; + MONTH(106), /** Year */ - public static final int YEAR = 107; + YEAR(107), /** Unique customer identifier */ - public static final int UNIQUE_CUSTOMER_IDENTIFIER = 108; + UNIQUE_CUSTOMER_IDENTIFIER(108), /** Commercial vehicle code */ - public static final int COMMERCIAL_VEHICLE_CODES = 109; + COMMERCIAL_VEHICLE_CODES(109), /** AKA: date of birth */ - public static final int AKA_DATE_OF_BIRTH = 110; + AKA_DATE_OF_BIRTH(110), /** AKA: social insurance number */ - public static final int AKA_SOCIAL_SECURITY_NUMBER = 111; + AKA_SOCIAL_SECURITY_NUMBER(111), /** AKA: surname */ - public static final int AKA_SURNAME = 112; + AKA_SURNAME(112), /** AKA: given name(s) */ - public static final int AKA_GIVEN_NAMES = 113; + AKA_GIVEN_NAMES(113), /** AKA: name suffix */ - public static final int AKA_NAME_SUFFIX = 114; + AKA_NAME_SUFFIX(114), /** AKA: name prefix */ - public static final int AKA_NAME_PREFIX = 115; + AKA_NAME_PREFIX(115), /** Mailing address: street */ - public static final int MAILING_ADDRESS_STREET = 116; + MAILING_ADDRESS_STREET(116), /** Mailing address: city */ - public static final int MAILING_ADDRESS_CITY = 117; + MAILING_ADDRESS_CITY(117), /** Mailing address: jurisdiction code */ - public static final int MAILING_ADDRESS_JURISDICTION_CODE = 118; + MAILING_ADDRESS_JURISDICTION_CODE(118), /** Mailing address: postal code */ - public static final int MAILING_ADDRESS_POSTAL_CODE = 119; + MAILING_ADDRESS_POSTAL_CODE(119), /** Number for validation */ - public static final int AUDIT_INFORMATION = 120; + AUDIT_INFORMATION(120), /** Inventory number */ - public static final int INVENTORY_NUMBER = 121; + INVENTORY_NUMBER(121), /** Race ethnicity */ - public static final int RACE_ETHNICITY = 122; + RACE_ETHNICITY(122), /** Jurisdiction vehicle class */ - public static final int JURISDICTION_VEHICLE_CLASS = 123; + JURISDICTION_VEHICLE_CLASS(123), /** Jurisdiction endorsement code */ - public static final int JURISDICTION_ENDORSEMENT_CODE = 124; + JURISDICTION_ENDORSEMENT_CODE(124), /** Jurisdiction restriction code */ - public static final int JURISDICTION_RESTRICTION_CODE = 125; + JURISDICTION_RESTRICTION_CODE(125), /** Family name */ - public static final int FAMILY_NAME = 126; + FAMILY_NAME(126), /** Given name(s) (national) */ - public static final int GIVEN_NAMES_RUS = 127; + GIVEN_NAMES_RUS(127), /** Visa ID (national) */ - public static final int VISA_ID_RUS = 128; + VISA_ID_RUS(128), /** Father's name */ - public static final int FATHERS_NAME = 129; + FATHERS_NAME(129), /** Father's name (national) */ - public static final int FATHERS_NAME_RUS = 130; + FATHERS_NAME_RUS(130), /** Surname and given names (national) */ - public static final int SURNAME_AND_GIVEN_NAMES_RUS = 131; + SURNAME_AND_GIVEN_NAMES_RUS(131), /** Place of birth (national) */ - public static final int PLACE_OF_BIRTH_RUS = 132; + PLACE_OF_BIRTH_RUS(132), /** Issuing authority (national) */ - public static final int AUTHORITY_RUS = 133; + AUTHORITY_RUS(133), /** Issuing state code (numeric) */ - public static final int ISSUING_STATE_CODE_NUMERIC = 134; + ISSUING_STATE_CODE_NUMERIC(134), /** Nationality code (numeric) */ - public static final int NATIONALITY_CODE_NUMERIC = 135; + NATIONALITY_CODE_NUMERIC(135), /** Engine power */ - public static final int ENGINE_POWER = 136; + ENGINE_POWER(136), /** Engine volume */ - public static final int ENGINE_VOLUME = 137; + ENGINE_VOLUME(137), /** Chassis number */ - public static final int CHASSIS_NUMBER = 138; + CHASSIS_NUMBER(138), /** Engine number */ - public static final int ENGINE_NUMBER = 139; + ENGINE_NUMBER(139), /** Engine model */ - public static final int ENGINE_MODEL = 140; + ENGINE_MODEL(140), /** Vehicle category */ - public static final int VEHICLE_CATEGORY = 141; + VEHICLE_CATEGORY(141), /** Identity card number */ - public static final int IDENTITY_CARD_NUMBER = 142; + IDENTITY_CARD_NUMBER(142), /** Control number */ - public static final int CONTROL_NUMBER = 143; + CONTROL_NUMBER(143), /** Parents' given names */ - public static final int PARENTS_GIVEN_NAMES = 144; + PARENTS_GIVEN_NAMES(144), /** Second surname */ - public static final int SECOND_SURNAME = 145; + SECOND_SURNAME(145), /** Middle name */ - public static final int MIDDLE_NAME = 146; + MIDDLE_NAME(146), /** Vehicle identification number */ - public static final int REG_CERT_VIN = 147; + REG_CERT_VIN(147), /** VIN check digit */ - public static final int REG_CERT_VIN_CHECK_DIGIT = 148; + REG_CERT_VIN_CHECK_DIGIT(148), /** VIN checksum */ - public static final int REG_CERT_VIN_CHECKSUM = 149; + REG_CERT_VIN_CHECKSUM(149), /** Line 1 check digit */ - public static final int LINE_1_CHECK_DIGIT = 150; + LINE_1_CHECK_DIGIT(150), /** Line 2 check digit */ - public static final int LINE_2_CHECK_DIGIT = 151; + LINE_2_CHECK_DIGIT(151), /** Line 3 check digit */ - public static final int LINE_3_CHECK_DIGIT = 152; + LINE_3_CHECK_DIGIT(152), /** Line 1 checksum */ - public static final int LINE_1_CHECKSUM = 153; + LINE_1_CHECKSUM(153), /** Line 2 checksum */ - public static final int LINE_2_CHECKSUM = 154; + LINE_2_CHECKSUM(154), /** Line 3 checksum */ - public static final int LINE_3_CHECKSUM = 155; + LINE_3_CHECKSUM(155), /** Registration number check digit */ - public static final int REG_CERT_REG_NUMBER_CHECK_DIGIT = 156; + REG_CERT_REG_NUMBER_CHECK_DIGIT(156), /** Registration number checksum */ - public static final int REG_CERT_REG_NUMBER_CHECKSUM = 157; + REG_CERT_REG_NUMBER_CHECKSUM(157), /** Vehicle ITS code */ - public static final int REG_CERT_VEHICLE_ITS_CODE = 158; + REG_CERT_VEHICLE_ITS_CODE(158), /** Card access number */ - public static final int CARD_ACCESS_NUMBER = 159; + CARD_ACCESS_NUMBER(159), /** Marital status */ - public static final int MARITAL_STATUS = 160; + MARITAL_STATUS(160), /** Company name */ - public static final int COMPANY_NAME = 161; + COMPANY_NAME(161), /** Special notes */ - public static final int SPECIAL_NOTES = 162; + SPECIAL_NOTES(162), /** Spouse's surname */ - public static final int SURNAME_OF_SPOUSE = 163; + SURNAME_OF_SPOUSE(163), /** Tracking number */ - public static final int TRACKING_NUMBER = 164; + TRACKING_NUMBER(164), /** Booklet number */ - public static final int BOOKLET_NUMBER = 165; + BOOKLET_NUMBER(165), /** Children */ - public static final int CHILDREN = 166; + CHILDREN(166), /** Copy */ - public static final int COPY = 167; + COPY(167), /** Serial number */ - public static final int SERIAL_NUMBER = 168; + SERIAL_NUMBER(168), /** Dossier number */ - public static final int DOSSIER_NUMBER = 169; + DOSSIER_NUMBER(169), /** AKA: surname and given names */ - public static final int AKA_SURNAME_AND_GIVEN_NAMES = 170; + AKA_SURNAME_AND_GIVEN_NAMES(170), /** Territorial validity */ - public static final int TERRITORIAL_VALIDITY = 171; + TERRITORIAL_VALIDITY(171), /** MRZ strings with correct checksums */ - public static final int MRZ_STRINGS_WITH_CORRECT_CHECK_SUMS = 172; + MRZ_STRINGS_WITH_CORRECT_CHECK_SUMS(172), /** CDL restriction code */ - public static final int DL_CDL_RESTRICTION_CODE = 173; + DL_CDL_RESTRICTION_CODE(173), /** Date of 18th birthday */ - public static final int DL_UNDER_18_DATE = 174; + DL_UNDER_18_DATE(174), /** DL record created */ - public static final int DL_RECORD_CREATED = 175; + DL_RECORD_CREATED(175), /** DL date of duplicate issue */ - public static final int DL_DUPLICATE_DATE = 176; + DL_DUPLICATE_DATE(176), /** Card type */ - public static final int DL_ISSUE_TYPE = 177; + DL_ISSUE_TYPE(177), /** Military ID number */ - public static final int MILITARY_BOOK_NUMBER = 178; + MILITARY_BOOK_NUMBER(178), /** Destination */ - public static final int DESTINATION = 179; + DESTINATION(179), /** Blood group */ - public static final int BLOOD_GROUP = 180; + BLOOD_GROUP(180), /** Sequence number */ - public static final int SEQUENCE_NUMBER = 181; + SEQUENCE_NUMBER(181), /** Body type */ - public static final int REG_CERT_BODY_TYPE = 182; + REG_CERT_BODY_TYPE(182), /** Vehicle make */ - public static final int REG_CERT_CAR_MARK = 183; + REG_CERT_CAR_MARK(183), /** Transaction number */ - public static final int TRANSACTION_NUMBER = 184; + TRANSACTION_NUMBER(184), /** Age */ - public static final int AGE = 185; + AGE(185), /** Folio number */ - public static final int FOLIO_NUMBER = 186; + FOLIO_NUMBER(186), /** Voter key */ - public static final int VOTER_KEY = 187; + VOTER_KEY(187), /** Address: municipality */ - public static final int ADDRESS_MUNICIPALITY = 188; + ADDRESS_MUNICIPALITY(188), /** Address: location */ - public static final int ADDRESS_LOCATION = 189; + ADDRESS_LOCATION(189), /** Section */ - public static final int SECTION = 190; + SECTION(190), /** OCR number */ - public static final int OCR_NUMBER = 191; + OCR_NUMBER(191), /** Federal elections */ - public static final int FEDERAL_ELECTIONS = 192; + FEDERAL_ELECTIONS(192), /** Reference number */ - public static final int REFERENCE_NUMBER = 193; + REFERENCE_NUMBER(193), /** Optional data checksum */ - public static final int OPTIONAL_DATA_CHECKSUM = 194; + OPTIONAL_DATA_CHECKSUM(194), /** Optional data check digit */ - public static final int OPTIONAL_DATA_CHECK_DIGIT = 195; + OPTIONAL_DATA_CHECK_DIGIT(195), /** Visa number */ - public static final int VISA_NUMBER = 196; + VISA_NUMBER(196), /** Visa number checksum */ - public static final int VISA_NUMBER_CHECKSUM = 197; + VISA_NUMBER_CHECKSUM(197), /** Visa number check digit */ - public static final int VISA_NUMBER_CHECK_DIGIT = 198; + VISA_NUMBER_CHECK_DIGIT(198), /** Voter */ - public static final int VOTER = 199; + VOTER(199), /** Type of the previous document */ - public static final int PREVIOUS_TYPE = 200; + PREVIOUS_TYPE(200), /** Field from MRZ */ - public static final int FIELD_FROM_MRZ = 220; + FIELD_FROM_MRZ(220), /** Current date */ - public static final int CURRENT_DATE = 221; + CURRENT_DATE(221), /** Status date of expiry */ - public static final int STATUS_DATE_OF_EXPIRY = 251; + STATUS_DATE_OF_EXPIRY(251), /** Banknote number */ - public static final int BANKNOTE_NUMBER = 252; + BANKNOTE_NUMBER(252), /** CSC code */ - public static final int CSC_CODE = 253; + CSC_CODE(253), /** Pseudonym */ - public static final int ARTISTIC_NAME = 254; + ARTISTIC_NAME(254), /** Academic title */ - public static final int ACADEMIC_TITLE = 255; + ACADEMIC_TITLE(255), /** Address country */ - public static final int ADDRESS_COUNTRY = 256; + ADDRESS_COUNTRY(256), /** Address ZIP code */ - public static final int ADDRESS_ZIP_CODE = 257; + ADDRESS_ZIP_CODE(257), /** eID residence permit 1 */ - public static final int E_ID_RESIDENCE_PERMIT_1 = 258; + E_ID_RESIDENCE_PERMIT_1(258), /** eID residence permit 2 */ - public static final int E_ID_RESIDENCE_PERMIT_2 = 259; + E_ID_RESIDENCE_PERMIT_2(259), /** eID place of birth: street */ - public static final int E_ID_PLACE_OF_BIRTH_STREET = 260; + E_ID_PLACE_OF_BIRTH_STREET(260), /** eID place of birth: city */ - public static final int E_ID_PLACE_OF_BIRTH_CITY = 261; + E_ID_PLACE_OF_BIRTH_CITY(261), /** eID place of birth: state */ - public static final int E_ID_PLACE_OF_BIRTH_STATE = 262; + E_ID_PLACE_OF_BIRTH_STATE(262), /** eID place of birth: country */ - public static final int E_ID_PLACE_OF_BIRTH_COUNTRY = 263; + E_ID_PLACE_OF_BIRTH_COUNTRY(263), /** eID place of birth: postal code */ - public static final int E_ID_PLACE_OF_BIRTH_ZIP_CODE = 264; + E_ID_PLACE_OF_BIRTH_ZIP_CODE(264), /** CDL class */ - public static final int CDL_CLASS = 265; + CDL_CLASS(265), /** Date of 19th birthday */ - public static final int DL_UNDER_19_DATE = 266; + DL_UNDER_19_DATE(266), /** Weight (pound) */ - public static final int WEIGHT_POUNDS = 267; + WEIGHT_POUNDS(267), /** Indicator of document limited duration */ - public static final int LIMITED_DURATION_DOCUMENT_INDICATOR = 268; + LIMITED_DURATION_DOCUMENT_INDICATOR(268), /** Endorsement expiration date */ - public static final int ENDORSEMENT_EXPIRATION_DATE = 269; + ENDORSEMENT_EXPIRATION_DATE(269), /** Revision date */ - public static final int REVISION_DATE = 270; + REVISION_DATE(270), /** Compliance type */ - public static final int COMPLIANCE_TYPE = 271; + COMPLIANCE_TYPE(271), /** Family name truncation */ - public static final int FAMILY_NAME_TRUNCATION = 272; + FAMILY_NAME_TRUNCATION(272), /** First name truncation */ - public static final int FIRST_NAME_TRUNCATION = 273; + FIRST_NAME_TRUNCATION(273), /** Middle name truncation */ - public static final int MIDDLE_NAME_TRUNCATION = 274; + MIDDLE_NAME_TRUNCATION(274), /** Exam date */ - public static final int EXAM_DATE = 275; + EXAM_DATE(275), /** Organization */ - public static final int ORGANIZATION = 276; + ORGANIZATION(276), /** Department */ - public static final int DEPARTMENT = 277; + DEPARTMENT(277), /** Pay grade */ - public static final int PAY_GRADE = 278; + PAY_GRADE(278), /** Rank */ - public static final int RANK = 279; + RANK(279), /** Benefits number */ - public static final int BENEFITS_NUMBER = 280; + BENEFITS_NUMBER(280), /** Sponsor service */ - public static final int SPONSOR_SERVICE = 281; + SPONSOR_SERVICE(281), /** Sponsor status */ - public static final int SPONSOR_STATUS = 282; + SPONSOR_STATUS(282), /** Sponsor */ - public static final int SPONSOR = 283; + SPONSOR(283), /** Relationship */ - public static final int RELATIONSHIP = 284; + RELATIONSHIP(284), /** USCIS */ - public static final int USCIS = 285; + USCIS(285), /** Category */ - public static final int CATEGORY = 286; + CATEGORY(286), /** Conditions */ - public static final int CONDITIONS = 287; + CONDITIONS(287), /** Identifier */ - public static final int IDENTIFIER = 288; + IDENTIFIER(288), /** Configuration */ - public static final int CONFIGURATION = 289; + CONFIGURATION(289), /** Discretionary data */ - public static final int DISCRETIONARY_DATA = 290; + DISCRETIONARY_DATA(290), /** Line 1 optional data */ - public static final int LINE_1_OPTIONAL_DATA = 291; + LINE_1_OPTIONAL_DATA(291), /** Line 2 optional data */ - public static final int LINE_2_OPTIONAL_DATA = 292; + LINE_2_OPTIONAL_DATA(292), /** Line 3 optional data */ - public static final int LINE_3_OPTIONAL_DATA = 293; + LINE_3_OPTIONAL_DATA(293), /** EQV code */ - public static final int EQV_CODE = 294; + EQV_CODE(294), /** ALT code */ - public static final int ALT_CODE = 295; + ALT_CODE(295), /** Binary code */ - public static final int BINARY_CODE = 296; + BINARY_CODE(296), /** Pseudo code */ - public static final int PSEUDO_CODE = 297; + PSEUDO_CODE(297), /** Fee */ - public static final int FEE = 298; + FEE(298), /** Stamp number */ - public static final int STAMP_NUMBER = 299; + STAMP_NUMBER(299), /** SBH security options */ - public static final int SBH_SECURITY_OPTIONS = 300; + SBH_SECURITY_OPTIONS(300), /** SBH integrity options */ - public static final int SBH_INTEGRITY_OPTIONS = 301; + SBH_INTEGRITY_OPTIONS(301), /** Date of creation */ - public static final int DATE_OF_CREATION = 302; + DATE_OF_CREATION(302), /** Validity period */ - public static final int VALIDITY_PERIOD = 303; + VALIDITY_PERIOD(303), /** Patron header version */ - public static final int PATRON_HEADER_VERSION = 304; + PATRON_HEADER_VERSION(304), /** BDB type */ - public static final int BDB_TYPE = 305; + BDB_TYPE(305), /** Biometric type */ - public static final int BIOMETRIC_TYPE = 306; + BIOMETRIC_TYPE(306), /** Biometric subtype */ - public static final int BIOMETRIC_SUBTYPE = 307; + BIOMETRIC_SUBTYPE(307), /** Biometric product ID */ - public static final int BIOMETRIC_PRODUCT_ID = 308; + BIOMETRIC_PRODUCT_ID(308), /** Biometric format owner */ - public static final int BIOMETRIC_FORMAT_OWNER = 309; + BIOMETRIC_FORMAT_OWNER(309), /** Biometric format type */ - public static final int BIOMETRIC_FORMAT_TYPE = 310; + BIOMETRIC_FORMAT_TYPE(310), /** Phone */ - public static final int PHONE = 311; + PHONE(311), /** Profession */ - public static final int PROFESSION = 312; + PROFESSION(312), /** Position */ - public static final int TITLE = 313; + TITLE(313), /** Personal data summary */ - public static final int PERSONAL_SUMMARY = 314; + PERSONAL_SUMMARY(314), /** Other valid ID */ - public static final int OTHER_VALID_ID = 315; + OTHER_VALID_ID(315), /** Custody info */ - public static final int CUSTODY_INFO = 316; + CUSTODY_INFO(316), /** Other name */ - public static final int OTHER_NAME = 317; + OTHER_NAME(317), /** Observations */ - public static final int OBSERVATIONS = 318; + OBSERVATIONS(318), /** Tax */ - public static final int TAX = 319; + TAX(319), /** Personalization date */ - public static final int DATE_OF_PERSONALIZATION = 320; + DATE_OF_PERSONALIZATION(320), /** Personalization SN */ - public static final int PERSONALIZATION_SN = 321; + PERSONALIZATION_SN(321), /** Other person name */ - public static final int OTHER_PERSON_NAME = 322; + OTHER_PERSON_NAME(322), /** Notify person: date of record */ - public static final int PERSON_TO_NOTIFY_DATE_OF_RECORD = 323; + PERSON_TO_NOTIFY_DATE_OF_RECORD(323), /** Notify person: name */ - public static final int PERSON_TO_NOTIFY_NAME = 324; + PERSON_TO_NOTIFY_NAME(324), /** Notify person: phone */ - public static final int PERSON_TO_NOTIFY_PHONE = 325; + PERSON_TO_NOTIFY_PHONE(325), /** Notify person: address */ - public static final int PERSON_TO_NOTIFY_ADDRESS = 326; + PERSON_TO_NOTIFY_ADDRESS(326), /** DS certificate issuer */ - public static final int DS_CERTIFICATE_ISSUER = 327; + DS_CERTIFICATE_ISSUER(327), /** DS certificate subject */ - public static final int DS_CERTIFICATE_SUBJECT = 328; + DS_CERTIFICATE_SUBJECT(328), /** DS certificate valid from */ - public static final int DS_CERTIFICATE_VALID_FROM = 329; + DS_CERTIFICATE_VALID_FROM(329), /** DS certificate valid to */ - public static final int DS_CERTIFICATE_VALID_TO = 330; + DS_CERTIFICATE_VALID_TO(330), /** Vehicle data from the DG1 data group */ - public static final int VRC_DATA_OBJECT_ENTRY = 331; + VRC_DATA_OBJECT_ENTRY(331), /** Type of approval number */ - public static final int TYPE_APPROVAL_NUMBER = 332; + TYPE_APPROVAL_NUMBER(332), /** Administrative number */ - public static final int ADMINISTRATIVE_NUMBER = 333; + ADMINISTRATIVE_NUMBER(333), /** Document discriminator */ - public static final int DOCUMENT_DISCRIMINATOR = 334; + DOCUMENT_DISCRIMINATOR(334), /** Data discriminator */ - public static final int DATA_DISCRIMINATOR = 335; + DATA_DISCRIMINATOR(335), /** ID number of ISO issuer */ - public static final int ISO_ISSUER_ID_NUMBER = 336; + ISO_ISSUER_ID_NUMBER(336), /** DTC version */ - public static final int DTC_VERSION = 337; + DTC_VERSION(337), /** DTC ID */ - public static final int DTC_ID = 338; + DTC_ID(338), /** DTC date of expiry */ - public static final int DTC_DATE_OF_EXPIRY = 339; + DTC_DATE_OF_EXPIRY(339), /** GNIB number */ - public static final int GNIB_NUMBER = 340; + GNIB_NUMBER(340), /** Department number */ - public static final int DEPT_NUMBER = 341; + DEPT_NUMBER(341), /** Telegraph code */ - public static final int TELEX_CODE = 342; + TELEX_CODE(342), /** Allergies */ - public static final int ALLERGIES = 343; + ALLERGIES(343), /** Special code */ - public static final int SP_CODE = 344; + SP_CODE(344), /** Court code */ - public static final int COURT_CODE = 345; + COURT_CODE(345), /** County */ - public static final int CTY = 346; + CTY(346), /** Sponsor SSN */ - public static final int SPONSOR_SSN = 347; + SPONSOR_SSN(347), /** DoD number */ - public static final int DOD_NUMBER = 348; + DOD_NUMBER(348), /** Expiry date of Motorcycle Novice status */ - public static final int MC_NOVICE_DATE = 349; + MC_NOVICE_DATE(349), /** DUF number */ - public static final int DUF_NUMBER = 350; + DUF_NUMBER(350), /** AGY */ - public static final int AGY = 351; + AGY(351), /** PNR code */ - public static final int PNR_CODE = 352; + PNR_CODE(352), /** Code of the airport of departure */ - public static final int FROM_AIRPORT_CODE = 353; + FROM_AIRPORT_CODE(353), /** Code of the airport of arrival */ - public static final int TO_AIRPORT_CODE = 354; + TO_AIRPORT_CODE(354), /** Flight number */ - public static final int FLIGHT_NUMBER = 355; + FLIGHT_NUMBER(355), /** Date of flight */ - public static final int DATE_OF_FLIGHT = 356; + DATE_OF_FLIGHT(356), /** Seat number */ - public static final int SEAT_NUMBER = 357; + SEAT_NUMBER(357), /** Date of boarding pass issue */ - public static final int DATE_OF_ISSUE_BOARDING_PASS = 358; + DATE_OF_ISSUE_BOARDING_PASS(358), /** CCW until */ - public static final int CCW_UNTIL = 359; + CCW_UNTIL(359), /** Reference number checksum */ - public static final int REFERENCE_NUMBER_CHECKSUM = 360; + REFERENCE_NUMBER_CHECKSUM(360), /** Reference number check digit */ - public static final int REFERENCE_NUMBER_CHECK_DIGIT = 361; + REFERENCE_NUMBER_CHECK_DIGIT(361), /** Room number */ - public static final int ROOM_NUMBER = 362; + ROOM_NUMBER(362), /** Religion */ - public static final int RELIGION = 363; + RELIGION(363), /** Months to expire */ - public static final int REMAINDER_TERM = 364; + REMAINDER_TERM(364), /** Electronic ticket indicator */ - public static final int ELECTRONIC_TICKET_INDICATOR = 365; + ELECTRONIC_TICKET_INDICATOR(365), /** Compartment code */ - public static final int COMPARTMENT_CODE = 366; + COMPARTMENT_CODE(366), /** Check-in sequence number */ - public static final int CHECK_IN_SEQUENCE_NUMBER = 367; + CHECK_IN_SEQUENCE_NUMBER(367), /** Airline designator of boarding pass issuer */ - public static final int AIRLINE_DESIGNATOR_OF_BOARDING_PASS_ISSUER = 368; + AIRLINE_DESIGNATOR_OF_BOARDING_PASS_ISSUER(368), /** Airline numeric code */ - public static final int AIRLINE_NUMERIC_CODE = 369; + AIRLINE_NUMERIC_CODE(369), /** Ticket number */ - public static final int TICKET_NUMBER = 370; + TICKET_NUMBER(370), /** Frequent flyer airline designator */ - public static final int FREQUENT_FLYER_AIRLINE_DESIGNATOR = 371; + FREQUENT_FLYER_AIRLINE_DESIGNATOR(371), /** Frequent flyer number */ - public static final int FREQUENT_FLYER_NUMBER = 372; + FREQUENT_FLYER_NUMBER(372), /** Free baggage allowance */ - public static final int FREE_BAGGAGE_ALLOWANCE = 373; + FREE_BAGGAGE_ALLOWANCE(373), /** PDF417 codec */ - public static final int PDF417_CODEC = 374; + PDF417_CODEC(374), /** Identity card number checksum */ - public static final int IDENTITY_CARD_NUMBER_CHECKSUM = 375; + IDENTITY_CARD_NUMBER_CHECKSUM(375), /** Identity card number check digit */ - public static final int IDENTITY_CARD_NUMBER_CHECK_DIGIT = 376; + IDENTITY_CARD_NUMBER_CHECK_DIGIT(376), /** Veteran */ - public static final int VETERAN = 377; + VETERAN(377), /** DL category A1 valid from */ - public static final int DL_CLASS_CODE_A1_FROM = 378; + DL_CLASS_CODE_A1_FROM(378), /** DL category A1 valid to */ - public static final int DL_CLASS_CODE_A1_TO = 379; + DL_CLASS_CODE_A1_TO(379), /** DL category A1 codes */ - public static final int DL_CLASS_CODE_A1_NOTES = 380; + DL_CLASS_CODE_A1_NOTES(380), /** DL category A valid from */ - public static final int DL_CLASS_CODE_A_FROM = 381; + DL_CLASS_CODE_A_FROM(381), /** DL category A valid to */ - public static final int DL_CLASS_CODE_A_TO = 382; + DL_CLASS_CODE_A_TO(382), /** DL category A codes */ - public static final int DL_CLASS_CODE_A_NOTES = 383; + DL_CLASS_CODE_A_NOTES(383), /** DL category B valid from */ - public static final int DL_CLASS_CODE_B_FROM = 384; + DL_CLASS_CODE_B_FROM(384), /** DL category B valid to */ - public static final int DL_CLASS_CODE_B_TO = 385; + DL_CLASS_CODE_B_TO(385), /** DL category B codes */ - public static final int DL_CLASS_CODE_B_NOTES = 386; + DL_CLASS_CODE_B_NOTES(386), /** DL category C1 valid from */ - public static final int DL_CLASS_CODE_C1_FROM = 387; + DL_CLASS_CODE_C1_FROM(387), /** DL category C1 valid to */ - public static final int DL_CLASS_CODE_C1_TO = 388; + DL_CLASS_CODE_C1_TO(388), /** DL category C1 codes */ - public static final int DL_CLASS_CODE_C1_NOTES = 389; + DL_CLASS_CODE_C1_NOTES(389), /** DL category C valid from */ - public static final int DL_CLASS_CODE_C_FROM = 390; + DL_CLASS_CODE_C_FROM(390), /** DL category C valid to */ - public static final int DL_CLASS_CODE_C_TO = 391; + DL_CLASS_CODE_C_TO(391), /** DL category C codes */ - public static final int DL_CLASS_CODE_C_NOTES = 392; + DL_CLASS_CODE_C_NOTES(392), /** DL category D1 valid from */ - public static final int DL_CLASS_CODE_D1_FROM = 393; + DL_CLASS_CODE_D1_FROM(393), /** DL category D1 valid to */ - public static final int DL_CLASS_CODE_D1_TO = 394; + DL_CLASS_CODE_D1_TO(394), /** DL category D1 codes */ - public static final int DL_CLASS_CODE_D1_NOTES = 395; + DL_CLASS_CODE_D1_NOTES(395), /** DL category D valid from */ - public static final int DL_CLASS_CODE_D_FROM = 396; + DL_CLASS_CODE_D_FROM(396), /** DL category D valid to */ - public static final int DL_CLASS_CODE_D_TO = 397; + DL_CLASS_CODE_D_TO(397), /** DL category D codes */ - public static final int DL_CLASS_CODE_D_NOTES = 398; + DL_CLASS_CODE_D_NOTES(398), /** DL category BE valid from */ - public static final int DL_CLASS_CODE_BE_FROM = 399; + DL_CLASS_CODE_BE_FROM(399), /** DL category BE valid to */ - public static final int DL_CLASS_CODE_BE_TO = 400; + DL_CLASS_CODE_BE_TO(400), /** DL category BE codes */ - public static final int DL_CLASS_CODE_BE_NOTES = 401; + DL_CLASS_CODE_BE_NOTES(401), /** DL category C1E valid from */ - public static final int DL_CLASS_CODE_C1E_FROM = 402; + DL_CLASS_CODE_C1E_FROM(402), /** DL category C1E valid to */ - public static final int DL_CLASS_CODE_C1E_TO = 403; + DL_CLASS_CODE_C1E_TO(403), /** DL category C1E codes */ - public static final int DL_CLASS_CODE_C1E_NOTES = 404; + DL_CLASS_CODE_C1E_NOTES(404), /** DL category CE valid from */ - public static final int DL_CLASS_CODE_CE_FROM = 405; + DL_CLASS_CODE_CE_FROM(405), /** DL category CE valid to */ - public static final int DL_CLASS_CODE_CE_TO = 406; + DL_CLASS_CODE_CE_TO(406), /** DL category CE codes */ - public static final int DL_CLASS_CODE_CE_NOTES = 407; + DL_CLASS_CODE_CE_NOTES(407), /** DL category D1E valid from */ - public static final int DL_CLASS_CODE_D1E_FROM = 408; + DL_CLASS_CODE_D1E_FROM(408), /** DL category D1E valid to */ - public static final int DL_CLASS_CODE_D1E_TO = 409; + DL_CLASS_CODE_D1E_TO(409), /** DL category D1E codes */ - public static final int DL_CLASS_CODE_D1E_NOTES = 410; + DL_CLASS_CODE_D1E_NOTES(410), /** DL category DE valid from */ - public static final int DL_CLASS_CODE_DE_FROM = 411; + DL_CLASS_CODE_DE_FROM(411), /** DL category DE valid to */ - public static final int DL_CLASS_CODE_DE_TO = 412; + DL_CLASS_CODE_DE_TO(412), /** DL category DE codes */ - public static final int DL_CLASS_CODE_DE_NOTES = 413; + DL_CLASS_CODE_DE_NOTES(413), /** DL category M valid from */ - public static final int DL_CLASS_CODE_M_FROM = 414; + DL_CLASS_CODE_M_FROM(414), /** DL category M valid to */ - public static final int DL_CLASS_CODE_M_TO = 415; + DL_CLASS_CODE_M_TO(415), /** DL category M codes */ - public static final int DL_CLASS_CODE_M_NOTES = 416; + DL_CLASS_CODE_M_NOTES(416), /** DL category L valid from */ - public static final int DL_CLASS_CODE_L_FROM = 417; + DL_CLASS_CODE_L_FROM(417), /** DL category L valid to */ - public static final int DL_CLASS_CODE_L_TO = 418; + DL_CLASS_CODE_L_TO(418), /** DL category L codes */ - public static final int DL_CLASS_CODE_L_NOTES = 419; + DL_CLASS_CODE_L_NOTES(419), /** DL category T valid from */ - public static final int DL_CLASS_CODE_T_FROM = 420; + DL_CLASS_CODE_T_FROM(420), /** DL category T valid to */ - public static final int DL_CLASS_CODE_T_TO = 421; + DL_CLASS_CODE_T_TO(421), /** DL category T codes */ - public static final int DL_CLASS_CODE_T_NOTES = 422; + DL_CLASS_CODE_T_NOTES(422), /** DL category AM valid from */ - public static final int DL_CLASS_CODE_AM_FROM = 423; + DL_CLASS_CODE_AM_FROM(423), /** DL category AM valid to */ - public static final int DL_CLASS_CODE_AM_TO = 424; + DL_CLASS_CODE_AM_TO(424), /** DL category AM codes */ - public static final int DL_CLASS_CODE_AM_NOTES = 425; + DL_CLASS_CODE_AM_NOTES(425), /** DL category A2 valid from */ - public static final int DL_CLASS_CODE_A2_FROM = 426; + DL_CLASS_CODE_A2_FROM(426), /** DL category A2 valid to */ - public static final int DL_CLASS_CODE_A2_TO = 427; + DL_CLASS_CODE_A2_TO(427), /** DL category A2 codes */ - public static final int DL_CLASS_CODE_A2_NOTES = 428; + DL_CLASS_CODE_A2_NOTES(428), /** DL category B1 valid from */ - public static final int DL_CLASS_CODE_B1_FROM = 429; + DL_CLASS_CODE_B1_FROM(429), /** DL category B1 valid to */ - public static final int DL_CLASS_CODE_B1_TO = 430; + DL_CLASS_CODE_B1_TO(430), /** DL category B1 codes */ - public static final int DL_CLASS_CODE_B1_NOTES = 431; + DL_CLASS_CODE_B1_NOTES(431), /** Surname at birth */ - public static final int SURNAME_AT_BIRTH = 432; + SURNAME_AT_BIRTH(432), /** Civil status */ - public static final int CIVIL_STATUS = 433; + CIVIL_STATUS(433), /** Number of seats */ - public static final int NUMBER_OF_SEATS = 434; + NUMBER_OF_SEATS(434), /** Number of standing places */ - public static final int NUMBER_OF_STANDING_PLACES = 435; + NUMBER_OF_STANDING_PLACES(435), /** Max speed */ - public static final int MAX_SPEED = 436; + MAX_SPEED(436), /** Fuel type */ - public static final int FUEL_TYPE = 437; + FUEL_TYPE(437), /** Vehicle environmental type */ - public static final int EC_ENVIRONMENTAL_TYPE = 438; + EC_ENVIRONMENTAL_TYPE(438), /** Power-to-weight ratio */ - public static final int POWER_WEIGHT_RATIO = 439; + POWER_WEIGHT_RATIO(439), /** Max mass of trailer (braked) */ - public static final int MAX_MASS_OF_TRAILER_BRAKED = 440; + MAX_MASS_OF_TRAILER_BRAKED(440), /** Max mass of trailer (unbraked) */ - public static final int MAX_MASS_OF_TRAILER_UNBRAKED = 441; + MAX_MASS_OF_TRAILER_UNBRAKED(441), /** Transmission type */ - public static final int TRANSMISSION_TYPE = 442; + TRANSMISSION_TYPE(442), /** Trailer hitch */ - public static final int TRAILER_HITCH = 443; + TRAILER_HITCH(443), /** Accompanied by */ - public static final int ACCOMPANIED_BY = 444; + ACCOMPANIED_BY(444), /** Police district */ - public static final int POLICE_DISTRICT = 445; + POLICE_DISTRICT(445), /** First issue date */ - public static final int FIRST_ISSUE_DATE = 446; + FIRST_ISSUE_DATE(446), /** Payload capacity */ - public static final int PAYLOAD_CAPACITY = 447; + PAYLOAD_CAPACITY(447), /** Number of axles */ - public static final int NUMBER_OF_AXLES = 448; + NUMBER_OF_AXLES(448), /** Permissible axle load */ - public static final int PERMISSIBLE_AXLE_LOAD = 449; + PERMISSIBLE_AXLE_LOAD(449), /** Precinct */ - public static final int PRECINCT = 450; + PRECINCT(450), /** Invited by */ - public static final int INVITED_BY = 451; + INVITED_BY(451), /** Purpose of entry */ - public static final int PURPOSE_OF_ENTRY = 452; + PURPOSE_OF_ENTRY(452), /** Skin color */ - public static final int SKIN_COLOR = 453; + SKIN_COLOR(453), /** Complexion */ - public static final int COMPLEXION = 454; + COMPLEXION(454), /** Airport of departure */ - public static final int AIRPORT_FROM = 455; + AIRPORT_FROM(455), /** Airport of arrival */ - public static final int AIRPORT_TO = 456; + AIRPORT_TO(456), /** Airline name */ - public static final int AIRLINE_NAME = 457; + AIRLINE_NAME(457), /** Airline loyalty program for frequent flyers */ - public static final int AIRLINE_NAME_FREQUENT_FLYER = 458; + AIRLINE_NAME_FREQUENT_FLYER(458), /** License number */ - public static final int LICENSE_NUMBER = 459; + LICENSE_NUMBER(459), /** In tanks */ - public static final int IN_TANKS = 460; + IN_TANKS(460), /** Other than tanks */ - public static final int EXCEPT_IN_TANKS = 461; + EXCEPT_IN_TANKS(461), /** Fast Track service */ - public static final int FAST_TRACK = 462; + FAST_TRACK(462), /** Owner */ - public static final int OWNER = 463; + OWNER(463), /** MRZ strings from ICAO RFID */ - public static final int MRZ_STRINGS_ICAO_RFID = 464; + MRZ_STRINGS_ICAO_RFID(464), /** Number of card issuances */ - public static final int NUMBER_OF_CARD_ISSUANCE = 465; + NUMBER_OF_CARD_ISSUANCE(465), /** Number of card issuances checksum */ - public static final int NUMBER_OF_CARD_ISSUANCE_CHECKSUM = 466; + NUMBER_OF_CARD_ISSUANCE_CHECKSUM(466), /** Number of card issuances check digit */ - public static final int NUMBER_OF_CARD_ISSUANCE_CHECK_DIGIT = 467; + NUMBER_OF_CARD_ISSUANCE_CHECK_DIGIT(467), /** Century of birth */ - public static final int CENTURY_DATE_OF_BIRTH = 468; + CENTURY_DATE_OF_BIRTH(468), /** DL category A3 valid from */ - public static final int DL_CLASS_CODE_A3_FROM = 469; + DL_CLASS_CODE_A3_FROM(469), /** DL category A3 valid to */ - public static final int DL_CLASS_CODE_A3_TO = 470; + DL_CLASS_CODE_A3_TO(470), /** DL category A3 codes */ - public static final int DL_CLASS_CODE_A3_NOTES = 471; + DL_CLASS_CODE_A3_NOTES(471), /** DL category C2 valid from */ - public static final int DL_CLASS_CODE_C2_FROM = 472; + DL_CLASS_CODE_C2_FROM(472), /** DL category C2 valid to */ - public static final int DL_CLASS_CODE_C2_TO = 473; + DL_CLASS_CODE_C2_TO(473), /** DL category C2 codes */ - public static final int DL_CLASS_CODE_C2_NOTES = 474; + DL_CLASS_CODE_C2_NOTES(474), /** DL category B2 valid from */ - public static final int DL_CLASS_CODE_B2_FROM = 475; + DL_CLASS_CODE_B2_FROM(475), /** DL category B2 valid to */ - public static final int DL_CLASS_CODE_B2_TO = 476; + DL_CLASS_CODE_B2_TO(476), /** DL category B2 codes */ - public static final int DL_CLASS_CODE_B2_NOTES = 477; + DL_CLASS_CODE_B2_NOTES(477), /** DL category D2 valid from */ - public static final int DL_CLASS_CODE_D2_FROM = 478; + DL_CLASS_CODE_D2_FROM(478), /** DL category D2 valid to */ - public static final int DL_CLASS_CODE_D2_TO = 479; + DL_CLASS_CODE_D2_TO(479), /** DL category D2 codes */ - public static final int DL_CLASS_CODE_D2_NOTES = 480; + DL_CLASS_CODE_D2_NOTES(480), /** DL category B2E valid from */ - public static final int DL_CLASS_CODE_B2E_FROM = 481; + DL_CLASS_CODE_B2E_FROM(481), /** DL category B2E valid to */ - public static final int DL_CLASS_CODE_B2E_TO = 482; + DL_CLASS_CODE_B2E_TO(482), /** DL category B2E codes */ - public static final int DL_CLASS_CODE_B2E_NOTES = 483; + DL_CLASS_CODE_B2E_NOTES(483), /** DL category G valid from */ - public static final int DL_CLASS_CODE_G_FROM = 484; + DL_CLASS_CODE_G_FROM(484), /** DL category G valid to */ - public static final int DL_CLASS_CODE_G_TO = 485; + DL_CLASS_CODE_G_TO(485), /** DL category G codes */ - public static final int DL_CLASS_CODE_G_NOTES = 486; + DL_CLASS_CODE_G_NOTES(486), /** DL category J valid from */ - public static final int DL_CLASS_CODE_J_FROM = 487; + DL_CLASS_CODE_J_FROM(487), /** DL category J valid to */ - public static final int DL_CLASS_CODE_J_TO = 488; + DL_CLASS_CODE_J_TO(488), /** DL category J codes */ - public static final int DL_CLASS_CODE_J_NOTES = 489; + DL_CLASS_CODE_J_NOTES(489), /** DL category LC valid from */ - public static final int DL_CLASS_CODE_LC_FROM = 490; + DL_CLASS_CODE_LC_FROM(490), /** DL category LC valid to */ - public static final int DL_CLASS_CODE_LC_TO = 491; + DL_CLASS_CODE_LC_TO(491), /** DL category LC codes */ - public static final int DL_CLASS_CODE_LC_NOTES = 492; + DL_CLASS_CODE_LC_NOTES(492), /** Bank card number */ - public static final int BANK_CARD_NUMBER = 493; + BANK_CARD_NUMBER(493), /** Bank card validity */ - public static final int BANK_CARD_VALID_THRU = 494; + BANK_CARD_VALID_THRU(494), /** Tax number */ - public static final int TAX_NUMBER = 495; + TAX_NUMBER(495), /** Health insurance number */ - public static final int HEALTH_NUMBER = 496; + HEALTH_NUMBER(496), /** Grandfather's name */ - public static final int GRANDFATHER_NAME = 497; + GRANDFATHER_NAME(497), /** Selectee indicator */ - public static final int SELECTEE_INDICATOR = 498; + SELECTEE_INDICATOR(498), /** Mother's surname */ - public static final int MOTHER_SURNAME = 499; + MOTHER_SURNAME(499), /** Mother's name */ - public static final int MOTHER_GIVEN_NAME = 500; + MOTHER_GIVEN_NAME(500), /** Father's surname */ - public static final int FATHER_SURNAME = 501; + FATHER_SURNAME(501), /** Father's name */ - public static final int FATHER_GIVEN_NAME = 502; + FATHER_GIVEN_NAME(502), /** Mother's date of birth */ - public static final int MOTHER_DATE_OF_BIRTH = 503; + MOTHER_DATE_OF_BIRTH(503), /** Father's date of birth */ - public static final int FATHER_DATE_OF_BIRTH = 504; + FATHER_DATE_OF_BIRTH(504), /** Mother's personal number */ - public static final int MOTHER_PERSONAL_NUMBER = 505; + MOTHER_PERSONAL_NUMBER(505), /** Father's personal number */ - public static final int FATHER_PERSONAL_NUMBER = 506; + FATHER_PERSONAL_NUMBER(506), /** Mother's place of birth */ - public static final int MOTHER_PLACE_OF_BIRTH = 507; + MOTHER_PLACE_OF_BIRTH(507), /** Father's place of birth */ - public static final int FATHER_PLACE_OF_BIRTH = 508; + FATHER_PLACE_OF_BIRTH(508), /** Mother's country of birth */ - public static final int MOTHER_COUNTRY_OF_BIRTH = 509; + MOTHER_COUNTRY_OF_BIRTH(509), /** Father's country of birth */ - public static final int FATHER_COUNTRY_OF_BIRTH = 510; + FATHER_COUNTRY_OF_BIRTH(510), /** Date of first renewal */ - public static final int DATE_FIRST_RENEWAL = 511; + DATE_FIRST_RENEWAL(511), /** Date of second renewal */ - public static final int DATE_SECOND_RENEWAL = 512; + DATE_SECOND_RENEWAL(512), /** Place of examination */ - public static final int PLACE_OF_EXAMINATION = 513; + PLACE_OF_EXAMINATION(513), /** Application number */ - public static final int APPLICATION_NUMBER = 514; + APPLICATION_NUMBER(514), /** Voucher number */ - public static final int VOUCHER_NUMBER = 515; + VOUCHER_NUMBER(515), /** Authorization number */ - public static final int AUTHORIZATION_NUMBER = 516; + AUTHORIZATION_NUMBER(516), /** Faculty */ - public static final int FACULTY = 517; + FACULTY(517), /** Form of education */ - public static final int FORM_OF_EDUCATION = 518; + FORM_OF_EDUCATION(518), /** DNI number */ - public static final int DNI_NUMBER = 519; + DNI_NUMBER(519), /** Retirement number */ - public static final int RETIREMENT_NUMBER = 520; + RETIREMENT_NUMBER(520), /** Professional id number */ - public static final int PROFESSIONAL_ID_NUMBER = 521; + PROFESSIONAL_ID_NUMBER(521), /** Age at issue */ - public static final int AGE_AT_ISSUE = 522; + AGE_AT_ISSUE(522), /** Years since issue */ - public static final int YEARS_SINCE_ISSUE = 523; + YEARS_SINCE_ISSUE(523), /** DL category BTP valid from */ - public static final int DL_CLASS_CODE_BTP_FROM = 524; + DL_CLASS_CODE_BTP_FROM(524), /** DL category BTP codes */ - public static final int DL_CLASS_CODE_BTP_NOTES = 525; + DL_CLASS_CODE_BTP_NOTES(525), /** DL category BTP valid to */ - public static final int DL_CLASS_CODE_BTP_TO = 526; + DL_CLASS_CODE_BTP_TO(526), /** DL category C3 valid from */ - public static final int DL_CLASS_CODE_C3_FROM = 527; + DL_CLASS_CODE_C3_FROM(527), /** DL category C3 codes */ - public static final int DL_CLASS_CODE_C3_NOTES = 528; + DL_CLASS_CODE_C3_NOTES(528), /** DL category C3 valid to */ - public static final int DL_CLASS_CODE_C3_TO = 529; + DL_CLASS_CODE_C3_TO(529), /** DL category E valid from */ - public static final int DL_CLASS_CODE_E_FROM = 530; + DL_CLASS_CODE_E_FROM(530), /** DL category E codes */ - public static final int DL_CLASS_CODE_E_NOTES = 531; + DL_CLASS_CODE_E_NOTES(531), /** DL category E valid to */ - public static final int DL_CLASS_CODE_E_TO = 532; + DL_CLASS_CODE_E_TO(532), /** DL category F valid from */ - public static final int DL_CLASS_CODE_F_FROM = 533; + DL_CLASS_CODE_F_FROM(533), /** DL category F codes */ - public static final int DL_CLASS_CODE_F_NOTES = 534; + DL_CLASS_CODE_F_NOTES(534), /** DL category F valid to */ - public static final int DL_CLASS_CODE_F_TO = 535; + DL_CLASS_CODE_F_TO(535), /** DL category FA valid from */ - public static final int DL_CLASS_CODE_FA_FROM = 536; + DL_CLASS_CODE_FA_FROM(536), /** DL category FA codes */ - public static final int DL_CLASS_CODE_FA_NOTES = 537; + DL_CLASS_CODE_FA_NOTES(537), /** DL category FA valid to */ - public static final int DL_CLASS_CODE_FA_TO = 538; + DL_CLASS_CODE_FA_TO(538), /** DL category FA1 valid from */ - public static final int DL_CLASS_CODE_FA1_FROM = 539; + DL_CLASS_CODE_FA1_FROM(539), /** DL category FA1 codes */ - public static final int DL_CLASS_CODE_FA1_NOTES = 540; + DL_CLASS_CODE_FA1_NOTES(540), /** DL category FA1 valid to */ - public static final int DL_CLASS_CODE_FA1_TO = 541; + DL_CLASS_CODE_FA1_TO(541), /** DL category FB valid from */ - public static final int DL_CLASS_CODE_FB_FROM = 542; + DL_CLASS_CODE_FB_FROM(542), /** DL category FB codes */ - public static final int DL_CLASS_CODE_FB_NOTES = 543; + DL_CLASS_CODE_FB_NOTES(543), /** DL category FB valid to */ - public static final int DL_CLASS_CODE_FB_TO = 544; + DL_CLASS_CODE_FB_TO(544), /** DL category G1 valid from */ - public static final int DL_CLASS_CODE_G1_FROM = 545; + DL_CLASS_CODE_G1_FROM(545), /** DL category G1 codes */ - public static final int DL_CLASS_CODE_G1_NOTES = 546; + DL_CLASS_CODE_G1_NOTES(546), /** DL category G1 valid to */ - public static final int DL_CLASS_CODE_G1_TO = 547; + DL_CLASS_CODE_G1_TO(547), /** DL category H valid from */ - public static final int DL_CLASS_CODE_H_FROM = 548; + DL_CLASS_CODE_H_FROM(548), /** DL category H codes */ - public static final int DL_CLASS_CODE_H_NOTES = 549; + DL_CLASS_CODE_H_NOTES(549), /** DL category H valid to */ - public static final int DL_CLASS_CODE_H_TO = 550; + DL_CLASS_CODE_H_TO(550), /** DL category I valid from */ - public static final int DL_CLASS_CODE_I_FROM = 551; + DL_CLASS_CODE_I_FROM(551), /** DL category I codes */ - public static final int DL_CLASS_CODE_I_NOTES = 552; + DL_CLASS_CODE_I_NOTES(552), /** DL category I valid to */ - public static final int DL_CLASS_CODE_I_TO = 553; + DL_CLASS_CODE_I_TO(553), /** DL category K valid from */ - public static final int DL_CLASS_CODE_K_FROM = 554; + DL_CLASS_CODE_K_FROM(554), /** DL category K codes */ - public static final int DL_CLASS_CODE_K_NOTES = 555; + DL_CLASS_CODE_K_NOTES(555), /** DL category K valid to */ - public static final int DL_CLASS_CODE_K_TO = 556; + DL_CLASS_CODE_K_TO(556), /** DL category LK valid from */ - public static final int DL_CLASS_CODE_LK_FROM = 557; + DL_CLASS_CODE_LK_FROM(557), /** DL category LK codes */ - public static final int DL_CLASS_CODE_LK_NOTES = 558; + DL_CLASS_CODE_LK_NOTES(558), /** DL category LK valid to */ - public static final int DL_CLASS_CODE_LK_TO = 559; + DL_CLASS_CODE_LK_TO(559), /** DL category N valid from */ - public static final int DL_CLASS_CODE_N_FROM = 560; + DL_CLASS_CODE_N_FROM(560), /** DL category N codes */ - public static final int DL_CLASS_CODE_N_NOTES = 561; + DL_CLASS_CODE_N_NOTES(561), /** DL category N valid to */ - public static final int DL_CLASS_CODE_N_TO = 562; + DL_CLASS_CODE_N_TO(562), /** DL category S valid from */ - public static final int DL_CLASS_CODE_S_FROM = 563; + DL_CLASS_CODE_S_FROM(563), /** DL category S codes */ - public static final int DL_CLASS_CODE_S_NOTES = 564; + DL_CLASS_CODE_S_NOTES(564), /** DL category S valid to */ - public static final int DL_CLASS_CODE_S_TO = 565; + DL_CLASS_CODE_S_TO(565), /** DL category TB valid from */ - public static final int DL_CLASS_CODE_TB_FROM = 566; + DL_CLASS_CODE_TB_FROM(566), /** DL category TB codes */ - public static final int DL_CLASS_CODE_TB_NOTES = 567; + DL_CLASS_CODE_TB_NOTES(567), /** DL category TB valid to */ - public static final int DL_CLASS_CODE_TB_TO = 568; + DL_CLASS_CODE_TB_TO(568), /** DL category TM valid from */ - public static final int DL_CLASS_CODE_TM_FROM = 569; + DL_CLASS_CODE_TM_FROM(569), /** DL category TM codes */ - public static final int DL_CLASS_CODE_TM_NOTES = 570; + DL_CLASS_CODE_TM_NOTES(570), /** DL category TM valid to */ - public static final int DL_CLASS_CODE_TM_TO = 571; + DL_CLASS_CODE_TM_TO(571), /** DL category TR valid from */ - public static final int DL_CLASS_CODE_TR_FROM = 572; + DL_CLASS_CODE_TR_FROM(572), /** DL category TR codes */ - public static final int DL_CLASS_CODE_TR_NOTES = 573; + DL_CLASS_CODE_TR_NOTES(573), /** DL category TR valid to */ - public static final int DL_CLASS_CODE_TR_TO = 574; + DL_CLASS_CODE_TR_TO(574), /** DL category TV valid from */ - public static final int DL_CLASS_CODE_TV_FROM = 575; + DL_CLASS_CODE_TV_FROM(575), /** DL category TV codes */ - public static final int DL_CLASS_CODE_TV_NOTES = 576; + DL_CLASS_CODE_TV_NOTES(576), /** DL category TV valid to */ - public static final int DL_CLASS_CODE_TV_TO = 577; + DL_CLASS_CODE_TV_TO(577), /** DL category V valid from */ - public static final int DL_CLASS_CODE_V_FROM = 578; + DL_CLASS_CODE_V_FROM(578), /** DL category V codes */ - public static final int DL_CLASS_CODE_V_NOTES = 579; + DL_CLASS_CODE_V_NOTES(579), /** DL category V valid to */ - public static final int DL_CLASS_CODE_V_TO = 580; + DL_CLASS_CODE_V_TO(580), /** DL category W valid from */ - public static final int DL_CLASS_CODE_W_FROM = 581; + DL_CLASS_CODE_W_FROM(581), /** DL category W codes */ - public static final int DL_CLASS_CODE_W_NOTES = 582; + DL_CLASS_CODE_W_NOTES(582), /** DL category W valid to */ - public static final int DL_CLASS_CODE_W_TO = 583; + DL_CLASS_CODE_W_TO(583), /** URL */ - public static final int URL = 584; + URL(584), /** Caliber */ - public static final int CALIBER = 585; + CALIBER(585), /** Model */ - public static final int MODEL = 586; + MODEL(586), /** Make */ - public static final int MAKE = 587; + MAKE(587), /** Number of cylinders */ - public static final int NUMBER_OF_CYLINDERS = 588; + NUMBER_OF_CYLINDERS(588), /** Surname of husband after registration */ - public static final int SURNAME_OF_HUSBAND_AFTER_REGISTRATION = 589; + SURNAME_OF_HUSBAND_AFTER_REGISTRATION(589), /** Surname of wife after registration */ - public static final int SURNAME_OF_WIFE_AFTER_REGISTRATION = 590; + SURNAME_OF_WIFE_AFTER_REGISTRATION(590), /** Date of birth of wife */ - public static final int DATE_OF_BIRTH_OF_WIFE = 591; + DATE_OF_BIRTH_OF_WIFE(591), /** Date of birth of husband */ - public static final int DATE_OF_BIRTH_OF_HUSBAND = 592; + DATE_OF_BIRTH_OF_HUSBAND(592), /** Citizenship of first person */ - public static final int CITIZENSHIP_OF_FIRST_PERSON = 593; + CITIZENSHIP_OF_FIRST_PERSON(593), /** Citizenship of second person */ - public static final int CITIZENSHIP_OF_SECOND_PERSON = 594; + CITIZENSHIP_OF_SECOND_PERSON(594), /** CVV code */ - public static final int CVV = 595; + CVV(595), /** Date of insurance expiry */ - public static final int DATE_OF_INSURANCE_EXPIRY = 596; + DATE_OF_INSURANCE_EXPIRY(596), /** Mortgage by */ - public static final int MORTGAGE_BY = 597; + MORTGAGE_BY(597), /** Old document number */ - public static final int OLD_DOCUMENT_NUMBER = 598; + OLD_DOCUMENT_NUMBER(598), /** Old date of issue */ - public static final int OLD_DATE_OF_ISSUE = 599; + OLD_DATE_OF_ISSUE(599), /** Old place of issue */ - public static final int OLD_PLACE_OF_ISSUE = 600; + OLD_PLACE_OF_ISSUE(600), /** DL category LR valid from */ - public static final int DL_CLASS_CODE_LR_FROM = 601; + DL_CLASS_CODE_LR_FROM(601), /** DL category LR valid to */ - public static final int DL_CLASS_CODE_LR_TO = 602; + DL_CLASS_CODE_LR_TO(602), /** DL category LR codes */ - public static final int DL_CLASS_CODE_LR_NOTES = 603; + DL_CLASS_CODE_LR_NOTES(603), /** DL category MR valid from */ - public static final int DL_CLASS_CODE_MR_FROM = 604; + DL_CLASS_CODE_MR_FROM(604), /** DL category MR valid to */ - public static final int DL_CLASS_CODE_MR_TO = 605; + DL_CLASS_CODE_MR_TO(605), /** DL category MR codes */ - public static final int DL_CLASS_CODE_MR_NOTES = 606; + DL_CLASS_CODE_MR_NOTES(606), /** DL category HR valid from */ - public static final int DL_CLASS_CODE_HR_FROM = 607; + DL_CLASS_CODE_HR_FROM(607), /** DL category HR valid to */ - public static final int DL_CLASS_CODE_HR_TO = 608; + DL_CLASS_CODE_HR_TO(608), /** DL category HR codes */ - public static final int DL_CLASS_CODE_HR_NOTES = 609; + DL_CLASS_CODE_HR_NOTES(609), /** DL category HC valid from */ - public static final int DL_CLASS_CODE_HC_FROM = 610; + DL_CLASS_CODE_HC_FROM(610), /** DL category HC valid to */ - public static final int DL_CLASS_CODE_HC_TO = 611; + DL_CLASS_CODE_HC_TO(611), /** DL category HC codes */ - public static final int DL_CLASS_CODE_HC_NOTES = 612; + DL_CLASS_CODE_HC_NOTES(612), /** DL category MC valid from */ - public static final int DL_CLASS_CODE_MC_FROM = 613; + DL_CLASS_CODE_MC_FROM(613), /** DL category MC valid to */ - public static final int DL_CLASS_CODE_MC_TO = 614; + DL_CLASS_CODE_MC_TO(614), /** DL category MC codes */ - public static final int DL_CLASS_CODE_MC_NOTES = 615; + DL_CLASS_CODE_MC_NOTES(615), /** DL category RE valid from */ - public static final int DL_CLASS_CODE_RE_FROM = 616; + DL_CLASS_CODE_RE_FROM(616), /** DL category RE valid to */ - public static final int DL_CLASS_CODE_RE_TO = 617; + DL_CLASS_CODE_RE_TO(617), /** DL category RE codes */ - public static final int DL_CLASS_CODE_RE_NOTES = 618; + DL_CLASS_CODE_RE_NOTES(618), /** DL category R valid from */ - public static final int DL_CLASS_CODE_R_FROM = 619; + DL_CLASS_CODE_R_FROM(619), /** DL category R valid to */ - public static final int DL_CLASS_CODE_R_TO = 620; + DL_CLASS_CODE_R_TO(620), /** DL category R codes */ - public static final int DL_CLASS_CODE_R_NOTES = 621; + DL_CLASS_CODE_R_NOTES(621), /** DL category CA valid from */ - public static final int DL_CLASS_CODE_CA_FROM = 622; + DL_CLASS_CODE_CA_FROM(622), /** DL category CA valid to */ - public static final int DL_CLASS_CODE_CA_TO = 623; + DL_CLASS_CODE_CA_TO(623), /** DL category CA codes */ - public static final int DL_CLASS_CODE_CA_NOTES = 624; + DL_CLASS_CODE_CA_NOTES(624), /** Citizenship status */ - public static final int CITIZENSHIP_STATUS = 625; + CITIZENSHIP_STATUS(625), /** Military service from */ - public static final int MILITARY_SERVICE_FROM = 626; + MILITARY_SERVICE_FROM(626), /** Military service to */ - public static final int MILITARY_SERVICE_TO = 627; + MILITARY_SERVICE_TO(627), /** DL category NT valid from */ - public static final int DL_CLASS_CODE_NT_FROM = 628; + DL_CLASS_CODE_NT_FROM(628), /** DL category NT valid to */ - public static final int DL_CLASS_CODE_NT_TO = 629; + DL_CLASS_CODE_NT_TO(629), /** DL category NT codes */ - public static final int DL_CLASS_CODE_NT_NOTES = 630; + DL_CLASS_CODE_NT_NOTES(630), /** DL category TN valid from */ - public static final int DL_CLASS_CODE_TN_FROM = 631; + DL_CLASS_CODE_TN_FROM(631), /** DL category TN valid to */ - public static final int DL_CLASS_CODE_TN_TO = 632; + DL_CLASS_CODE_TN_TO(632), /** DL category TN codes */ - public static final int DL_CLASS_CODE_TN_NOTES = 633; + DL_CLASS_CODE_TN_NOTES(633), /** DL category D3 valid from */ - public static final int DL_CLASS_CODE_D3_FROM = 634; + DL_CLASS_CODE_D3_FROM(634), /** DL category D3 valid to */ - public static final int DL_CLASS_CODE_D3_TO = 635; + DL_CLASS_CODE_D3_TO(635), /** DL category D3 codes */ - public static final int DL_CLASS_CODE_D3_NOTES = 636; + DL_CLASS_CODE_D3_NOTES(636), /** Alternative date of expiry */ - public static final int ALT_DATE_OF_EXPIRY = 637; + ALT_DATE_OF_EXPIRY(637), /** DL category CD valid from */ - public static final int DL_CLASS_CODE_CD_FROM = 638; + DL_CLASS_CODE_CD_FROM(638), /** DL category CD valid to */ - public static final int DL_CLASS_CODE_CD_TO = 639; + DL_CLASS_CODE_CD_TO(639), /** DL category CD codes */ - public static final int DL_CLASS_CODE_CD_NOTES = 640; + DL_CLASS_CODE_CD_NOTES(640), /** Issuer identification number */ - public static final int ISSUER_IDENTIFICATION_NUMBER = 641; + ISSUER_IDENTIFICATION_NUMBER(641), /** Payment period from */ - public static final int PAYMENT_PERIOD_FROM = 642; + PAYMENT_PERIOD_FROM(642), /** Payment period to */ - public static final int PAYMENT_PERIOD_TO = 643; + PAYMENT_PERIOD_TO(643), /** Vaccination certificate identifier */ - public static final int VACCINATION_CERTIFICATE_IDENTIFIER = 644; + VACCINATION_CERTIFICATE_IDENTIFIER(644), /** First name */ - public static final int FIRST_NAME = 645; + FIRST_NAME(645), /** Date of arrival */ - public static final int DATE_OF_ARRIVAL = 646; + DATE_OF_ARRIVAL(646), /** Second name */ - public static final int SECOND_NAME = 647; + SECOND_NAME(647), /** Third name */ - public static final int THIRD_NAME = 648; + THIRD_NAME(648), /** Fourth name */ - public static final int FOURTH_NAME = 649; + FOURTH_NAME(649), /** Last name */ - public static final int LAST_NAME = 650; + LAST_NAME(650), /** DL category RM valid from */ - public static final int DL_CLASS_CODE_RM_FROM = 651; + DL_CLASS_CODE_RM_FROM(651), /** DL category RM codes */ - public static final int DL_CLASS_CODE_RM_NOTES = 652; + DL_CLASS_CODE_RM_NOTES(652), /** DL category RM valid to */ - public static final int DL_CLASS_CODE_RM_TO = 653; + DL_CLASS_CODE_RM_TO(653), /** DL category PW valid from */ - public static final int DL_CLASS_CODE_PW_FROM = 654; + DL_CLASS_CODE_PW_FROM(654), /** DL category PW codes */ - public static final int DL_CLASS_CODE_PW_NOTES = 655; + DL_CLASS_CODE_PW_NOTES(655), /** DL category PW valid to */ - public static final int DL_CLASS_CODE_PW_TO = 656; + DL_CLASS_CODE_PW_TO(656), /** DL category EB valid from */ - public static final int DL_CLASS_CODE_EB_FROM = 657; + DL_CLASS_CODE_EB_FROM(657), /** DL category EB codes */ - public static final int DL_CLASS_CODE_EB_NOTES = 658; + DL_CLASS_CODE_EB_NOTES(658), /** DL category EB valid to */ - public static final int DL_CLASS_CODE_EB_TO = 659; + DL_CLASS_CODE_EB_TO(659), /** DL category EC valid from */ - public static final int DL_CLASS_CODE_EC_FROM = 660; + DL_CLASS_CODE_EC_FROM(660), /** DL category EC codes */ - public static final int DL_CLASS_CODE_EC_NOTES = 661; + DL_CLASS_CODE_EC_NOTES(661), /** DL category EC valid to */ - public static final int DL_CLASS_CODE_EC_TO = 662; + DL_CLASS_CODE_EC_TO(662), /** DL category EC1 valid from */ - public static final int DL_CLASS_CODE_EC1_FROM = 663; + DL_CLASS_CODE_EC1_FROM(663), /** DL category EC1 codes */ - public static final int DL_CLASS_CODE_EC1_NOTES = 664; + DL_CLASS_CODE_EC1_NOTES(664), /** DL category EC1 valid to */ - public static final int DL_CLASS_CODE_EC1_TO = 665; + DL_CLASS_CODE_EC1_TO(665), /** Place of birth city */ - public static final int PLACE_OF_BIRTH_CITY = 666; + PLACE_OF_BIRTH_CITY(666), /** Year of birth */ - public static final int YEAR_OF_BIRTH = 667; + YEAR_OF_BIRTH(667), /** Year of expiry */ - public static final int YEAR_OF_EXPIRY = 668; + YEAR_OF_EXPIRY(668), /** Grandfather's name (maternal) */ - public static final int GRANDFATHER_NAME_MATERNAL = 669; + GRANDFATHER_NAME_MATERNAL(669), /** First surname */ - public static final int FIRST_SURNAME = 670; + FIRST_SURNAME(670), /** Month of birth */ - public static final int MONTH_OF_BIRTH = 671; + MONTH_OF_BIRTH(671), /** Floor number */ - public static final int ADDRESS_FLOOR_NUMBER = 672; + ADDRESS_FLOOR_NUMBER(672), /** Entrance number */ - public static final int ADDRESS_ENTRANCE = 673; + ADDRESS_ENTRANCE(673), /** Block number */ - public static final int ADDRESS_BLOCK_NUMBER = 674; + ADDRESS_BLOCK_NUMBER(674), /** Street number */ - public static final int ADDRESS_STREET_NUMBER = 675; + ADDRESS_STREET_NUMBER(675), /** Street type */ - public static final int ADDRESS_STREET_TYPE = 676; + ADDRESS_STREET_TYPE(676), /** City sector */ - public static final int ADDRESS_CITY_SECTOR = 677; + ADDRESS_CITY_SECTOR(677), /** County type */ - public static final int ADDRESS_COUNTY_TYPE = 678; + ADDRESS_COUNTY_TYPE(678), /** City type */ - public static final int ADDRESS_CITY_TYPE = 679; + ADDRESS_CITY_TYPE(679), /** Building type */ - public static final int ADDRESS_BUILDING_TYPE = 680; + ADDRESS_BUILDING_TYPE(680), /** Date of Retirement */ - public static final int DATE_OF_RETIREMENT = 681; + DATE_OF_RETIREMENT(681), /** Document Status */ - public static final int DOCUMENT_STATUS = 682; + DOCUMENT_STATUS(682), /** Signature */ - public static final int SIGNATURE = 683; + SIGNATURE(683), /** Unique Certificate Identifier */ - public static final int FT_UNIQUE_CERTIFICATE_IDENTIFIER = 684; + FT_UNIQUE_CERTIFICATE_IDENTIFIER(684), /** Email */ - public static final int FT_EMAIL = 685; + FT_EMAIL(685), /** Date of Specimen Collection */ - public static final int FT_DATE_OF_SPECIMEN_COLLECTION = 686; + FT_DATE_OF_SPECIMEN_COLLECTION(686), /** Type Of Testing */ - public static final int FT_TYPE_OF_TESTING = 687; + FT_TYPE_OF_TESTING(687), /** Result Of Testing */ - public static final int FT_RESULT_OF_TESTING = 688; + FT_RESULT_OF_TESTING(688), /** Method Of Testing */ - public static final int FT_METHOD_OF_TESTING = 689; + FT_METHOD_OF_TESTING(689), /** Digital Travel Authorization Number */ - public static final int FT_DIGITAL_TRAVEL_AUTHORIZATION_NUMBER = 690; + FT_DIGITAL_TRAVEL_AUTHORIZATION_NUMBER(690), /** Date of First Positive Test Result */ - public static final int FT_DATE_OF_FIRST_POSITIVE_TEST_RESULT = 691; + FT_DATE_OF_FIRST_POSITIVE_TEST_RESULT(691), /** EF.CardAccess */ - public static final int EF_CARD_ACCESS = 692; + EF_CARD_ACCESS(692); + + private Integer value; + + TextFieldType(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TextFieldType fromValue(Integer value) { + for (TextFieldType b : TextFieldType.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TextFieldType enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TextFieldType read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return TextFieldType.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + TextFieldType.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldValue.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldValue.java old mode 100755 new mode 100644 index adb203ac..2c801ad5 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldValue.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldValue.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,54 +12,93 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** TextFieldValue */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class TextFieldValue { public static final String SERIALIZED_NAME_SOURCE = "source"; @SerializedName(SERIALIZED_NAME_SOURCE) - private String source; + @javax.annotation.Nonnull + private Source source; public static final String SERIALIZED_NAME_VALUE = "value"; @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nonnull private String value; public static final String SERIALIZED_NAME_ORIGINAL_VALUE = "originalValue"; @SerializedName(SERIALIZED_NAME_ORIGINAL_VALUE) + @javax.annotation.Nullable private String originalValue; + public static final String SERIALIZED_NAME_ORIGINAL_VALIDITY = "originalValidity"; + + @SerializedName(SERIALIZED_NAME_ORIGINAL_VALIDITY) + @javax.annotation.Nonnull + private CheckResult originalValidity; + public static final String SERIALIZED_NAME_ORIGINAL_SYMBOLS = "originalSymbols"; @SerializedName(SERIALIZED_NAME_ORIGINAL_SYMBOLS) - private List originalSymbols = null; + @javax.annotation.Nullable + private List originalSymbols; public static final String SERIALIZED_NAME_PAGE_INDEX = "pageIndex"; @SerializedName(SERIALIZED_NAME_PAGE_INDEX) + @javax.annotation.Nonnull private Integer pageIndex; public static final String SERIALIZED_NAME_PROBABILITY = "probability"; @SerializedName(SERIALIZED_NAME_PROBABILITY) + @javax.annotation.Nonnull private Integer probability; public static final String SERIALIZED_NAME_FIELD_RECT = "fieldRect"; @SerializedName(SERIALIZED_NAME_FIELD_RECT) + @javax.annotation.Nullable private RectangleCoordinates fieldRect; public static final String SERIALIZED_NAME_RFID_ORIGIN = "rfidOrigin"; @SerializedName(SERIALIZED_NAME_RFID_ORIGIN) + @javax.annotation.Nullable private RfidOrigin rfidOrigin; - public TextFieldValue withSource(String source) { + public static final String SERIALIZED_NAME_CONTAINER_TYPE = "containerType"; + + @SerializedName(SERIALIZED_NAME_CONTAINER_TYPE) + @javax.annotation.Nullable + private Integer containerType = 0; + + public TextFieldValue() {} + + public TextFieldValue source(@javax.annotation.Nonnull Source source) { this.source = source; return this; } @@ -69,15 +108,16 @@ public TextFieldValue withSource(String source) { * * @return source */ - public String getSource() { + @javax.annotation.Nonnull + public Source getSource() { return source; } - public void setSource(String source) { + public void setSource(@javax.annotation.Nonnull Source source) { this.source = source; } - public TextFieldValue withValue(String value) { + public TextFieldValue value(@javax.annotation.Nonnull String value) { this.value = value; return this; } @@ -87,15 +127,16 @@ public TextFieldValue withValue(String value) { * * @return value */ + @javax.annotation.Nonnull public String getValue() { return value; } - public void setValue(String value) { + public void setValue(@javax.annotation.Nonnull String value) { this.value = value; } - public TextFieldValue withOriginalValue(String originalValue) { + public TextFieldValue originalValue(@javax.annotation.Nullable String originalValue) { this.originalValue = originalValue; return this; } @@ -110,18 +151,38 @@ public String getOriginalValue() { return originalValue; } - public void setOriginalValue(String originalValue) { + public void setOriginalValue(@javax.annotation.Nullable String originalValue) { this.originalValue = originalValue; } - public TextFieldValue withOriginalSymbols(List originalSymbols) { + public TextFieldValue originalValidity(@javax.annotation.Nonnull CheckResult originalValidity) { + this.originalValidity = originalValidity; + return this; + } + + /** + * Get originalValidity + * + * @return originalValidity + */ + @javax.annotation.Nonnull + public CheckResult getOriginalValidity() { + return originalValidity; + } + + public void setOriginalValidity(@javax.annotation.Nonnull CheckResult originalValidity) { + this.originalValidity = originalValidity; + } + + public TextFieldValue originalSymbols( + @javax.annotation.Nullable List originalSymbols) { this.originalSymbols = originalSymbols; return this; } public TextFieldValue addOriginalSymbolsItem(OriginalSymbol originalSymbolsItem) { if (this.originalSymbols == null) { - this.originalSymbols = new ArrayList(); + this.originalSymbols = new ArrayList<>(); } this.originalSymbols.add(originalSymbolsItem); return this; @@ -137,11 +198,11 @@ public List getOriginalSymbols() { return originalSymbols; } - public void setOriginalSymbols(List originalSymbols) { + public void setOriginalSymbols(@javax.annotation.Nullable List originalSymbols) { this.originalSymbols = originalSymbols; } - public TextFieldValue withPageIndex(Integer pageIndex) { + public TextFieldValue pageIndex(@javax.annotation.Nonnull Integer pageIndex) { this.pageIndex = pageIndex; return this; } @@ -151,15 +212,16 @@ public TextFieldValue withPageIndex(Integer pageIndex) { * * @return pageIndex */ + @javax.annotation.Nonnull public Integer getPageIndex() { return pageIndex; } - public void setPageIndex(Integer pageIndex) { + public void setPageIndex(@javax.annotation.Nonnull Integer pageIndex) { this.pageIndex = pageIndex; } - public TextFieldValue withProbability(Integer probability) { + public TextFieldValue probability(@javax.annotation.Nonnull Integer probability) { this.probability = probability; return this; } @@ -170,16 +232,16 @@ public TextFieldValue withProbability(Integer probability) { * * @return probability */ - @javax.annotation.Nullable + @javax.annotation.Nonnull public Integer getProbability() { return probability; } - public void setProbability(Integer probability) { + public void setProbability(@javax.annotation.Nonnull Integer probability) { this.probability = probability; } - public TextFieldValue withFieldRect(RectangleCoordinates fieldRect) { + public TextFieldValue fieldRect(@javax.annotation.Nullable RectangleCoordinates fieldRect) { this.fieldRect = fieldRect; return this; } @@ -194,11 +256,11 @@ public RectangleCoordinates getFieldRect() { return fieldRect; } - public void setFieldRect(RectangleCoordinates fieldRect) { + public void setFieldRect(@javax.annotation.Nullable RectangleCoordinates fieldRect) { this.fieldRect = fieldRect; } - public TextFieldValue withRfidOrigin(RfidOrigin rfidOrigin) { + public TextFieldValue rfidOrigin(@javax.annotation.Nullable RfidOrigin rfidOrigin) { this.rfidOrigin = rfidOrigin; return this; } @@ -213,12 +275,31 @@ public RfidOrigin getRfidOrigin() { return rfidOrigin; } - public void setRfidOrigin(RfidOrigin rfidOrigin) { + public void setRfidOrigin(@javax.annotation.Nullable RfidOrigin rfidOrigin) { this.rfidOrigin = rfidOrigin; } + public TextFieldValue containerType(@javax.annotation.Nullable Integer containerType) { + this.containerType = containerType; + return this; + } + + /** + * Same as Result type, but used for safe parsing of not-described values. See Result type. + * + * @return containerType + */ + @javax.annotation.Nullable + public Integer getContainerType() { + return containerType; + } + + public void setContainerType(@javax.annotation.Nullable Integer containerType) { + this.containerType = containerType; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -229,11 +310,13 @@ public boolean equals(java.lang.Object o) { return Objects.equals(this.source, textFieldValue.source) && Objects.equals(this.value, textFieldValue.value) && Objects.equals(this.originalValue, textFieldValue.originalValue) + && Objects.equals(this.originalValidity, textFieldValue.originalValidity) && Objects.equals(this.originalSymbols, textFieldValue.originalSymbols) && Objects.equals(this.pageIndex, textFieldValue.pageIndex) && Objects.equals(this.probability, textFieldValue.probability) && Objects.equals(this.fieldRect, textFieldValue.fieldRect) - && Objects.equals(this.rfidOrigin, textFieldValue.rfidOrigin); + && Objects.equals(this.rfidOrigin, textFieldValue.rfidOrigin) + && Objects.equals(this.containerType, textFieldValue.containerType); } @Override @@ -242,11 +325,13 @@ public int hashCode() { source, value, originalValue, + originalValidity, originalSymbols, pageIndex, probability, fieldRect, - rfidOrigin); + rfidOrigin, + containerType); } @Override @@ -256,11 +341,13 @@ public String toString() { sb.append(" source: ").append(toIndentedString(source)).append("\n"); sb.append(" value: ").append(toIndentedString(value)).append("\n"); sb.append(" originalValue: ").append(toIndentedString(originalValue)).append("\n"); + sb.append(" originalValidity: ").append(toIndentedString(originalValidity)).append("\n"); sb.append(" originalSymbols: ").append(toIndentedString(originalSymbols)).append("\n"); sb.append(" pageIndex: ").append(toIndentedString(pageIndex)).append("\n"); sb.append(" probability: ").append(toIndentedString(probability)).append("\n"); sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); sb.append(" rfidOrigin: ").append(toIndentedString(rfidOrigin)).append("\n"); + sb.append(" containerType: ").append(toIndentedString(containerType)).append("\n"); sb.append("}"); return sb.toString(); } @@ -268,10 +355,168 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("source"); + openapiFields.add("value"); + openapiFields.add("originalValue"); + openapiFields.add("originalValidity"); + openapiFields.add("originalSymbols"); + openapiFields.add("pageIndex"); + openapiFields.add("probability"); + openapiFields.add("fieldRect"); + openapiFields.add("rfidOrigin"); + openapiFields.add("containerType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("source"); + openapiRequiredFields.add("value"); + openapiRequiredFields.add("originalValidity"); + openapiRequiredFields.add("pageIndex"); + openapiRequiredFields.add("probability"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TextFieldValue + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TextFieldValue.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TextFieldValue is not found in the empty JSON string", + TextFieldValue.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TextFieldValue.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TextFieldValue` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TextFieldValue.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `source` + Source.validateJsonElement(jsonObj.get("source")); + if (!jsonObj.get("value").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `value` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("value").toString())); + } + if ((jsonObj.get("originalValue") != null && !jsonObj.get("originalValue").isJsonNull()) + && !jsonObj.get("originalValue").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `originalValue` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("originalValue").toString())); + } + // validate the required field `originalValidity` + CheckResult.validateJsonElement(jsonObj.get("originalValidity")); + if (jsonObj.get("originalSymbols") != null && !jsonObj.get("originalSymbols").isJsonNull()) { + JsonArray jsonArrayoriginalSymbols = jsonObj.getAsJsonArray("originalSymbols"); + if (jsonArrayoriginalSymbols != null) { + // ensure the json data is an array + if (!jsonObj.get("originalSymbols").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `originalSymbols` to be an array in the JSON string but got `%s`", + jsonObj.get("originalSymbols").toString())); + } + + // validate the optional field `originalSymbols` (array) + for (int i = 0; i < jsonArrayoriginalSymbols.size(); i++) { + OriginalSymbol.validateJsonElement(jsonArrayoriginalSymbols.get(i)); + } + ; + } + } + // validate the optional field `fieldRect` + if (jsonObj.get("fieldRect") != null && !jsonObj.get("fieldRect").isJsonNull()) { + RectangleCoordinates.validateJsonElement(jsonObj.get("fieldRect")); + } + // validate the optional field `rfidOrigin` + if (jsonObj.get("rfidOrigin") != null && !jsonObj.get("rfidOrigin").isJsonNull()) { + RfidOrigin.validateJsonElement(jsonObj.get("rfidOrigin")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TextFieldValue.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TextFieldValue' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TextFieldValue.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TextFieldValue value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TextFieldValue read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TextFieldValue given an JSON string + * + * @param jsonString JSON string + * @return An instance of TextFieldValue + * @throws IOException if the JSON string is invalid with respect to TextFieldValue + */ + public static TextFieldValue fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TextFieldValue.class); + } + + /** + * Convert an instance of TextFieldValue to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextPostProcessing.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextPostProcessing.java index 8a6bb111..f13dc814 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextPostProcessing.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextPostProcessing.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,69 @@ package com.regula.documentreader.webclient.model; -public class TextPostProcessing { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Gets or Sets TextPostProcessing */ +@JsonAdapter(TextPostProcessing.Adapter.class) +public enum TextPostProcessing { /** Do not change */ - public static final int NO_CHANGE = 0; + NO_CHANGE(0), /** Uppercase */ - public static final int UPPERCASE = 1; + UPPERCASE(1), /** Lowercase */ - public static final int LOWERCASE = 2; + LOWERCASE(2), /** Capital */ - public static final int CAPITAL = 3; + CAPITAL(3); + + private Integer value; + + TextPostProcessing(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TextPostProcessing fromValue(Integer value) { + for (TextPostProcessing b : TextPostProcessing.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TextPostProcessing enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TextPostProcessing read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return TextPostProcessing.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + TextPostProcessing.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java old mode 100755 new mode 100644 index af4cef2c..1e61d46f --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,37 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** TextResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class TextResult extends ResultItem { public static final String SERIALIZED_NAME_TEXT = "Text"; @SerializedName(SERIALIZED_NAME_TEXT) + @javax.annotation.Nonnull private com.regula.documentreader.webclient.model.ext.Text text; - public TextResult withText(com.regula.documentreader.webclient.model.ext.Text text) { + public TextResult() {} + + public TextResult text( + @javax.annotation.Nonnull com.regula.documentreader.webclient.model.ext.Text text) { this.text = text; return this; } @@ -32,16 +52,18 @@ public TextResult withText(com.regula.documentreader.webclient.model.ext.Text te * * @return text */ + @javax.annotation.Nonnull public com.regula.documentreader.webclient.model.ext.Text getText() { return text; } - public void setText(com.regula.documentreader.webclient.model.ext.Text text) { + public void setText( + @javax.annotation.Nonnull com.regula.documentreader.webclient.model.ext.Text text) { this.text = text; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -70,10 +92,117 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("Text"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Text"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TextResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TextResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TextResult is not found in the empty JSON string", + TextResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TextResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TextResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TextResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TextResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TextResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TextResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TextResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TextResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TextResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of TextResult + * @throws IOException if the JSON string is invalid with respect to TextResult + */ + public static TextResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TextResult.class); + } + + /** + * Convert an instance of TextResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionImage.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionImage.java index d14eb9d3..3f940d02 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionImage.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionImage.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,17 +12,36 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** TransactionImage */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class TransactionImage { public static final String SERIALIZED_NAME_IMAGE = "image"; @SerializedName(SERIALIZED_NAME_IMAGE) + @javax.annotation.Nullable private ImagesFieldValue image; - public TransactionImage withImage(ImagesFieldValue image) { + public TransactionImage() {} + + public TransactionImage image(@javax.annotation.Nullable ImagesFieldValue image) { this.image = image; return this; } @@ -37,12 +56,12 @@ public ImagesFieldValue getImage() { return image; } - public void setImage(ImagesFieldValue image) { + public void setImage(@javax.annotation.Nullable ImagesFieldValue image) { this.image = image; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -70,10 +89,105 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("image"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TransactionImage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TransactionImage.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TransactionImage is not found in the empty JSON string", + TransactionImage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TransactionImage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TransactionImage` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `image` + if (jsonObj.get("image") != null && !jsonObj.get("image").isJsonNull()) { + ImagesFieldValue.validateJsonElement(jsonObj.get("image")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TransactionImage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TransactionImage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TransactionImage.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TransactionImage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TransactionImage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TransactionImage given an JSON string + * + * @param jsonString JSON string + * @return An instance of TransactionImage + * @throws IOException if the JSON string is invalid with respect to TransactionImage + */ + public static TransactionImage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TransactionImage.class); + } + + /** + * Convert an instance of TransactionImage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionImagesFieldValue.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionImagesFieldValue.java deleted file mode 100644 index ddb196e3..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionImagesFieldValue.java +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.Objects; - -/** TransactionImagesFieldValue */ -public class TransactionImagesFieldValue { - public static final String SERIALIZED_NAME_FIELD_TYPE = "fieldType"; - - @SerializedName(SERIALIZED_NAME_FIELD_TYPE) - private Integer fieldType; - - public static final String SERIALIZED_NAME_LIGHT = "light"; - - @SerializedName(SERIALIZED_NAME_LIGHT) - private Integer light; - - public static final String SERIALIZED_NAME_LIST_IDX = "listIdx"; - - @SerializedName(SERIALIZED_NAME_LIST_IDX) - private Integer listIdx; - - public static final String SERIALIZED_NAME_PAGE_IDX = "pageIdx"; - - @SerializedName(SERIALIZED_NAME_PAGE_IDX) - private Integer pageIdx; - - public static final String SERIALIZED_NAME_URL = "url"; - - @SerializedName(SERIALIZED_NAME_URL) - private String url; - - public TransactionImagesFieldValue withFieldType(Integer fieldType) { - this.fieldType = fieldType; - return this; - } - - /** - * Get fieldType - * - * @return fieldType - */ - @javax.annotation.Nullable - public Integer getFieldType() { - return fieldType; - } - - public void setFieldType(Integer fieldType) { - this.fieldType = fieldType; - } - - public TransactionImagesFieldValue withLight(Integer light) { - this.light = light; - return this; - } - - /** - * Get light - * - * @return light - */ - @javax.annotation.Nullable - public Integer getLight() { - return light; - } - - public void setLight(Integer light) { - this.light = light; - } - - public TransactionImagesFieldValue withListIdx(Integer listIdx) { - this.listIdx = listIdx; - return this; - } - - /** - * Get listIdx - * - * @return listIdx - */ - @javax.annotation.Nullable - public Integer getListIdx() { - return listIdx; - } - - public void setListIdx(Integer listIdx) { - this.listIdx = listIdx; - } - - public TransactionImagesFieldValue withPageIdx(Integer pageIdx) { - this.pageIdx = pageIdx; - return this; - } - - /** - * Page index of the image from input list - * - * @return pageIdx - */ - @javax.annotation.Nullable - public Integer getPageIdx() { - return pageIdx; - } - - public void setPageIdx(Integer pageIdx) { - this.pageIdx = pageIdx; - } - - public TransactionImagesFieldValue withUrl(String url) { - this.url = url; - return this; - } - - /** - * Image url - * - * @return url - */ - @javax.annotation.Nullable - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - TransactionImagesFieldValue transactionImagesFieldValue = (TransactionImagesFieldValue) o; - return Objects.equals(this.fieldType, transactionImagesFieldValue.fieldType) - && Objects.equals(this.light, transactionImagesFieldValue.light) - && Objects.equals(this.listIdx, transactionImagesFieldValue.listIdx) - && Objects.equals(this.pageIdx, transactionImagesFieldValue.pageIdx) - && Objects.equals(this.url, transactionImagesFieldValue.url); - } - - @Override - public int hashCode() { - return Objects.hash(fieldType, light, listIdx, pageIdx, url); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class TransactionImagesFieldValue {\n"); - sb.append(" fieldType: ").append(toIndentedString(fieldType)).append("\n"); - sb.append(" light: ").append(toIndentedString(light)).append("\n"); - sb.append(" listIdx: ").append(toIndentedString(listIdx)).append("\n"); - sb.append(" pageIdx: ").append(toIndentedString(pageIdx)).append("\n"); - sb.append(" url: ").append(toIndentedString(url)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionInfo.java old mode 100755 new mode 100644 index e0948db7..af9286b2 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionInfo.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,52 +12,78 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** TransactionInfo */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class TransactionInfo { public static final String SERIALIZED_NAME_COMPUTER_NAME = "ComputerName"; @SerializedName(SERIALIZED_NAME_COMPUTER_NAME) + @javax.annotation.Nullable private String computerName; public static final String SERIALIZED_NAME_DATE_TIME = "DateTime"; @SerializedName(SERIALIZED_NAME_DATE_TIME) + @javax.annotation.Nullable private String dateTime; public static final String SERIALIZED_NAME_DOCUMENTS_DATABASE = "DocumentsDatabase"; @SerializedName(SERIALIZED_NAME_DOCUMENTS_DATABASE) + @javax.annotation.Nullable private DocumentsDatabase documentsDatabase; public static final String SERIALIZED_NAME_SYSTEM_INFO = "SystemInfo"; @SerializedName(SERIALIZED_NAME_SYSTEM_INFO) + @javax.annotation.Nullable private String systemInfo; public static final String SERIALIZED_NAME_TAG = "Tag"; @SerializedName(SERIALIZED_NAME_TAG) + @javax.annotation.Nullable private String tag; public static final String SERIALIZED_NAME_TRANSACTION_I_D = "TransactionID"; @SerializedName(SERIALIZED_NAME_TRANSACTION_I_D) + @javax.annotation.Nullable private String transactionID; public static final String SERIALIZED_NAME_USER_NAME = "UserName"; @SerializedName(SERIALIZED_NAME_USER_NAME) + @javax.annotation.Nullable private String userName; public static final String SERIALIZED_NAME_VERSION = "Version"; @SerializedName(SERIALIZED_NAME_VERSION) + @javax.annotation.Nullable private String version; - public TransactionInfo withComputerName(String computerName) { + public TransactionInfo() {} + + public TransactionInfo computerName(@javax.annotation.Nullable String computerName) { this.computerName = computerName; return this; } @@ -72,11 +98,11 @@ public String getComputerName() { return computerName; } - public void setComputerName(String computerName) { + public void setComputerName(@javax.annotation.Nullable String computerName) { this.computerName = computerName; } - public TransactionInfo withDateTime(String dateTime) { + public TransactionInfo dateTime(@javax.annotation.Nullable String dateTime) { this.dateTime = dateTime; return this; } @@ -91,11 +117,12 @@ public String getDateTime() { return dateTime; } - public void setDateTime(String dateTime) { + public void setDateTime(@javax.annotation.Nullable String dateTime) { this.dateTime = dateTime; } - public TransactionInfo withDocumentsDatabase(DocumentsDatabase documentsDatabase) { + public TransactionInfo documentsDatabase( + @javax.annotation.Nullable DocumentsDatabase documentsDatabase) { this.documentsDatabase = documentsDatabase; return this; } @@ -110,11 +137,11 @@ public DocumentsDatabase getDocumentsDatabase() { return documentsDatabase; } - public void setDocumentsDatabase(DocumentsDatabase documentsDatabase) { + public void setDocumentsDatabase(@javax.annotation.Nullable DocumentsDatabase documentsDatabase) { this.documentsDatabase = documentsDatabase; } - public TransactionInfo withSystemInfo(String systemInfo) { + public TransactionInfo systemInfo(@javax.annotation.Nullable String systemInfo) { this.systemInfo = systemInfo; return this; } @@ -129,11 +156,11 @@ public String getSystemInfo() { return systemInfo; } - public void setSystemInfo(String systemInfo) { + public void setSystemInfo(@javax.annotation.Nullable String systemInfo) { this.systemInfo = systemInfo; } - public TransactionInfo withTag(String tag) { + public TransactionInfo tag(@javax.annotation.Nullable String tag) { this.tag = tag; return this; } @@ -148,11 +175,11 @@ public String getTag() { return tag; } - public void setTag(String tag) { + public void setTag(@javax.annotation.Nullable String tag) { this.tag = tag; } - public TransactionInfo withTransactionID(String transactionID) { + public TransactionInfo transactionID(@javax.annotation.Nullable String transactionID) { this.transactionID = transactionID; return this; } @@ -167,11 +194,11 @@ public String getTransactionID() { return transactionID; } - public void setTransactionID(String transactionID) { + public void setTransactionID(@javax.annotation.Nullable String transactionID) { this.transactionID = transactionID; } - public TransactionInfo withUserName(String userName) { + public TransactionInfo userName(@javax.annotation.Nullable String userName) { this.userName = userName; return this; } @@ -186,11 +213,11 @@ public String getUserName() { return userName; } - public void setUserName(String userName) { + public void setUserName(@javax.annotation.Nullable String userName) { this.userName = userName; } - public TransactionInfo withVersion(String version) { + public TransactionInfo version(@javax.annotation.Nullable String version) { this.version = version; return this; } @@ -205,12 +232,12 @@ public String getVersion() { return version; } - public void setVersion(String version) { + public void setVersion(@javax.annotation.Nullable String version) { this.version = version; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -260,10 +287,162 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ComputerName"); + openapiFields.add("DateTime"); + openapiFields.add("DocumentsDatabase"); + openapiFields.add("SystemInfo"); + openapiFields.add("Tag"); + openapiFields.add("TransactionID"); + openapiFields.add("UserName"); + openapiFields.add("Version"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TransactionInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TransactionInfo.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TransactionInfo is not found in the empty JSON string", + TransactionInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TransactionInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TransactionInfo` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("ComputerName") != null && !jsonObj.get("ComputerName").isJsonNull()) + && !jsonObj.get("ComputerName").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ComputerName` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("ComputerName").toString())); + } + if ((jsonObj.get("DateTime") != null && !jsonObj.get("DateTime").isJsonNull()) + && !jsonObj.get("DateTime").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `DateTime` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("DateTime").toString())); + } + // validate the optional field `DocumentsDatabase` + if (jsonObj.get("DocumentsDatabase") != null + && !jsonObj.get("DocumentsDatabase").isJsonNull()) { + DocumentsDatabase.validateJsonElement(jsonObj.get("DocumentsDatabase")); + } + if ((jsonObj.get("SystemInfo") != null && !jsonObj.get("SystemInfo").isJsonNull()) + && !jsonObj.get("SystemInfo").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `SystemInfo` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("SystemInfo").toString())); + } + if ((jsonObj.get("Tag") != null && !jsonObj.get("Tag").isJsonNull()) + && !jsonObj.get("Tag").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Tag` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Tag").toString())); + } + if ((jsonObj.get("TransactionID") != null && !jsonObj.get("TransactionID").isJsonNull()) + && !jsonObj.get("TransactionID").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `TransactionID` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("TransactionID").toString())); + } + if ((jsonObj.get("UserName") != null && !jsonObj.get("UserName").isJsonNull()) + && !jsonObj.get("UserName").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `UserName` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("UserName").toString())); + } + if ((jsonObj.get("Version") != null && !jsonObj.get("Version").isJsonNull()) + && !jsonObj.get("Version").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Version` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Version").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TransactionInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TransactionInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TransactionInfo.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TransactionInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TransactionInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TransactionInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TransactionInfo + * @throws IOException if the JSON string is invalid with respect to TransactionInfo + */ + public static TransactionInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TransactionInfo.class); + } + + /** + * Convert an instance of TransactionInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessGetResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessGetResponse.java index 9c1f34eb..20707a9b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessGetResponse.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessGetResponse.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,33 +12,56 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.UUID; /** TransactionProcessGetResponse */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class TransactionProcessGetResponse { public static final String SERIALIZED_NAME_TRANSACTION_ID = "transactionId"; @SerializedName(SERIALIZED_NAME_TRANSACTION_ID) + @javax.annotation.Nullable private UUID transactionId; public static final String SERIALIZED_NAME_TAG = "tag"; @SerializedName(SERIALIZED_NAME_TAG) + @javax.annotation.Nullable private String tag; public static final String SERIALIZED_NAME_OUT_DATA = "outData"; @SerializedName(SERIALIZED_NAME_OUT_DATA) + @javax.annotation.Nullable private OutData outData; public static final String SERIALIZED_NAME_IN_DATA = "inData"; @SerializedName(SERIALIZED_NAME_IN_DATA) + @javax.annotation.Nullable private InData inData; - public TransactionProcessGetResponse withTransactionId(UUID transactionId) { + public TransactionProcessGetResponse() {} + + public TransactionProcessGetResponse transactionId( + @javax.annotation.Nullable UUID transactionId) { this.transactionId = transactionId; return this; } @@ -53,11 +76,11 @@ public UUID getTransactionId() { return transactionId; } - public void setTransactionId(UUID transactionId) { + public void setTransactionId(@javax.annotation.Nullable UUID transactionId) { this.transactionId = transactionId; } - public TransactionProcessGetResponse withTag(String tag) { + public TransactionProcessGetResponse tag(@javax.annotation.Nullable String tag) { this.tag = tag; return this; } @@ -72,11 +95,11 @@ public String getTag() { return tag; } - public void setTag(String tag) { + public void setTag(@javax.annotation.Nullable String tag) { this.tag = tag; } - public TransactionProcessGetResponse withOutData(OutData outData) { + public TransactionProcessGetResponse outData(@javax.annotation.Nullable OutData outData) { this.outData = outData; return this; } @@ -91,11 +114,11 @@ public OutData getOutData() { return outData; } - public void setOutData(OutData outData) { + public void setOutData(@javax.annotation.Nullable OutData outData) { this.outData = outData; } - public TransactionProcessGetResponse withInData(InData inData) { + public TransactionProcessGetResponse inData(@javax.annotation.Nullable InData inData) { this.inData = inData; return this; } @@ -110,12 +133,12 @@ public InData getInData() { return inData; } - public void setInData(InData inData) { + public void setInData(@javax.annotation.Nullable InData inData) { this.inData = inData; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -149,10 +172,128 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("transactionId"); + openapiFields.add("tag"); + openapiFields.add("outData"); + openapiFields.add("inData"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * TransactionProcessGetResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TransactionProcessGetResponse.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TransactionProcessGetResponse is not found in the empty JSON string", + TransactionProcessGetResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TransactionProcessGetResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TransactionProcessGetResponse` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("transactionId") != null && !jsonObj.get("transactionId").isJsonNull()) + && !jsonObj.get("transactionId").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `transactionId` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("transactionId").toString())); + } + if ((jsonObj.get("tag") != null && !jsonObj.get("tag").isJsonNull()) + && !jsonObj.get("tag").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `tag` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("tag").toString())); + } + // validate the optional field `outData` + if (jsonObj.get("outData") != null && !jsonObj.get("outData").isJsonNull()) { + OutData.validateJsonElement(jsonObj.get("outData")); + } + // validate the optional field `inData` + if (jsonObj.get("inData") != null && !jsonObj.get("inData").isJsonNull()) { + InData.validateJsonElement(jsonObj.get("inData")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TransactionProcessGetResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TransactionProcessGetResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TransactionProcessGetResponse.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TransactionProcessGetResponse value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TransactionProcessGetResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TransactionProcessGetResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of TransactionProcessGetResponse + * @throws IOException if the JSON string is invalid with respect to TransactionProcessGetResponse + */ + public static TransactionProcessGetResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TransactionProcessGetResponse.class); + } + + /** + * Convert an instance of TransactionProcessGetResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java index 11e800af..b5a5e7c5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,56 +12,83 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; /** TransactionProcessRequest */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class TransactionProcessRequest { public static final String SERIALIZED_NAME_PROCESS_PARAM = "processParam"; @SerializedName(SERIALIZED_NAME_PROCESS_PARAM) + @javax.annotation.Nonnull private ProcessParams processParam; public static final String SERIALIZED_NAME_LIST = "List"; @SerializedName(SERIALIZED_NAME_LIST) - private List list = null; + @javax.annotation.Nullable + private List list; public static final String SERIALIZED_NAME_LIVE_PORTRAIT = "livePortrait"; @SerializedName(SERIALIZED_NAME_LIVE_PORTRAIT) + @javax.annotation.Nullable private String livePortrait; public static final String SERIALIZED_NAME_EXT_PORTRAIT = "extPortrait"; @SerializedName(SERIALIZED_NAME_EXT_PORTRAIT) + @javax.annotation.Nullable private String extPortrait; public static final String SERIALIZED_NAME_CONTAINER_LIST = "ContainerList"; @SerializedName(SERIALIZED_NAME_CONTAINER_LIST) - private ContainerList containerList; + @javax.annotation.Nullable + private com.regula.documentreader.webclient.model.changed.ContainerList containerList; public static final String SERIALIZED_NAME_SYSTEM_INFO = "systemInfo"; @SerializedName(SERIALIZED_NAME_SYSTEM_INFO) + @javax.annotation.Nullable private ProcessSystemInfo systemInfo; public static final String SERIALIZED_NAME_PASS_BACK_OBJECT = "passBackObject"; @SerializedName(SERIALIZED_NAME_PASS_BACK_OBJECT) - private Map passBackObject = null; + @javax.annotation.Nullable + private Map passBackObject; public static final String SERIALIZED_NAME_DTC = "dtc"; @SerializedName(SERIALIZED_NAME_DTC) + @javax.annotation.Nullable private String dtc; - public TransactionProcessRequest withProcessParam(ProcessParams processParam) { + public TransactionProcessRequest() {} + + public TransactionProcessRequest processParam( + @javax.annotation.Nonnull ProcessParams processParam) { this.processParam = processParam; return this; } @@ -71,22 +98,23 @@ public TransactionProcessRequest withProcessParam(ProcessParams processParam) { * * @return processParam */ + @javax.annotation.Nonnull public ProcessParams getProcessParam() { return processParam; } - public void setProcessParam(ProcessParams processParam) { + public void setProcessParam(@javax.annotation.Nonnull ProcessParams processParam) { this.processParam = processParam; } - public TransactionProcessRequest withList(List list) { + public TransactionProcessRequest list(@javax.annotation.Nullable List list) { this.list = list; return this; } public TransactionProcessRequest addListItem(ProcessRequestImage listItem) { if (this.list == null) { - this.list = new ArrayList(); + this.list = new ArrayList<>(); } this.list.add(listItem); return this; @@ -102,11 +130,11 @@ public List getList() { return list; } - public void setList(List list) { + public void setList(@javax.annotation.Nullable List list) { this.list = list; } - public TransactionProcessRequest withLivePortrait(String livePortrait) { + public TransactionProcessRequest livePortrait(@javax.annotation.Nullable String livePortrait) { this.livePortrait = livePortrait; return this; } @@ -121,11 +149,11 @@ public String getLivePortrait() { return livePortrait; } - public void setLivePortrait(String livePortrait) { + public void setLivePortrait(@javax.annotation.Nullable String livePortrait) { this.livePortrait = livePortrait; } - public TransactionProcessRequest withExtPortrait(String extPortrait) { + public TransactionProcessRequest extPortrait(@javax.annotation.Nullable String extPortrait) { this.extPortrait = extPortrait; return this; } @@ -140,11 +168,13 @@ public String getExtPortrait() { return extPortrait; } - public void setExtPortrait(String extPortrait) { + public void setExtPortrait(@javax.annotation.Nullable String extPortrait) { this.extPortrait = extPortrait; } - public TransactionProcessRequest withContainerList(ContainerList containerList) { + public TransactionProcessRequest containerList( + @javax.annotation.Nullable + com.regula.documentreader.webclient.model.changed.ContainerList containerList) { this.containerList = containerList; return this; } @@ -155,15 +185,18 @@ public TransactionProcessRequest withContainerList(ContainerList containerList) * @return containerList */ @javax.annotation.Nullable - public ContainerList getContainerList() { + public com.regula.documentreader.webclient.model.changed.ContainerList getContainerList() { return containerList; } - public void setContainerList(ContainerList containerList) { + public void setContainerList( + @javax.annotation.Nullable + com.regula.documentreader.webclient.model.changed.ContainerList containerList) { this.containerList = containerList; } - public TransactionProcessRequest withSystemInfo(ProcessSystemInfo systemInfo) { + public TransactionProcessRequest systemInfo( + @javax.annotation.Nullable ProcessSystemInfo systemInfo) { this.systemInfo = systemInfo; return this; } @@ -178,18 +211,19 @@ public ProcessSystemInfo getSystemInfo() { return systemInfo; } - public void setSystemInfo(ProcessSystemInfo systemInfo) { + public void setSystemInfo(@javax.annotation.Nullable ProcessSystemInfo systemInfo) { this.systemInfo = systemInfo; } - public TransactionProcessRequest withPassBackObject(Map passBackObject) { + public TransactionProcessRequest passBackObject( + @javax.annotation.Nullable Map passBackObject) { this.passBackObject = passBackObject; return this; } public TransactionProcessRequest putPassBackObjectItem(String key, Object passBackObjectItem) { if (this.passBackObject == null) { - this.passBackObject = new HashMap(); + this.passBackObject = new HashMap<>(); } this.passBackObject.put(key, passBackObjectItem); return this; @@ -206,11 +240,11 @@ public Map getPassBackObject() { return passBackObject; } - public void setPassBackObject(Map passBackObject) { + public void setPassBackObject(@javax.annotation.Nullable Map passBackObject) { this.passBackObject = passBackObject; } - public TransactionProcessRequest withDtc(String dtc) { + public TransactionProcessRequest dtc(@javax.annotation.Nullable String dtc) { this.dtc = dtc; return this; } @@ -225,12 +259,12 @@ public String getDtc() { return dtc; } - public void setDtc(String dtc) { + public void setDtc(@javax.annotation.Nullable String dtc) { this.dtc = dtc; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -280,10 +314,169 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("processParam"); + openapiFields.add("List"); + openapiFields.add("livePortrait"); + openapiFields.add("extPortrait"); + openapiFields.add("ContainerList"); + openapiFields.add("systemInfo"); + openapiFields.add("passBackObject"); + openapiFields.add("dtc"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("processParam"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TransactionProcessRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TransactionProcessRequest.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TransactionProcessRequest is not found in the empty JSON string", + TransactionProcessRequest.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TransactionProcessRequest.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TransactionProcessRequest` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TransactionProcessRequest.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `processParam` + ProcessParams.validateJsonElement(jsonObj.get("processParam")); + if (jsonObj.get("List") != null && !jsonObj.get("List").isJsonNull()) { + JsonArray jsonArraylist = jsonObj.getAsJsonArray("List"); + if (jsonArraylist != null) { + // ensure the json data is an array + if (!jsonObj.get("List").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `List` to be an array in the JSON string but got `%s`", + jsonObj.get("List").toString())); + } + + // validate the optional field `List` (array) + for (int i = 0; i < jsonArraylist.size(); i++) { + ProcessRequestImage.validateJsonElement(jsonArraylist.get(i)); + } + ; + } + } + if ((jsonObj.get("livePortrait") != null && !jsonObj.get("livePortrait").isJsonNull()) + && !jsonObj.get("livePortrait").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `livePortrait` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("livePortrait").toString())); + } + if ((jsonObj.get("extPortrait") != null && !jsonObj.get("extPortrait").isJsonNull()) + && !jsonObj.get("extPortrait").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `extPortrait` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("extPortrait").toString())); + } + // validate the optional field `ContainerList` + if (jsonObj.get("ContainerList") != null && !jsonObj.get("ContainerList").isJsonNull()) { + com.regula.documentreader.webclient.model.changed.ContainerList.validateJsonElement( + jsonObj.get("ContainerList")); + } + // validate the optional field `systemInfo` + if (jsonObj.get("systemInfo") != null && !jsonObj.get("systemInfo").isJsonNull()) { + ProcessSystemInfo.validateJsonElement(jsonObj.get("systemInfo")); + } + if ((jsonObj.get("dtc") != null && !jsonObj.get("dtc").isJsonNull()) + && !jsonObj.get("dtc").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `dtc` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("dtc").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TransactionProcessRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TransactionProcessRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TransactionProcessRequest.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TransactionProcessRequest value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TransactionProcessRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TransactionProcessRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of TransactionProcessRequest + * @throws IOException if the JSON string is invalid with respect to TransactionProcessRequest + */ + public static TransactionProcessRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TransactionProcessRequest.class); + } + + /** + * Convert an instance of TransactionProcessRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponse.java new file mode 100644 index 00000000..bbe4e0ca --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponse.java @@ -0,0 +1,218 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** TransactionProcessResponse */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TransactionProcessResponse extends ProcessResponse { + public static final String SERIALIZED_NAME_CORE_LIB_RESULT_CODE = "CoreLibResultCode"; + + @SerializedName(SERIALIZED_NAME_CORE_LIB_RESULT_CODE) + @javax.annotation.Nonnull + private Integer coreLibResultCode; + + public TransactionProcessResponse() {} + + public TransactionProcessResponse coreLibResultCode( + @javax.annotation.Nonnull Integer coreLibResultCode) { + this.coreLibResultCode = coreLibResultCode; + return this; + } + + /** + * Get coreLibResultCode + * + * @return coreLibResultCode + */ + @javax.annotation.Nonnull + public Integer getCoreLibResultCode() { + return coreLibResultCode; + } + + public void setCoreLibResultCode(@javax.annotation.Nonnull Integer coreLibResultCode) { + this.coreLibResultCode = coreLibResultCode; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TransactionProcessResponse transactionProcessResponse = (TransactionProcessResponse) o; + return Objects.equals(this.coreLibResultCode, transactionProcessResponse.coreLibResultCode) + && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(coreLibResultCode, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TransactionProcessResponse {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" coreLibResultCode: ").append(toIndentedString(coreLibResultCode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ChipPage"); + openapiFields.add("CoreLibResultCode"); + openapiFields.add("ProcessingFinished"); + openapiFields.add("ContainerList"); + openapiFields.add("TransactionInfo"); + openapiFields.add("log"); + openapiFields.add("passBackObject"); + openapiFields.add("morePagesAvailable"); + openapiFields.add("elapsedTime"); + openapiFields.add("metadata"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("CoreLibResultCode"); + openapiRequiredFields.add("ChipPage"); + openapiRequiredFields.add("ProcessingFinished"); + openapiRequiredFields.add("ContainerList"); + openapiRequiredFields.add("TransactionInfo"); + openapiRequiredFields.add("morePagesAvailable"); + openapiRequiredFields.add("elapsedTime"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TransactionProcessResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TransactionProcessResponse.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TransactionProcessResponse is not found in the empty JSON string", + TransactionProcessResponse.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TransactionProcessResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TransactionProcessResponse` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TransactionProcessResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TransactionProcessResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TransactionProcessResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TransactionProcessResponse.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TransactionProcessResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TransactionProcessResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TransactionProcessResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of TransactionProcessResponse + * @throws IOException if the JSON string is invalid with respect to TransactionProcessResponse + */ + public static TransactionProcessResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TransactionProcessResponse.class); + } + + /** + * Convert an instance of TransactionProcessResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResult.java new file mode 100644 index 00000000..4112397e --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResult.java @@ -0,0 +1,296 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.UUID; + +/** TransactionProcessResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TransactionProcessResult { + public static final String SERIALIZED_NAME_OUT_DATA = "OutData"; + + @SerializedName(SERIALIZED_NAME_OUT_DATA) + @javax.annotation.Nullable + private OutData outData; + + public static final String SERIALIZED_NAME_IN_DATA = "InData"; + + @SerializedName(SERIALIZED_NAME_IN_DATA) + @javax.annotation.Nullable + private InData inData; + + public static final String SERIALIZED_NAME_TAG = "tag"; + + @SerializedName(SERIALIZED_NAME_TAG) + @javax.annotation.Nullable + private String tag; + + public static final String SERIALIZED_NAME_TRANSACTION_ID = "transactionId"; + + @SerializedName(SERIALIZED_NAME_TRANSACTION_ID) + @javax.annotation.Nullable + private UUID transactionId; + + public TransactionProcessResult() {} + + public TransactionProcessResult outData(@javax.annotation.Nullable OutData outData) { + this.outData = outData; + return this; + } + + /** + * Get outData + * + * @return outData + */ + @javax.annotation.Nullable + public OutData getOutData() { + return outData; + } + + public void setOutData(@javax.annotation.Nullable OutData outData) { + this.outData = outData; + } + + public TransactionProcessResult inData(@javax.annotation.Nullable InData inData) { + this.inData = inData; + return this; + } + + /** + * Get inData + * + * @return inData + */ + @javax.annotation.Nullable + public InData getInData() { + return inData; + } + + public void setInData(@javax.annotation.Nullable InData inData) { + this.inData = inData; + } + + public TransactionProcessResult tag(@javax.annotation.Nullable String tag) { + this.tag = tag; + return this; + } + + /** + * Get tag + * + * @return tag + */ + @javax.annotation.Nullable + public String getTag() { + return tag; + } + + public void setTag(@javax.annotation.Nullable String tag) { + this.tag = tag; + } + + public TransactionProcessResult transactionId(@javax.annotation.Nullable UUID transactionId) { + this.transactionId = transactionId; + return this; + } + + /** + * Get transactionId + * + * @return transactionId + */ + @javax.annotation.Nullable + public UUID getTransactionId() { + return transactionId; + } + + public void setTransactionId(@javax.annotation.Nullable UUID transactionId) { + this.transactionId = transactionId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TransactionProcessResult transactionProcessResult = (TransactionProcessResult) o; + return Objects.equals(this.outData, transactionProcessResult.outData) + && Objects.equals(this.inData, transactionProcessResult.inData) + && Objects.equals(this.tag, transactionProcessResult.tag) + && Objects.equals(this.transactionId, transactionProcessResult.transactionId); + } + + @Override + public int hashCode() { + return Objects.hash(outData, inData, tag, transactionId); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TransactionProcessResult {\n"); + sb.append(" outData: ").append(toIndentedString(outData)).append("\n"); + sb.append(" inData: ").append(toIndentedString(inData)).append("\n"); + sb.append(" tag: ").append(toIndentedString(tag)).append("\n"); + sb.append(" transactionId: ").append(toIndentedString(transactionId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("OutData"); + openapiFields.add("InData"); + openapiFields.add("tag"); + openapiFields.add("transactionId"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TransactionProcessResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TransactionProcessResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TransactionProcessResult is not found in the empty JSON string", + TransactionProcessResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TransactionProcessResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TransactionProcessResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `OutData` + if (jsonObj.get("OutData") != null && !jsonObj.get("OutData").isJsonNull()) { + OutData.validateJsonElement(jsonObj.get("OutData")); + } + // validate the optional field `InData` + if (jsonObj.get("InData") != null && !jsonObj.get("InData").isJsonNull()) { + InData.validateJsonElement(jsonObj.get("InData")); + } + if ((jsonObj.get("tag") != null && !jsonObj.get("tag").isJsonNull()) + && !jsonObj.get("tag").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `tag` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("tag").toString())); + } + if ((jsonObj.get("transactionId") != null && !jsonObj.get("transactionId").isJsonNull()) + && !jsonObj.get("transactionId").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `transactionId` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("transactionId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TransactionProcessResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TransactionProcessResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TransactionProcessResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TransactionProcessResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TransactionProcessResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TransactionProcessResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of TransactionProcessResult + * @throws IOException if the JSON string is invalid with respect to TransactionProcessResult + */ + public static TransactionProcessResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TransactionProcessResult.class); + } + + /** + * Convert an instance of TransactionProcessResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java new file mode 100644 index 00000000..9dded1e6 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java @@ -0,0 +1,300 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure is used to store an array of binary information that is a part of one of the + * informational data groups + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TrfFtBytes { + public static final String SERIALIZED_NAME_TYPE = "Type"; + + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private TrfFtBytesType type; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nonnull + private BigDecimal status; + + public static final String SERIALIZED_NAME_LENGTH = "Length"; + + @SerializedName(SERIALIZED_NAME_LENGTH) + @javax.annotation.Nonnull + private BigDecimal length; + + public static final String SERIALIZED_NAME_DATA = "Data"; + + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nonnull + private String data; + + public TrfFtBytes() {} + + public TrfFtBytes type(@javax.annotation.Nonnull TrfFtBytesType type) { + this.type = type; + return this; + } + + /** + * Get type + * + * @return type + */ + @javax.annotation.Nonnull + public TrfFtBytesType getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull TrfFtBytesType type) { + this.type = type; + } + + public TrfFtBytes status(@javax.annotation.Nonnull BigDecimal status) { + this.status = status; + return this; + } + + /** + * Result of logical analysis of compliance of the contents of the field with the requirements of + * the specification + * + * @return status + */ + @javax.annotation.Nonnull + public BigDecimal getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nonnull BigDecimal status) { + this.status = status; + } + + public TrfFtBytes length(@javax.annotation.Nonnull BigDecimal length) { + this.length = length; + return this; + } + + /** + * Length of Data array + * + * @return length + */ + @javax.annotation.Nonnull + public BigDecimal getLength() { + return length; + } + + public void setLength(@javax.annotation.Nonnull BigDecimal length) { + this.length = length; + } + + public TrfFtBytes data(@javax.annotation.Nonnull String data) { + this.data = data; + return this; + } + + /** + * Binary data array. Base64 encoded. + * + * @return data + */ + @javax.annotation.Nonnull + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nonnull String data) { + this.data = data; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrfFtBytes trfFtBytes = (TrfFtBytes) o; + return Objects.equals(this.type, trfFtBytes.type) + && Objects.equals(this.status, trfFtBytes.status) + && Objects.equals(this.length, trfFtBytes.length) + && Objects.equals(this.data, trfFtBytes.data); + } + + @Override + public int hashCode() { + return Objects.hash(type, status, length, data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TrfFtBytes {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" length: ").append(toIndentedString(length)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Status"); + openapiFields.add("Length"); + openapiFields.add("Data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Type"); + openapiRequiredFields.add("Status"); + openapiRequiredFields.add("Length"); + openapiRequiredFields.add("Data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TrfFtBytes + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TrfFtBytes.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TrfFtBytes is not found in the empty JSON string", + TrfFtBytes.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TrfFtBytes.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TrfFtBytes` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TrfFtBytes.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `Type` + TrfFtBytesType.validateJsonElement(jsonObj.get("Type")); + if (!jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Data` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Data").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TrfFtBytes.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TrfFtBytes' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TrfFtBytes.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TrfFtBytes value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TrfFtBytes read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TrfFtBytes given an JSON string + * + * @param jsonString JSON string + * @return An instance of TrfFtBytes + * @throws IOException if the JSON string is invalid with respect to TrfFtBytes + */ + public static TrfFtBytes fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TrfFtBytes.class); + } + + /** + * Convert an instance of TrfFtBytes to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytesType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytesType.java new file mode 100644 index 00000000..bf454c34 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytesType.java @@ -0,0 +1,261 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TrfFtBytesType extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(TrfFtBytesType.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TrfFtBytesType.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TrfFtBytesType' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterGraphicFieldType = + gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldType.class)); + final TypeAdapter adapterTextFieldType = + gson.getDelegateAdapter(this, TypeToken.get(TextFieldType.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TrfFtBytesType value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `GraphicFieldType` + if (value.getActualInstance() instanceof GraphicFieldType) { + JsonElement element = + adapterGraphicFieldType.toJsonTree( + (GraphicFieldType) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `TextFieldType` + if (value.getActualInstance() instanceof TextFieldType) { + JsonElement element = + adapterTextFieldType.toJsonTree((TextFieldType) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException( + "Failed to serialize as the type doesn't match oneOf schemas: GraphicFieldType, TextFieldType"); + } + + @Override + public TrfFtBytesType read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize GraphicFieldType + try { + // validate the JSON object to see if any exception is thrown + GraphicFieldType.validateJsonElement(jsonElement); + actualAdapter = adapterGraphicFieldType; + match++; + log.log(Level.FINER, "Input data matches schema 'GraphicFieldType'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for GraphicFieldType failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'GraphicFieldType'", e); + } + // deserialize TextFieldType + try { + // validate the JSON object to see if any exception is thrown + TextFieldType.validateJsonElement(jsonElement); + actualAdapter = adapterTextFieldType; + match++; + log.log(Level.FINER, "Input data matches schema 'TextFieldType'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for TextFieldType failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'TextFieldType'", e); + } + + if (match == 1) { + TrfFtBytesType ret = new TrfFtBytesType(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException( + String.format( + "Failed deserialization for TrfFtBytesType: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public TrfFtBytesType() { + super("oneOf", Boolean.FALSE); + } + + public TrfFtBytesType(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("GraphicFieldType", GraphicFieldType.class); + schemas.put("TextFieldType", TextFieldType.class); + } + + @Override + public Map> getSchemas() { + return TrfFtBytesType.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: GraphicFieldType, TextFieldType + * + *

It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof GraphicFieldType) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof TextFieldType) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be GraphicFieldType, TextFieldType"); + } + + /** + * Get the actual instance, which can be the following: GraphicFieldType, TextFieldType + * + * @return The actual instance (GraphicFieldType, TextFieldType) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `GraphicFieldType`. If the actual instance is not + * `GraphicFieldType`, the ClassCastException will be thrown. + * + * @return The actual instance of `GraphicFieldType` + * @throws ClassCastException if the instance is not `GraphicFieldType` + */ + public GraphicFieldType getGraphicFieldType() throws ClassCastException { + return (GraphicFieldType) super.getActualInstance(); + } + + /** + * Get the actual instance of `TextFieldType`. If the actual instance is not `TextFieldType`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `TextFieldType` + * @throws ClassCastException if the instance is not `TextFieldType` + */ + public TextFieldType getTextFieldType() throws ClassCastException { + return (TextFieldType) super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TrfFtBytesType + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with GraphicFieldType + try { + GraphicFieldType.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for GraphicFieldType failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with TextFieldType + try { + TextFieldType.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for TextFieldType failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException( + String.format( + "The JSON string is invalid for TrfFtBytesType with oneOf schemas: GraphicFieldType, TextFieldType. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of TrfFtBytesType given an JSON string + * + * @param jsonString JSON string + * @return An instance of TrfFtBytesType + * @throws IOException if the JSON string is invalid with respect to TrfFtBytesType + */ + public static TrfFtBytesType fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TrfFtBytesType.class); + } + + /** + * Convert an instance of TrfFtBytesType to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java new file mode 100644 index 00000000..2b7da713 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java @@ -0,0 +1,306 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * Structure is used to store information about the numeric field (4 bytes) that is a part of one of + * the informational data groups. + */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TrfFtString { + public static final String SERIALIZED_NAME_TYPE = "Type"; + + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private TrfFtStringType type; + + public static final String SERIALIZED_NAME_STATUS = "Status"; + + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nonnull + private TrfFtStringStatus status; + + public static final String SERIALIZED_NAME_FORMAT = "Format"; + + @SerializedName(SERIALIZED_NAME_FORMAT) + @javax.annotation.Nonnull + private String format; + + public static final String SERIALIZED_NAME_DATA = "Data"; + + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nonnull + private String data; + + public TrfFtString() {} + + public TrfFtString type(@javax.annotation.Nonnull TrfFtStringType type) { + this.type = type; + return this; + } + + /** + * Get type + * + * @return type + */ + @javax.annotation.Nonnull + public TrfFtStringType getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull TrfFtStringType type) { + this.type = type; + } + + public TrfFtString status(@javax.annotation.Nonnull TrfFtStringStatus status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @javax.annotation.Nonnull + public TrfFtStringStatus getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nonnull TrfFtStringStatus status) { + this.status = status; + } + + public TrfFtString format(@javax.annotation.Nonnull String format) { + this.format = format; + return this; + } + + /** + * Mask of format of text information (for example, «YYMMDD» for date of birth) + * + * @return format + */ + @javax.annotation.Nonnull + public String getFormat() { + return format; + } + + public void setFormat(@javax.annotation.Nonnull String format) { + this.format = format; + } + + public TrfFtString data(@javax.annotation.Nonnull String data) { + this.data = data; + return this; + } + + /** + * Numeric value. + * + * @return data + */ + @javax.annotation.Nonnull + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nonnull String data) { + this.data = data; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TrfFtString trfFtString = (TrfFtString) o; + return Objects.equals(this.type, trfFtString.type) + && Objects.equals(this.status, trfFtString.status) + && Objects.equals(this.format, trfFtString.format) + && Objects.equals(this.data, trfFtString.data); + } + + @Override + public int hashCode() { + return Objects.hash(type, status, format, data); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TrfFtString {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" format: ").append(toIndentedString(format)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Status"); + openapiFields.add("Format"); + openapiFields.add("Data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Type"); + openapiRequiredFields.add("Status"); + openapiRequiredFields.add("Format"); + openapiRequiredFields.add("Data"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TrfFtString + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TrfFtString.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TrfFtString is not found in the empty JSON string", + TrfFtString.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TrfFtString.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TrfFtString` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TrfFtString.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `Type` + TrfFtStringType.validateJsonElement(jsonObj.get("Type")); + // validate the required field `Status` + TrfFtStringStatus.validateJsonElement(jsonObj.get("Status")); + if (!jsonObj.get("Format").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Format` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Format").toString())); + } + if (!jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Data` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Data").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TrfFtString.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TrfFtString' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TrfFtString.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TrfFtString value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TrfFtString read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TrfFtString given an JSON string + * + * @param jsonString JSON string + * @return An instance of TrfFtString + * @throws IOException if the JSON string is invalid with respect to TrfFtString + */ + public static TrfFtString fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TrfFtString.class); + } + + /** + * Convert an instance of TrfFtString to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringStatus.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringStatus.java new file mode 100644 index 00000000..bc5d5ba1 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringStatus.java @@ -0,0 +1,267 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TrfFtStringStatus extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(TrfFtStringStatus.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TrfFtStringStatus.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TrfFtStringStatus' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterParsingNotificationCodes = + gson.getDelegateAdapter(this, TypeToken.get(ParsingNotificationCodes.class)); + final TypeAdapter adapterParsingErrorCodes = + gson.getDelegateAdapter(this, TypeToken.get(ParsingErrorCodes.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TrfFtStringStatus value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `ParsingNotificationCodes` + if (value.getActualInstance() instanceof ParsingNotificationCodes) { + JsonElement element = + adapterParsingNotificationCodes.toJsonTree( + (ParsingNotificationCodes) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `ParsingErrorCodes` + if (value.getActualInstance() instanceof ParsingErrorCodes) { + JsonElement element = + adapterParsingErrorCodes.toJsonTree( + (ParsingErrorCodes) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException( + "Failed to serialize as the type doesn't match oneOf schemas: ParsingErrorCodes, ParsingNotificationCodes"); + } + + @Override + public TrfFtStringStatus read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize ParsingNotificationCodes + try { + // validate the JSON object to see if any exception is thrown + ParsingNotificationCodes.validateJsonElement(jsonElement); + actualAdapter = adapterParsingNotificationCodes; + match++; + log.log(Level.FINER, "Input data matches schema 'ParsingNotificationCodes'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for ParsingNotificationCodes failed with `%s`.", + e.getMessage())); + log.log( + Level.FINER, "Input data does not match schema 'ParsingNotificationCodes'", e); + } + // deserialize ParsingErrorCodes + try { + // validate the JSON object to see if any exception is thrown + ParsingErrorCodes.validateJsonElement(jsonElement); + actualAdapter = adapterParsingErrorCodes; + match++; + log.log(Level.FINER, "Input data matches schema 'ParsingErrorCodes'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for ParsingErrorCodes failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'ParsingErrorCodes'", e); + } + + if (match == 1) { + TrfFtStringStatus ret = new TrfFtStringStatus(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException( + String.format( + "Failed deserialization for TrfFtStringStatus: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public TrfFtStringStatus() { + super("oneOf", Boolean.FALSE); + } + + public TrfFtStringStatus(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("ParsingNotificationCodes", ParsingNotificationCodes.class); + schemas.put("ParsingErrorCodes", ParsingErrorCodes.class); + } + + @Override + public Map> getSchemas() { + return TrfFtStringStatus.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: ParsingErrorCodes, ParsingNotificationCodes + * + *

It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof ParsingNotificationCodes) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof ParsingErrorCodes) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException( + "Invalid instance type. Must be ParsingErrorCodes, ParsingNotificationCodes"); + } + + /** + * Get the actual instance, which can be the following: ParsingErrorCodes, + * ParsingNotificationCodes + * + * @return The actual instance (ParsingErrorCodes, ParsingNotificationCodes) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `ParsingNotificationCodes`. If the actual instance is not + * `ParsingNotificationCodes`, the ClassCastException will be thrown. + * + * @return The actual instance of `ParsingNotificationCodes` + * @throws ClassCastException if the instance is not `ParsingNotificationCodes` + */ + public ParsingNotificationCodes getParsingNotificationCodes() throws ClassCastException { + return (ParsingNotificationCodes) super.getActualInstance(); + } + + /** + * Get the actual instance of `ParsingErrorCodes`. If the actual instance is not + * `ParsingErrorCodes`, the ClassCastException will be thrown. + * + * @return The actual instance of `ParsingErrorCodes` + * @throws ClassCastException if the instance is not `ParsingErrorCodes` + */ + public ParsingErrorCodes getParsingErrorCodes() throws ClassCastException { + return (ParsingErrorCodes) super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TrfFtStringStatus + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with ParsingNotificationCodes + try { + ParsingNotificationCodes.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for ParsingNotificationCodes failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with ParsingErrorCodes + try { + ParsingErrorCodes.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for ParsingErrorCodes failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException( + String.format( + "The JSON string is invalid for TrfFtStringStatus with oneOf schemas: ParsingErrorCodes, ParsingNotificationCodes. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of TrfFtStringStatus given an JSON string + * + * @param jsonString JSON string + * @return An instance of TrfFtStringStatus + * @throws IOException if the JSON string is invalid with respect to TrfFtStringStatus + */ + public static TrfFtStringStatus fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TrfFtStringStatus.class); + } + + /** + * Convert an instance of TrfFtStringStatus to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringType.java new file mode 100644 index 00000000..1a85f06e --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringType.java @@ -0,0 +1,261 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TrfFtStringType extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(TrfFtStringType.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TrfFtStringType.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TrfFtStringType' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterGraphicFieldType = + gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldType.class)); + final TypeAdapter adapterTextFieldType = + gson.getDelegateAdapter(this, TypeToken.get(TextFieldType.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TrfFtStringType value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `GraphicFieldType` + if (value.getActualInstance() instanceof GraphicFieldType) { + JsonElement element = + adapterGraphicFieldType.toJsonTree( + (GraphicFieldType) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `TextFieldType` + if (value.getActualInstance() instanceof TextFieldType) { + JsonElement element = + adapterTextFieldType.toJsonTree((TextFieldType) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException( + "Failed to serialize as the type doesn't match oneOf schemas: GraphicFieldType, TextFieldType"); + } + + @Override + public TrfFtStringType read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + int match = 0; + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize GraphicFieldType + try { + // validate the JSON object to see if any exception is thrown + GraphicFieldType.validateJsonElement(jsonElement); + actualAdapter = adapterGraphicFieldType; + match++; + log.log(Level.FINER, "Input data matches schema 'GraphicFieldType'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for GraphicFieldType failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'GraphicFieldType'", e); + } + // deserialize TextFieldType + try { + // validate the JSON object to see if any exception is thrown + TextFieldType.validateJsonElement(jsonElement); + actualAdapter = adapterTextFieldType; + match++; + log.log(Level.FINER, "Input data matches schema 'TextFieldType'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for TextFieldType failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'TextFieldType'", e); + } + + if (match == 1) { + TrfFtStringType ret = new TrfFtStringType(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } + + throw new IOException( + String.format( + "Failed deserialization for TrfFtStringType: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + match, errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in oneOf + public static final Map> schemas = new HashMap>(); + + public TrfFtStringType() { + super("oneOf", Boolean.FALSE); + } + + public TrfFtStringType(Object o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("GraphicFieldType", GraphicFieldType.class); + schemas.put("TextFieldType", TextFieldType.class); + } + + @Override + public Map> getSchemas() { + return TrfFtStringType.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: GraphicFieldType, TextFieldType + * + *

It could be an instance of the 'oneOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof GraphicFieldType) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof TextFieldType) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be GraphicFieldType, TextFieldType"); + } + + /** + * Get the actual instance, which can be the following: GraphicFieldType, TextFieldType + * + * @return The actual instance (GraphicFieldType, TextFieldType) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `GraphicFieldType`. If the actual instance is not + * `GraphicFieldType`, the ClassCastException will be thrown. + * + * @return The actual instance of `GraphicFieldType` + * @throws ClassCastException if the instance is not `GraphicFieldType` + */ + public GraphicFieldType getGraphicFieldType() throws ClassCastException { + return (GraphicFieldType) super.getActualInstance(); + } + + /** + * Get the actual instance of `TextFieldType`. If the actual instance is not `TextFieldType`, the + * ClassCastException will be thrown. + * + * @return The actual instance of `TextFieldType` + * @throws ClassCastException if the instance is not `TextFieldType` + */ + public TextFieldType getTextFieldType() throws ClassCastException { + return (TextFieldType) super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TrfFtStringType + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate oneOf schemas one by one + int validCount = 0; + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with GraphicFieldType + try { + GraphicFieldType.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for GraphicFieldType failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with TextFieldType + try { + TextFieldType.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format("Deserialization for TextFieldType failed with `%s`.", e.getMessage())); + // continue to the next one + } + if (validCount != 1) { + throw new IOException( + String.format( + "The JSON string is invalid for TrfFtStringType with oneOf schemas: GraphicFieldType, TextFieldType. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + validCount, errorMessages, jsonElement.toString())); + } + } + + /** + * Create an instance of TrfFtStringType given an JSON string + * + * @param jsonString JSON string + * @return An instance of TrfFtStringType + * @throws IOException if the JSON string is invalid with respect to TrfFtStringType + */ + public static TrfFtStringType fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TrfFtStringType.class); + } + + /** + * Convert an instance of TrfFtStringType to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java old mode 100755 new mode 100644 index e97ec171..1a7fa949 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,20 +12,72 @@ package com.regula.documentreader.webclient.model; -public class VerificationResult { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Gets or Sets VerificationResult */ +@JsonAdapter(VerificationResult.Adapter.class) +public enum VerificationResult { /** Comparison result unknown */ - public static final int DISABLED = 0; + DISABLED(0), /** Verification passed */ - public static final int VERIFIED = 1; + VERIFIED(1), /** Verification failed */ - public static final int NOT_VERIFIED = 2; + NOT_VERIFIED(2), /** Positive comparison result */ - public static final int COMPARE_MATCH = 3; + COMPARE_MATCH(3), /** Negative comparison result */ - public static final int COMPARE_NOT_MATCH = 4; + COMPARE_NOT_MATCH(4); + + private Integer value; + + VerificationResult(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static VerificationResult fromValue(Integer value) { + for (VerificationResult b : VerificationResult.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final VerificationResult enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public VerificationResult read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return VerificationResult.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + VerificationResult.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java b/client/src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java old mode 100755 new mode 100644 index 45ae952b..cc7f9393 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,49 +12,80 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** VerifiedFieldMap */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") public class VerifiedFieldMap { public static final String SERIALIZED_NAME_W_FIELD_TYPE = "wFieldType"; @SerializedName(SERIALIZED_NAME_W_FIELD_TYPE) - private Integer wFieldType; + @javax.annotation.Nonnull + private TextFieldType wFieldType; public static final String SERIALIZED_NAME_W_L_C_I_D = "wLCID"; @SerializedName(SERIALIZED_NAME_W_L_C_I_D) - private Integer wLCID; + @javax.annotation.Nonnull + private LCID wLCID; public static final String SERIALIZED_NAME_FIELD_M_R_Z = "Field_MRZ"; @SerializedName(SERIALIZED_NAME_FIELD_M_R_Z) + @javax.annotation.Nullable private String fieldMRZ; public static final String SERIALIZED_NAME_FIELD_VISUAL = "Field_Visual"; @SerializedName(SERIALIZED_NAME_FIELD_VISUAL) + @javax.annotation.Nullable private String fieldVisual; public static final String SERIALIZED_NAME_FIELD_BARCODE = "Field_Barcode"; @SerializedName(SERIALIZED_NAME_FIELD_BARCODE) + @javax.annotation.Nullable private String fieldBarcode; public static final String SERIALIZED_NAME_FIELD_R_F_I_D = "Field_RFID"; @SerializedName(SERIALIZED_NAME_FIELD_R_F_I_D) + @javax.annotation.Nullable private String fieldRFID; public static final String SERIALIZED_NAME_MATRIX = "Matrix"; @SerializedName(SERIALIZED_NAME_MATRIX) - private List matrix = null; + @javax.annotation.Nonnull + private List matrix; + + public static final String SERIALIZED_NAME_FIELD_TYPE = "FieldType"; + + @SerializedName(SERIALIZED_NAME_FIELD_TYPE) + @javax.annotation.Nullable + private Integer fieldType; - public VerifiedFieldMap withWFieldType(Integer wFieldType) { + public VerifiedFieldMap() {} + + public VerifiedFieldMap wFieldType(@javax.annotation.Nonnull TextFieldType wFieldType) { this.wFieldType = wFieldType; return this; } @@ -64,16 +95,16 @@ public VerifiedFieldMap withWFieldType(Integer wFieldType) { * * @return wFieldType */ - @javax.annotation.Nullable - public Integer getwFieldType() { + @javax.annotation.Nonnull + public TextFieldType getwFieldType() { return wFieldType; } - public void setwFieldType(Integer wFieldType) { + public void setwFieldType(@javax.annotation.Nonnull TextFieldType wFieldType) { this.wFieldType = wFieldType; } - public VerifiedFieldMap withWLCID(Integer wLCID) { + public VerifiedFieldMap wLCID(@javax.annotation.Nonnull LCID wLCID) { this.wLCID = wLCID; return this; } @@ -83,16 +114,16 @@ public VerifiedFieldMap withWLCID(Integer wLCID) { * * @return wLCID */ - @javax.annotation.Nullable - public Integer getwLCID() { + @javax.annotation.Nonnull + public LCID getwLCID() { return wLCID; } - public void setwLCID(Integer wLCID) { + public void setwLCID(@javax.annotation.Nonnull LCID wLCID) { this.wLCID = wLCID; } - public VerifiedFieldMap withFieldMRZ(String fieldMRZ) { + public VerifiedFieldMap fieldMRZ(@javax.annotation.Nullable String fieldMRZ) { this.fieldMRZ = fieldMRZ; return this; } @@ -107,11 +138,11 @@ public String getFieldMRZ() { return fieldMRZ; } - public void setFieldMRZ(String fieldMRZ) { + public void setFieldMRZ(@javax.annotation.Nullable String fieldMRZ) { this.fieldMRZ = fieldMRZ; } - public VerifiedFieldMap withFieldVisual(String fieldVisual) { + public VerifiedFieldMap fieldVisual(@javax.annotation.Nullable String fieldVisual) { this.fieldVisual = fieldVisual; return this; } @@ -126,11 +157,11 @@ public String getFieldVisual() { return fieldVisual; } - public void setFieldVisual(String fieldVisual) { + public void setFieldVisual(@javax.annotation.Nullable String fieldVisual) { this.fieldVisual = fieldVisual; } - public VerifiedFieldMap withFieldBarcode(String fieldBarcode) { + public VerifiedFieldMap fieldBarcode(@javax.annotation.Nullable String fieldBarcode) { this.fieldBarcode = fieldBarcode; return this; } @@ -145,11 +176,11 @@ public String getFieldBarcode() { return fieldBarcode; } - public void setFieldBarcode(String fieldBarcode) { + public void setFieldBarcode(@javax.annotation.Nullable String fieldBarcode) { this.fieldBarcode = fieldBarcode; } - public VerifiedFieldMap withFieldRFID(String fieldRFID) { + public VerifiedFieldMap fieldRFID(@javax.annotation.Nullable String fieldRFID) { this.fieldRFID = fieldRFID; return this; } @@ -164,18 +195,18 @@ public String getFieldRFID() { return fieldRFID; } - public void setFieldRFID(String fieldRFID) { + public void setFieldRFID(@javax.annotation.Nullable String fieldRFID) { this.fieldRFID = fieldRFID; } - public VerifiedFieldMap withMatrix(List matrix) { + public VerifiedFieldMap matrix(@javax.annotation.Nonnull List matrix) { this.matrix = matrix; return this; } - public VerifiedFieldMap addMatrixItem(Integer matrixItem) { + public VerifiedFieldMap addMatrixItem(VerificationResult matrixItem) { if (this.matrix == null) { - this.matrix = new ArrayList(); + this.matrix = new ArrayList<>(); } this.matrix.add(matrixItem); return this; @@ -197,17 +228,36 @@ public VerifiedFieldMap addMatrixItem(Integer matrixItem) { * * @return matrix */ - @javax.annotation.Nullable - public List getMatrix() { + @javax.annotation.Nonnull + public List getMatrix() { return matrix; } - public void setMatrix(List matrix) { + public void setMatrix(@javax.annotation.Nonnull List matrix) { this.matrix = matrix; } + public VerifiedFieldMap fieldType(@javax.annotation.Nullable Integer fieldType) { + this.fieldType = fieldType; + return this; + } + + /** + * Get fieldType + * + * @return fieldType + */ + @javax.annotation.Nullable + public Integer getFieldType() { + return fieldType; + } + + public void setFieldType(@javax.annotation.Nullable Integer fieldType) { + this.fieldType = fieldType; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -221,12 +271,14 @@ public boolean equals(java.lang.Object o) { && Objects.equals(this.fieldVisual, verifiedFieldMap.fieldVisual) && Objects.equals(this.fieldBarcode, verifiedFieldMap.fieldBarcode) && Objects.equals(this.fieldRFID, verifiedFieldMap.fieldRFID) - && Objects.equals(this.matrix, verifiedFieldMap.matrix); + && Objects.equals(this.matrix, verifiedFieldMap.matrix) + && Objects.equals(this.fieldType, verifiedFieldMap.fieldType); } @Override public int hashCode() { - return Objects.hash(wFieldType, wLCID, fieldMRZ, fieldVisual, fieldBarcode, fieldRFID, matrix); + return Objects.hash( + wFieldType, wLCID, fieldMRZ, fieldVisual, fieldBarcode, fieldRFID, matrix, fieldType); } @Override @@ -240,6 +292,7 @@ public String toString() { sb.append(" fieldBarcode: ").append(toIndentedString(fieldBarcode)).append("\n"); sb.append(" fieldRFID: ").append(toIndentedString(fieldRFID)).append("\n"); sb.append(" matrix: ").append(toIndentedString(matrix)).append("\n"); + sb.append(" fieldType: ").append(toIndentedString(fieldType)).append("\n"); sb.append("}"); return sb.toString(); } @@ -247,10 +300,163 @@ public String toString() { /** * Convert the given object to string with each line indented by 4 spaces (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } return o.toString().replace("\n", "\n "); } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("wFieldType"); + openapiFields.add("wLCID"); + openapiFields.add("Field_MRZ"); + openapiFields.add("Field_Visual"); + openapiFields.add("Field_Barcode"); + openapiFields.add("Field_RFID"); + openapiFields.add("Matrix"); + openapiFields.add("FieldType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("wFieldType"); + openapiRequiredFields.add("wLCID"); + openapiRequiredFields.add("Matrix"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to VerifiedFieldMap + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!VerifiedFieldMap.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in VerifiedFieldMap is not found in the empty JSON string", + VerifiedFieldMap.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!VerifiedFieldMap.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `VerifiedFieldMap` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : VerifiedFieldMap.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `wFieldType` + TextFieldType.validateJsonElement(jsonObj.get("wFieldType")); + // validate the required field `wLCID` + LCID.validateJsonElement(jsonObj.get("wLCID")); + if ((jsonObj.get("Field_MRZ") != null && !jsonObj.get("Field_MRZ").isJsonNull()) + && !jsonObj.get("Field_MRZ").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Field_MRZ` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Field_MRZ").toString())); + } + if ((jsonObj.get("Field_Visual") != null && !jsonObj.get("Field_Visual").isJsonNull()) + && !jsonObj.get("Field_Visual").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Field_Visual` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Field_Visual").toString())); + } + if ((jsonObj.get("Field_Barcode") != null && !jsonObj.get("Field_Barcode").isJsonNull()) + && !jsonObj.get("Field_Barcode").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Field_Barcode` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Field_Barcode").toString())); + } + if ((jsonObj.get("Field_RFID") != null && !jsonObj.get("Field_RFID").isJsonNull()) + && !jsonObj.get("Field_RFID").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Field_RFID` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Field_RFID").toString())); + } + // ensure the required json array is present + if (jsonObj.get("Matrix") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("Matrix").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Matrix` to be an array in the JSON string but got `%s`", + jsonObj.get("Matrix").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!VerifiedFieldMap.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'VerifiedFieldMap' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(VerifiedFieldMap.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, VerifiedFieldMap value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public VerifiedFieldMap read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of VerifiedFieldMap given an JSON string + * + * @param jsonString JSON string + * @return An instance of VerifiedFieldMap + * @throws IOException if the JSON string is invalid with respect to VerifiedFieldMap + */ + public static VerifiedFieldMap fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, VerifiedFieldMap.class); + } + + /** + * Convert an instance of VerifiedFieldMap to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Visibility.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Visibility.java index 740dc4cd..4f1fc55a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Visibility.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Visibility.java @@ -1,8 +1,8 @@ /* * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.2.0 + * The version of the OpenAPI document: 7.4.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -12,20 +12,72 @@ package com.regula.documentreader.webclient.model; -public class Visibility { +import com.google.gson.JsonElement; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +/** Enumeration contains visibility status of the security element */ +@JsonAdapter(Visibility.Adapter.class) +public enum Visibility { /** Invisible */ - public static final int INVISIBLE = 0; + INVISIBLE(0), /** Visible */ - public static final int VISIBLE = 1; + VISIBLE(1), /** Colored */ - public static final int COLORED = 2; + COLORED(2), /** Grayscale */ - public static final int GRAYSCALE = 4; + GRAYSCALE(4), /** Visible vs IR match */ - public static final int WHITE_IR_MATCHING = 8; + WHITE_IR_MATCHING(8); + + private Integer value; + + Visibility(Integer value) { + this.value = value; + } + + public Integer getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static Visibility fromValue(Integer value) { + for (Visibility b : Visibility.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final Visibility enumeration) + throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public Visibility read(final JsonReader jsonReader) throws IOException { + Integer value = jsonReader.nextInt(); + return Visibility.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + Integer value = jsonElement.getAsInt(); + Visibility.fromValue(value); + } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/VisualOcrExtendedResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/VisualOcrExtendedResult.java deleted file mode 100755 index c44e8d8b..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/VisualOcrExtendedResult.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import java.util.Objects; - -/** Text fields from document OCR with symbol probabilities */ -public class VisualOcrExtendedResult extends ResultItem { - public static final String SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO = "DocVisualExtendedInfo"; - - @SerializedName(SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO) - private DocVisualExtendedInfo docVisualExtendedInfo; - - public VisualOcrExtendedResult withDocVisualExtendedInfo( - DocVisualExtendedInfo docVisualExtendedInfo) { - this.docVisualExtendedInfo = docVisualExtendedInfo; - return this; - } - - /** - * Get docVisualExtendedInfo - * - * @return docVisualExtendedInfo - */ - @javax.annotation.Nullable - public DocVisualExtendedInfo getDocVisualExtendedInfo() { - return docVisualExtendedInfo; - } - - public void setDocVisualExtendedInfo(DocVisualExtendedInfo docVisualExtendedInfo) { - this.docVisualExtendedInfo = docVisualExtendedInfo; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - VisualOcrExtendedResult visualOcrExtendedResult = (VisualOcrExtendedResult) o; - return Objects.equals(this.docVisualExtendedInfo, visualOcrExtendedResult.docVisualExtendedInfo) - && super.equals(o); - } - - @Override - public int hashCode() { - return Objects.hash(docVisualExtendedInfo, super.hashCode()); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class VisualOcrExtendedResult {\n"); - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - sb.append(" docVisualExtendedInfo: ") - .append(toIndentedString(docVisualExtendedInfo)) - .append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java index 20c8d512..5bba0be0 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java +++ b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java @@ -8,7 +8,7 @@ import com.regula.documentreader.webclient.ApiException; import com.regula.documentreader.webclient.Configuration; import com.regula.documentreader.webclient.Pair; -import com.regula.documentreader.webclient.model.DeviceInfo; +import com.regula.documentreader.webclient.model.Healthcheck; import com.regula.documentreader.webclient.model.ProcessParams; import com.regula.documentreader.webclient.model.ProcessRequest; import com.regula.documentreader.webclient.model.ProcessResponse; @@ -20,7 +20,7 @@ public class DocumentReaderApi { - private final DefaultApi defaultApi; + private final HealthcheckApi defaultApi; private final ProcessApi processApi; private String license; @@ -30,7 +30,7 @@ public DocumentReaderApi() { } public DocumentReaderApi(ApiClient apiClient) { - this.defaultApi = new DefaultApi(apiClient); + this.defaultApi = new HealthcheckApi(apiClient); this.processApi = new ProcessApi(apiClient); } @@ -61,12 +61,12 @@ private static ApiClient getApiClient(String basePath, boolean debugging, boolea * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body */ - public DeviceInfo ping() throws ApiException { - return defaultApi.ping(""); + public Healthcheck ping() throws ApiException { + return defaultApi.healthz(""); } - public DeviceInfo ping(String xRequestID) throws ApiException { - return defaultApi.ping(xRequestID); + public Healthcheck ping(String xRequestID) throws ApiException { + return defaultApi.healthz(xRequestID); } /** @@ -78,13 +78,13 @@ public DeviceInfo ping(String xRequestID) throws ApiException { * response body */ public RecognitionResponse process(ProcessRequest processRequest) { - processRequest.getSystemInfo().withLicense(this.license); + processRequest.getSystemInfo().setLicense(this.license); ProcessResponse response = processApi.apiProcess(processRequest, ""); return new RecognitionResponse(response); } public RecognitionResponse process(ProcessRequest processRequest, String xRequestID) { - processRequest.getSystemInfo().withLicense(this.license); + processRequest.getSystemInfo().setLicense(this.license); ProcessResponse response = processApi.apiProcess(processRequest, xRequestID); return new RecognitionResponse(response); } @@ -109,7 +109,8 @@ private okhttp3.Call newProcessCall(byte[] processRequest) { return processApi .getApiClient() .buildCall( - "/api/process", + "/api", + "/process", "POST", new ArrayList(), new ArrayList(), diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ContainerList.java b/client/src/main/java/com/regula/documentreader/webclient/model/ContainerList.java deleted file mode 100755 index a4c31b23..00000000 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ContainerList.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import io.swagger.annotations.ApiModelProperty; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** list with result objects */ -public class ContainerList { - public static final String SERIALIZED_NAME_LIST = "List"; - - @SerializedName(SERIALIZED_NAME_LIST) - private List list = null; - - public ContainerList list(List list) { - - this.list = list; - return this; - } - - public ContainerList addListItem(ResultItem listItem) { - if (this.list == null) { - this.list = new ArrayList<>(); - } - this.list.add(listItem); - return this; - } - - /** - * Get list - * - * @return list - */ - @javax.annotation.Nullable - @ApiModelProperty(value = "") - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - ContainerList containerList = (ContainerList) o; - return Objects.equals(this.list, containerList.list); - } - - @Override - public int hashCode() { - return Objects.hash(list); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class ContainerList {\n"); - sb.append(" list: ").append(toIndentedString(list)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java b/client/src/main/java/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java deleted file mode 100755 index 3c6bd962..00000000 --- a/client/src/main/java/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Regula Document Reader Web API - * Regula Document Reader Web API - * - * The version of the OpenAPI document: 5.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.annotations.SerializedName; -import io.swagger.annotations.ApiModelProperty; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** Container for extracted text fields. Fields are identified by type and language */ -public class DocVisualExtendedInfo { - public static final String SERIALIZED_NAME_P_ARRAY_FIELDS = "pArrayFields"; - - @SerializedName(SERIALIZED_NAME_P_ARRAY_FIELDS) - private List pArrayFields = null; - - public DocVisualExtendedInfo pArrayFields(List pArrayFields) { - - this.pArrayFields = pArrayFields; - return this; - } - - public DocVisualExtendedInfo addPArrayFieldsItem(ExtendedTextField pArrayFieldsItem) { - if (this.pArrayFields == null) { - this.pArrayFields = new ArrayList(); - } - this.pArrayFields.add(pArrayFieldsItem); - return this; - } - - /** - * Get pArrayFields - * - * @return pArrayFields - */ - @javax.annotation.Nullable - @ApiModelProperty(value = "") - public List getpArrayFields() { - return pArrayFields; - } - - public void setpArrayFields(List pArrayFields) { - this.pArrayFields = pArrayFields; - } - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - DocVisualExtendedInfo docVisualExtendedInfo = (DocVisualExtendedInfo) o; - return Objects.equals(this.pArrayFields, docVisualExtendedInfo.pArrayFields); - } - - @Override - public int hashCode() { - return Objects.hash(pArrayFields); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class DocVisualExtendedInfo {\n"); - sb.append(" pArrayFields: ").append(toIndentedString(pArrayFields)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } -} diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/changed/AuthenticityCheckResult.java b/client/src/main/java/com/regula/documentreader/webclient/model/changed/AuthenticityCheckResult.java new file mode 100644 index 00000000..7ef65815 --- /dev/null +++ b/client/src/main/java/com/regula/documentreader/webclient/model/changed/AuthenticityCheckResult.java @@ -0,0 +1,307 @@ +package com.regula.documentreader.webclient.model.changed; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import com.regula.documentreader.webclient.model.AuthenticityCheckResultItem; +import com.regula.documentreader.webclient.model.AuthenticityResultType; +import com.regula.documentreader.webclient.model.CheckResult; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** AuthenticityCheckResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class AuthenticityCheckResult { + public static final String SERIALIZED_NAME_TYPE = "Type"; + + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private AuthenticityResultType type; + + public static final String SERIALIZED_NAME_RESULT = "Result"; + + @SerializedName(SERIALIZED_NAME_RESULT) + @javax.annotation.Nonnull + private CheckResult result; + + public static final String SERIALIZED_NAME_COUNT = "Count"; + + @SerializedName(SERIALIZED_NAME_COUNT) + @javax.annotation.Nullable + private Integer count; + + public static final String SERIALIZED_NAME_LIST = "List"; + + @SerializedName(SERIALIZED_NAME_LIST) + @javax.annotation.Nonnull + private List list; + + public AuthenticityCheckResult() {} + + public AuthenticityCheckResult type(@javax.annotation.Nonnull AuthenticityResultType type) { + this.type = type; + return this; + } + + /** + * Get type + * + * @return type + */ + @javax.annotation.Nonnull + public AuthenticityResultType getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull AuthenticityResultType type) { + this.type = type; + } + + public AuthenticityCheckResult result(@javax.annotation.Nonnull CheckResult result) { + this.result = result; + return this; + } + + /** + * Get result + * + * @return result + */ + @javax.annotation.Nonnull + public CheckResult getResult() { + return result; + } + + public void setResult(@javax.annotation.Nonnull CheckResult result) { + this.result = result; + } + + public AuthenticityCheckResult count(@javax.annotation.Nullable Integer count) { + this.count = count; + return this; + } + + /** + * Count of items in List + * + * @return count + */ + @javax.annotation.Nullable + public Integer getCount() { + return count; + } + + public void setCount(@javax.annotation.Nullable Integer count) { + this.count = count; + } + + public AuthenticityCheckResult list( + @javax.annotation.Nonnull List list) { + this.list = list; + return this; + } + + public AuthenticityCheckResult addListItem(AuthenticityCheckResultItem listItem) { + if (this.list == null) { + this.list = new ArrayList<>(); + } + this.list.add(listItem); + return this; + } + + /** + * Get list + * + * @return list + */ + @javax.annotation.Nonnull + public List getList() { + return list; + } + + public void setList(@javax.annotation.Nonnull List list) { + this.list = list; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AuthenticityCheckResult authenticityCheckResult = (AuthenticityCheckResult) o; + return Objects.equals(this.type, authenticityCheckResult.type) + && Objects.equals(this.result, authenticityCheckResult.result) + && Objects.equals(this.count, authenticityCheckResult.count) + && Objects.equals(this.list, authenticityCheckResult.list); + } + + @Override + public int hashCode() { + return Objects.hash(type, result, count, list); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AuthenticityCheckResult {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" result: ").append(toIndentedString(result)).append("\n"); + sb.append(" count: ").append(toIndentedString(count)).append("\n"); + sb.append(" list: ").append(toIndentedString(list)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Type"); + openapiFields.add("Result"); + openapiFields.add("Count"); + openapiFields.add("List"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Type"); + openapiRequiredFields.add("Result"); + openapiRequiredFields.add("List"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticityCheckResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticityCheckResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in AuthenticityCheckResult is not found in the empty JSON string", + AuthenticityCheckResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthenticityCheckResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `AuthenticityCheckResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AuthenticityCheckResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `Type` + AuthenticityResultType.validateJsonElement(jsonObj.get("Type")); + // validate the required field `Result` + CheckResult.validateJsonElement(jsonObj.get("Result")); + // ensure the json data is an array + if (!jsonObj.get("List").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `List` to be an array in the JSON string but got `%s`", + jsonObj.get("List").toString())); + } + + JsonArray jsonArraylist = jsonObj.getAsJsonArray("List"); + // validate the required field `List` (array) + for (int i = 0; i < jsonArraylist.size(); i++) { + AuthenticityCheckResultItem.validateJsonElement(jsonArraylist.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticityCheckResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticityCheckResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(AuthenticityCheckResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticityCheckResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthenticityCheckResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of AuthenticityCheckResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticityCheckResult + * @throws IOException if the JSON string is invalid with respect to AuthenticityCheckResult + */ + public static AuthenticityCheckResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticityCheckResult.class); + } + + /** + * Convert an instance of AuthenticityCheckResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/changed/ContainerList.java b/client/src/main/java/com/regula/documentreader/webclient/model/changed/ContainerList.java new file mode 100644 index 00000000..29ebfd88 --- /dev/null +++ b/client/src/main/java/com/regula/documentreader/webclient/model/changed/ContainerList.java @@ -0,0 +1,243 @@ +package com.regula.documentreader.webclient.model.changed; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import com.regula.documentreader.webclient.model.ResultItem; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** List with various objects, containing processing results */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class ContainerList { + public static final String SERIALIZED_NAME_COUNT = "Count"; + + @SerializedName(SERIALIZED_NAME_COUNT) + @javax.annotation.Nonnull + private Integer count; + + public static final String SERIALIZED_NAME_LIST = "List"; + + @SerializedName(SERIALIZED_NAME_LIST) + @javax.annotation.Nonnull + private List list; + + public ContainerList() {} + + public ContainerList count(@javax.annotation.Nonnull Integer count) { + this.count = count; + return this; + } + + /** + * Length of list (Count for items) + * + * @return count + */ + @javax.annotation.Nonnull + public Integer getCount() { + return count; + } + + public void setCount(@javax.annotation.Nonnull Integer count) { + this.count = count; + } + + public ContainerList _list(@javax.annotation.Nonnull List list) { + this.list = list; + return this; + } + + public ContainerList addListItem(ResultItem listItem) { + if (this.list == null) { + this.list = new ArrayList<>(); + } + this.list.add(listItem); + return this; + } + + /** + * Get _list + * + * @return _list + */ + @javax.annotation.Nonnull + public List getList() { + return list; + } + + public void setList(@javax.annotation.Nonnull List list) { + this.list = list; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ContainerList containerList = (ContainerList) o; + return Objects.equals(this.count, containerList.count) + && Objects.equals(this.list, containerList.list); + } + + @Override + public int hashCode() { + return Objects.hash(count, list); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ContainerList {\n"); + sb.append(" count: ").append(toIndentedString(count)).append("\n"); + sb.append(" _list: ").append(toIndentedString(list)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Count"); + openapiFields.add("List"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Count"); + openapiRequiredFields.add("List"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ContainerList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ContainerList.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ContainerList is not found in the empty JSON string", + ContainerList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ContainerList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ContainerList` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ContainerList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("List").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `List` to be an array in the JSON string but got `%s`", + jsonObj.get("List").toString())); + } + + JsonArray jsonArray_list = jsonObj.getAsJsonArray("List"); + // validate the required field `List` (array) + for (int i = 0; i < jsonArray_list.size(); i++) { + ResultItem.validateJsonElement(jsonArray_list.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ContainerList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ContainerList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ContainerList.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ContainerList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ContainerList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ContainerList given an JSON string + * + * @param jsonString JSON string + * @return An instance of ContainerList + * @throws IOException if the JSON string is invalid with respect to ContainerList + */ + public static ContainerList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ContainerList.class); + } + + /** + * Convert an instance of ContainerList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/changed/DocVisualExtendedInfo.java b/client/src/main/java/com/regula/documentreader/webclient/model/changed/DocVisualExtendedInfo.java new file mode 100644 index 00000000..57b43ed8 --- /dev/null +++ b/client/src/main/java/com/regula/documentreader/webclient/model/changed/DocVisualExtendedInfo.java @@ -0,0 +1,245 @@ +package com.regula.documentreader.webclient.model.changed; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import com.regula.documentreader.webclient.model.DocVisualExtendedField; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** Container for extracted text fields. Fields are identified by type and language */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class DocVisualExtendedInfo { + public static final String SERIALIZED_NAME_N_FIELDS = "nFields"; + + @SerializedName(SERIALIZED_NAME_N_FIELDS) + @javax.annotation.Nonnull + private BigDecimal nFields; + + public static final String SERIALIZED_NAME_P_ARRAY_FIELDS = "pArrayFields"; + + @SerializedName(SERIALIZED_NAME_P_ARRAY_FIELDS) + @javax.annotation.Nonnull + private List pArrayFields; + + public DocVisualExtendedInfo() {} + + public DocVisualExtendedInfo nFields(@javax.annotation.Nonnull BigDecimal nFields) { + this.nFields = nFields; + return this; + } + + /** + * Number of pArrayFields array elements + * + * @return nFields + */ + @javax.annotation.Nonnull + public BigDecimal getnFields() { + return nFields; + } + + public void setnFields(@javax.annotation.Nonnull BigDecimal nFields) { + this.nFields = nFields; + } + + public DocVisualExtendedInfo pArrayFields( + @javax.annotation.Nonnull List pArrayFields) { + this.pArrayFields = pArrayFields; + return this; + } + + public DocVisualExtendedInfo addPArrayFieldsItem(DocVisualExtendedField pArrayFieldsItem) { + if (this.pArrayFields == null) { + this.pArrayFields = new ArrayList<>(); + } + this.pArrayFields.add(pArrayFieldsItem); + return this; + } + + /** + * Get pArrayFields + * + * @return pArrayFields + */ + @javax.annotation.Nonnull + public List getpArrayFields() { + return pArrayFields; + } + + public void setpArrayFields(@javax.annotation.Nonnull List pArrayFields) { + this.pArrayFields = pArrayFields; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocVisualExtendedInfo docVisualExtendedInfo = (DocVisualExtendedInfo) o; + return Objects.equals(this.nFields, docVisualExtendedInfo.nFields) + && Objects.equals(this.pArrayFields, docVisualExtendedInfo.pArrayFields); + } + + @Override + public int hashCode() { + return Objects.hash(nFields, pArrayFields); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DocVisualExtendedInfo {\n"); + sb.append(" nFields: ").append(toIndentedString(nFields)).append("\n"); + sb.append(" pArrayFields: ").append(toIndentedString(pArrayFields)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("nFields"); + openapiFields.add("pArrayFields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("nFields"); + openapiRequiredFields.add("pArrayFields"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocVisualExtendedInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocVisualExtendedInfo.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocVisualExtendedInfo is not found in the empty JSON string", + DocVisualExtendedInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocVisualExtendedInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocVisualExtendedInfo` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocVisualExtendedInfo.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("pArrayFields").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `pArrayFields` to be an array in the JSON string but got `%s`", + jsonObj.get("pArrayFields").toString())); + } + + JsonArray jsonArraypArrayFields = jsonObj.getAsJsonArray("pArrayFields"); + // validate the required field `pArrayFields` (array) + for (int i = 0; i < jsonArraypArrayFields.size(); i++) { + DocVisualExtendedField.validateJsonElement(jsonArraypArrayFields.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocVisualExtendedInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocVisualExtendedInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedInfo.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocVisualExtendedInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocVisualExtendedInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocVisualExtendedInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocVisualExtendedInfo + * @throws IOException if the JSON string is invalid with respect to DocVisualExtendedInfo + */ + public static DocVisualExtendedInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocVisualExtendedInfo.class); + } + + /** + * Convert an instance of DocVisualExtendedInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/changed/GraphicFieldsList.java b/client/src/main/java/com/regula/documentreader/webclient/model/changed/GraphicFieldsList.java new file mode 100644 index 00000000..1b169e3e --- /dev/null +++ b/client/src/main/java/com/regula/documentreader/webclient/model/changed/GraphicFieldsList.java @@ -0,0 +1,244 @@ +package com.regula.documentreader.webclient.model.changed; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import com.regula.documentreader.webclient.model.GraphicField; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** GraphicFieldsList */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class GraphicFieldsList { + public static final String SERIALIZED_NAME_P_ARRAY_FIELDS = "pArrayFields"; + + @SerializedName(SERIALIZED_NAME_P_ARRAY_FIELDS) + @javax.annotation.Nonnull + private List pArrayFields; + + public static final String SERIALIZED_NAME_N_FIELDS = "nFields"; + + @SerializedName(SERIALIZED_NAME_N_FIELDS) + @javax.annotation.Nonnull + private BigDecimal nFields; + + public GraphicFieldsList() {} + + public GraphicFieldsList pArrayFields(@javax.annotation.Nonnull List pArrayFields) { + this.pArrayFields = pArrayFields; + return this; + } + + public GraphicFieldsList addPArrayFieldsItem(GraphicField pArrayFieldsItem) { + if (this.pArrayFields == null) { + this.pArrayFields = new ArrayList<>(); + } + this.pArrayFields.add(pArrayFieldsItem); + return this; + } + + /** + * Get pArrayFields + * + * @return pArrayFields + */ + @javax.annotation.Nonnull + public List getpArrayFields() { + return pArrayFields; + } + + public void setpArrayFields(@javax.annotation.Nonnull List pArrayFields) { + this.pArrayFields = pArrayFields; + } + + public GraphicFieldsList nFields(@javax.annotation.Nonnull BigDecimal nFields) { + this.nFields = nFields; + return this; + } + + /** + * Number of pArrayFields array elements + * + * @return nFields + */ + @javax.annotation.Nonnull + public BigDecimal getnFields() { + return nFields; + } + + public void setnFields(@javax.annotation.Nonnull BigDecimal nFields) { + this.nFields = nFields; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GraphicFieldsList graphicFieldsList = (GraphicFieldsList) o; + return Objects.equals(this.pArrayFields, graphicFieldsList.pArrayFields) + && Objects.equals(this.nFields, graphicFieldsList.nFields); + } + + @Override + public int hashCode() { + return Objects.hash(pArrayFields, nFields); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GraphicFieldsList {\n"); + sb.append(" pArrayFields: ").append(toIndentedString(pArrayFields)).append("\n"); + sb.append(" nFields: ").append(toIndentedString(nFields)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("pArrayFields"); + openapiFields.add("nFields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("pArrayFields"); + openapiRequiredFields.add("nFields"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GraphicFieldsList + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GraphicFieldsList.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in GraphicFieldsList is not found in the empty JSON string", + GraphicFieldsList.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GraphicFieldsList.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `GraphicFieldsList` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : GraphicFieldsList.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("pArrayFields").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `pArrayFields` to be an array in the JSON string but got `%s`", + jsonObj.get("pArrayFields").toString())); + } + + JsonArray jsonArraypArrayFields = jsonObj.getAsJsonArray("pArrayFields"); + // validate the required field `pArrayFields` (array) + for (int i = 0; i < jsonArraypArrayFields.size(); i++) { + GraphicField.validateJsonElement(jsonArraypArrayFields.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GraphicFieldsList.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GraphicFieldsList' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldsList.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, GraphicFieldsList value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GraphicFieldsList read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of GraphicFieldsList given an JSON string + * + * @param jsonString JSON string + * @return An instance of GraphicFieldsList + * @throws IOException if the JSON string is invalid with respect to GraphicFieldsList + */ + public static GraphicFieldsList fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GraphicFieldsList.class); + } + + /** + * Convert an instance of GraphicFieldsList to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ContainerListRequest.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ContainerListRequest.java deleted file mode 100644 index caa590f1..00000000 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ContainerListRequest.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.regula.documentreader.webclient.model.ext; - -import com.regula.documentreader.webclient.model.ContainerList; -import com.regula.documentreader.webclient.model.ResultItem; -import java.util.List; -import javax.annotation.Nullable; - -public class ContainerListRequest extends ContainerList { - - @Override - public ContainerList list(List list) { - return super.list(list); - } - - @Override - public ContainerList addListItem(ResultItem listItem) { - return super.addListItem(listItem); - } - - @Nullable - @Override - public List getList() { - return super.getList(); - } - - @Override - public void setList(List list) { - super.setList(list); - } - - public ContainerListRequest(List list) { - super(); - setList(list); - } -} diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/EncryptedRCLRequest.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/EncryptedRCLRequest.java index 7afbf346..64027667 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/EncryptedRCLRequest.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/EncryptedRCLRequest.java @@ -12,21 +12,11 @@ public EncryptedRCLRequest(byte[] encryptedRCL, int light, int list_idx, int pag setListIdx(list_idx); setPageIdx(page_idx); setBufLength(encryptedRCL.length); - setResultType(Result.ENCRYPTED_RCL); + setResultType(Result.ENCRYPTED_RCL.getValue()); } - @Override public EncryptedRCLResult withEncryptedRCL(byte[] encryptedRCL) { - return super.withEncryptedRCL(encryptedRCL); - } - - @Override - public byte[] getEncryptedRCL() { - return super.getEncryptedRCL(); - } - - @Override - public void setEncryptedRCL(byte[] encryptedRCL) { - super.setEncryptedRCL(encryptedRCL); + this.setEncryptedRCL(encryptedRCL); + return this; } } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/Images.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/Images.java index 4bccfc70..8eddd130 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/Images.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/Images.java @@ -1,5 +1,6 @@ package com.regula.documentreader.webclient.model.ext; +import com.regula.documentreader.webclient.model.GraphicFieldType; import com.regula.documentreader.webclient.model.ImagesAvailableSource; import java.util.ArrayList; import java.util.List; @@ -7,11 +8,9 @@ public class Images extends com.regula.documentreader.webclient.model.Images { - @Override public Images withAvailableSourceList(List availableSourceList) { - com.regula.documentreader.webclient.model.Images images = - super.withAvailableSourceList(availableSourceList); - return (Images) images; + this.setAvailableSourceList(availableSourceList); + return this; } @Override @@ -31,33 +30,20 @@ public void setAvailableSourceList(List availableSourceLi super.setAvailableSourceList(availableSourceList); } - @Override public Images withFieldList(List fieldList) { - com.regula.documentreader.webclient.model.Images images = super.withFieldList(fieldList); - return (Images) images; - } - - @Override - public Images addFieldListItem(ImagesField fieldListItem) { - com.regula.documentreader.webclient.model.Images images = super.addFieldListItem(fieldListItem); - return (Images) images; - } - - @Override - public List getFieldList() { - return super.getFieldList(); - } - - @Override - public void setFieldList(List fieldList) { - super.setFieldList(fieldList); + List fields = new ArrayList<>(); + for (ImagesField field : fieldList) { + fields.add(field); + } + super.setFieldList(fields); + return this; } @Nullable - public ImagesField getField(int fieldType) { - for (ImagesField field : getFieldList()) { + public ImagesField getField(GraphicFieldType fieldType) { + for (com.regula.documentreader.webclient.model.ImagesField field : getFieldList()) { if (field.getFieldType() == fieldType) { - return field; + return (ImagesField) field; } } return null; @@ -65,9 +51,9 @@ public ImagesField getField(int fieldType) { public List getFields(int fieldType) { List fields = new ArrayList<>(); - for (ImagesField field : getFieldList()) { - if (field.getFieldType() == fieldType) { - fields.add(field); + for (com.regula.documentreader.webclient.model.ImagesField field : getFieldList()) { + if (field.getFieldType().getValue() == fieldType) { + fields.add((ImagesField) field); } } return fields; diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ImagesField.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ImagesField.java index cae39744..896d7e01 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ImagesField.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ImagesField.java @@ -1,6 +1,7 @@ package com.regula.documentreader.webclient.model.ext; import com.regula.documentreader.webclient.Base64; +import com.regula.documentreader.webclient.model.GraphicFieldType; import com.regula.documentreader.webclient.model.ImagesFieldValue; import com.regula.documentreader.webclient.model.Source; import java.util.List; @@ -8,42 +9,19 @@ public class ImagesField extends com.regula.documentreader.webclient.model.ImagesField { - @Override public ImagesField withFieldName(String fieldName) { - com.regula.documentreader.webclient.model.ImagesField field = super.withFieldName(fieldName); - return (ImagesField) field; - } - - @Override - public String getFieldName() { - return super.getFieldName(); - } - - @Override - public void setFieldName(String fieldName) { - super.setFieldName(fieldName); - } - - @Override - public ImagesField withFieldType(Integer fieldType) { - com.regula.documentreader.webclient.model.ImagesField field = super.withFieldType(fieldType); - return (ImagesField) field; + this.setFieldName(fieldName); + return this; } - @Override - public Integer getFieldType() { - return super.getFieldType(); + public ImagesField withFieldType(GraphicFieldType fieldType) { + this.setFieldType(fieldType); + return this; } - @Override - public void setFieldType(Integer fieldType) { - super.setFieldType(fieldType); - } - - @Override public ImagesField withValueList(List valueList) { - com.regula.documentreader.webclient.model.ImagesField field = super.withValueList(valueList); - return (ImagesField) field; + this.setValueList(valueList); + return this; } @Override @@ -64,7 +42,7 @@ public void setValueList(List valueList) { } @Nullable - public byte[] getValue(String source, boolean original) { + public byte[] getValue(Source source, boolean original) { String result; for (ImagesFieldValue value : getValueList()) { if (value.getSource().equals(source)) { @@ -80,7 +58,7 @@ public byte[] getValue(String source, boolean original) { } @Nullable - public byte[] getValue(String source) { + public byte[] getValue(Source source) { return getValue(source, false); } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestImage.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestImage.java index 7f0855e1..b1be9dcc 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestImage.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestImage.java @@ -3,7 +3,7 @@ import com.regula.documentreader.webclient.ApiException; import com.regula.documentreader.webclient.Base64; import com.regula.documentreader.webclient.model.ImageData; -import javax.annotation.Nullable; +import com.regula.documentreader.webclient.model.Light; public class ProcessRequestImage extends com.regula.documentreader.webclient.model.ProcessRequestImage { @@ -16,68 +16,31 @@ public ProcessRequestImage(byte[] image) { } String base64Image = Base64.encode(image); - this.setImageData(new ImageData().withImage(base64Image)); + this.setImageData(new ImageData().image(base64Image)); } - public ProcessRequestImage(byte[] image, Integer light) { + public ProcessRequestImage(byte[] image, Light light) { this(image); this.setLight(light); } - public ProcessRequestImage(byte[] image, Integer light, Integer pageIdx) { + public ProcessRequestImage(byte[] image, Light light, Integer pageIdx) { this(image, light); this.setPageIdx(pageIdx); } - @Override public ProcessRequestImage withImageData(ImageData imageData) { - com.regula.documentreader.webclient.model.ProcessRequestImage image = - super.withImageData(imageData); - return (ProcessRequestImage) image; + this.setImageData(imageData); + return this; } - @Override - public ImageData getImageData() { - return super.getImageData(); - } - - @Override - public void setImageData(ImageData imageData) { - super.setImageData(imageData); - } - - @Override - public ProcessRequestImage withLight(Integer light) { - com.regula.documentreader.webclient.model.ProcessRequestImage image = super.withLight(light); - return (ProcessRequestImage) image; - } - - @Nullable - @Override - public Integer getLight() { - return super.getLight(); - } - - @Override - public void setLight(Integer light) { - super.setLight(light); + public ProcessRequestImage withLight(Light light) { + this.setLight(light); + return this; } - @Override public ProcessRequestImage withPageIdx(Integer pageIdx) { - com.regula.documentreader.webclient.model.ProcessRequestImage image = - super.withPageIdx(pageIdx); - return (ProcessRequestImage) image; - } - - @Nullable - @Override - public Integer getPageIdx() { - return super.getPageIdx(); - } - - @Override - public void setPageIdx(Integer pageIdx) { - super.setPageIdx(pageIdx); + this.setPageIdx(pageIdx); + return this; } } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestLicense.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestLicense.java index aad0b35b..7027d05e 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestLicense.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestLicense.java @@ -11,21 +11,11 @@ public ProcessRequestLicense(byte[] license, int light, int list_idx, int page_i setListIdx(list_idx); setPageIdx(page_idx); setBufLength(license.length); - setResultType(Result.LICENSE); + setResultType(Result.LICENSE.getValue()); } - @Override public LicenseResult withLicense(byte[] license) { - return super.withLicense(license); - } - - @Override - public byte[] getLicense() { - return super.getLicense(); - } - - @Override - public void setLicense(byte[] license) { - super.setLicense(license); + this.setLicense(license); + return this; } } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionParams.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionParams.java index f3556c61..7168b6d1 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionParams.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionParams.java @@ -1,930 +1,302 @@ package com.regula.documentreader.webclient.model.ext; import com.regula.documentreader.webclient.model.AuthParams; +import com.regula.documentreader.webclient.model.DocumentFormat; +import com.regula.documentreader.webclient.model.DocumentType; import com.regula.documentreader.webclient.model.FaceApi; import com.regula.documentreader.webclient.model.ImageQA; +import com.regula.documentreader.webclient.model.LCID; +import com.regula.documentreader.webclient.model.LogLevel; +import com.regula.documentreader.webclient.model.MRZFormat; +import com.regula.documentreader.webclient.model.MeasureSystem; import com.regula.documentreader.webclient.model.MrzDetectModeEnum; import com.regula.documentreader.webclient.model.PerDocumentConfig; import com.regula.documentreader.webclient.model.ProcessParams; import com.regula.documentreader.webclient.model.ProcessParamsRfid; +import com.regula.documentreader.webclient.model.Result; +import com.regula.documentreader.webclient.model.Scenario; +import com.regula.documentreader.webclient.model.TextFieldType; +import com.regula.documentreader.webclient.model.TextPostProcessing; import java.util.Arrays; import java.util.List; import java.util.Map; -import javax.annotation.Nullable; +@Deprecated // this class will no longer be supported / updated public class RecognitionParams extends ProcessParams { - public RecognitionParams withResultTypeOutput(Integer... resultTypes) { + public RecognitionParams withResultTypeOutput(Result... resultTypes) { this.setResultTypeOutput(Arrays.asList(resultTypes)); return this; } - @Override - public RecognitionParams withScenario(String scenario) { - super.withScenario(scenario); + public RecognitionParams withScenario(Scenario scenario) { + this.setScenario(scenario); return this; } - @Override - public ProcessParams withLcidFilter(List lcidFilter) { - return super.withLcidFilter(lcidFilter); - } - - @Override - public ProcessParams addLcidFilterItem(Integer lcidFilterItem) { - return super.addLcidFilterItem(lcidFilterItem); - } - - @Nullable - @Override - public List getLcidFilter() { - return super.getLcidFilter(); - } - - @Override - public void setLcidFilter(List lcidFilter) { - super.setLcidFilter(lcidFilter); - } - - @Override - public ProcessParams withLcidIgnoreFilter(List lcidIgnoreFilter) { - return super.withLcidIgnoreFilter(lcidIgnoreFilter); - } - - @Override - public ProcessParams addLcidIgnoreFilterItem(Integer lcidIgnoreFilterItem) { - return super.addLcidIgnoreFilterItem(lcidIgnoreFilterItem); - } - - @Nullable - @Override - public List getLcidIgnoreFilter() { - return super.getLcidIgnoreFilter(); - } - - @Override - public void setLcidIgnoreFilter(List lcidIgnoreFilter) { - super.setLcidIgnoreFilter(lcidIgnoreFilter); - } - - @Override - public ProcessParams withOneShotIdentification(Boolean oneShotIdentification) { - return super.withOneShotIdentification(oneShotIdentification); - } - - @Nullable - @Override - public Boolean getOneShotIdentification() { - return super.getOneShotIdentification(); - } - - @Override - public void setOneShotIdentification(Boolean oneShotIdentification) { - super.setOneShotIdentification(oneShotIdentification); - } - - @Override - public ProcessParams withUseFaceApi(Boolean useFaceApi) { - return super.withUseFaceApi(useFaceApi); - } - - @Nullable - @Override - public Boolean getUseFaceApi() { - return super.getUseFaceApi(); - } - - @Override - public void setUseFaceApi(Boolean useFaceApi) { - super.setUseFaceApi(useFaceApi); - } - - @Override - public ProcessParams withFaceApi(FaceApi faceApi) { - return super.withFaceApi(faceApi); - } - - @Nullable - @Override - public FaceApi getFaceApi() { - return super.getFaceApi(); - } - - @Override - public void setFaceApi(FaceApi faceApi) { - super.setFaceApi(faceApi); - } - - @Override - public ProcessParams withDoDetectCan(Boolean doDetectCan) { - return super.withDoDetectCan(doDetectCan); - } - - @Nullable - @Override - public Boolean getDoDetectCan() { - return super.getDoDetectCan(); - } - - @Override - public void setDoDetectCan(Boolean doDetectCan) { - super.setDoDetectCan(doDetectCan); - } - - @Override - public ProcessParams withImageOutputMaxHeight(Integer imageOutputMaxHeight) { - return super.withImageOutputMaxHeight(imageOutputMaxHeight); - } - - @Nullable - @Override - public Integer getImageOutputMaxHeight() { - return super.getImageOutputMaxHeight(); - } - - @Override - public void setImageOutputMaxHeight(Integer imageOutputMaxHeight) { - super.setImageOutputMaxHeight(imageOutputMaxHeight); - } - - @Override - public ProcessParams withImageOutputMaxWidth(Integer imageOutputMaxWidth) { - return super.withImageOutputMaxWidth(imageOutputMaxWidth); - } - - @Nullable - @Override - public Integer getImageOutputMaxWidth() { - return super.getImageOutputMaxWidth(); - } - - @Override - public void setImageOutputMaxWidth(Integer imageOutputMaxWidth) { - super.setImageOutputMaxWidth(imageOutputMaxWidth); - } - - @Override - public String getScenario() { - return super.getScenario(); - } - - @Override - public void setScenario(String scenario) { - super.setScenario(scenario); - } - - @Override - public ProcessParams withResultTypeOutput(List resultTypeOutput) { - return super.withResultTypeOutput(resultTypeOutput); - } - - @Override - public ProcessParams addResultTypeOutputItem(Integer resultTypeOutputItem) { - return super.addResultTypeOutputItem(resultTypeOutputItem); - } - - @Nullable - @Override - public List getResultTypeOutput() { - return super.getResultTypeOutput(); - } - - @Override - public void setResultTypeOutput(List resultTypeOutput) { - super.setResultTypeOutput(resultTypeOutput); - } - - @Override - public ProcessParams withDoublePageSpread(Boolean doublePageSpread) { - return super.withDoublePageSpread(doublePageSpread); - } - - @Nullable - @Override - public Boolean getDoublePageSpread() { - return super.getDoublePageSpread(); - } - - @Override - public void setDoublePageSpread(Boolean doublePageSpread) { - super.setDoublePageSpread(doublePageSpread); - } - - @Override - public ProcessParams withGenerateDoublePageSpreadImage(Boolean generateDoublePageSpreadImage) { - return super.withGenerateDoublePageSpreadImage(generateDoublePageSpreadImage); - } - - @Nullable - @Override - public Boolean getGenerateDoublePageSpreadImage() { - return super.getGenerateDoublePageSpreadImage(); - } - - @Override - public void setGenerateDoublePageSpreadImage(Boolean generateDoublePageSpreadImage) { - super.setGenerateDoublePageSpreadImage(generateDoublePageSpreadImage); - } - - @Override - public ProcessParams withFieldTypesFilter(List fieldTypesFilter) { - return super.withFieldTypesFilter(fieldTypesFilter); - } - - @Override - public ProcessParams addFieldTypesFilterItem(Integer fieldTypesFilterItem) { - return super.addFieldTypesFilterItem(fieldTypesFilterItem); - } - - @Nullable - @Override - public List getFieldTypesFilter() { - return super.getFieldTypesFilter(); - } - - @Override - public void setFieldTypesFilter(List fieldTypesFilter) { - super.setFieldTypesFilter(fieldTypesFilter); - } - - @Override - public ProcessParams withDateFormat(String dateFormat) { - return super.withDateFormat(dateFormat); - } - - @Nullable - @Override - public String getDateFormat() { - return super.getDateFormat(); - } - - @Override - public void setDateFormat(String dateFormat) { - super.setDateFormat(dateFormat); - } - - @Override - public ProcessParams withMeasureSystem(Integer measureSystem) { - return super.withMeasureSystem(measureSystem); - } - - @Nullable - @Override - public Integer getMeasureSystem() { - return super.getMeasureSystem(); - } - - @Override - public void setMeasureSystem(Integer measureSystem) { - super.setMeasureSystem(measureSystem); - } - - @Override - public ProcessParams withImageDpiOutMax(Integer imageDpiOutMax) { - return super.withImageDpiOutMax(imageDpiOutMax); - } - - @Nullable - @Override - public Integer getImageDpiOutMax() { - return super.getImageDpiOutMax(); - } - - @Override - public void setImageDpiOutMax(Integer imageDpiOutMax) { - super.setImageDpiOutMax(imageDpiOutMax); - } - - @Override - public ProcessParams withAlreadyCropped(Boolean alreadyCropped) { - return super.withAlreadyCropped(alreadyCropped); - } - - @Nullable - @Override - public Boolean getAlreadyCropped() { - return super.getAlreadyCropped(); - } - - @Override - public void setAlreadyCropped(Boolean alreadyCropped) { - super.setAlreadyCropped(alreadyCropped); - } - - @Override - public ProcessParams withCustomParams(Map customParams) { - return super.withCustomParams(customParams); - } - - @Override - public ProcessParams putCustomParamsItem(String key, Object customParamsItem) { - return super.putCustomParamsItem(key, customParamsItem); - } - - @Nullable - @Override - public Map getCustomParams() { - return super.getCustomParams(); - } - - @Override - public void setCustomParams(Map customParams) { - super.setCustomParams(customParams); - } - - @Override - public ProcessParams withConfig(List config) { - return super.withConfig(config); - } - - @Override - public ProcessParams addConfigItem(PerDocumentConfig configItem) { - return super.addConfigItem(configItem); - } - - @Nullable - @Override - public List getConfig() { - return super.getConfig(); - } - - @Override - public void setConfig(List config) { - super.setConfig(config); - } - - @Override - public ProcessParams withLog(Boolean log) { - return super.withLog(log); - } - - @Nullable - @Override - public Boolean getLog() { - return super.getLog(); - } - - @Override - public void setLog(Boolean log) { - super.setLog(log); - } - - @Override - public ProcessParams withLogLevel(String logLevel) { - return super.withLogLevel(logLevel); - } - - @Nullable - @Override - public String getLogLevel() { - return super.getLogLevel(); - } - - @Override - public void setLogLevel(String logLevel) { - super.setLogLevel(logLevel); - } - - @Override - public ProcessParams withForceDocID(Integer forceDocID) { - return super.withForceDocID(forceDocID); - } - - @Nullable - @Override - public Integer getForceDocID() { - return super.getForceDocID(); - } - - @Override - public void setForceDocID(Integer forceDocID) { - super.setForceDocID(forceDocID); - } - - @Override - public ProcessParams withMatchTextFieldMask(Boolean matchTextFieldMask) { - return super.withMatchTextFieldMask(matchTextFieldMask); - } - - @Nullable - @Override - public Boolean getMatchTextFieldMask() { - return super.getMatchTextFieldMask(); - } - - @Override - public void setMatchTextFieldMask(Boolean matchTextFieldMask) { - super.setMatchTextFieldMask(matchTextFieldMask); - } - - @Override - public ProcessParams withFastDocDetect(Boolean fastDocDetect) { - return super.withFastDocDetect(fastDocDetect); - } - - @Nullable - @Override - public Boolean getFastDocDetect() { - return super.getFastDocDetect(); - } - - @Override - public void setFastDocDetect(Boolean fastDocDetect) { - super.setFastDocDetect(fastDocDetect); - } - - @Override - public ProcessParams withUpdateOCRValidityByGlare(Boolean updateOCRValidityByGlare) { - return super.withUpdateOCRValidityByGlare(updateOCRValidityByGlare); - } - - @Nullable - @Override - public Boolean getUpdateOCRValidityByGlare() { - return super.getUpdateOCRValidityByGlare(); - } - - @Override - public void setUpdateOCRValidityByGlare(Boolean updateOCRValidityByGlare) { - super.setUpdateOCRValidityByGlare(updateOCRValidityByGlare); - } - - @Override - public ProcessParams withCheckRequiredTextFields(Boolean checkRequiredTextFields) { - return super.withCheckRequiredTextFields(checkRequiredTextFields); - } - - @Nullable - @Override - public Boolean getCheckRequiredTextFields() { - return super.getCheckRequiredTextFields(); - } - - @Override - public void setCheckRequiredTextFields(Boolean checkRequiredTextFields) { - super.setCheckRequiredTextFields(checkRequiredTextFields); - } - - @Override - public ProcessParams withReturnCroppedBarcode(Boolean returnCroppedBarcode) { - return super.withReturnCroppedBarcode(returnCroppedBarcode); - } - - @Nullable - @Override - public Boolean getReturnCroppedBarcode() { - return super.getReturnCroppedBarcode(); - } - - @Override - public void setReturnCroppedBarcode(Boolean returnCroppedBarcode) { - super.setReturnCroppedBarcode(returnCroppedBarcode); - } - - @Override - public ProcessParams withImageQa(ImageQA imageQa) { - return super.withImageQa(imageQa); - } - - @Nullable - @Override - public ImageQA getImageQa() { - return super.getImageQa(); - } - - @Override - public void setImageQa(ImageQA imageQa) { - super.setImageQa(imageQa); - } - - @Override - public ProcessParams withRespectImageQuality(Boolean respectImageQuality) { - return super.withRespectImageQuality(respectImageQuality); - } - - @Nullable - @Override - public Boolean getRespectImageQuality() { - return super.getRespectImageQuality(); - } - - @Override - public void setRespectImageQuality(Boolean respectImageQuality) { - super.setRespectImageQuality(respectImageQuality); - } - - @Override - public ProcessParams withForceDocFormat(Integer forceDocFormat) { - return super.withForceDocFormat(forceDocFormat); - } - - @Nullable - @Override - public Integer getForceDocFormat() { - return super.getForceDocFormat(); - } - - @Override - public void setForceDocFormat(Integer forceDocFormat) { - super.setForceDocFormat(forceDocFormat); - } - - @Override - public ProcessParams withNoGraphics(Boolean noGraphics) { - return super.withNoGraphics(noGraphics); - } - - @Nullable - @Override - public Boolean getNoGraphics() { - return super.getNoGraphics(); - } - - @Override - public void setNoGraphics(Boolean noGraphics) { - super.setNoGraphics(noGraphics); - } - - @Override - public ProcessParams withDepersonalizeLog(Boolean depersonalizeLog) { - return super.withDepersonalizeLog(depersonalizeLog); - } - - @Nullable - @Override - public Boolean getDepersonalizeLog() { - return super.getDepersonalizeLog(); - } - - @Override - public void setDepersonalizeLog(Boolean depersonalizeLog) { - super.setDepersonalizeLog(depersonalizeLog); - } - - @Override - public ProcessParams withMultiDocOnImage(Boolean multiDocOnImage) { - return super.withMultiDocOnImage(multiDocOnImage); - } - - @Nullable - @Override - public Boolean getMultiDocOnImage() { - return super.getMultiDocOnImage(); - } - - @Override - public void setMultiDocOnImage(Boolean multiDocOnImage) { - super.setMultiDocOnImage(multiDocOnImage); - } - - @Override - public ProcessParams withShiftExpiryDate(Integer shiftExpiryDate) { - return super.withShiftExpiryDate(shiftExpiryDate); - } - - @Nullable - @Override - public Integer getShiftExpiryDate() { - return super.getShiftExpiryDate(); - } - - @Override - public void setShiftExpiryDate(Integer shiftExpiryDate) { - super.setShiftExpiryDate(shiftExpiryDate); - } - - @Override - public ProcessParams withMinimalHolderAge(Integer minimalHolderAge) { - return super.withMinimalHolderAge(minimalHolderAge); - } - - @Nullable - @Override - public Integer getMinimalHolderAge() { - return super.getMinimalHolderAge(); - } - - @Override - public void setMinimalHolderAge(Integer minimalHolderAge) { - super.setMinimalHolderAge(minimalHolderAge); - } - - @Override - public ProcessParams withReturnUncroppedImage(Boolean returnUncroppedImage) { - return super.withReturnUncroppedImage(returnUncroppedImage); - } - - @Nullable - @Override - public Boolean getReturnUncroppedImage() { - return super.getReturnUncroppedImage(); - } - - @Override - public void setReturnUncroppedImage(Boolean returnUncroppedImage) { - super.setReturnUncroppedImage(returnUncroppedImage); - } - - @Override - public ProcessParams withMrzFormatsFilter(List mrzFormatsFilter) { - return super.withMrzFormatsFilter(mrzFormatsFilter); - } - - @Override - public ProcessParams addMrzFormatsFilterItem(String mrzFormatsFilterItem) { - return super.addMrzFormatsFilterItem(mrzFormatsFilterItem); - } - - @Nullable - @Override - public List getMrzFormatsFilter() { - return super.getMrzFormatsFilter(); - } - - @Override - public void setMrzFormatsFilter(List mrzFormatsFilter) { - super.setMrzFormatsFilter(mrzFormatsFilter); - } - - @Override - public ProcessParams withForceReadMrzBeforeLocate(Boolean forceReadMrzBeforeLocate) { - return super.withForceReadMrzBeforeLocate(forceReadMrzBeforeLocate); + public RecognitionParams withLcidFilter(List lcidFilter) { + this.setLcidFilter(lcidFilter); + return this; } - @Nullable - @Override - public Boolean getForceReadMrzBeforeLocate() { - return super.getForceReadMrzBeforeLocate(); + public RecognitionParams withLcidIgnoreFilter(List lcidIgnoreFilter) { + this.setLcidIgnoreFilter(lcidIgnoreFilter); + return this; } - @Override - public void setForceReadMrzBeforeLocate(Boolean forceReadMrzBeforeLocate) { - super.setForceReadMrzBeforeLocate(forceReadMrzBeforeLocate); + public RecognitionParams withOneShotIdentification(Boolean oneShotIdentification) { + this.setOneShotIdentification(oneShotIdentification); + return this; } - @Override - public ProcessParams withParseBarcodes(Boolean parseBarcodes) { - return super.withParseBarcodes(parseBarcodes); + public RecognitionParams withUseFaceApi(Boolean useFaceApi) { + this.setUseFaceApi(useFaceApi); + return this; } - @Nullable - @Override - public Boolean getParseBarcodes() { - return super.getParseBarcodes(); + public RecognitionParams withFaceApi(FaceApi faceApi) { + this.setFaceApi(faceApi); + return this; } - @Override - public void setParseBarcodes(Boolean parseBarcodes) { - super.setParseBarcodes(parseBarcodes); + public RecognitionParams withDoDetectCan(Boolean doDetectCan) { + this.setDoDetectCan(doDetectCan); + return this; } - @Override - public ProcessParams withConvertCase(Integer convertCase) { - return super.withConvertCase(convertCase); + public RecognitionParams withImageOutputMaxHeight(Integer imageOutputMaxHeight) { + this.setImageOutputMaxHeight(imageOutputMaxHeight); + return this; } - @Nullable - @Override - public Integer getConvertCase() { - return super.getConvertCase(); + public RecognitionParams withImageOutputMaxWidth(Integer imageOutputMaxWidth) { + this.setImageOutputMaxWidth(imageOutputMaxWidth); + return this; } - @Override - public void setConvertCase(Integer convertCase) { - super.setConvertCase(convertCase); + public RecognitionParams withResultTypeOutput(List resultTypeOutput) { + this.setResultTypeOutput(resultTypeOutput); + return this; } - @Override - public ProcessParams withSplitNames(Boolean splitNames) { - return super.withSplitNames(splitNames); + public RecognitionParams withDoublePageSpread(Boolean doublePageSpread) { + this.setDoublePageSpread(doublePageSpread); + return this; } - @Nullable - @Override - public Boolean getSplitNames() { - return super.getSplitNames(); + public RecognitionParams withGenerateDoublePageSpreadImage( + Boolean generateDoublePageSpreadImage) { + this.setGenerateDoublePageSpreadImage(generateDoublePageSpreadImage); + return this; } - @Override - public void setSplitNames(Boolean splitNames) { - super.setSplitNames(splitNames); + public RecognitionParams withFieldTypesFilter(List fieldTypesFilter) { + this.setFieldTypesFilter(fieldTypesFilter); + return this; } - @Override - public ProcessParams withDisablePerforationOCR(Boolean disablePerforationOCR) { - return super.withDisablePerforationOCR(disablePerforationOCR); + public RecognitionParams withDateFormat(String dateFormat) { + this.setDateFormat(dateFormat); + return this; } - @Nullable - @Override - public Boolean getDisablePerforationOCR() { - return super.getDisablePerforationOCR(); + public RecognitionParams withMeasureSystem(MeasureSystem measureSystem) { + this.setMeasureSystem(measureSystem); + return this; } - @Override - public void setDisablePerforationOCR(Boolean disablePerforationOCR) { - super.setDisablePerforationOCR(disablePerforationOCR); + public RecognitionParams withImageDpiOutMax(Integer imageDpiOutMax) { + this.setImageDpiOutMax(imageDpiOutMax); + return this; } - @Override - public ProcessParams withDocumentGroupFilter(List documentGroupFilter) { - return super.withDocumentGroupFilter(documentGroupFilter); + public RecognitionParams withAlreadyCropped(Boolean alreadyCropped) { + this.setAlreadyCropped(alreadyCropped); + return this; } - @Override - public ProcessParams addDocumentGroupFilterItem(Integer documentGroupFilterItem) { - return super.addDocumentGroupFilterItem(documentGroupFilterItem); + public RecognitionParams withCustomParams(Map customParams) { + this.setCustomParams(customParams); + return this; } - @Nullable - @Override - public List getDocumentGroupFilter() { - return super.getDocumentGroupFilter(); + public RecognitionParams withConfig(List config) { + this.setConfig(config); + return this; } - @Override - public void setDocumentGroupFilter(List documentGroupFilter) { - super.setDocumentGroupFilter(documentGroupFilter); + public RecognitionParams withLog(Boolean log) { + this.setLog(log); + return this; } - @Override - public ProcessParams withProcessAuth(Long processAuth) { - return super.withProcessAuth(processAuth); + public RecognitionParams withLogLevel(LogLevel logLevel) { + this.setLogLevel(logLevel); + return this; } - @Nullable - @Override - public Long getProcessAuth() { - return super.getProcessAuth(); + public RecognitionParams withForceDocID(Integer forceDocID) { + this.setForceDocID(forceDocID); + return this; } - @Override - public void setProcessAuth(Long processAuth) { - super.setProcessAuth(processAuth); + public RecognitionParams withMatchTextFieldMask(Boolean matchTextFieldMask) { + this.setMatchTextFieldMask(matchTextFieldMask); + return this; } - @Override - public ProcessParams withDeviceId(Integer deviceId) { - return super.withDeviceId(deviceId); + public RecognitionParams withFastDocDetect(Boolean fastDocDetect) { + this.setFastDocDetect(fastDocDetect); + return this; } - @Nullable - @Override - public Integer getDeviceId() { - return super.getDeviceId(); + public RecognitionParams withUpdateOCRValidityByGlare(Boolean updateOCRValidityByGlare) { + this.setUpdateOCRValidityByGlare(updateOCRValidityByGlare); + return this; } - @Override - public void setDeviceId(Integer deviceId) { - super.setDeviceId(deviceId); + public RecognitionParams withCheckRequiredTextFields(Boolean checkRequiredTextFields) { + this.setCheckRequiredTextFields(checkRequiredTextFields); + return this; } - @Override - public ProcessParams withDeviceType(Integer deviceType) { - return super.withDeviceType(deviceType); + public RecognitionParams withReturnCroppedBarcode(Boolean returnCroppedBarcode) { + this.setReturnCroppedBarcode(returnCroppedBarcode); + return this; } - @Nullable - @Override - public Integer getDeviceType() { - return super.getDeviceType(); + public RecognitionParams withImageQa(ImageQA imageQa) { + this.setImageQa(imageQa); + return this; } - @Override - public void setDeviceType(Integer deviceType) { - super.setDeviceType(deviceType); + public RecognitionParams withRespectImageQuality(Boolean respectImageQuality) { + this.setRespectImageQuality(respectImageQuality); + return this; } - @Override - public ProcessParams withDeviceTypeHex(String deviceTypeHex) { - return super.withDeviceTypeHex(deviceTypeHex); + public RecognitionParams withForceDocFormat(DocumentFormat forceDocFormat) { + this.setForceDocFormat(forceDocFormat); + return this; } - @Nullable - @Override - public String getDeviceTypeHex() { - return super.getDeviceTypeHex(); + public RecognitionParams withNoGraphics(Boolean noGraphics) { + this.setNoGraphics(noGraphics); + return this; } - @Override - public void setDeviceTypeHex(String deviceTypeHex) { - super.setDeviceTypeHex(deviceTypeHex); + public RecognitionParams withDepersonalizeLog(Boolean depersonalizeLog) { + this.setDepersonalizeLog(depersonalizeLog); + return this; } - @Override - public ProcessParams withIgnoreDeviceIdFromImage(Boolean ignoreDeviceIdFromImage) { - return super.withIgnoreDeviceIdFromImage(ignoreDeviceIdFromImage); + public RecognitionParams withMultiDocOnImage(Boolean multiDocOnImage) { + this.setMultiDocOnImage(multiDocOnImage); + return this; } - @Nullable - @Override - public Boolean getIgnoreDeviceIdFromImage() { - return super.getIgnoreDeviceIdFromImage(); + public RecognitionParams withShiftExpiryDate(Integer shiftExpiryDate) { + this.setShiftExpiryDate(shiftExpiryDate); + return this; } - @Override - public void setIgnoreDeviceIdFromImage(Boolean ignoreDeviceIdFromImage) { - super.setIgnoreDeviceIdFromImage(ignoreDeviceIdFromImage); + public RecognitionParams withMinimalHolderAge(Integer minimalHolderAge) { + this.setMinimalHolderAge(minimalHolderAge); + return this; } - @Override - public ProcessParams withDocumentIdList(List documentIdList) { - return super.withDocumentIdList(documentIdList); + public RecognitionParams withReturnUncroppedImage(Boolean returnUncroppedImage) { + this.setReturnUncroppedImage(returnUncroppedImage); + return this; } - @Override - public ProcessParams addDocumentIdListItem(Integer documentIdListItem) { - return super.addDocumentIdListItem(documentIdListItem); + public RecognitionParams withMrzFormatsFilter(List mrzFormatsFilter) { + this.setMrzFormatsFilter(mrzFormatsFilter); + return this; } - @Nullable - @Override - public List getDocumentIdList() { - return super.getDocumentIdList(); + public RecognitionParams withForceReadMrzBeforeLocate(Boolean forceReadMrzBeforeLocate) { + this.setForceReadMrzBeforeLocate(forceReadMrzBeforeLocate); + return this; } - @Override - public void setDocumentIdList(List documentIdList) { - super.setDocumentIdList(documentIdList); + public RecognitionParams withParseBarcodes(Boolean parseBarcodes) { + this.setParseBarcodes(parseBarcodes); + return this; } - @Override - public ProcessParams withRfid(ProcessParamsRfid rfid) { - return super.withRfid(rfid); + public RecognitionParams withConvertCase(TextPostProcessing convertCase) { + this.setConvertCase(convertCase); + return this; } - @Nullable - @Override - public ProcessParamsRfid getRfid() { - return super.getRfid(); + public RecognitionParams withSplitNames(Boolean splitNames) { + this.setSplitNames(splitNames); + return this; } - @Override - public void setRfid(ProcessParamsRfid rfid) { - super.setRfid(rfid); + public RecognitionParams withDisablePerforationOCR(Boolean disablePerforationOCR) { + this.disablePerforationOCR(disablePerforationOCR); + return this; } - @Override - public ProcessParams withCheckAuth(Boolean checkAuth) { - return super.withCheckAuth(checkAuth); + public RecognitionParams withDocumentGroupFilter(List documentGroupFilter) { + this.setDocumentGroupFilter(documentGroupFilter); + return this; } - @Nullable - @Override - public Boolean getCheckAuth() { - return super.getCheckAuth(); + public RecognitionParams withProcessAuth(Long processAuth) { + this.setProcessAuth(processAuth); + return this; } - @Override - public void setCheckAuth(Boolean checkAuth) { - super.setCheckAuth(checkAuth); + public RecognitionParams withDeviceId(Integer deviceId) { + this.setDeviceId(deviceId); + return this; } - @Override - public ProcessParams withAuthParams(AuthParams authParams) { - return super.withAuthParams(authParams); + public RecognitionParams withDeviceType(Integer deviceType) { + this.setDeviceType(deviceType); + return this; } - @Nullable - @Override - public AuthParams getAuthParams() { - return super.getAuthParams(); + public RecognitionParams withDeviceTypeHex(String deviceTypeHex) { + this.setDeviceTypeHex(deviceTypeHex); + return this; } - @Override - public void setAuthParams(AuthParams authParams) { - super.setAuthParams(authParams); + public RecognitionParams withIgnoreDeviceIdFromImage(Boolean ignoreDeviceIdFromImage) { + this.setIgnoreDeviceIdFromImage(ignoreDeviceIdFromImage); + return this; } - @Override - public ProcessParams withMrzDetectMode(MrzDetectModeEnum mrzDetectMode) { - return super.withMrzDetectMode(mrzDetectMode); + public RecognitionParams withDocumentIdList(List documentIdList) { + this.setDocumentIdList(documentIdList); + return this; } - @Nullable - @Override - public MrzDetectModeEnum getMrzDetectMode() { - return super.getMrzDetectMode(); + public RecognitionParams withRfid(ProcessParamsRfid rfid) { + this.setRfid(rfid); + return this; } - @Override - public void setMrzDetectMode(MrzDetectModeEnum mrzDetectMode) { - super.setMrzDetectMode(mrzDetectMode); + public RecognitionParams withCheckAuth(Boolean checkAuth) { + this.setCheckAuth(checkAuth); + return this; } - @Override - public ProcessParams withGenerateNumericCodes(Boolean generateNumericCodes) { - return super.withGenerateNumericCodes(generateNumericCodes); + public RecognitionParams withAuthParams(AuthParams authParams) { + this.setAuthParams(authParams); + return this; } - @Nullable - @Override - public Boolean getGenerateNumericCodes() { - return super.getGenerateNumericCodes(); + public RecognitionParams withMrzDetectMode(MrzDetectModeEnum mrzDetectMode) { + this.setMrzDetectMode(mrzDetectMode); + return this; } - @Override - public void setGenerateNumericCodes(Boolean generateNumericCodes) { - super.setGenerateNumericCodes(generateNumericCodes); + public RecognitionParams withGenerateNumericCodes(Boolean generateNumericCodes) { + this.setGenerateNumericCodes(generateNumericCodes); + return this; } } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java index 67a90aff..8fcb0464 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java @@ -1,14 +1,14 @@ package com.regula.documentreader.webclient.model.ext; import com.google.gson.Gson; -import com.regula.documentreader.webclient.model.ContainerList; import com.regula.documentreader.webclient.model.ProcessParams; import com.regula.documentreader.webclient.model.ProcessRequest; import com.regula.documentreader.webclient.model.ProcessSystemInfo; +import com.regula.documentreader.webclient.model.changed.ContainerList; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; -import javax.annotation.Nullable; public class RecognitionRequest extends ProcessRequest { @@ -38,25 +38,16 @@ public RecognitionRequest(ProcessParams params, ContainerList containerList) { withSystemInfo(new ProcessSystemInfo()); } - @Override public ProcessRequest withProcessParam(ProcessParams processParam) { - return super.withProcessParam(processParam); - } - - @Override - public ProcessParams getProcessParam() { - return super.getProcessParam(); - } - - @Override - public void setProcessParam(ProcessParams processParam) { - super.setProcessParam(processParam); + this.setProcessParam(processParam); + return this; } - @Override - public ProcessRequest withList( - List list) { - return super.withList(list); + public ProcessRequest withList(List list) { + List convertedList = + new ArrayList<>(list); + this.setList(convertedList); + return this; } @Override @@ -65,148 +56,44 @@ public ProcessRequest addListItem( return super.addListItem(listItem); } - @Nullable - @Override - public List getList() { - return super.getList(); - } - - @Override - public void setList(List list) { - super.setList(list); - } - - @Override public ProcessRequest withTag(String tag) { - return super.withTag(tag); + this.setTag(tag); + return this; } - @Nullable - @Override - public String getTag() { - return super.getTag(); - } - - @Override - public void setTag(String tag) { - super.setTag(tag); - } - - @Override public ProcessRequest withTenant(String tenant) { - return super.withTenant(tenant); - } - - @Nullable - @Override - public String getTenant() { - return super.getTenant(); - } - - @Override - public void setTenant(String tenant) { - super.setTenant(tenant); + this.setTenant(tenant); + return this; } - @Override public ProcessRequest withEnv(String env) { - return super.withEnv(env); + this.setEnv(env); + return this; } - @Nullable - @Override - public String getEnv() { - return super.getEnv(); - } - - @Override - public void setEnv(String env) { - super.setEnv(env); - } - - @Override public ProcessRequest withLivePortrait(String livePortrait) { - return super.withLivePortrait(livePortrait); + this.setLivePortrait(livePortrait); + return this; } - @Nullable - @Override - public String getLivePortrait() { - return super.getLivePortrait(); - } - - @Override - public void setLivePortrait(String livePortrait) { - super.setLivePortrait(livePortrait); - } - - @Override public ProcessRequest withExtPortrait(String extPortrait) { - return super.withExtPortrait(extPortrait); - } - - @Nullable - @Override - public String getExtPortrait() { - return super.getExtPortrait(); + this.setExtPortrait(extPortrait); + return this; } - @Override - public void setExtPortrait(String extPortrait) { - super.setExtPortrait(extPortrait); - } - - @Override public ProcessRequest withContainerList(ContainerList containerList) { - return super.withContainerList(containerList); - } - - @Nullable - @Override - public ContainerList getContainerList() { - return super.getContainerList(); - } - - @Override - public void setContainerList(ContainerList containerList) { - super.setContainerList(containerList); + this.setContainerList(containerList); + return this; } - @Override public ProcessRequest withSystemInfo(ProcessSystemInfo systemInfo) { - return super.withSystemInfo(systemInfo); - } - - @Nullable - @Override - public ProcessSystemInfo getSystemInfo() { - return super.getSystemInfo(); + this.setSystemInfo(systemInfo); + return this; } - @Override - public void setSystemInfo(ProcessSystemInfo systemInfo) { - super.setSystemInfo(systemInfo); - } - - @Override public ProcessRequest withPassBackObject(Map passBackObject) { - return super.withPassBackObject(passBackObject); - } - - @Override - public ProcessRequest putPassBackObjectItem(String key, Object passBackObjectItem) { - return super.putPassBackObjectItem(key, passBackObjectItem); - } - - @Nullable - @Override - public Map getPassBackObject() { - return super.getPassBackObject(); - } - - @Override - public void setPassBackObject(Map passBackObject) { - super.setPassBackObject(passBackObject); + this.setPassBackObject(passBackObject); + return this; } public String json() { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java index 9dd52514..9e55d39f 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java @@ -40,7 +40,7 @@ public Status status() { public Text text() { TextResult result = resultByType(Result.TEXT); if (result != null) { - return result.getText(); + return (Text) result.getText(); } return null; } @@ -76,7 +76,7 @@ public String GetLog() { public Images images() { ImagesResult result = resultByType(Result.IMAGES); if (result != null) { - return result.getImages(); + return (Images) result.getImages(); } return null; } @@ -90,7 +90,7 @@ public Authenticity authenticity() { public Authenticity authenticity(int page_idx) { AuthenticityResult result = getResult(Result.AUTHENTICITY, page_idx); if (result != null) { - return result.getAuthenticityCheckList(); + return (Authenticity) result.getAuthenticityCheckList(); } return null; } @@ -122,28 +122,28 @@ public OneCandidate documentType(int pageIdx) { return null; } - public R resultByType(int type) { + public R resultByType(Result type) { for (ResultItem item : originalResponse.getContainerList().getList()) { - if (item.getResultType() == type) { + if (item.getResultType().equals(type.getValue())) { return (R) item; } } return null; } - public R getResult(int type, int page_idx) { + public R getResult(Result type, int page_idx) { for (ResultItem item : originalResponse.getContainerList().getList()) { - if (item.getResultType() == type && item.getPageIdx() == page_idx) { + if (item.getResultType().equals(type.getValue()) && item.getPageIdx() == page_idx) { return (R) item; } } return null; } - public List resultsByType(int type) { + public List resultsByType(Result type) { List results = new ArrayList<>(); for (ResultItem item : originalResponse.getContainerList().getList()) { - if (item.getResultType() == type) { + if (item.getResultType().equals(type.getValue())) { results.add((R) item); } } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/Text.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/Text.java index dfb731a6..cf7b8502 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/Text.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/Text.java @@ -1,7 +1,10 @@ package com.regula.documentreader.webclient.model.ext; +import com.regula.documentreader.webclient.model.CheckResult; import com.regula.documentreader.webclient.model.LCID; import com.regula.documentreader.webclient.model.TextAvailableSource; +import com.regula.documentreader.webclient.model.TextFieldType; +import java.util.ArrayList; import java.util.List; import java.util.Objects; import javax.annotation.Nullable; @@ -9,24 +12,24 @@ public class Text extends com.regula.documentreader.webclient.model.Text { @Nullable - public TextField getField(int fieldType) { + public TextField getField(TextFieldType fieldType) { TextField result = null; - for (TextField field : getFieldList()) { + for (com.regula.documentreader.webclient.model.TextField field : getFieldList()) { if (field.getFieldType() == fieldType && field.getLcid() == LCID.LATIN) { - return field; + return (TextField) field; } if (result == null && field.getFieldType() == fieldType) { - result = field; + result = (TextField) field; } } return result; } @Nullable - public TextField getField(int fieldType, int lcid) { - for (TextField field : getFieldList()) { + public TextField getField(TextFieldType fieldType, LCID lcid) { + for (com.regula.documentreader.webclient.model.TextField field : getFieldList()) { if (field.getFieldType() == fieldType && field.getLcid() == lcid) { - return field; + return (TextField) field; } } return null; @@ -35,36 +38,36 @@ public TextField getField(int fieldType, int lcid) { @Nullable public TextField getField(String fieldName) { TextField result = null; - for (TextField field : getFieldList()) { + for (com.regula.documentreader.webclient.model.TextField field : getFieldList()) { if (Objects.equals(field.getFieldName(), fieldName) && field.getLcid() == LCID.LATIN) { - return field; + return (TextField) field; } if (result == null && Objects.equals(field.getFieldName(), fieldName)) { - result = field; + result = (TextField) field; } } return result; } @Nullable - public TextField getField(String fieldName, int lcid) { - for (TextField field : getFieldList()) { + public TextField getField(String fieldName, LCID lcid) { + for (com.regula.documentreader.webclient.model.TextField field : getFieldList()) { if (Objects.equals(field.getFieldName(), fieldName) && field.getLcid() == lcid) { - return field; + return (TextField) field; } } return null; } @Nullable - public String getFieldValue(int fieldType) { + public String getFieldValue(TextFieldType fieldType) { TextField field = getField(fieldType); if (field != null) return field.getValue(); return null; } @Nullable - public String getFieldValue(int fieldType, int lcid) { + public String getFieldValue(TextFieldType fieldType, LCID lcid) { TextField field = getField(fieldType, lcid); if (field != null) return field.getValue(); return null; @@ -78,104 +81,35 @@ public String getFieldValue(String fieldName) { } @Nullable - public String getFieldValue(String fieldName, int lcid) { + public String getFieldValue(String fieldName, LCID lcid) { TextField field = getField(fieldName, lcid); if (field != null) return field.getValue(); return null; } - @Override - public Text withStatus(Integer status) { - com.regula.documentreader.webclient.model.Text text = super.withStatus(status); - return (Text) text; + public Text withStatus(CheckResult status) { + this.setStatus(status); + return this; } - @Override - public Integer getStatus() { - return super.getStatus(); + public Text withValidityStatus(CheckResult validityStatus) { + this.setValidityStatus(validityStatus); + return this; } - @Override - public void setStatus(Integer status) { - super.setStatus(status); + public Text withComparisonStatus(CheckResult comparisonStatus) { + this.setComparisonStatus(comparisonStatus); + return this; } - @Override - public Text withValidityStatus(Integer validityStatus) { - com.regula.documentreader.webclient.model.Text text = super.withValidityStatus(validityStatus); - return (Text) text; - } - - @Override - public Integer getValidityStatus() { - return super.getValidityStatus(); - } - - @Override - public void setValidityStatus(Integer validityStatus) { - super.setValidityStatus(validityStatus); - } - - @Override - public Text withComparisonStatus(Integer comparisonStatus) { - com.regula.documentreader.webclient.model.Text text = - super.withComparisonStatus(comparisonStatus); - return (Text) text; - } - - @Override - public Integer getComparisonStatus() { - return super.getComparisonStatus(); - } - - @Override - public void setComparisonStatus(Integer comparisonStatus) { - super.setComparisonStatus(comparisonStatus); - } - - @Override public Text withFieldList(List fieldList) { - com.regula.documentreader.webclient.model.Text text = super.withFieldList(fieldList); - return (Text) text; + List convertedList = new ArrayList<>(fieldList); + this.setFieldList(convertedList); + return this; } - @Override - public Text addFieldListItem(TextField fieldListItem) { - com.regula.documentreader.webclient.model.Text text = super.addFieldListItem(fieldListItem); - return (Text) text; - } - - @Override - public List getFieldList() { - return super.getFieldList(); - } - - @Override - public void setFieldList(List fieldList) { - super.setFieldList(fieldList); - } - - @Override public Text withAvailableSourceList(List availableSourceList) { - com.regula.documentreader.webclient.model.Text text = - super.withAvailableSourceList(availableSourceList); - return (Text) text; - } - - @Override - public Text addAvailableSourceListItem(TextAvailableSource availableSourceListItem) { - com.regula.documentreader.webclient.model.Text text = - super.addAvailableSourceListItem(availableSourceListItem); - return (Text) text; - } - - @Override - public List getAvailableSourceList() { - return super.getAvailableSourceList(); - } - - @Override - public void setAvailableSourceList(List availableSourceList) { - super.setAvailableSourceList(availableSourceList); + this.setAvailableSourceList(availableSourceList); + return this; } } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/TextField.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/TextField.java index b1cd8ff1..6b991292 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/TextField.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/TextField.java @@ -2,201 +2,68 @@ import com.regula.documentreader.webclient.model.CheckResult; import com.regula.documentreader.webclient.model.CrossSourceValueComparison; +import com.regula.documentreader.webclient.model.LCID; +import com.regula.documentreader.webclient.model.Source; import com.regula.documentreader.webclient.model.SourceValidity; +import com.regula.documentreader.webclient.model.TextFieldType; import com.regula.documentreader.webclient.model.TextFieldValue; import java.util.List; import javax.annotation.Nullable; public class TextField extends com.regula.documentreader.webclient.model.TextField { - @Override - public TextField withFieldType(Integer fieldType) { - com.regula.documentreader.webclient.model.TextField textField = super.withFieldType(fieldType); - return (TextField) textField; + public TextField withFieldType(TextFieldType fieldType) { + this.setFieldType(fieldType); + return this; } - @Override - public Integer getFieldType() { - return super.getFieldType(); - } - - @Override - public void setFieldType(Integer fieldType) { - super.setFieldType(fieldType); - } - - @Override public TextField withFieldName(String fieldName) { - com.regula.documentreader.webclient.model.TextField textField = super.withFieldName(fieldName); - return (TextField) textField; - } - - @Override - public String getFieldName() { - return super.getFieldName(); - } - - @Override - public void setFieldName(String fieldName) { - super.setFieldName(fieldName); - } - - @Override - public TextField withLcid(Integer lcid) { - com.regula.documentreader.webclient.model.TextField textField = super.withLcid(lcid); - return (TextField) textField; - } - - @Nullable - @Override - public Integer getLcid() { - return super.getLcid(); - } - - @Override - public void setLcid(Integer lcid) { - super.setLcid(lcid); - } - - @Override - public TextField withStatus(Integer status) { - com.regula.documentreader.webclient.model.TextField textField = super.withStatus(status); - return (TextField) textField; - } - - @Override - public Integer getStatus() { - return super.getStatus(); - } - - @Override - public void setStatus(Integer status) { - super.setStatus(status); + this.setFieldName(fieldName); + return this; } - @Override - public TextField withValidityStatus(Integer validityStatus) { - com.regula.documentreader.webclient.model.TextField textField = - super.withValidityStatus(validityStatus); - return (TextField) textField; + public TextField withLcid(LCID lcid) { + this.setLcid(lcid); + return this; } - @Override - public Integer getValidityStatus() { - return super.getValidityStatus(); + public TextField withStatus(CheckResult status) { + this.setStatus(status); + return this; } - @Override - public void setValidityStatus(Integer validityStatus) { - super.setValidityStatus(validityStatus); + public TextField withValidityStatus(CheckResult validityStatus) { + this.setValidityStatus(validityStatus); + return this; } - @Override - public com.regula.documentreader.webclient.model.TextField withComparisonStatus( - Integer comparisonStatus) { - return super.withComparisonStatus(comparisonStatus); + public TextField withComparisonStatus(CheckResult comparisonStatus) { + this.setComparisonStatus(comparisonStatus); + return this; } - @Override - public Integer getComparisonStatus() { - return super.getComparisonStatus(); - } - - @Override - public void setComparisonStatus(Integer comparisonStatus) { - super.setComparisonStatus(comparisonStatus); - } - - @Override public TextField withValue(String value) { - com.regula.documentreader.webclient.model.TextField textField = super.withValue(value); - return (TextField) textField; - } - - @Override - public String getValue() { - return super.getValue(); + this.setValue(value); + return this; } - @Override - public void setValue(String value) { - super.setValue(value); - } - - @Override public TextField withValueList(List valueList) { - com.regula.documentreader.webclient.model.TextField textField = super.withValueList(valueList); - return (TextField) textField; - } - - @Override - public TextField addValueListItem(TextFieldValue valueListItem) { - com.regula.documentreader.webclient.model.TextField textField = - super.addValueListItem(valueListItem); - return (TextField) textField; - } - - @Override - public List getValueList() { - return super.getValueList(); + this.setValueList(valueList); + return this; } - @Override - public void setValueList(List valueList) { - super.setValueList(valueList); - } - - @Override public TextField withValidityList(List validityList) { - com.regula.documentreader.webclient.model.TextField textField = - super.withValidityList(validityList); - return (TextField) textField; + this.setValidityList(validityList); + return this; } - @Override - public TextField addValidityListItem(SourceValidity validityListItem) { - com.regula.documentreader.webclient.model.TextField textField = - super.addValidityListItem(validityListItem); - return (TextField) textField; - } - - @Override - public List getValidityList() { - return super.getValidityList(); - } - - @Override - public void setValidityList(List validityList) { - super.setValidityList(validityList); - } - - @Override public TextField withComparisonList(List comparisonList) { - com.regula.documentreader.webclient.model.TextField textField = - super.withComparisonList(comparisonList); - return (TextField) textField; - } - - @Override - public com.regula.documentreader.webclient.model.TextField addComparisonListItem( - CrossSourceValueComparison comparisonListItem) { - com.regula.documentreader.webclient.model.TextField textField = - super.addComparisonListItem(comparisonListItem); - return textField; - } - - @Override - public List getComparisonList() { - return super.getComparisonList(); - } - - @Override - public void setComparisonList(List comparisonList) { - super.setComparisonList(comparisonList); + this.setComparisonList(comparisonList); + return this; } @Nullable - public String getValue(String source, boolean original) { + public String getValue(Source source, boolean original) { for (TextFieldValue value : getValueList()) { if (value.getSource().equals(source)) { if (original) { @@ -210,11 +77,11 @@ public String getValue(String source, boolean original) { } @Nullable - public String getValue(String source) { + public String getValue(Source source) { return getValue(source, false); } - public int sourceValidity(String source) { + public CheckResult sourceValidity(Source source) { for (SourceValidity sourceValidity : this.getValidityList()) { if (sourceValidity.getSource().equals(source)) { return sourceValidity.getStatus(); @@ -223,7 +90,7 @@ public int sourceValidity(String source) { return CheckResult.WAS_NOT_DONE; } - public int crossSourceComparison(String one, String other) { + public CheckResult crossSourceComparison(Source one, Source other) { for (CrossSourceValueComparison comparison : this.getComparisonList()) { boolean a = comparison.getSourceLeft().equals(one) && comparison.getSourceRight().equals(other); diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/Authenticity.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/Authenticity.java index 3d41b634..db18d663 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/Authenticity.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/Authenticity.java @@ -1,16 +1,16 @@ package com.regula.documentreader.webclient.model.ext.authenticity; import com.regula.documentreader.webclient.model.AuthenticityCheckList; -import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import com.regula.documentreader.webclient.model.AuthenticityResultType; +import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; import java.util.List; import javax.annotation.Nullable; public class Authenticity extends com.regula.documentreader.webclient.model.AuthenticityCheckList { - @Override public AuthenticityCheckList withCount(Integer count) { - return super.withCount(count); + this.setCount(count); + return this; } @Nullable @@ -24,9 +24,9 @@ public void setCount(Integer count) { super.setCount(count); } - @Override public AuthenticityCheckList withList(List list) { - return super.withList(list); + this.setList(list); + return this; } @Override @@ -120,7 +120,7 @@ public IdentChecks letterScreenChecks() { } @Nullable - private AuthenticityCheckResult resultByType(int type) { + private AuthenticityCheckResult resultByType(AuthenticityResultType type) { for (AuthenticityCheckResult checkResult : this.getList()) { if (checkResult.getType() == type) { return checkResult; @@ -129,7 +129,7 @@ private AuthenticityCheckResult resultByType(int type) { return null; } - private FiberChecks fiberOrNull(int type) { + private FiberChecks fiberOrNull(AuthenticityResultType type) { AuthenticityCheckResult result = this.resultByType(type); if (result != null) { return new FiberChecks(result); @@ -137,7 +137,7 @@ private FiberChecks fiberOrNull(int type) { return null; } - private IdentChecks identOrNull(int type) { + private IdentChecks identOrNull(AuthenticityResultType type) { AuthenticityCheckResult result = this.resultByType(type); if (result != null) { return new IdentChecks(result); @@ -145,7 +145,7 @@ private IdentChecks identOrNull(int type) { return null; } - private ImageIdentChecks imageIdentOrNull(int type) { + private ImageIdentChecks imageIdentOrNull(AuthenticityResultType type) { AuthenticityCheckResult result = this.resultByType(type); if (result != null) { return new ImageIdentChecks(result); @@ -153,7 +153,7 @@ private ImageIdentChecks imageIdentOrNull(int type) { return null; } - private OCRSecurityTextChecks ocrSecurityTextOrNull(int type) { + private OCRSecurityTextChecks ocrSecurityTextOrNull(AuthenticityResultType type) { AuthenticityCheckResult result = this.resultByType(type); if (result != null) { return new OCRSecurityTextChecks(result); @@ -161,7 +161,7 @@ private OCRSecurityTextChecks ocrSecurityTextOrNull(int type) { return null; } - private SecurityFeatureChecks securityFeatureOrNull(int type) { + private SecurityFeatureChecks securityFeatureOrNull(AuthenticityResultType type) { AuthenticityCheckResult result = this.resultByType(type); if (result != null) { return new SecurityFeatureChecks(result); diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/AuthenticityResult.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/AuthenticityResult.java index 0ce72276..10ed487e 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/AuthenticityResult.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/AuthenticityResult.java @@ -1,6 +1,6 @@ package com.regula.documentreader.webclient.model.ext.authenticity; -import com.regula.documentreader.webclient.model.AuthenticityCheckResult; +import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; import java.util.List; public abstract class AuthenticityResult { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/FiberChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/FiberChecks.java index 910de147..6ceefe28 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/FiberChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/FiberChecks.java @@ -1,7 +1,7 @@ package com.regula.documentreader.webclient.model.ext.authenticity; -import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import com.regula.documentreader.webclient.model.FiberResult; +import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; import java.util.List; public class FiberChecks extends AuthenticityResult { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/IdentChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/IdentChecks.java index 86bda48b..c8e90b0c 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/IdentChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/IdentChecks.java @@ -1,7 +1,8 @@ package com.regula.documentreader.webclient.model.ext.authenticity; -import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import com.regula.documentreader.webclient.model.IdentResult; +import com.regula.documentreader.webclient.model.SecurityFeatureType; +import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; import java.util.List; import javax.annotation.Nullable; @@ -22,7 +23,7 @@ public List items() { } @Nullable - public IdentResult checksByElement(int elementType) { + public IdentResult checksByElement(SecurityFeatureType elementType) { for (IdentResult result : this.items()) { if (result.getElementType() == elementType) { return result; diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/ImageIdentChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/ImageIdentChecks.java index 42b95934..3d5e54b0 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/ImageIdentChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/ImageIdentChecks.java @@ -1,7 +1,7 @@ package com.regula.documentreader.webclient.model.ext.authenticity; -import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import com.regula.documentreader.webclient.model.PhotoIdentResult; +import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; import java.util.List; public class ImageIdentChecks extends AuthenticityResult { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/OCRSecurityTextChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/OCRSecurityTextChecks.java index 43637a40..f2db5d32 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/OCRSecurityTextChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/OCRSecurityTextChecks.java @@ -1,7 +1,7 @@ package com.regula.documentreader.webclient.model.ext.authenticity; -import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import com.regula.documentreader.webclient.model.OCRSecurityTextResult; +import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; import java.util.List; public class OCRSecurityTextChecks extends AuthenticityResult { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/SecurityFeatureChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/SecurityFeatureChecks.java index 4c1b923a..24802ce3 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/SecurityFeatureChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/SecurityFeatureChecks.java @@ -1,7 +1,8 @@ package com.regula.documentreader.webclient.model.ext.authenticity; -import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import com.regula.documentreader.webclient.model.SecurityFeatureResult; +import com.regula.documentreader.webclient.model.SecurityFeatureType; +import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; import java.util.List; import javax.annotation.Nullable; @@ -22,7 +23,7 @@ public List items() { } @Nullable - public SecurityFeatureResult checksByElement(int elementType) { + public SecurityFeatureResult checksByElement(SecurityFeatureType elementType) { for (SecurityFeatureResult result : this.items()) { if (result.getElementType() == elementType) { return result; diff --git a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java index e3709e47..337f075d 100644 --- a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java +++ b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java @@ -1,19 +1,15 @@ package com.regula.documentreader.webclient.encryptedRCL; -import com.regula.documentreader.webclient.ApiException; import com.regula.documentreader.webclient.api.DocumentReaderApi; import com.regula.documentreader.webclient.example.Main; -import com.regula.documentreader.webclient.model.*; import com.regula.documentreader.webclient.model.ext.*; import javax.annotation.Nullable; import java.io.IOException; import java.io.UnsupportedEncodingException; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; -import java.util.Base64; import static com.regula.documentreader.webclient.model.GraphicFieldType.DOCUMENT_FRONT; import static com.regula.documentreader.webclient.model.GraphicFieldType.PORTRAIT; diff --git a/java-generator-config.json b/java-generator-config.json index 3afedfe2..7fdfb9e7 100755 --- a/java-generator-config.json +++ b/java-generator-config.json @@ -1,6 +1,5 @@ { "artifactId": "webclient", - "artifactVersion": "5.1.0", "groupId": "com.regula.documentreader", "library": "okhttp-gson", "useRuntimeException": true, @@ -9,11 +8,22 @@ "modelPackage": "com.regula.documentreader.webclient.model", "apiPackage": "com.regula.documentreader.webclient.api", "sourceFolder": "src/main/generated", + "containerDefaultToNull": true, + "legacyDiscriminatorBehavior": false, "typeMappings" : { "TextField" : "com.regula.documentreader.webclient.model.ext.TextField", "ImagesField" : "com.regula.documentreader.webclient.model.ext.ImagesField", "Text": "com.regula.documentreader.webclient.model.ext.Text", "Images" : "com.regula.documentreader.webclient.model.ext.Images", "AuthenticityCheckList" : "com.regula.documentreader.webclient.model.ext.authenticity.Authenticity" + }, + "schemaMappings": { + "ContainerList": "com.regula.documentreader.webclient.model.changed.ContainerList", + "AuthenticityCheckResult": "com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult", + "DocVisualExtendedInfo": "com.regula.documentreader.webclient.model.changed.DocVisualExtendedInfo", + "GraphicFieldsList": "com.regula.documentreader.webclient.model.changed.GraphicFieldsList" + }, + "nameMappings": { + "List": "list" } } \ No newline at end of file diff --git a/update-models.sh b/update-models.sh index 245c1e50..9369e987 100755 --- a/update-models.sh +++ b/update-models.sh @@ -2,25 +2,14 @@ DOCS_DEFINITION_FOLDER="${PWD}/../DocumentReader-web-openapi" \ \ -&& ENUM_MAPPINGS="MeasureSystem=Integer,TextFieldType=Integer,GraphicFieldType=Integer,Scenario=String,DocumentFormat=Integer,\ -Light=Integer,Result=Integer,VerificationResult=Integer,RfidLocation=Integer,\ -DocumentTypeRecognitionResult=Integer,ProcessingStatus=Integer,Source=String,CheckResult=Integer,\ -LCID=Integer,DocumentType=Integer,CheckDiagnose=Integer,Critical=Integer,AuthenticityResultType=Integer,\ -SecurityFeatureType=Integer,Visibility=Integer,ImageQualityCheckType=Integer,\ -LogLevel=String,MRZFormat=String,TextPostProcessing=Integer" \ -\ -&& docker run --user "$(id -u):$(id -g)" --rm -v "${PWD}:/client" -v "$DOCS_DEFINITION_FOLDER:/definitions" \ -openapitools/openapi-generator-cli:v5.0.0-beta2 generate \ --i /definitions/index.yml -g java -o /client/client \ --c /client/java-generator-config.json -t /client/client/generator-templates/ \ -\ -&& docker run --user "$(id -u):$(id -g)" --rm -v "${PWD}:/client" -v "${DOCS_DEFINITION_FOLDER}:/definitions" \ -openapitools/openapi-generator-cli:v5.0.0-beta2 generate \ --i /definitions/index.yml -g java -o /client/client \ --c /client/java-generator-config.json -t /client/client/generator-templates/ \ ---import-mappings $ENUM_MAPPINGS \ -\ -|| exit 1 +&& docker run --user "$(id -u):$(id -g)" --rm \ +-v "${PWD}:/client" \ +-v "${DOCS_DEFINITION_FOLDER}:/definitions" \ +openapitools/openapi-generator-cli:v7.12.0 generate \ +-g java \ +-i /definitions/index.yml \ +-o /client/client --openapi-normalizer REF_AS_PARENT_IN_ALLOF=true \ +-t /client/client/generator-templates \ +-c /client/java-generator-config.json || exit 1 -./gradlew -p ./ goJF -exit 0 +./gradlew -p ./ goJF || exit 0 \ No newline at end of file From 82c014c281173824193897f692195ba307d0f46e Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Fri, 7 Mar 2025 10:47:11 +0300 Subject: [PATCH 02/19] Update settings --- client/.openapi-generator/FILES | 4 + .../regula/documentreader/webclient/JSON.java | 10 ++ .../model/AuthenticityCheckList.java | 18 +- .../model}/AuthenticityCheckResult.java | 17 +- .../webclient/model}/ContainerList.java | 29 ++- .../model}/DocVisualExtendedInfo.java | 27 ++- .../webclient/model}/GraphicFieldsList.java | 28 ++- .../webclient/model/GraphicsResult.java | 11 +- .../webclient/model/ProcessRequest.java | 15 +- .../webclient/model/ProcessResponse.java | 15 +- .../webclient/model/TextDataResult.java | 14 +- .../model/TransactionProcessRequest.java | 14 +- .../RawAuthenticityCheckResultItem.java | 146 --------------- ...RawAuthenticityCheckResultItemAdapter.java | 28 --- .../webclient/RawResultItem.java | 170 ------------------ .../webclient/RawResultItemAdapter.java | 26 --- .../webclient/model/ext/Images.java | 0 .../webclient/model/ext/ImagesField.java | 0 .../model/ext/ProcessRequestImage.java | 0 .../model/ext/RecognitionParams.java | 0 .../model/ext/RecognitionRequest.java | 2 +- .../model/ext/RecognitionResponse.java | 0 .../webclient/model/ext/Text.java | 0 .../webclient/model/ext/TextField.java | 0 .../model/ext/authenticity/Authenticity.java | 2 +- .../ext/authenticity/AuthenticityResult.java | 2 +- .../model/ext/authenticity/FiberChecks.java | 2 +- .../model/ext/authenticity/IdentChecks.java | 2 +- .../ext/authenticity/ImageIdentChecks.java | 2 +- .../authenticity/OCRSecurityTextChecks.java | 2 +- .../authenticity/SecurityFeatureChecks.java | 2 +- .../webclient/encryptedRCL/Example.java | 3 +- .../webclient/example/Main.java | 73 ++++---- java-generator-config.json | 12 +- 34 files changed, 168 insertions(+), 508 deletions(-) rename client/src/main/{java/com/regula/documentreader/webclient/model/changed => generated/com/regula/documentreader/webclient/model}/AuthenticityCheckResult.java (92%) rename client/src/main/{java/com/regula/documentreader/webclient/model/changed => generated/com/regula/documentreader/webclient/model}/ContainerList.java (86%) rename client/src/main/{java/com/regula/documentreader/webclient/model/changed => generated/com/regula/documentreader/webclient/model}/DocVisualExtendedInfo.java (87%) rename client/src/main/{java/com/regula/documentreader/webclient/model/changed => generated/com/regula/documentreader/webclient/model}/GraphicFieldsList.java (86%) delete mode 100644 client/src/main/java/com/regula/documentreader/webclient/RawAuthenticityCheckResultItem.java delete mode 100644 client/src/main/java/com/regula/documentreader/webclient/RawAuthenticityCheckResultItemAdapter.java delete mode 100755 client/src/main/java/com/regula/documentreader/webclient/RawResultItem.java delete mode 100755 client/src/main/java/com/regula/documentreader/webclient/RawResultItemAdapter.java mode change 100755 => 100644 client/src/main/java/com/regula/documentreader/webclient/model/ext/Images.java mode change 100755 => 100644 client/src/main/java/com/regula/documentreader/webclient/model/ext/ImagesField.java mode change 100755 => 100644 client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestImage.java mode change 100755 => 100644 client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionParams.java mode change 100755 => 100644 client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java mode change 100755 => 100644 client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java mode change 100755 => 100644 client/src/main/java/com/regula/documentreader/webclient/model/ext/Text.java mode change 100755 => 100644 client/src/main/java/com/regula/documentreader/webclient/model/ext/TextField.java diff --git a/client/.openapi-generator/FILES b/client/.openapi-generator/FILES index 32140e33..80b4239d 100755 --- a/client/.openapi-generator/FILES +++ b/client/.openapi-generator/FILES @@ -24,6 +24,7 @@ src/main/generated/com/regula/documentreader/webclient/model/AreaArray.java src/main/generated/com/regula/documentreader/webclient/model/AreaContainer.java src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java +src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultListInner.java src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java @@ -38,6 +39,7 @@ src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentType.java src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentTypeResult.java +src/main/generated/com/regula/documentreader/webclient/model/ContainerList.java src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java src/main/generated/com/regula/documentreader/webclient/model/Critical.java src/main/generated/com/regula/documentreader/webclient/model/CrossSourceValueComparison.java @@ -50,6 +52,7 @@ src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoField src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java +src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java @@ -78,6 +81,7 @@ src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java +src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java src/main/generated/com/regula/documentreader/webclient/model/Healthcheck.java diff --git a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java index c78d7551..9db75484 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java @@ -908,6 +908,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.AuthenticityCheckList .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.AuthenticityCheckResult + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.AuthenticityCheckResultListInner .CustomTypeAdapterFactory()); @@ -928,6 +931,8 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ChosenDocumentTypeResult .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ContainerList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ContainerListListInner .CustomTypeAdapterFactory()); @@ -953,6 +958,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocVisualExtendedFieldRfid .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocVisualExtendedInfo + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocVisualExtendedInfoPArrayFieldsInner .CustomTypeAdapterFactory()); @@ -1009,6 +1017,8 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.GraphicFieldRect.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.GraphicFieldRfid.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.GraphicFieldsList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.GraphicFieldsListPArrayFieldsInner .CustomTypeAdapterFactory()); diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java index b6646878..af7137fc 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java @@ -46,7 +46,7 @@ public class AuthenticityCheckList { @SerializedName(SERIALIZED_NAME_LIST) @javax.annotation.Nonnull - private List list; + private List list; public AuthenticityCheckList() {} @@ -69,15 +69,12 @@ public void setCount(@javax.annotation.Nonnull Integer count) { this.count = count; } - public AuthenticityCheckList list( - @javax.annotation.Nonnull - List list) { + public AuthenticityCheckList list(@javax.annotation.Nonnull List list) { this.list = list; return this; } - public AuthenticityCheckList addListItem( - com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult listItem) { + public AuthenticityCheckList addListItem(AuthenticityCheckResult listItem) { if (this.list == null) { this.list = new ArrayList<>(); } @@ -91,13 +88,11 @@ public AuthenticityCheckList addListItem( * @return list */ @javax.annotation.Nonnull - public List getList() { + public List getList() { return list; } - public void setList( - @javax.annotation.Nonnull - List list) { + public void setList(@javax.annotation.Nonnull List list) { this.list = list; } @@ -203,8 +198,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonArray jsonArraylist = jsonObj.getAsJsonArray("List"); // validate the required field `List` (array) for (int i = 0; i < jsonArraylist.size(); i++) { - com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult.validateJsonElement( - jsonArraylist.get(i)); + AuthenticityCheckResult.validateJsonElement(jsonArraylist.get(i)); } ; } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/changed/AuthenticityCheckResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java similarity index 92% rename from client/src/main/java/com/regula/documentreader/webclient/model/changed/AuthenticityCheckResult.java rename to client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java index 7ef65815..e79f73fe 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/changed/AuthenticityCheckResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java @@ -1,4 +1,16 @@ -package com.regula.documentreader.webclient.model.changed; +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -11,9 +23,6 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; -import com.regula.documentreader.webclient.model.AuthenticityCheckResultItem; -import com.regula.documentreader.webclient.model.AuthenticityResultType; -import com.regula.documentreader.webclient.model.CheckResult; import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/changed/ContainerList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerList.java similarity index 86% rename from client/src/main/java/com/regula/documentreader/webclient/model/changed/ContainerList.java rename to client/src/main/generated/com/regula/documentreader/webclient/model/ContainerList.java index 29ebfd88..609aa829 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/changed/ContainerList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerList.java @@ -1,4 +1,16 @@ -package com.regula.documentreader.webclient.model.changed; +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -11,7 +23,6 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; -import com.regula.documentreader.webclient.model.ResultItem; import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; @@ -58,7 +69,7 @@ public void setCount(@javax.annotation.Nonnull Integer count) { this.count = count; } - public ContainerList _list(@javax.annotation.Nonnull List list) { + public ContainerList list(@javax.annotation.Nonnull List list) { this.list = list; return this; } @@ -72,9 +83,9 @@ public ContainerList addListItem(ResultItem listItem) { } /** - * Get _list + * Get list * - * @return _list + * @return list */ @javax.annotation.Nonnull public List getList() { @@ -108,7 +119,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ContainerList {\n"); sb.append(" count: ").append(toIndentedString(count)).append("\n"); - sb.append(" _list: ").append(toIndentedString(list)).append("\n"); + sb.append(" list: ").append(toIndentedString(list)).append("\n"); sb.append("}"); return sb.toString(); } @@ -184,10 +195,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti jsonObj.get("List").toString())); } - JsonArray jsonArray_list = jsonObj.getAsJsonArray("List"); + JsonArray jsonArraylist = jsonObj.getAsJsonArray("List"); // validate the required field `List` (array) - for (int i = 0; i < jsonArray_list.size(); i++) { - ResultItem.validateJsonElement(jsonArray_list.get(i)); + for (int i = 0; i < jsonArraylist.size(); i++) { + ResultItem.validateJsonElement(jsonArraylist.get(i)); } ; } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/changed/DocVisualExtendedInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java similarity index 87% rename from client/src/main/java/com/regula/documentreader/webclient/model/changed/DocVisualExtendedInfo.java rename to client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java index 57b43ed8..ab813ebb 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/changed/DocVisualExtendedInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java @@ -1,4 +1,16 @@ -package com.regula.documentreader.webclient.model.changed; +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -11,7 +23,6 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; -import com.regula.documentreader.webclient.model.DocVisualExtendedField; import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; @@ -36,7 +47,7 @@ public class DocVisualExtendedInfo { @SerializedName(SERIALIZED_NAME_P_ARRAY_FIELDS) @javax.annotation.Nonnull - private List pArrayFields; + private List pArrayFields; public DocVisualExtendedInfo() {} @@ -60,12 +71,12 @@ public void setnFields(@javax.annotation.Nonnull BigDecimal nFields) { } public DocVisualExtendedInfo pArrayFields( - @javax.annotation.Nonnull List pArrayFields) { + @javax.annotation.Nonnull List pArrayFields) { this.pArrayFields = pArrayFields; return this; } - public DocVisualExtendedInfo addPArrayFieldsItem(DocVisualExtendedField pArrayFieldsItem) { + public DocVisualExtendedInfo addPArrayFieldsItem(DocVisualExtendedInfo pArrayFieldsItem) { if (this.pArrayFields == null) { this.pArrayFields = new ArrayList<>(); } @@ -79,11 +90,11 @@ public DocVisualExtendedInfo addPArrayFieldsItem(DocVisualExtendedField pArrayFi * @return pArrayFields */ @javax.annotation.Nonnull - public List getpArrayFields() { + public List getpArrayFields() { return pArrayFields; } - public void setpArrayFields(@javax.annotation.Nonnull List pArrayFields) { + public void setpArrayFields(@javax.annotation.Nonnull List pArrayFields) { this.pArrayFields = pArrayFields; } @@ -189,7 +200,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonArray jsonArraypArrayFields = jsonObj.getAsJsonArray("pArrayFields"); // validate the required field `pArrayFields` (array) for (int i = 0; i < jsonArraypArrayFields.size(); i++) { - DocVisualExtendedField.validateJsonElement(jsonArraypArrayFields.get(i)); + DocVisualExtendedInfo.validateJsonElement(jsonArraypArrayFields.get(i)); } ; } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/changed/GraphicFieldsList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java similarity index 86% rename from client/src/main/java/com/regula/documentreader/webclient/model/changed/GraphicFieldsList.java rename to client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java index 1b169e3e..f79e0e5a 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/changed/GraphicFieldsList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java @@ -1,4 +1,16 @@ -package com.regula.documentreader.webclient.model.changed; +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; import com.google.gson.Gson; import com.google.gson.JsonArray; @@ -11,7 +23,6 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; -import com.regula.documentreader.webclient.model.GraphicField; import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; @@ -30,7 +41,7 @@ public class GraphicFieldsList { @SerializedName(SERIALIZED_NAME_P_ARRAY_FIELDS) @javax.annotation.Nonnull - private List pArrayFields; + private List pArrayFields; public static final String SERIALIZED_NAME_N_FIELDS = "nFields"; @@ -40,12 +51,13 @@ public class GraphicFieldsList { public GraphicFieldsList() {} - public GraphicFieldsList pArrayFields(@javax.annotation.Nonnull List pArrayFields) { + public GraphicFieldsList pArrayFields( + @javax.annotation.Nonnull List pArrayFields) { this.pArrayFields = pArrayFields; return this; } - public GraphicFieldsList addPArrayFieldsItem(GraphicField pArrayFieldsItem) { + public GraphicFieldsList addPArrayFieldsItem(GraphicFieldsList pArrayFieldsItem) { if (this.pArrayFields == null) { this.pArrayFields = new ArrayList<>(); } @@ -59,11 +71,11 @@ public GraphicFieldsList addPArrayFieldsItem(GraphicField pArrayFieldsItem) { * @return pArrayFields */ @javax.annotation.Nonnull - public List getpArrayFields() { + public List getpArrayFields() { return pArrayFields; } - public void setpArrayFields(@javax.annotation.Nonnull List pArrayFields) { + public void setpArrayFields(@javax.annotation.Nonnull List pArrayFields) { this.pArrayFields = pArrayFields; } @@ -188,7 +200,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonArray jsonArraypArrayFields = jsonObj.getAsJsonArray("pArrayFields"); // validate the required field `pArrayFields` (array) for (int i = 0; i < jsonArraypArrayFields.size(); i++) { - GraphicField.validateJsonElement(jsonArraypArrayFields.get(i)); + GraphicFieldsList.validateJsonElement(jsonArraypArrayFields.get(i)); } ; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java index def406ef..6c0f9ca7 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java @@ -40,13 +40,12 @@ public class GraphicsResult extends ResultItem { @SerializedName(SERIALIZED_NAME_DOC_GRAPHICS_INFO) @javax.annotation.Nonnull - private com.regula.documentreader.webclient.model.changed.GraphicFieldsList docGraphicsInfo; + private GraphicFieldsList docGraphicsInfo; public GraphicsResult() {} public GraphicsResult docGraphicsInfo( - @javax.annotation.Nonnull - com.regula.documentreader.webclient.model.changed.GraphicFieldsList docGraphicsInfo) { + @javax.annotation.Nonnull GraphicFieldsList docGraphicsInfo) { this.docGraphicsInfo = docGraphicsInfo; return this; } @@ -57,13 +56,11 @@ public GraphicsResult docGraphicsInfo( * @return docGraphicsInfo */ @javax.annotation.Nonnull - public com.regula.documentreader.webclient.model.changed.GraphicFieldsList getDocGraphicsInfo() { + public GraphicFieldsList getDocGraphicsInfo() { return docGraphicsInfo; } - public void setDocGraphicsInfo( - @javax.annotation.Nonnull - com.regula.documentreader.webclient.model.changed.GraphicFieldsList docGraphicsInfo) { + public void setDocGraphicsInfo(@javax.annotation.Nonnull GraphicFieldsList docGraphicsInfo) { this.docGraphicsInfo = docGraphicsInfo; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java index 5d8a0103..ae735361 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java @@ -89,7 +89,7 @@ public class ProcessRequest { @SerializedName(SERIALIZED_NAME_CONTAINER_LIST) @javax.annotation.Nullable - private com.regula.documentreader.webclient.model.changed.ContainerList containerList; + private ContainerList containerList; public static final String SERIALIZED_NAME_SYSTEM_INFO = "systemInfo"; @@ -286,9 +286,7 @@ public void setExtPortrait(@javax.annotation.Nullable String extPortrait) { this.extPortrait = extPortrait; } - public ProcessRequest containerList( - @javax.annotation.Nullable - com.regula.documentreader.webclient.model.changed.ContainerList containerList) { + public ProcessRequest containerList(@javax.annotation.Nullable ContainerList containerList) { this.containerList = containerList; return this; } @@ -299,13 +297,11 @@ public ProcessRequest containerList( * @return containerList */ @javax.annotation.Nullable - public com.regula.documentreader.webclient.model.changed.ContainerList getContainerList() { + public ContainerList getContainerList() { return containerList; } - public void setContainerList( - @javax.annotation.Nullable - com.regula.documentreader.webclient.model.changed.ContainerList containerList) { + public void setContainerList(@javax.annotation.Nullable ContainerList containerList) { this.containerList = containerList; } @@ -605,8 +601,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } // validate the optional field `ContainerList` if (jsonObj.get("ContainerList") != null && !jsonObj.get("ContainerList").isJsonNull()) { - com.regula.documentreader.webclient.model.changed.ContainerList.validateJsonElement( - jsonObj.get("ContainerList")); + ContainerList.validateJsonElement(jsonObj.get("ContainerList")); } // validate the optional field `systemInfo` if (jsonObj.get("systemInfo") != null && !jsonObj.get("systemInfo").isJsonNull()) { diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java index bc6bfbac..1940a9d6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java @@ -49,7 +49,7 @@ public class ProcessResponse { @SerializedName(SERIALIZED_NAME_CONTAINER_LIST) @javax.annotation.Nonnull - private com.regula.documentreader.webclient.model.changed.ContainerList containerList; + private ContainerList containerList; public static final String SERIALIZED_NAME_TRANSACTION_INFO = "TransactionInfo"; @@ -147,9 +147,7 @@ public void setProcessingFinished(@javax.annotation.Nonnull ProcessingStatus pro this.processingFinished = processingFinished; } - public ProcessResponse containerList( - @javax.annotation.Nonnull - com.regula.documentreader.webclient.model.changed.ContainerList containerList) { + public ProcessResponse containerList(@javax.annotation.Nonnull ContainerList containerList) { this.containerList = containerList; return this; } @@ -160,13 +158,11 @@ public ProcessResponse containerList( * @return containerList */ @javax.annotation.Nonnull - public com.regula.documentreader.webclient.model.changed.ContainerList getContainerList() { + public ContainerList getContainerList() { return containerList; } - public void setContainerList( - @javax.annotation.Nonnull - com.regula.documentreader.webclient.model.changed.ContainerList containerList) { + public void setContainerList(@javax.annotation.Nonnull ContainerList containerList) { this.containerList = containerList; } @@ -415,8 +411,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti // validate the required field `ProcessingFinished` ProcessingStatus.validateJsonElement(jsonObj.get("ProcessingFinished")); // validate the required field `ContainerList` - com.regula.documentreader.webclient.model.changed.ContainerList.validateJsonElement( - jsonObj.get("ContainerList")); + ContainerList.validateJsonElement(jsonObj.get("ContainerList")); // validate the required field `TransactionInfo` TransactionInfo.validateJsonElement(jsonObj.get("TransactionInfo")); if ((jsonObj.get("log") != null && !jsonObj.get("log").isJsonNull()) diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java index d780fb75..0d540dbb 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java @@ -40,15 +40,12 @@ public class TextDataResult extends ResultItem { @SerializedName(SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO) @javax.annotation.Nonnull - private com.regula.documentreader.webclient.model.changed.DocVisualExtendedInfo - docVisualExtendedInfo; + private DocVisualExtendedInfo docVisualExtendedInfo; public TextDataResult() {} public TextDataResult docVisualExtendedInfo( - @javax.annotation.Nonnull - com.regula.documentreader.webclient.model.changed.DocVisualExtendedInfo - docVisualExtendedInfo) { + @javax.annotation.Nonnull DocVisualExtendedInfo docVisualExtendedInfo) { this.docVisualExtendedInfo = docVisualExtendedInfo; return this; } @@ -59,15 +56,12 @@ public TextDataResult docVisualExtendedInfo( * @return docVisualExtendedInfo */ @javax.annotation.Nonnull - public com.regula.documentreader.webclient.model.changed.DocVisualExtendedInfo - getDocVisualExtendedInfo() { + public DocVisualExtendedInfo getDocVisualExtendedInfo() { return docVisualExtendedInfo; } public void setDocVisualExtendedInfo( - @javax.annotation.Nonnull - com.regula.documentreader.webclient.model.changed.DocVisualExtendedInfo - docVisualExtendedInfo) { + @javax.annotation.Nonnull DocVisualExtendedInfo docVisualExtendedInfo) { this.docVisualExtendedInfo = docVisualExtendedInfo; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java index b5a5e7c5..d9a57bce 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java @@ -65,7 +65,7 @@ public class TransactionProcessRequest { @SerializedName(SERIALIZED_NAME_CONTAINER_LIST) @javax.annotation.Nullable - private com.regula.documentreader.webclient.model.changed.ContainerList containerList; + private ContainerList containerList; public static final String SERIALIZED_NAME_SYSTEM_INFO = "systemInfo"; @@ -173,8 +173,7 @@ public void setExtPortrait(@javax.annotation.Nullable String extPortrait) { } public TransactionProcessRequest containerList( - @javax.annotation.Nullable - com.regula.documentreader.webclient.model.changed.ContainerList containerList) { + @javax.annotation.Nullable ContainerList containerList) { this.containerList = containerList; return this; } @@ -185,13 +184,11 @@ public TransactionProcessRequest containerList( * @return containerList */ @javax.annotation.Nullable - public com.regula.documentreader.webclient.model.changed.ContainerList getContainerList() { + public ContainerList getContainerList() { return containerList; } - public void setContainerList( - @javax.annotation.Nullable - com.regula.documentreader.webclient.model.changed.ContainerList containerList) { + public void setContainerList(@javax.annotation.Nullable ContainerList containerList) { this.containerList = containerList; } @@ -415,8 +412,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } // validate the optional field `ContainerList` if (jsonObj.get("ContainerList") != null && !jsonObj.get("ContainerList").isJsonNull()) { - com.regula.documentreader.webclient.model.changed.ContainerList.validateJsonElement( - jsonObj.get("ContainerList")); + ContainerList.validateJsonElement(jsonObj.get("ContainerList")); } // validate the optional field `systemInfo` if (jsonObj.get("systemInfo") != null && !jsonObj.get("systemInfo").isJsonNull()) { diff --git a/client/src/main/java/com/regula/documentreader/webclient/RawAuthenticityCheckResultItem.java b/client/src/main/java/com/regula/documentreader/webclient/RawAuthenticityCheckResultItem.java deleted file mode 100644 index 953dd99b..00000000 --- a/client/src/main/java/com/regula/documentreader/webclient/RawAuthenticityCheckResultItem.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.regula.documentreader.webclient; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.annotations.JsonAdapter; -import com.regula.documentreader.webclient.model.AuthenticityCheckResultItem; -import java.util.Objects; -import javax.annotation.Nullable; - -@JsonAdapter(RawAuthenticityCheckResultItemAdapter.class) -public class RawAuthenticityCheckResultItem extends AuthenticityCheckResultItem { - private JsonObject raw; - - public RawAuthenticityCheckResultItem withRaw(JsonObject raw) { - this.raw = raw; - - JsonElement member = raw.get(AuthenticityCheckResultItem.SERIALIZED_NAME_TYPE); - if (member != null) { - this.withType(member.getAsInt()); - } - member = raw.get(AuthenticityCheckResultItem.SERIALIZED_NAME_ELEMENT_RESULT); - if (member != null) { - this.withElementResult(member.getAsInt()); - } - member = raw.get(AuthenticityCheckResultItem.SERIALIZED_NAME_ELEMENT_DIAGNOSE); - if (member != null) { - this.withElementDiagnose(member.getAsInt()); - } - - return this; - } - - @javax.annotation.Nullable - public JsonObject getRaw() { - return this.raw; - } - - public void setRaw(JsonObject raw) { - this.withRaw(raw); - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - if (!super.equals(o)) { - return false; - } - RawAuthenticityCheckResultItem rawAuthenticityCheckResultItem = - (RawAuthenticityCheckResultItem) o; - return Objects.equals(raw, rawAuthenticityCheckResultItem.raw); - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), raw); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RawAuthenticityCheckResultItem {\n"); - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - sb.append(" raw: ").append(toIndentedString(raw.toString())).append("\n"); - sb.append("}"); - return sb.toString(); - } - - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - @Override - public RawAuthenticityCheckResultItem withType(Integer type) { - AuthenticityCheckResultItem item = super.withType(type); - return (RawAuthenticityCheckResultItem) item; - } - - @Override - public Integer getType() { - return super.getType(); - } - - @Override - public void setType(Integer type) { - super.setType(type); - } - - @Override - public RawAuthenticityCheckResultItem withElementResult(Integer elementResult) { - AuthenticityCheckResultItem item = super.withElementResult(elementResult); - return (RawAuthenticityCheckResultItem) item; - } - - @Nullable - @Override - public Integer getElementResult() { - return super.getElementResult(); - } - - @Override - public void setElementResult(Integer elementResult) { - super.setElementResult(elementResult); - } - - @Override - public RawAuthenticityCheckResultItem withElementDiagnose(Integer elementDiagnose) { - AuthenticityCheckResultItem item = super.withElementDiagnose(elementDiagnose); - return (RawAuthenticityCheckResultItem) item; - } - - @Nullable - @Override - public Integer getElementDiagnose() { - return super.getElementDiagnose(); - } - - @Override - public void setElementDiagnose(Integer elementDiagnose) { - super.setElementDiagnose(elementDiagnose); - } - - @Override - public RawAuthenticityCheckResultItem withPercentValue(Integer percentValue) { - AuthenticityCheckResultItem item = super.withPercentValue(percentValue); - return (RawAuthenticityCheckResultItem) item; - } - - @Nullable - @Override - public Integer getPercentValue() { - return super.getPercentValue(); - } - - @Override - public void setPercentValue(Integer percentValue) { - super.setPercentValue(percentValue); - } -} diff --git a/client/src/main/java/com/regula/documentreader/webclient/RawAuthenticityCheckResultItemAdapter.java b/client/src/main/java/com/regula/documentreader/webclient/RawAuthenticityCheckResultItemAdapter.java deleted file mode 100644 index 08f73a1f..00000000 --- a/client/src/main/java/com/regula/documentreader/webclient/RawAuthenticityCheckResultItemAdapter.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.regula.documentreader.webclient; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; - -public class RawAuthenticityCheckResultItemAdapter - extends TypeAdapter { - private final Gson gson = new Gson(); - - @Override - public void write(JsonWriter out, RawAuthenticityCheckResultItem value) { - this.gson.toJson(value.getRaw(), out); - } - - @Override - public RawAuthenticityCheckResultItem read(JsonReader in) { - RawAuthenticityCheckResultItem rawAuthenticityCheckResultItem = - new RawAuthenticityCheckResultItem(); - - JsonObject raw = this.gson.fromJson(in, JsonObject.class); - rawAuthenticityCheckResultItem.withRaw(raw); - - return rawAuthenticityCheckResultItem; - } -} diff --git a/client/src/main/java/com/regula/documentreader/webclient/RawResultItem.java b/client/src/main/java/com/regula/documentreader/webclient/RawResultItem.java deleted file mode 100755 index 3f3b9039..00000000 --- a/client/src/main/java/com/regula/documentreader/webclient/RawResultItem.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.regula.documentreader.webclient; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.annotations.JsonAdapter; -import com.regula.documentreader.webclient.model.ResultItem; -import java.util.Objects; -import javax.annotation.Nullable; - -@JsonAdapter(RawResultItemAdapter.class) -public class RawResultItem extends ResultItem { - private JsonObject raw; - - public RawResultItem withRaw(JsonObject raw) { - this.raw = raw; - - JsonElement member = raw.get(ResultItem.SERIALIZED_NAME_BUF_LENGTH); - if (member != null) { - this.withBufLength(member.getAsInt()); - } - member = raw.get(ResultItem.SERIALIZED_NAME_LIGHT); - if (member != null) { - this.withLight(member.getAsInt()); - } - member = raw.get(ResultItem.SERIALIZED_NAME_LIST_IDX); - if (member != null) { - this.withListIdx(member.getAsInt()); - } - member = raw.get(ResultItem.SERIALIZED_NAME_PAGE_IDX); - if (member != null) { - this.withPageIdx(member.getAsInt()); - } - member = raw.get(ResultItem.SERIALIZED_NAME_RESULT_TYPE); - if (member != null) { - this.withResultType(member.getAsInt()); - } - - return this; - } - - @javax.annotation.Nullable - public JsonObject getRaw() { - return this.raw; - } - - public void setRaw(JsonObject raw) { - this.withRaw(raw); - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - if (!super.equals(o)) { - return false; - } - RawResultItem rawResultItem = (RawResultItem) o; - return Objects.equals(raw, rawResultItem.raw); - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), raw); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RawResultItem {\n"); - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - sb.append(" raw: ").append(toIndentedString(raw.toString())).append("\n"); - sb.append("}"); - return sb.toString(); - } - - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - @Override - public RawResultItem withBufLength(Integer bufLength) { - ResultItem item = super.withBufLength(bufLength); - return (RawResultItem) item; - } - - @Nullable - @Override - public Integer getBufLength() { - return super.getBufLength(); - } - - @Override - public void setBufLength(Integer bufLength) { - super.setBufLength(bufLength); - } - - @Override - public RawResultItem withLight(Integer light) { - ResultItem item = super.withLight(light); - return (RawResultItem) item; - } - - @Nullable - @Override - public Integer getLight() { - return super.getLight(); - } - - @Override - public void setLight(Integer light) { - super.setLight(light); - } - - @Override - public RawResultItem withListIdx(Integer listIdx) { - ResultItem item = super.withListIdx(listIdx); - return (RawResultItem) item; - } - - @Nullable - @Override - public Integer getListIdx() { - return super.getListIdx(); - } - - @Override - public void setListIdx(Integer listIdx) { - super.setListIdx(listIdx); - } - - @Override - public RawResultItem withPageIdx(Integer pageIdx) { - ResultItem item = super.withPageIdx(pageIdx); - return (RawResultItem) item; - } - - @Nullable - @Override - public Integer getPageIdx() { - return super.getPageIdx(); - } - - @Override - public void setPageIdx(Integer pageIdx) { - super.setPageIdx(pageIdx); - } - - @Override - public RawResultItem withResultType(Integer resultType) { - ResultItem item = super.withResultType(resultType); - return (RawResultItem) item; - } - - @Override - public Integer getResultType() { - return super.getResultType(); - } - - @Override - public void setResultType(Integer resultType) { - super.setResultType(resultType); - } -} diff --git a/client/src/main/java/com/regula/documentreader/webclient/RawResultItemAdapter.java b/client/src/main/java/com/regula/documentreader/webclient/RawResultItemAdapter.java deleted file mode 100755 index e355cf0f..00000000 --- a/client/src/main/java/com/regula/documentreader/webclient/RawResultItemAdapter.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.regula.documentreader.webclient; - -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; - -public class RawResultItemAdapter extends TypeAdapter { - private final Gson gson = new Gson(); - - @Override - public void write(JsonWriter out, RawResultItem value) { - this.gson.toJson(value.getRaw(), out); - } - - @Override - public RawResultItem read(JsonReader in) { - RawResultItem rawResultItem = new RawResultItem(); - - JsonObject raw = this.gson.fromJson(in, JsonObject.class); - rawResultItem.withRaw(raw); - - return rawResultItem; - } -} diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/Images.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/Images.java old mode 100755 new mode 100644 diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ImagesField.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ImagesField.java old mode 100755 new mode 100644 diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestImage.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestImage.java old mode 100755 new mode 100644 diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionParams.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionParams.java old mode 100755 new mode 100644 diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java old mode 100755 new mode 100644 index 8fcb0464..227c6976 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java @@ -4,7 +4,7 @@ import com.regula.documentreader.webclient.model.ProcessParams; import com.regula.documentreader.webclient.model.ProcessRequest; import com.regula.documentreader.webclient.model.ProcessSystemInfo; -import com.regula.documentreader.webclient.model.changed.ContainerList; +import com.regula.documentreader.webclient.model.ContainerList; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java old mode 100755 new mode 100644 diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/Text.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/Text.java old mode 100755 new mode 100644 diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/TextField.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/TextField.java old mode 100755 new mode 100644 diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/Authenticity.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/Authenticity.java index db18d663..1a7bbfdf 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/Authenticity.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/Authenticity.java @@ -2,7 +2,7 @@ import com.regula.documentreader.webclient.model.AuthenticityCheckList; import com.regula.documentreader.webclient.model.AuthenticityResultType; -import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; +import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import java.util.List; import javax.annotation.Nullable; diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/AuthenticityResult.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/AuthenticityResult.java index 10ed487e..0ce72276 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/AuthenticityResult.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/AuthenticityResult.java @@ -1,6 +1,6 @@ package com.regula.documentreader.webclient.model.ext.authenticity; -import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; +import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import java.util.List; public abstract class AuthenticityResult { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/FiberChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/FiberChecks.java index 6ceefe28..1ac498e6 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/FiberChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/FiberChecks.java @@ -1,7 +1,7 @@ package com.regula.documentreader.webclient.model.ext.authenticity; import com.regula.documentreader.webclient.model.FiberResult; -import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; +import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import java.util.List; public class FiberChecks extends AuthenticityResult { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/IdentChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/IdentChecks.java index c8e90b0c..87a1e91d 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/IdentChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/IdentChecks.java @@ -2,7 +2,7 @@ import com.regula.documentreader.webclient.model.IdentResult; import com.regula.documentreader.webclient.model.SecurityFeatureType; -import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; +import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import java.util.List; import javax.annotation.Nullable; diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/ImageIdentChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/ImageIdentChecks.java index 3d5e54b0..bb3f88f5 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/ImageIdentChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/ImageIdentChecks.java @@ -1,7 +1,7 @@ package com.regula.documentreader.webclient.model.ext.authenticity; import com.regula.documentreader.webclient.model.PhotoIdentResult; -import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; +import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import java.util.List; public class ImageIdentChecks extends AuthenticityResult { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/OCRSecurityTextChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/OCRSecurityTextChecks.java index f2db5d32..a5068838 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/OCRSecurityTextChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/OCRSecurityTextChecks.java @@ -1,7 +1,7 @@ package com.regula.documentreader.webclient.model.ext.authenticity; import com.regula.documentreader.webclient.model.OCRSecurityTextResult; -import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; +import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import java.util.List; public class OCRSecurityTextChecks extends AuthenticityResult { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/SecurityFeatureChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/SecurityFeatureChecks.java index 24802ce3..5c6e1d98 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/SecurityFeatureChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/SecurityFeatureChecks.java @@ -2,7 +2,7 @@ import com.regula.documentreader.webclient.model.SecurityFeatureResult; import com.regula.documentreader.webclient.model.SecurityFeatureType; -import com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult; +import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import java.util.List; import javax.annotation.Nullable; diff --git a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java index 337f075d..f94eaee5 100644 --- a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java +++ b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java @@ -2,6 +2,7 @@ import com.regula.documentreader.webclient.api.DocumentReaderApi; import com.regula.documentreader.webclient.example.Main; +import com.regula.documentreader.webclient.model.*; import com.regula.documentreader.webclient.model.ext.*; import javax.annotation.Nullable; @@ -40,7 +41,7 @@ public static void main(String[] args) throws IOException, UnsupportedEncodingEx var requestParams = new RecognitionParams() .withScenario(Scenario.FULL_PROCESS) .withDoublePageSpread(true) - .withMeasureSystem(0) + .withMeasureSystem(MeasureSystem.METRIC) .withDateFormat("M/d/yyyy") .withAlreadyCropped(true); diff --git a/example/src/main/java/com/regula/documentreader/webclient/example/Main.java b/example/src/main/java/com/regula/documentreader/webclient/example/Main.java index c8eb49fc..0f4c767d 100755 --- a/example/src/main/java/com/regula/documentreader/webclient/example/Main.java +++ b/example/src/main/java/com/regula/documentreader/webclient/example/Main.java @@ -6,20 +6,22 @@ import com.regula.documentreader.webclient.ApiException; import com.regula.documentreader.webclient.api.DocumentReaderApi; import com.regula.documentreader.webclient.model.CheckResult; +import com.regula.documentreader.webclient.model.GraphicFieldType; import com.regula.documentreader.webclient.model.LexicalAnalysisResult; import com.regula.documentreader.webclient.model.Light; +import com.regula.documentreader.webclient.model.ProcessParams; import com.regula.documentreader.webclient.model.Result; import com.regula.documentreader.webclient.model.Scenario; import com.regula.documentreader.webclient.model.Source; import com.regula.documentreader.webclient.model.TextField; import com.regula.documentreader.webclient.model.ext.ProcessRequestImage; -import com.regula.documentreader.webclient.model.ext.RecognitionParams; import com.regula.documentreader.webclient.model.ext.RecognitionRequest; import com.regula.documentreader.webclient.model.ext.RecognitionResponse; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Arrays; import java.util.List; import javax.annotation.Nullable; @@ -42,24 +44,23 @@ public static void main(String[] args) throws IOException, ApiException { var whitePageRequestImage = new ProcessRequestImage(whitePage0, Light.WHITE, 0); - var requestParams = new RecognitionParams() - .withScenario(Scenario.FULL_PROCESS) -// .withResultTypeOutput( -// // actual results -// Result.STATUS, Result.TEXT, Result.IMAGES, -// Result.DOCUMENT_TYPE, Result.DOCUMENT_TYPE_CANDIDATES, Result.IMAGE_QUALITY, -// Result.DOCUMENT_POSITION, -// // legacy results -// Result.MRZ_TEXT, Result.VISUAL_TEXT, Result.BARCODE_TEXT, Result.RFID_TEXT, -// Result.VISUAL_GRAPHICS, Result.BARCODE_GRAPHICS, Result.RFID_GRAPHICS, -// Result.LEXICAL_ANALYSIS -// ) - .withAlreadyCropped(true); - - RecognitionRequest request = new RecognitionRequest( - requestParams, List.of(whitePageRequestImage) - ); - + var requestParams = new ProcessParams() + .scenario(Scenario.MRZ) + .resultTypeOutput( + Arrays.asList( + // actual results + Result.STATUS, Result.TEXT, Result.IMAGES, + Result.DOCUMENT_TYPE, Result.DOCUMENT_TYPE_CANDIDATES, Result.IMAGE_QUALITY, + Result.DOCUMENT_POSITION, + // legacy results + Result.MRZ_TEXT, Result.VISUAL_TEXT, Result.BARCODE_TEXT, Result.RFID_TEXT, + Result.VISUAL_GRAPHICS, Result.BARCODE_GRAPHICS, Result.RFID_GRAPHICS, + Result.LEXICAL_ANALYSIS + ) + ) + .alreadyCropped(true); + + RecognitionRequest request = new RecognitionRequest(requestParams, List.of(whitePageRequestImage)); String finalApiBaseUrl = apiBaseUrl; @@ -79,6 +80,7 @@ public static void main(String[] args) throws IOException, ApiException { RecognitionResponse response = api.process(request); var requestJson = request.json(); var responseJson = response.json(); + System.out.println(response.text()); // to send raw request(ex encrypted one) with overriding processing params here use next api // RecognitionResponse response = api.process(request, requestParams); @@ -98,14 +100,7 @@ public static void main(String[] args) throws IOException, ApiException { var docNumberMrzValidity = docNumberField.sourceValidity(Source.MRZ); var docNumberMrzVisualMatching = docNumberField.crossSourceComparison(Source.MRZ, Source.VISUAL); -// var docAuthenticity = response.authenticity(); - -// var docIRB900 = docAuthenticity.irB900Checks(); -// var docIRB900Blank = docIRB900.checksByElement(SecurityFeatureType.BLANK); - -// var docImagePattern = docAuthenticity.imagePatternChecks(); -// var docImagePatternBlank = docImagePattern.checksByElement(SecurityFeatureType.BLANK); - + System.out.println(); System.out.format("-----------------------------------------------------------------" + "\n" + "Document Type: " + docType + "\n" + "Document Overall Status: " + docOverallStatus + "\n" @@ -115,6 +110,7 @@ public static void main(String[] args) throws IOException, ApiException { + "Validity Of Document Number MRZ: " + docNumberMrzValidity + "\n" + "MRZ-Visual values comparison: " + docNumberMrzVisualMatching + "\n" + "-----------------------------------------------------------------"); + System.out.println(); if (response.text() != null) { for (TextField field : response.text().getFieldList()) { @@ -132,19 +128,26 @@ public static void main(String[] args) throws IOException, ApiException { System.out.format("---------------------------------------------------------------"); } -// var documentImage = response.images().getField(DOCUMENT_FRONT).getValue(); -// var portraitField = response.images().getField(PORTRAIT); -// var portraitFromVisual = portraitField.getValue(Source.VISUAL); -// saveFile("document-image.jpg", documentImage); -// saveFile("portrait.jpg", portraitFromVisual); + var documentImage = response.images().getField(GraphicFieldType.DOCUMENT_FRONT).getValue(); + var portraitField = response.images().getField(GraphicFieldType.PORTRAIT); + var portraitFromVisual = portraitField.getValue(Source.VISUAL); + + try { + saveFile("document-image.jpg", documentImage); + } catch (IOException e) { + throw new RuntimeException(e); + } + try { + saveFile("portrait.jpg", portraitFromVisual); + } catch (IOException e) { + throw new RuntimeException(e); + } // how to get low lvl individual results LexicalAnalysisResult lexResult = response.resultByType(Result.LEXICAL_ANALYSIS); - }).start(); - -// System.exit(0); + System.exit(0); } @Nullable diff --git a/java-generator-config.json b/java-generator-config.json index 7fdfb9e7..7a674551 100755 --- a/java-generator-config.json +++ b/java-generator-config.json @@ -15,13 +15,11 @@ "ImagesField" : "com.regula.documentreader.webclient.model.ext.ImagesField", "Text": "com.regula.documentreader.webclient.model.ext.Text", "Images" : "com.regula.documentreader.webclient.model.ext.Images", - "AuthenticityCheckList" : "com.regula.documentreader.webclient.model.ext.authenticity.Authenticity" - }, - "schemaMappings": { - "ContainerList": "com.regula.documentreader.webclient.model.changed.ContainerList", - "AuthenticityCheckResult": "com.regula.documentreader.webclient.model.changed.AuthenticityCheckResult", - "DocVisualExtendedInfo": "com.regula.documentreader.webclient.model.changed.DocVisualExtendedInfo", - "GraphicFieldsList": "com.regula.documentreader.webclient.model.changed.GraphicFieldsList" + "AuthenticityCheckList" : "com.regula.documentreader.webclient.model.ext.authenticity.Authenticity", + "ContainerListListInner": "ResultItem", + "AuthenticityCheckResultListInner": "AuthenticityCheckResultItem", + "DocVisualExtendedInfoPArrayFieldsInner": "DocVisualExtendedInfo", + "GraphicFieldsListPArrayFieldsInner": "GraphicFieldsList" }, "nameMappings": { "List": "list" From 29a28f45dc343558af159256c47674071b1c34cc Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Fri, 7 Mar 2025 15:57:45 +0300 Subject: [PATCH 03/19] Fix example --- client/.openapi-generator/FILES | 10 +- client/build.gradle.kts | 1 + client/generator-templates/JSON.mustache | 536 ------------------ .../regula/documentreader/webclient/JSON.java | 56 +- .../webclient/model/AuthenticityResult.java | 14 +- .../webclient/model/CertificateData.java | 241 ++++++++ .../model/ContainerListListInner.java | 69 ++- .../model/DocVisualExtendedInfo.java | 12 +- .../webclient/model/FileImage.java | 235 ++++++++ .../webclient/model/GraphData.java | 377 ++++++++++++ .../webclient/model/GraphicFieldsList.java | 13 +- .../webclient/model/Images.java | 18 +- .../webclient/model/ImagesResult.java | 10 +- .../webclient/model/ParsedData.java | 212 +++++++ .../model/RFIDGraphicsInfoResult.java | 213 +++++++ .../webclient/model/ResultItem.java | 6 + .../webclient/model/RfidDataFile.java | 172 ++++-- .../webclient/model/RfidRawData.java | 235 ++++++++ .../webclient/model/RfidSessionData.java | 101 +++- .../model/SecurityObjectCertificates.java | 194 +++++++ .../webclient/model/TDocBinaryInfo.java | 84 ++- .../model/TOriginalRFIDGraphicsInfo.java | 233 ++++++++ .../documentreader/webclient/model/Text.java | 18 +- .../webclient/model/TextResult.java | 10 +- .../webclient/model/TrfFtBytes.java | 11 +- .../webclient/model/TrfFtString.java | 45 +- .../webclient/model/TrfFtStringStatus.java | 267 --------- .../webclient/model/TrfFtStringType.java | 261 --------- .../webclient/model/ext/Images.java | 13 +- .../webclient/model/ext/ImagesField.java | 7 +- .../model/ext/RecognitionRequest.java | 2 +- .../model/ext/RecognitionResponse.java | 6 +- .../webclient/model/ext/Text.java | 20 +- .../webclient/model/ext/TextField.java | 5 + .../model/ext/authenticity/Authenticity.java | 7 +- .../model/ext/authenticity/FiberChecks.java | 2 +- .../model/ext/authenticity/IdentChecks.java | 2 +- .../ext/authenticity/ImageIdentChecks.java | 2 +- .../authenticity/OCRSecurityTextChecks.java | 2 +- .../authenticity/SecurityFeatureChecks.java | 2 +- .../webclient/encryptedRCL/Example.java | 11 +- .../webclient/example/Main.java | 3 +- java-generator-config.json | 9 +- 43 files changed, 2450 insertions(+), 1297 deletions(-) delete mode 100644 client/generator-templates/JSON.mustache create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/CertificateData.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/FileImage.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphData.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RFIDGraphicsInfoResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RfidRawData.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/SecurityObjectCertificates.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfo.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringStatus.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringType.java diff --git a/client/.openapi-generator/FILES b/client/.openapi-generator/FILES index 80b4239d..0a6be84a 100755 --- a/client/.openapi-generator/FILES +++ b/client/.openapi-generator/FILES @@ -35,6 +35,7 @@ src/main/generated/com/regula/documentreader/webclient/model/BcPDF417INFO.java src/main/generated/com/regula/documentreader/webclient/model/BcROIDETECT.java src/main/generated/com/regula/documentreader/webclient/model/BinaryData.java src/main/generated/com/regula/documentreader/webclient/model/ByteArrayResult.java +src/main/generated/com/regula/documentreader/webclient/model/CertificateData.java src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentType.java @@ -76,7 +77,9 @@ src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionResult src/main/generated/com/regula/documentreader/webclient/model/FaceItem.java src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java src/main/generated/com/regula/documentreader/webclient/model/FieldItem.java +src/main/generated/com/regula/documentreader/webclient/model/FileImage.java src/main/generated/com/regula/documentreader/webclient/model/GetTransactionsByTagResponse.java +src/main/generated/com/regula/documentreader/webclient/model/GraphData.java src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java @@ -127,6 +130,7 @@ src/main/generated/com/regula/documentreader/webclient/model/OriginalSymbol.java src/main/generated/com/regula/documentreader/webclient/model/OutData.java src/main/generated/com/regula/documentreader/webclient/model/OutDataTransactionImagesFieldValue.java src/main/generated/com/regula/documentreader/webclient/model/PArrayField.java +src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java src/main/generated/com/regula/documentreader/webclient/model/ParsingErrorCodes.java src/main/generated/com/regula/documentreader/webclient/model/ParsingNotificationCodes.java src/main/generated/com/regula/documentreader/webclient/model/PerDocumentConfig.java @@ -142,6 +146,7 @@ src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.jav src/main/generated/com/regula/documentreader/webclient/model/ProcessSystemInfo.java src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.java src/main/generated/com/regula/documentreader/webclient/model/RFIDErrorCodes.java +src/main/generated/com/regula/documentreader/webclient/model/RFIDGraphicsInfoResult.java src/main/generated/com/regula/documentreader/webclient/model/RFIDPKDResourceType.java src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerList.java src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java @@ -171,6 +176,7 @@ src/main/generated/com/regula/documentreader/webclient/model/RfidLocation.java src/main/generated/com/regula/documentreader/webclient/model/RfidOrigin.java src/main/generated/com/regula/documentreader/webclient/model/RfidPasswordType.java src/main/generated/com/regula/documentreader/webclient/model/RfidPkiExtension.java +src/main/generated/com/regula/documentreader/webclient/model/RfidRawData.java src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java @@ -181,6 +187,7 @@ src/main/generated/com/regula/documentreader/webclient/model/RfidValidity.java src/main/generated/com/regula/documentreader/webclient/model/Scenario.java src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureResult.java src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureType.java +src/main/generated/com/regula/documentreader/webclient/model/SecurityObjectCertificates.java src/main/generated/com/regula/documentreader/webclient/model/Source.java src/main/generated/com/regula/documentreader/webclient/model/SourceValidity.java src/main/generated/com/regula/documentreader/webclient/model/Status.java @@ -192,6 +199,7 @@ src/main/generated/com/regula/documentreader/webclient/model/SymbolCandidate.jav src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java src/main/generated/com/regula/documentreader/webclient/model/SymbolRecognitionResult.java src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java +src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfo.java src/main/generated/com/regula/documentreader/webclient/model/Text.java src/main/generated/com/regula/documentreader/webclient/model/TextAvailableSource.java src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java @@ -209,8 +217,6 @@ src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessR src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytesType.java src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java -src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringStatus.java -src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringType.java src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java src/main/generated/com/regula/documentreader/webclient/model/Visibility.java diff --git a/client/build.gradle.kts b/client/build.gradle.kts index c3bf2e96..325dbceb 100755 --- a/client/build.gradle.kts +++ b/client/build.gradle.kts @@ -23,6 +23,7 @@ dependencies { implementation("io.swagger:swagger-annotations:1.5.24") implementation("javax.annotation:javax.annotation-api:1.3.2") implementation("com.google.code.findbugs:jsr305:3.0.2") + implementation("org.springframework:spring-beans:5.3.20") } tasks.withType { diff --git a/client/generator-templates/JSON.mustache b/client/generator-templates/JSON.mustache deleted file mode 100644 index eee7773c..00000000 --- a/client/generator-templates/JSON.mustache +++ /dev/null @@ -1,536 +0,0 @@ -{{>licenseInfo}} - -package {{invokerPackage}}; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonParseException; -import com.google.gson.TypeAdapter; -import com.google.gson.internal.bind.util.ISO8601Utils; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.google.gson.JsonElement; -import io.gsonfire.GsonFireBuilder; -import io.gsonfire.TypeSelector; -{{#joda}} -import org.joda.time.DateTime; -import org.joda.time.LocalDate; -import org.joda.time.format.DateTimeFormatter; -import org.joda.time.format.DateTimeFormatterBuilder; -import org.joda.time.format.ISODateTimeFormat; -{{/joda}} - -import okio.ByteString; - -import java.io.IOException; -import java.io.StringReader; -import java.lang.reflect.Type; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.ParsePosition; -{{#jsr310}} -import java.time.LocalDate; -import java.time.OffsetDateTime; -import java.time.format.DateTimeFormatter; -{{/jsr310}} -import java.util.Date; -import java.util.Locale; -import java.util.Map; -import java.util.HashMap; - -/* - * A JSON utility class - * - * NOTE: in the future, this class may be converted to static, which may break - * backward-compatibility - */ -public class JSON { - private static Gson gson; - private static boolean isLenientOnJson = false; - private static DateTypeAdapter dateTypeAdapter = new DateTypeAdapter(); - private static SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter(); - {{#joda}} - private static DateTimeTypeAdapter dateTimeTypeAdapter = new DateTimeTypeAdapter(); - private static LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter(); - {{/joda}} - {{#jsr310}} - private static OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter(); - private static LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter(); - {{/jsr310}} - private static ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter(); - - @SuppressWarnings("unchecked") - public static GsonBuilder createGson() { - GsonFireBuilder fireBuilder = new GsonFireBuilder() - {{#models}} - {{#model}} - {{#discriminator}} - .registerTypeSelector({{modelPackage}}.{{classname}}.class, new TypeSelector<{{modelPackage}}.{{classname}}>() { - @Override - public Class getClassForElement(JsonElement readElement) { - Map classByDiscriminatorValue = new HashMap(); - {{#mappedModels}} - classByDiscriminatorValue.put("{{mappingName}}"{{^discriminatorCaseSensitive}}.toUpperCase(Locale.ROOT){{/discriminatorCaseSensitive}}, {{modelPackage}}.{{modelName}}.class); - {{/mappedModels}} - classByDiscriminatorValue.put("{{name}}"{{^discriminatorCaseSensitive}}.toUpperCase(Locale.ROOT){{/discriminatorCaseSensitive}}, {{modelPackage}}.{{classname}}.class); - return getClassByDiscriminator(classByDiscriminatorValue, - getDiscriminatorValue(readElement, "{{{propertyBaseName}}}")); - } - }) - {{/discriminator}} - {{/model}} - {{/models}} - ; - GsonBuilder builder = fireBuilder.createGsonBuilder(); - {{#disableHtmlEscaping}} - builder.disableHtmlEscaping(); - {{/disableHtmlEscaping}} - return builder; - } - - private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) { - JsonElement element = readElement.getAsJsonObject().get(discriminatorField); - if (null == element) { - throw new IllegalArgumentException("missing discriminator field: <" + discriminatorField + ">"); - } - return element.getAsString(); - } - - /** - * Returns the Java class that implements the OpenAPI schema for the specified discriminator value. - * - * @param classByDiscriminatorValue The map of discriminator values to Java classes. - * @param discriminatorValue The value of the OpenAPI discriminator in the input data. - * @return The Java class that implements the OpenAPI schema - */ - private static Class getClassByDiscriminator(Map classByDiscriminatorValue, String discriminatorValue) { - Class clazz = (Class) classByDiscriminatorValue.get(discriminatorValue{{^discriminatorCaseSensitive}}.toUpperCase(Locale.ROOT){{/discriminatorCaseSensitive}}); - if (null == clazz) { - throw new IllegalArgumentException("cannot determine model class of name: <" + discriminatorValue + ">"); - } - return clazz; - } - - static { - GsonBuilder gsonBuilder = createGson(); - gsonBuilder.registerTypeAdapter(Date.class, dateTypeAdapter); - gsonBuilder.registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter); - {{#joda}} - gsonBuilder.registerTypeAdapter(DateTime.class, dateTimeTypeAdapter); - gsonBuilder.registerTypeAdapter(LocalDate.class, localDateTypeAdapter); - {{/joda}} - {{#jsr310}} - gsonBuilder.registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter); - gsonBuilder.registerTypeAdapter(LocalDate.class, localDateTypeAdapter); - {{/jsr310}} - gsonBuilder.registerTypeAdapter(byte[].class, byteArrayAdapter); - {{#models}} - {{#model}} - {{^isEnum}} - {{^hasChildren}} - gsonBuilder.registerTypeAdapterFactory(new {{modelPackage}}.{{{classname}}}.CustomTypeAdapterFactory()); - {{/hasChildren}} - {{/isEnum}} - {{/model}} - {{/models}} - gson = gsonBuilder.create(); - } - - /** - * Get Gson. - * - * @return Gson - */ - public static Gson getGson() { - return gson; - } - - /** - * Set Gson. - * - * @param gson Gson - */ - public static void setGson(Gson gson) { - JSON.gson = gson; - } - - public static void setLenientOnJson(boolean lenientOnJson) { - isLenientOnJson = lenientOnJson; - } - - /** - * Serialize the given Java object into JSON string. - * - * @param obj Object - * @return String representation of the JSON - */ - public static String serialize(Object obj) { - return gson.toJson(obj); - } - - /** - * Deserialize the given JSON string to Java object. - * - * @param Type - * @param body The JSON string - * @param returnType The type to deserialize into - * @return The deserialized Java object - */ - @SuppressWarnings("unchecked") - public static T deserialize(String body, Type returnType) { - try { - if (isLenientOnJson) { - JsonReader jsonReader = new JsonReader(new StringReader(body)); - // see https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/stream/JsonReader.html#setLenient(boolean) - jsonReader.setLenient(true); - return gson.fromJson(jsonReader, returnType); - } else { - return gson.fromJson(body, returnType); - } - } catch (JsonParseException e) { - // Fallback processing when failed to parse JSON form response body: - // return the response body string directly for the String return type; - if (returnType.equals(String.class)) { - return (T) body; - } else { - throw (e); - } - } - } - - /** - * Gson TypeAdapter for Byte Array type - */ - public static class ByteArrayAdapter extends TypeAdapter { - - @Override - public void write(JsonWriter out, byte[] value) throws IOException { - if (value == null) { - out.nullValue(); - } else { - out.value(ByteString.of(value).base64()); - } - } - - @Override - public byte[] read(JsonReader in) throws IOException { - switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String bytesAsBase64 = in.nextString(); - ByteString byteString = ByteString.decodeBase64(bytesAsBase64); - return byteString.toByteArray(); - } - } - } - - {{#joda}} - /** - * Gson TypeAdapter for Joda DateTime type - */ - public static class DateTimeTypeAdapter extends TypeAdapter { - - private DateTimeFormatter formatter; - - public DateTimeTypeAdapter() { - this(new DateTimeFormatterBuilder() - .append(ISODateTimeFormat.dateTime().getPrinter(), ISODateTimeFormat.dateOptionalTimeParser().getParser()) - .toFormatter()); - } - - public DateTimeTypeAdapter(DateTimeFormatter formatter) { - this.formatter = formatter; - } - - public void setFormat(DateTimeFormatter dateFormat) { - this.formatter = dateFormat; - } - - @Override - public void write(JsonWriter out, DateTime date) throws IOException { - if (date == null) { - out.nullValue(); - } else { - out.value(formatter.print(date)); - } - } - - @Override - public DateTime read(JsonReader in) throws IOException { - switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - return formatter.parseDateTime(date); - } - } - } - - /** - * Gson TypeAdapter for Joda LocalDate type - */ - public static class LocalDateTypeAdapter extends TypeAdapter { - - private DateTimeFormatter formatter; - - public LocalDateTypeAdapter() { - this(ISODateTimeFormat.date()); - } - - public LocalDateTypeAdapter(DateTimeFormatter formatter) { - this.formatter = formatter; - } - - public void setFormat(DateTimeFormatter dateFormat) { - this.formatter = dateFormat; - } - - @Override - public void write(JsonWriter out, LocalDate date) throws IOException { - if (date == null) { - out.nullValue(); - } else { - out.value(formatter.print(date)); - } - } - - @Override - public LocalDate read(JsonReader in) throws IOException { - switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - return formatter.parseLocalDate(date); - } - } - } - - public static void setDateTimeFormat(DateTimeFormatter dateFormat) { - dateTimeTypeAdapter.setFormat(dateFormat); - } - - public static void setLocalDateFormat(DateTimeFormatter dateFormat) { - localDateTypeAdapter.setFormat(dateFormat); - } - - {{/joda}} - {{#jsr310}} - /** - * Gson TypeAdapter for JSR310 OffsetDateTime type - */ - public static class OffsetDateTimeTypeAdapter extends TypeAdapter { - - private DateTimeFormatter formatter; - - public OffsetDateTimeTypeAdapter() { - this(DateTimeFormatter.ISO_OFFSET_DATE_TIME); - } - - public OffsetDateTimeTypeAdapter(DateTimeFormatter formatter) { - this.formatter = formatter; - } - - public void setFormat(DateTimeFormatter dateFormat) { - this.formatter = dateFormat; - } - - @Override - public void write(JsonWriter out, OffsetDateTime date) throws IOException { - if (date == null) { - out.nullValue(); - } else { - out.value(formatter.format(date)); - } - } - - @Override - public OffsetDateTime read(JsonReader in) throws IOException { - switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - if (date.endsWith("+0000")) { - date = date.substring(0, date.length()-5) + "Z"; - } - return OffsetDateTime.parse(date, formatter); - } - } - } - - /** - * Gson TypeAdapter for JSR310 LocalDate type - */ - public static class LocalDateTypeAdapter extends TypeAdapter { - - private DateTimeFormatter formatter; - - public LocalDateTypeAdapter() { - this(DateTimeFormatter.ISO_LOCAL_DATE); - } - - public LocalDateTypeAdapter(DateTimeFormatter formatter) { - this.formatter = formatter; - } - - public void setFormat(DateTimeFormatter dateFormat) { - this.formatter = dateFormat; - } - - @Override - public void write(JsonWriter out, LocalDate date) throws IOException { - if (date == null) { - out.nullValue(); - } else { - out.value(formatter.format(date)); - } - } - - @Override - public LocalDate read(JsonReader in) throws IOException { - switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - return LocalDate.parse(date, formatter); - } - } - } - - public static void setOffsetDateTimeFormat(DateTimeFormatter dateFormat) { - offsetDateTimeTypeAdapter.setFormat(dateFormat); - } - - public static void setLocalDateFormat(DateTimeFormatter dateFormat) { - localDateTypeAdapter.setFormat(dateFormat); - } - - {{/jsr310}} - /** - * Gson TypeAdapter for java.sql.Date type - * If the dateFormat is null, a simple "yyyy-MM-dd" format will be used - * (more efficient than SimpleDateFormat). - */ - public static class SqlDateTypeAdapter extends TypeAdapter { - - private DateFormat dateFormat; - - public SqlDateTypeAdapter() {} - - public SqlDateTypeAdapter(DateFormat dateFormat) { - this.dateFormat = dateFormat; - } - - public void setFormat(DateFormat dateFormat) { - this.dateFormat = dateFormat; - } - - @Override - public void write(JsonWriter out, java.sql.Date date) throws IOException { - if (date == null) { - out.nullValue(); - } else { - String value; - if (dateFormat != null) { - value = dateFormat.format(date); - } else { - value = date.toString(); - } - out.value(value); - } - } - - @Override - public java.sql.Date read(JsonReader in) throws IOException { - switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - try { - if (dateFormat != null) { - return new java.sql.Date(dateFormat.parse(date).getTime()); - } - return new java.sql.Date(ISO8601Utils.parse(date, new ParsePosition(0)).getTime()); - } catch (ParseException e) { - throw new JsonParseException(e); - } - } - } - } - - /** - * Gson TypeAdapter for java.util.Date type - * If the dateFormat is null, ISO8601Utils will be used. - */ - public static class DateTypeAdapter extends TypeAdapter { - - private DateFormat dateFormat; - - public DateTypeAdapter() {} - - public DateTypeAdapter(DateFormat dateFormat) { - this.dateFormat = dateFormat; - } - - public void setFormat(DateFormat dateFormat) { - this.dateFormat = dateFormat; - } - - @Override - public void write(JsonWriter out, Date date) throws IOException { - if (date == null) { - out.nullValue(); - } else { - String value; - if (dateFormat != null) { - value = dateFormat.format(date); - } else { - value = ISO8601Utils.format(date, true); - } - out.value(value); - } - } - - @Override - public Date read(JsonReader in) throws IOException { - try { - switch (in.peek()) { - case NULL: - in.nextNull(); - return null; - default: - String date = in.nextString(); - try { - if (dateFormat != null) { - return dateFormat.parse(date); - } - return ISO8601Utils.parse(date, new ParsePosition(0)); - } catch (ParseException e) { - throw new JsonParseException(e); - } - } - } catch (IllegalArgumentException e) { - throw new JsonParseException(e); - } - } - } - - public static void setDateFormat(DateFormat dateFormat) { - dateTypeAdapter.setFormat(dateFormat); - } - - public static void setSqlDateFormat(DateFormat dateFormat) { - sqlDateTypeAdapter.setFormat(dateFormat); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java index 9db75484..82855652 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java @@ -267,6 +267,9 @@ public static GsonBuilder createGson() { Map classByDiscriminatorValue = new HashMap(); classByDiscriminatorValue.put( "1", com.regula.documentreader.webclient.model.DocumentImageResult.class); + classByDiscriminatorValue.put( + "101", + com.regula.documentreader.webclient.model.DocumentBinaryInfoResult.class); classByDiscriminatorValue.put( "102", com.regula.documentreader.webclient.model.TextDataResult.class); classByDiscriminatorValue.put( @@ -274,6 +277,9 @@ public static GsonBuilder createGson() { classByDiscriminatorValue.put( "104", com.regula.documentreader.webclient.model.DocumentBinaryInfoResult.class); + classByDiscriminatorValue.put( + "105", + com.regula.documentreader.webclient.model.RFIDGraphicsInfoResult.class); classByDiscriminatorValue.put( "109", com.regula.documentreader.webclient.model.ByteArrayResult.class); classByDiscriminatorValue.put( @@ -395,6 +401,9 @@ public static GsonBuilder createGson() { classByDiscriminatorValue.put( "MRZTestQualityResult", com.regula.documentreader.webclient.model.MRZTestQualityResult.class); + classByDiscriminatorValue.put( + "RFIDGraphicsInfoResult", + com.regula.documentreader.webclient.model.RFIDGraphicsInfoResult.class); classByDiscriminatorValue.put( "StatusResult", com.regula.documentreader.webclient.model.StatusResult.class); @@ -712,6 +721,24 @@ public static GsonBuilder createGson() { classByDiscriminatorValue, getDiscriminatorValue(readElement, "Type")); } }) + .registerTypeSelector( + com.regula.documentreader.webclient.model.RFIDGraphicsInfoResult.class, + new TypeSelector< + com.regula.documentreader.webclient.model.RFIDGraphicsInfoResult>() { + @Override + public Class< + ? extends + com.regula.documentreader.webclient.model.RFIDGraphicsInfoResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "RFIDGraphicsInfoResult", + com.regula.documentreader.webclient.model.RFIDGraphicsInfoResult.class); + return getClassByDiscriminator( + classByDiscriminatorValue, + getDiscriminatorValue(readElement, "result_type")); + } + }) .registerTypeSelector( com.regula.documentreader.webclient.model.ResultItem.class, new TypeSelector() { @@ -721,6 +748,9 @@ public static GsonBuilder createGson() { Map classByDiscriminatorValue = new HashMap(); classByDiscriminatorValue.put( "1", com.regula.documentreader.webclient.model.DocumentImageResult.class); + classByDiscriminatorValue.put( + "101", + com.regula.documentreader.webclient.model.DocumentBinaryInfoResult.class); classByDiscriminatorValue.put( "102", com.regula.documentreader.webclient.model.TextDataResult.class); classByDiscriminatorValue.put( @@ -728,6 +758,9 @@ public static GsonBuilder createGson() { classByDiscriminatorValue.put( "104", com.regula.documentreader.webclient.model.DocumentBinaryInfoResult.class); + classByDiscriminatorValue.put( + "105", + com.regula.documentreader.webclient.model.RFIDGraphicsInfoResult.class); classByDiscriminatorValue.put( "109", com.regula.documentreader.webclient.model.ByteArrayResult.class); classByDiscriminatorValue.put( @@ -925,6 +958,8 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.BinaryData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ByteArrayResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.CertificateData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ChosenDocumentType .CustomTypeAdapterFactory()); @@ -1010,9 +1045,13 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.FiberResult.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.FieldItem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.FileImage.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.GetTransactionsByTagResponse .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.GraphData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.GraphicFieldRect.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1104,6 +1143,8 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.PArrayField.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ParsedData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.PerDocumentConfig.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1125,6 +1166,9 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ProcessSystemInfo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RFIDGraphicsInfoResult + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.RawImageContainerList .CustomTypeAdapterFactory()); @@ -1160,6 +1204,8 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.RfidOrigin.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.RfidPkiExtension.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RfidRawData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.RfidSecurityObject .CustomTypeAdapterFactory()); @@ -1174,6 +1220,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.SecurityFeatureResult .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.SecurityObjectCertificates + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.SourceValidity.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1197,6 +1246,9 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.TDocBinaryInfo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TOriginalRFIDGraphicsInfo + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.Text.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1232,10 +1284,6 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.TrfFtBytesType.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.TrfFtString.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.TrfFtStringStatus.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.TrfFtStringType.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.VerifiedFieldMap.CustomTypeAdapterFactory()); gson = gsonBuilder.create(); diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java index 862569e3..90db5d69 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java @@ -37,15 +37,12 @@ public class AuthenticityResult extends ResultItem { @SerializedName(SERIALIZED_NAME_AUTHENTICITY_CHECK_LIST) @javax.annotation.Nonnull - private com.regula.documentreader.webclient.model.ext.authenticity.Authenticity - authenticityCheckList; + private AuthenticityCheckList authenticityCheckList; public AuthenticityResult() {} public AuthenticityResult authenticityCheckList( - @javax.annotation.Nonnull - com.regula.documentreader.webclient.model.ext.authenticity.Authenticity - authenticityCheckList) { + @javax.annotation.Nonnull AuthenticityCheckList authenticityCheckList) { this.authenticityCheckList = authenticityCheckList; return this; } @@ -56,15 +53,12 @@ public AuthenticityResult authenticityCheckList( * @return authenticityCheckList */ @javax.annotation.Nonnull - public com.regula.documentreader.webclient.model.ext.authenticity.Authenticity - getAuthenticityCheckList() { + public AuthenticityCheckList getAuthenticityCheckList() { return authenticityCheckList; } public void setAuthenticityCheckList( - @javax.annotation.Nonnull - com.regula.documentreader.webclient.model.ext.authenticity.Authenticity - authenticityCheckList) { + @javax.annotation.Nonnull AuthenticityCheckList authenticityCheckList) { this.authenticityCheckList = authenticityCheckList; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/CertificateData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/CertificateData.java new file mode 100644 index 00000000..4c799a00 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/CertificateData.java @@ -0,0 +1,241 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** CertificateData */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class CertificateData { + public static final String SERIALIZED_NAME_DATA = "Data"; + + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nonnull + private String data; + + public static final String SERIALIZED_NAME_LENGTH = "Length"; + + @SerializedName(SERIALIZED_NAME_LENGTH) + @javax.annotation.Nonnull + private String length; + + public CertificateData() {} + + public CertificateData data(@javax.annotation.Nonnull String data) { + this.data = data; + return this; + } + + /** + * Get data + * + * @return data + */ + @javax.annotation.Nonnull + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nonnull String data) { + this.data = data; + } + + public CertificateData length(@javax.annotation.Nonnull String length) { + this.length = length; + return this; + } + + /** + * Get length + * + * @return length + */ + @javax.annotation.Nonnull + public String getLength() { + return length; + } + + public void setLength(@javax.annotation.Nonnull String length) { + this.length = length; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CertificateData certificateData = (CertificateData) o; + return Objects.equals(this.data, certificateData.data) + && Objects.equals(this.length, certificateData.length); + } + + @Override + public int hashCode() { + return Objects.hash(data, length); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CertificateData {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" length: ").append(toIndentedString(length)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("Length"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Data"); + openapiRequiredFields.add("Length"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CertificateData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CertificateData.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in CertificateData is not found in the empty JSON string", + CertificateData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CertificateData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `CertificateData` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : CertificateData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Data` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Data").toString())); + } + if (!jsonObj.get("Length").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Length` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Length").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CertificateData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CertificateData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(CertificateData.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, CertificateData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CertificateData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of CertificateData given an JSON string + * + * @param jsonString JSON string + * @return An instance of CertificateData + * @throws IOException if the JSON string is invalid with respect to CertificateData + */ + public static CertificateData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CertificateData.class); + } + + /** + * Convert an instance of CertificateData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java index 10db439d..5114f428 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java @@ -83,6 +83,8 @@ public TypeAdapter create(Gson gson, TypeToken type) { gson.getDelegateAdapter(this, TypeToken.get(MRZPositionResult.class)); final TypeAdapter adapterMRZTestQualityResult = gson.getDelegateAdapter(this, TypeToken.get(MRZTestQualityResult.class)); + final TypeAdapter adapterRFIDGraphicsInfoResult = + gson.getDelegateAdapter(this, TypeToken.get(RFIDGraphicsInfoResult.class)); return (TypeAdapter) new TypeAdapter() { @@ -253,8 +255,16 @@ public void write(JsonWriter out, ContainerListListInner value) throws IOExcepti elementAdapter.write(out, element); return; } + // check if the actual instance is of the type `RFIDGraphicsInfoResult` + if (value.getActualInstance() instanceof RFIDGraphicsInfoResult) { + JsonElement element = + adapterRFIDGraphicsInfoResult.toJsonTree( + (RFIDGraphicsInfoResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } throw new IOException( - "Failed to serialize as the type doesn't match oneOf schemas: AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, StatusResult, TextDataResult, TextResult"); + "Failed to serialize as the type doesn't match oneOf schemas: AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, StatusResult, TextDataResult, TextResult"); } @Override @@ -577,6 +587,22 @@ public ContainerListListInner read(JsonReader in) throws IOException { e.getMessage())); log.log(Level.FINER, "Input data does not match schema 'MRZTestQualityResult'", e); } + // deserialize RFIDGraphicsInfoResult + try { + // validate the JSON object to see if any exception is thrown + RFIDGraphicsInfoResult.validateJsonElement(jsonElement); + actualAdapter = adapterRFIDGraphicsInfoResult; + match++; + log.log(Level.FINER, "Input data matches schema 'RFIDGraphicsInfoResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for RFIDGraphicsInfoResult failed with `%s`.", + e.getMessage())); + log.log( + Level.FINER, "Input data does not match schema 'RFIDGraphicsInfoResult'", e); + } if (match == 1) { ContainerListListInner ret = new ContainerListListInner(); @@ -627,6 +653,7 @@ public ContainerListListInner(Object o) { schemas.put("MRZDetectorResult", MRZDetectorResult.class); schemas.put("MRZPositionResult", MRZPositionResult.class); schemas.put("MRZTestQualityResult", MRZTestQualityResult.class); + schemas.put("RFIDGraphicsInfoResult", RFIDGraphicsInfoResult.class); } @Override @@ -640,7 +667,8 @@ public Map> getSchemas() { * DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, * DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, * ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, - * MRZPositionResult, MRZTestQualityResult, StatusResult, TextDataResult, TextResult + * MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, StatusResult, TextDataResult, + * TextResult * *

It could be an instance of the 'oneOf' schemas. */ @@ -751,8 +779,13 @@ public void setActualInstance(Object instance) { return; } + if (instance instanceof RFIDGraphicsInfoResult) { + super.setActualInstance(instance); + return; + } + throw new RuntimeException( - "Invalid instance type. Must be AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, StatusResult, TextDataResult, TextResult"); + "Invalid instance type. Must be AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, StatusResult, TextDataResult, TextResult"); } /** @@ -760,14 +793,15 @@ public void setActualInstance(Object instance) { * ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, * DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, * GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, - * MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, StatusResult, TextDataResult, - * TextResult + * MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, + * StatusResult, TextDataResult, TextResult * * @return The actual instance (AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, * DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, * DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, * ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, - * MRZPositionResult, MRZTestQualityResult, StatusResult, TextDataResult, TextResult) + * MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, StatusResult, + * TextDataResult, TextResult) */ @SuppressWarnings("unchecked") @Override @@ -1007,6 +1041,17 @@ public MRZTestQualityResult getMRZTestQualityResult() throws ClassCastException return (MRZTestQualityResult) super.getActualInstance(); } + /** + * Get the actual instance of `RFIDGraphicsInfoResult`. If the actual instance is not + * `RFIDGraphicsInfoResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `RFIDGraphicsInfoResult` + * @throws ClassCastException if the instance is not `RFIDGraphicsInfoResult` + */ + public RFIDGraphicsInfoResult getRFIDGraphicsInfoResult() throws ClassCastException { + return (RFIDGraphicsInfoResult) super.getActualInstance(); + } + /** * Validates the JSON Element and throws an exception if issues found * @@ -1218,10 +1263,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti "Deserialization for MRZTestQualityResult failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with RFIDGraphicsInfoResult + try { + RFIDGraphicsInfoResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for RFIDGraphicsInfoResult failed with `%s`.", e.getMessage())); + // continue to the next one + } if (validCount != 1) { throw new IOException( String.format( - "The JSON string is invalid for ContainerListListInner with oneOf schemas: AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, StatusResult, TextDataResult, TextResult. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + "The JSON string is invalid for ContainerListListInner with oneOf schemas: AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, StatusResult, TextDataResult, TextResult. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java index ab813ebb..1b457553 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java @@ -47,7 +47,7 @@ public class DocVisualExtendedInfo { @SerializedName(SERIALIZED_NAME_P_ARRAY_FIELDS) @javax.annotation.Nonnull - private List pArrayFields; + private List pArrayFields; public DocVisualExtendedInfo() {} @@ -71,12 +71,12 @@ public void setnFields(@javax.annotation.Nonnull BigDecimal nFields) { } public DocVisualExtendedInfo pArrayFields( - @javax.annotation.Nonnull List pArrayFields) { + @javax.annotation.Nonnull List pArrayFields) { this.pArrayFields = pArrayFields; return this; } - public DocVisualExtendedInfo addPArrayFieldsItem(DocVisualExtendedInfo pArrayFieldsItem) { + public DocVisualExtendedInfo addPArrayFieldsItem(DocVisualExtendedField pArrayFieldsItem) { if (this.pArrayFields == null) { this.pArrayFields = new ArrayList<>(); } @@ -90,11 +90,11 @@ public DocVisualExtendedInfo addPArrayFieldsItem(DocVisualExtendedInfo pArrayFie * @return pArrayFields */ @javax.annotation.Nonnull - public List getpArrayFields() { + public List getpArrayFields() { return pArrayFields; } - public void setpArrayFields(@javax.annotation.Nonnull List pArrayFields) { + public void setpArrayFields(@javax.annotation.Nonnull List pArrayFields) { this.pArrayFields = pArrayFields; } @@ -200,7 +200,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonArray jsonArraypArrayFields = jsonObj.getAsJsonArray("pArrayFields"); // validate the required field `pArrayFields` (array) for (int i = 0; i < jsonArraypArrayFields.size(); i++) { - DocVisualExtendedInfo.validateJsonElement(jsonArraypArrayFields.get(i)); + DocVisualExtendedField.validateJsonElement(jsonArraypArrayFields.get(i)); } ; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FileImage.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FileImage.java new file mode 100644 index 00000000..8a58326c --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FileImage.java @@ -0,0 +1,235 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** FileImage */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class FileImage { + public static final String SERIALIZED_NAME_DATA = "Data"; + + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nonnull + private String data; + + public static final String SERIALIZED_NAME_LENGTH = "Length"; + + @SerializedName(SERIALIZED_NAME_LENGTH) + @javax.annotation.Nonnull + private Integer length; + + public FileImage() {} + + public FileImage data(@javax.annotation.Nonnull String data) { + this.data = data; + return this; + } + + /** + * Get data + * + * @return data + */ + @javax.annotation.Nonnull + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nonnull String data) { + this.data = data; + } + + public FileImage length(@javax.annotation.Nonnull Integer length) { + this.length = length; + return this; + } + + /** + * Get length + * + * @return length + */ + @javax.annotation.Nonnull + public Integer getLength() { + return length; + } + + public void setLength(@javax.annotation.Nonnull Integer length) { + this.length = length; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FileImage fileImage = (FileImage) o; + return Objects.equals(this.data, fileImage.data) + && Objects.equals(this.length, fileImage.length); + } + + @Override + public int hashCode() { + return Objects.hash(data, length); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FileImage {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" length: ").append(toIndentedString(length)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("Length"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Data"); + openapiRequiredFields.add("Length"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FileImage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FileImage.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in FileImage is not found in the empty JSON string", + FileImage.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FileImage.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `FileImage` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : FileImage.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Data` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Data").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FileImage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FileImage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(FileImage.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, FileImage value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FileImage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of FileImage given an JSON string + * + * @param jsonString JSON string + * @return An instance of FileImage + * @throws IOException if the JSON string is invalid with respect to FileImage + */ + public static FileImage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FileImage.class); + } + + /** + * Convert an instance of FileImage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphData.java new file mode 100644 index 00000000..119c4e1e --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphData.java @@ -0,0 +1,377 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** GraphData */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class GraphData { + public static final String SERIALIZED_NAME_FIELD_TYPE = "FieldType"; + + @SerializedName(SERIALIZED_NAME_FIELD_TYPE) + @javax.annotation.Nonnull + private Integer fieldType; + + public static final String SERIALIZED_NAME_FILE_IMAGE = "File_Image"; + + @SerializedName(SERIALIZED_NAME_FILE_IMAGE) + @javax.annotation.Nonnull + private FileImage fileImage; + + public static final String SERIALIZED_NAME_GRAPHICS_TYPE = "GraphicsType"; + + @SerializedName(SERIALIZED_NAME_GRAPHICS_TYPE) + @javax.annotation.Nonnull + private Integer graphicsType; + + public static final String SERIALIZED_NAME_ORIGIN_D_G = "OriginDG"; + + @SerializedName(SERIALIZED_NAME_ORIGIN_D_G) + @javax.annotation.Nonnull + private Integer originDG; + + public static final String SERIALIZED_NAME_ORIGIN_D_G_TAG = "OriginDGTag"; + + @SerializedName(SERIALIZED_NAME_ORIGIN_D_G_TAG) + @javax.annotation.Nonnull + private Integer originDGTag; + + public static final String SERIALIZED_NAME_ORIGIN_ENTRY_VIEW = "OriginEntryView"; + + @SerializedName(SERIALIZED_NAME_ORIGIN_ENTRY_VIEW) + @javax.annotation.Nonnull + private Integer originEntryView; + + public static final String SERIALIZED_NAME_ORIGIN_TAG_ENTRY = "OriginTagEntry"; + + @SerializedName(SERIALIZED_NAME_ORIGIN_TAG_ENTRY) + @javax.annotation.Nonnull + private Integer originTagEntry; + + public GraphData() {} + + public GraphData fieldType(@javax.annotation.Nonnull Integer fieldType) { + this.fieldType = fieldType; + return this; + } + + /** + * Get fieldType + * + * @return fieldType + */ + @javax.annotation.Nonnull + public Integer getFieldType() { + return fieldType; + } + + public void setFieldType(@javax.annotation.Nonnull Integer fieldType) { + this.fieldType = fieldType; + } + + public GraphData fileImage(@javax.annotation.Nonnull FileImage fileImage) { + this.fileImage = fileImage; + return this; + } + + /** + * Get fileImage + * + * @return fileImage + */ + @javax.annotation.Nonnull + public FileImage getFileImage() { + return fileImage; + } + + public void setFileImage(@javax.annotation.Nonnull FileImage fileImage) { + this.fileImage = fileImage; + } + + public GraphData graphicsType(@javax.annotation.Nonnull Integer graphicsType) { + this.graphicsType = graphicsType; + return this; + } + + /** + * Get graphicsType + * + * @return graphicsType + */ + @javax.annotation.Nonnull + public Integer getGraphicsType() { + return graphicsType; + } + + public void setGraphicsType(@javax.annotation.Nonnull Integer graphicsType) { + this.graphicsType = graphicsType; + } + + public GraphData originDG(@javax.annotation.Nonnull Integer originDG) { + this.originDG = originDG; + return this; + } + + /** + * Get originDG + * + * @return originDG + */ + @javax.annotation.Nonnull + public Integer getOriginDG() { + return originDG; + } + + public void setOriginDG(@javax.annotation.Nonnull Integer originDG) { + this.originDG = originDG; + } + + public GraphData originDGTag(@javax.annotation.Nonnull Integer originDGTag) { + this.originDGTag = originDGTag; + return this; + } + + /** + * Get originDGTag + * + * @return originDGTag + */ + @javax.annotation.Nonnull + public Integer getOriginDGTag() { + return originDGTag; + } + + public void setOriginDGTag(@javax.annotation.Nonnull Integer originDGTag) { + this.originDGTag = originDGTag; + } + + public GraphData originEntryView(@javax.annotation.Nonnull Integer originEntryView) { + this.originEntryView = originEntryView; + return this; + } + + /** + * Get originEntryView + * + * @return originEntryView + */ + @javax.annotation.Nonnull + public Integer getOriginEntryView() { + return originEntryView; + } + + public void setOriginEntryView(@javax.annotation.Nonnull Integer originEntryView) { + this.originEntryView = originEntryView; + } + + public GraphData originTagEntry(@javax.annotation.Nonnull Integer originTagEntry) { + this.originTagEntry = originTagEntry; + return this; + } + + /** + * Get originTagEntry + * + * @return originTagEntry + */ + @javax.annotation.Nonnull + public Integer getOriginTagEntry() { + return originTagEntry; + } + + public void setOriginTagEntry(@javax.annotation.Nonnull Integer originTagEntry) { + this.originTagEntry = originTagEntry; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GraphData graphData = (GraphData) o; + return Objects.equals(this.fieldType, graphData.fieldType) + && Objects.equals(this.fileImage, graphData.fileImage) + && Objects.equals(this.graphicsType, graphData.graphicsType) + && Objects.equals(this.originDG, graphData.originDG) + && Objects.equals(this.originDGTag, graphData.originDGTag) + && Objects.equals(this.originEntryView, graphData.originEntryView) + && Objects.equals(this.originTagEntry, graphData.originTagEntry); + } + + @Override + public int hashCode() { + return Objects.hash( + fieldType, fileImage, graphicsType, originDG, originDGTag, originEntryView, originTagEntry); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GraphData {\n"); + sb.append(" fieldType: ").append(toIndentedString(fieldType)).append("\n"); + sb.append(" fileImage: ").append(toIndentedString(fileImage)).append("\n"); + sb.append(" graphicsType: ").append(toIndentedString(graphicsType)).append("\n"); + sb.append(" originDG: ").append(toIndentedString(originDG)).append("\n"); + sb.append(" originDGTag: ").append(toIndentedString(originDGTag)).append("\n"); + sb.append(" originEntryView: ").append(toIndentedString(originEntryView)).append("\n"); + sb.append(" originTagEntry: ").append(toIndentedString(originTagEntry)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldType"); + openapiFields.add("File_Image"); + openapiFields.add("GraphicsType"); + openapiFields.add("OriginDG"); + openapiFields.add("OriginDGTag"); + openapiFields.add("OriginEntryView"); + openapiFields.add("OriginTagEntry"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FieldType"); + openapiRequiredFields.add("File_Image"); + openapiRequiredFields.add("GraphicsType"); + openapiRequiredFields.add("OriginDG"); + openapiRequiredFields.add("OriginDGTag"); + openapiRequiredFields.add("OriginEntryView"); + openapiRequiredFields.add("OriginTagEntry"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GraphData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GraphData.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in GraphData is not found in the empty JSON string", + GraphData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GraphData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `GraphData` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : GraphData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `File_Image` + FileImage.validateJsonElement(jsonObj.get("File_Image")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GraphData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GraphData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(GraphData.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, GraphData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GraphData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of GraphData given an JSON string + * + * @param jsonString JSON string + * @return An instance of GraphData + * @throws IOException if the JSON string is invalid with respect to GraphData + */ + public static GraphData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GraphData.class); + } + + /** + * Convert an instance of GraphData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java index f79e0e5a..704f890f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java @@ -41,7 +41,7 @@ public class GraphicFieldsList { @SerializedName(SERIALIZED_NAME_P_ARRAY_FIELDS) @javax.annotation.Nonnull - private List pArrayFields; + private List pArrayFields; public static final String SERIALIZED_NAME_N_FIELDS = "nFields"; @@ -51,13 +51,12 @@ public class GraphicFieldsList { public GraphicFieldsList() {} - public GraphicFieldsList pArrayFields( - @javax.annotation.Nonnull List pArrayFields) { + public GraphicFieldsList pArrayFields(@javax.annotation.Nonnull List pArrayFields) { this.pArrayFields = pArrayFields; return this; } - public GraphicFieldsList addPArrayFieldsItem(GraphicFieldsList pArrayFieldsItem) { + public GraphicFieldsList addPArrayFieldsItem(GraphicField pArrayFieldsItem) { if (this.pArrayFields == null) { this.pArrayFields = new ArrayList<>(); } @@ -71,11 +70,11 @@ public GraphicFieldsList addPArrayFieldsItem(GraphicFieldsList pArrayFieldsItem) * @return pArrayFields */ @javax.annotation.Nonnull - public List getpArrayFields() { + public List getpArrayFields() { return pArrayFields; } - public void setpArrayFields(@javax.annotation.Nonnull List pArrayFields) { + public void setpArrayFields(@javax.annotation.Nonnull List pArrayFields) { this.pArrayFields = pArrayFields; } @@ -200,7 +199,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonArray jsonArraypArrayFields = jsonObj.getAsJsonArray("pArrayFields"); // validate the required field `pArrayFields` (array) for (int i = 0; i < jsonArraypArrayFields.size(); i++) { - GraphicFieldsList.validateJsonElement(jsonArraypArrayFields.get(i)); + GraphicField.validateJsonElement(jsonArraypArrayFields.get(i)); } ; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Images.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Images.java index e6c7de5a..2e0d582d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Images.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Images.java @@ -58,7 +58,7 @@ public class Images { @SerializedName(SERIALIZED_NAME_FIELD_LIST) @javax.annotation.Nonnull - private List fieldList; + private List fieldList; public Images() {} @@ -129,15 +129,12 @@ public void setAvailableSourceList( this.availableSourceList = availableSourceList; } - public Images fieldList( - @javax.annotation.Nonnull - List fieldList) { + public Images fieldList(@javax.annotation.Nonnull List fieldList) { this.fieldList = fieldList; return this; } - public Images addFieldListItem( - com.regula.documentreader.webclient.model.ext.ImagesField fieldListItem) { + public Images addFieldListItem(ImagesField fieldListItem) { if (this.fieldList == null) { this.fieldList = new ArrayList<>(); } @@ -151,13 +148,11 @@ public Images addFieldListItem( * @return fieldList */ @javax.annotation.Nonnull - public List getFieldList() { + public List getFieldList() { return fieldList; } - public void setFieldList( - @javax.annotation.Nonnull - List fieldList) { + public void setFieldList(@javax.annotation.Nonnull List fieldList) { this.fieldList = fieldList; } @@ -286,8 +281,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonArray jsonArrayfieldList = jsonObj.getAsJsonArray("fieldList"); // validate the required field `fieldList` (array) for (int i = 0; i < jsonArrayfieldList.size(); i++) { - com.regula.documentreader.webclient.model.ext.ImagesField.validateJsonElement( - jsonArrayfieldList.get(i)); + ImagesField.validateJsonElement(jsonArrayfieldList.get(i)); } ; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java index 7da51b81..dbdb4774 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java @@ -37,12 +37,11 @@ public class ImagesResult extends ResultItem { @SerializedName(SERIALIZED_NAME_IMAGES) @javax.annotation.Nonnull - private com.regula.documentreader.webclient.model.ext.Images images; + private Images images; public ImagesResult() {} - public ImagesResult images( - @javax.annotation.Nonnull com.regula.documentreader.webclient.model.ext.Images images) { + public ImagesResult images(@javax.annotation.Nonnull Images images) { this.images = images; return this; } @@ -53,12 +52,11 @@ public ImagesResult images( * @return images */ @javax.annotation.Nonnull - public com.regula.documentreader.webclient.model.ext.Images getImages() { + public Images getImages() { return images; } - public void setImages( - @javax.annotation.Nonnull com.regula.documentreader.webclient.model.ext.Images images) { + public void setImages(@javax.annotation.Nonnull Images images) { this.images = images; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java new file mode 100644 index 00000000..677ab48d --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java @@ -0,0 +1,212 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** ParsedData */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class ParsedData { + public static final String SERIALIZED_NAME_PARSING_NOTIFICATIONS = "ParsingNotifications"; + + @SerializedName(SERIALIZED_NAME_PARSING_NOTIFICATIONS) + @javax.annotation.Nullable + private List parsingNotifications; + + public ParsedData() {} + + public ParsedData parsingNotifications( + @javax.annotation.Nullable List parsingNotifications) { + this.parsingNotifications = parsingNotifications; + return this; + } + + public ParsedData addParsingNotificationsItem(Integer parsingNotificationsItem) { + if (this.parsingNotifications == null) { + this.parsingNotifications = new ArrayList<>(); + } + this.parsingNotifications.add(parsingNotificationsItem); + return this; + } + + /** + * Get parsingNotifications + * + * @return parsingNotifications + */ + @javax.annotation.Nullable + public List getParsingNotifications() { + return parsingNotifications; + } + + public void setParsingNotifications( + @javax.annotation.Nullable List parsingNotifications) { + this.parsingNotifications = parsingNotifications; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ParsedData parsedData = (ParsedData) o; + return Objects.equals(this.parsingNotifications, parsedData.parsingNotifications); + } + + @Override + public int hashCode() { + return Objects.hash(parsingNotifications); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ParsedData {\n"); + sb.append(" parsingNotifications: ") + .append(toIndentedString(parsingNotifications)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ParsingNotifications"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ParsedData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ParsedData.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ParsedData is not found in the empty JSON string", + ParsedData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ParsedData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ParsedData` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the optional json data is an array if present + if (jsonObj.get("ParsingNotifications") != null + && !jsonObj.get("ParsingNotifications").isJsonNull() + && !jsonObj.get("ParsingNotifications").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ParsingNotifications` to be an array in the JSON string but got `%s`", + jsonObj.get("ParsingNotifications").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ParsedData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ParsedData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ParsedData.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ParsedData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ParsedData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ParsedData given an JSON string + * + * @param jsonString JSON string + * @return An instance of ParsedData + * @throws IOException if the JSON string is invalid with respect to ParsedData + */ + public static ParsedData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ParsedData.class); + } + + /** + * Convert an instance of ParsedData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDGraphicsInfoResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDGraphicsInfoResult.java new file mode 100644 index 00000000..1f970d36 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDGraphicsInfoResult.java @@ -0,0 +1,213 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** RFIDGraphicsInfoResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RFIDGraphicsInfoResult extends ResultItem { + public static final String SERIALIZED_NAME_TORIGINAL_R_F_I_D_GRAPHICS_INFO = + "TOriginalRFIDGraphicsInfo"; + + @SerializedName(SERIALIZED_NAME_TORIGINAL_R_F_I_D_GRAPHICS_INFO) + @javax.annotation.Nonnull + private TOriginalRFIDGraphicsInfo toriginalRFIDGraphicsInfo; + + public RFIDGraphicsInfoResult() {} + + public RFIDGraphicsInfoResult toriginalRFIDGraphicsInfo( + @javax.annotation.Nonnull TOriginalRFIDGraphicsInfo toriginalRFIDGraphicsInfo) { + this.toriginalRFIDGraphicsInfo = toriginalRFIDGraphicsInfo; + return this; + } + + /** + * Get toriginalRFIDGraphicsInfo + * + * @return toriginalRFIDGraphicsInfo + */ + @javax.annotation.Nonnull + public TOriginalRFIDGraphicsInfo getToriginalRFIDGraphicsInfo() { + return toriginalRFIDGraphicsInfo; + } + + public void setToriginalRFIDGraphicsInfo( + @javax.annotation.Nonnull TOriginalRFIDGraphicsInfo toriginalRFIDGraphicsInfo) { + this.toriginalRFIDGraphicsInfo = toriginalRFIDGraphicsInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RFIDGraphicsInfoResult rfIDGraphicsInfoResult = (RFIDGraphicsInfoResult) o; + return Objects.equals( + this.toriginalRFIDGraphicsInfo, rfIDGraphicsInfoResult.toriginalRFIDGraphicsInfo) + && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(toriginalRFIDGraphicsInfo, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RFIDGraphicsInfoResult {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" toriginalRFIDGraphicsInfo: ") + .append(toIndentedString(toriginalRFIDGraphicsInfo)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("TOriginalRFIDGraphicsInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("TOriginalRFIDGraphicsInfo"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RFIDGraphicsInfoResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RFIDGraphicsInfoResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RFIDGraphicsInfoResult is not found in the empty JSON string", + RFIDGraphicsInfoResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RFIDGraphicsInfoResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RFIDGraphicsInfoResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RFIDGraphicsInfoResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RFIDGraphicsInfoResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RFIDGraphicsInfoResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RFIDGraphicsInfoResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RFIDGraphicsInfoResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RFIDGraphicsInfoResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RFIDGraphicsInfoResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of RFIDGraphicsInfoResult + * @throws IOException if the JSON string is invalid with respect to RFIDGraphicsInfoResult + */ + public static RFIDGraphicsInfoResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RFIDGraphicsInfoResult.class); + } + + /** + * Convert an instance of RFIDGraphicsInfoResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java index 4808eb90..02c784e8 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java @@ -234,6 +234,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti case "1": DocumentImageResult.validateJsonElement(jsonElement); break; + case "101": + DocumentBinaryInfoResult.validateJsonElement(jsonElement); + break; case "102": TextDataResult.validateJsonElement(jsonElement); break; @@ -243,6 +246,9 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti case "104": DocumentBinaryInfoResult.validateJsonElement(jsonElement); break; + case "105": + RFIDGraphicsInfoResult.validateJsonElement(jsonElement); + break; case "109": ByteArrayResult.validateJsonElement(jsonElement); break; diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java index 79e4363a..db38727b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java @@ -67,39 +67,52 @@ public class RfidDataFile { public static final String SERIALIZED_NAME_READING_TIME = "ReadingTime"; @SerializedName(SERIALIZED_NAME_READING_TIME) - @javax.annotation.Nonnull + @javax.annotation.Nullable private BigDecimal readingTime; public static final String SERIALIZED_NAME_PA_STATUS = "PA_Status"; @SerializedName(SERIALIZED_NAME_PA_STATUS) - @javax.annotation.Nonnull + @javax.annotation.Nullable private RFIDErrorCodes paStatus; public static final String SERIALIZED_NAME_NOTIFICATIONS = "Notifications"; @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) - @javax.annotation.Nonnull + @javax.annotation.Nullable private List notifications; public static final String SERIALIZED_NAME_DOC_FIELDS_TEXT = "DocFields_Text"; @SerializedName(SERIALIZED_NAME_DOC_FIELDS_TEXT) - @javax.annotation.Nonnull + @javax.annotation.Nullable private List docFieldsText; public static final String SERIALIZED_NAME_DOC_FIELDS_GRAPHICS = "DocFields_Graphics"; @SerializedName(SERIALIZED_NAME_DOC_FIELDS_GRAPHICS) - @javax.annotation.Nonnull + @javax.annotation.Nullable private List docFieldsGraphics; public static final String SERIALIZED_NAME_DOC_FIELDS_ORIGINALS = "DocFields_Originals"; @SerializedName(SERIALIZED_NAME_DOC_FIELDS_ORIGINALS) - @javax.annotation.Nonnull + @javax.annotation.Nullable private List docFieldsOriginals; + public static final String SERIALIZED_NAME_PARSED_DATA = "ParsedData"; + + @SerializedName(SERIALIZED_NAME_PARSED_DATA) + @javax.annotation.Nullable + private ParsedData parsedData; + + public static final String SERIALIZED_NAME_SECURITY_OBJECT_CERTIFICATES = + "SecurityObject_Certificates"; + + @SerializedName(SERIALIZED_NAME_SECURITY_OBJECT_CERTIFICATES) + @javax.annotation.Nullable + private SecurityObjectCertificates securityObjectCertificates; + public RfidDataFile() {} public RfidDataFile fileID(@javax.annotation.Nullable String fileID) { @@ -179,7 +192,7 @@ public void setReadingStatus(@javax.annotation.Nonnull RFIDErrorCodes readingSta this.readingStatus = readingStatus; } - public RfidDataFile readingTime(@javax.annotation.Nonnull BigDecimal readingTime) { + public RfidDataFile readingTime(@javax.annotation.Nullable BigDecimal readingTime) { this.readingTime = readingTime; return this; } @@ -189,16 +202,16 @@ public RfidDataFile readingTime(@javax.annotation.Nonnull BigDecimal readingTime * * @return readingTime */ - @javax.annotation.Nonnull + @javax.annotation.Nullable public BigDecimal getReadingTime() { return readingTime; } - public void setReadingTime(@javax.annotation.Nonnull BigDecimal readingTime) { + public void setReadingTime(@javax.annotation.Nullable BigDecimal readingTime) { this.readingTime = readingTime; } - public RfidDataFile paStatus(@javax.annotation.Nonnull RFIDErrorCodes paStatus) { + public RfidDataFile paStatus(@javax.annotation.Nullable RFIDErrorCodes paStatus) { this.paStatus = paStatus; return this; } @@ -208,17 +221,17 @@ public RfidDataFile paStatus(@javax.annotation.Nonnull RFIDErrorCodes paStatus) * * @return paStatus */ - @javax.annotation.Nonnull + @javax.annotation.Nullable public RFIDErrorCodes getPaStatus() { return paStatus; } - public void setPaStatus(@javax.annotation.Nonnull RFIDErrorCodes paStatus) { + public void setPaStatus(@javax.annotation.Nullable RFIDErrorCodes paStatus) { this.paStatus = paStatus; } public RfidDataFile notifications( - @javax.annotation.Nonnull List notifications) { + @javax.annotation.Nullable List notifications) { this.notifications = notifications; return this; } @@ -237,16 +250,16 @@ public RfidDataFile addNotificationsItem(ParsingErrorCodes notificationsItem) { * * @return notifications */ - @javax.annotation.Nonnull + @javax.annotation.Nullable public List getNotifications() { return notifications; } - public void setNotifications(@javax.annotation.Nonnull List notifications) { + public void setNotifications(@javax.annotation.Nullable List notifications) { this.notifications = notifications; } - public RfidDataFile docFieldsText(@javax.annotation.Nonnull List docFieldsText) { + public RfidDataFile docFieldsText(@javax.annotation.Nullable List docFieldsText) { this.docFieldsText = docFieldsText; return this; } @@ -264,17 +277,17 @@ public RfidDataFile addDocFieldsTextItem(TextFieldType docFieldsTextItem) { * * @return docFieldsText */ - @javax.annotation.Nonnull + @javax.annotation.Nullable public List getDocFieldsText() { return docFieldsText; } - public void setDocFieldsText(@javax.annotation.Nonnull List docFieldsText) { + public void setDocFieldsText(@javax.annotation.Nullable List docFieldsText) { this.docFieldsText = docFieldsText; } public RfidDataFile docFieldsGraphics( - @javax.annotation.Nonnull List docFieldsGraphics) { + @javax.annotation.Nullable List docFieldsGraphics) { this.docFieldsGraphics = docFieldsGraphics; return this; } @@ -292,18 +305,18 @@ public RfidDataFile addDocFieldsGraphicsItem(GraphicFieldType docFieldsGraphicsI * * @return docFieldsGraphics */ - @javax.annotation.Nonnull + @javax.annotation.Nullable public List getDocFieldsGraphics() { return docFieldsGraphics; } public void setDocFieldsGraphics( - @javax.annotation.Nonnull List docFieldsGraphics) { + @javax.annotation.Nullable List docFieldsGraphics) { this.docFieldsGraphics = docFieldsGraphics; } public RfidDataFile docFieldsOriginals( - @javax.annotation.Nonnull List docFieldsOriginals) { + @javax.annotation.Nullable List docFieldsOriginals) { this.docFieldsOriginals = docFieldsOriginals; return this; } @@ -322,16 +335,56 @@ public RfidDataFile addDocFieldsOriginalsItem(GraphicFieldType docFieldsOriginal * * @return docFieldsOriginals */ - @javax.annotation.Nonnull + @javax.annotation.Nullable public List getDocFieldsOriginals() { return docFieldsOriginals; } public void setDocFieldsOriginals( - @javax.annotation.Nonnull List docFieldsOriginals) { + @javax.annotation.Nullable List docFieldsOriginals) { this.docFieldsOriginals = docFieldsOriginals; } + public RfidDataFile parsedData(@javax.annotation.Nullable ParsedData parsedData) { + this.parsedData = parsedData; + return this; + } + + /** + * Get parsedData + * + * @return parsedData + */ + @javax.annotation.Nullable + public ParsedData getParsedData() { + return parsedData; + } + + public void setParsedData(@javax.annotation.Nullable ParsedData parsedData) { + this.parsedData = parsedData; + } + + public RfidDataFile securityObjectCertificates( + @javax.annotation.Nullable SecurityObjectCertificates securityObjectCertificates) { + this.securityObjectCertificates = securityObjectCertificates; + return this; + } + + /** + * Get securityObjectCertificates + * + * @return securityObjectCertificates + */ + @javax.annotation.Nullable + public SecurityObjectCertificates getSecurityObjectCertificates() { + return securityObjectCertificates; + } + + public void setSecurityObjectCertificates( + @javax.annotation.Nullable SecurityObjectCertificates securityObjectCertificates) { + this.securityObjectCertificates = securityObjectCertificates; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -350,7 +403,9 @@ public boolean equals(Object o) { && Objects.equals(this.notifications, rfidDataFile.notifications) && Objects.equals(this.docFieldsText, rfidDataFile.docFieldsText) && Objects.equals(this.docFieldsGraphics, rfidDataFile.docFieldsGraphics) - && Objects.equals(this.docFieldsOriginals, rfidDataFile.docFieldsOriginals); + && Objects.equals(this.docFieldsOriginals, rfidDataFile.docFieldsOriginals) + && Objects.equals(this.parsedData, rfidDataFile.parsedData) + && Objects.equals(this.securityObjectCertificates, rfidDataFile.securityObjectCertificates); } @Override @@ -365,7 +420,9 @@ public int hashCode() { notifications, docFieldsText, docFieldsGraphics, - docFieldsOriginals); + docFieldsOriginals, + parsedData, + securityObjectCertificates); } @Override @@ -382,6 +439,10 @@ public String toString() { sb.append(" docFieldsText: ").append(toIndentedString(docFieldsText)).append("\n"); sb.append(" docFieldsGraphics: ").append(toIndentedString(docFieldsGraphics)).append("\n"); sb.append(" docFieldsOriginals: ").append(toIndentedString(docFieldsOriginals)).append("\n"); + sb.append(" parsedData: ").append(toIndentedString(parsedData)).append("\n"); + sb.append(" securityObjectCertificates: ") + .append(toIndentedString(securityObjectCertificates)) + .append("\n"); sb.append("}"); return sb.toString(); } @@ -412,17 +473,13 @@ private String toIndentedString(Object o) { openapiFields.add("DocFields_Text"); openapiFields.add("DocFields_Graphics"); openapiFields.add("DocFields_Originals"); + openapiFields.add("ParsedData"); + openapiFields.add("SecurityObject_Certificates"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); openapiRequiredFields.add("Type"); openapiRequiredFields.add("ReadingStatus"); - openapiRequiredFields.add("ReadingTime"); - openapiRequiredFields.add("PA_Status"); - openapiRequiredFields.add("Notifications"); - openapiRequiredFields.add("DocFields_Text"); - openapiRequiredFields.add("DocFields_Graphics"); - openapiRequiredFields.add("DocFields_Originals"); } /** @@ -478,48 +535,55 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } // validate the required field `ReadingStatus` RFIDErrorCodes.validateJsonElement(jsonObj.get("ReadingStatus")); - // validate the required field `PA_Status` - RFIDErrorCodes.validateJsonElement(jsonObj.get("PA_Status")); - // ensure the required json array is present - if (jsonObj.get("Notifications") == null) { - throw new IllegalArgumentException( - "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); - } else if (!jsonObj.get("Notifications").isJsonArray()) { + // validate the optional field `PA_Status` + if (jsonObj.get("PA_Status") != null && !jsonObj.get("PA_Status").isJsonNull()) { + RFIDErrorCodes.validateJsonElement(jsonObj.get("PA_Status")); + } + // ensure the optional json data is an array if present + if (jsonObj.get("Notifications") != null + && !jsonObj.get("Notifications").isJsonNull() + && !jsonObj.get("Notifications").isJsonArray()) { throw new IllegalArgumentException( String.format( "Expected the field `Notifications` to be an array in the JSON string but got `%s`", jsonObj.get("Notifications").toString())); } - // ensure the required json array is present - if (jsonObj.get("DocFields_Text") == null) { - throw new IllegalArgumentException( - "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); - } else if (!jsonObj.get("DocFields_Text").isJsonArray()) { + // ensure the optional json data is an array if present + if (jsonObj.get("DocFields_Text") != null + && !jsonObj.get("DocFields_Text").isJsonNull() + && !jsonObj.get("DocFields_Text").isJsonArray()) { throw new IllegalArgumentException( String.format( "Expected the field `DocFields_Text` to be an array in the JSON string but got `%s`", jsonObj.get("DocFields_Text").toString())); } - // ensure the required json array is present - if (jsonObj.get("DocFields_Graphics") == null) { - throw new IllegalArgumentException( - "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); - } else if (!jsonObj.get("DocFields_Graphics").isJsonArray()) { + // ensure the optional json data is an array if present + if (jsonObj.get("DocFields_Graphics") != null + && !jsonObj.get("DocFields_Graphics").isJsonNull() + && !jsonObj.get("DocFields_Graphics").isJsonArray()) { throw new IllegalArgumentException( String.format( "Expected the field `DocFields_Graphics` to be an array in the JSON string but got `%s`", jsonObj.get("DocFields_Graphics").toString())); } - // ensure the required json array is present - if (jsonObj.get("DocFields_Originals") == null) { - throw new IllegalArgumentException( - "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); - } else if (!jsonObj.get("DocFields_Originals").isJsonArray()) { + // ensure the optional json data is an array if present + if (jsonObj.get("DocFields_Originals") != null + && !jsonObj.get("DocFields_Originals").isJsonNull() + && !jsonObj.get("DocFields_Originals").isJsonArray()) { throw new IllegalArgumentException( String.format( "Expected the field `DocFields_Originals` to be an array in the JSON string but got `%s`", jsonObj.get("DocFields_Originals").toString())); } + // validate the optional field `ParsedData` + if (jsonObj.get("ParsedData") != null && !jsonObj.get("ParsedData").isJsonNull()) { + ParsedData.validateJsonElement(jsonObj.get("ParsedData")); + } + // validate the optional field `SecurityObject_Certificates` + if (jsonObj.get("SecurityObject_Certificates") != null + && !jsonObj.get("SecurityObject_Certificates").isJsonNull()) { + SecurityObjectCertificates.validateJsonElement(jsonObj.get("SecurityObject_Certificates")); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidRawData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidRawData.java new file mode 100644 index 00000000..b1ab3cc9 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidRawData.java @@ -0,0 +1,235 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** RfidRawData */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RfidRawData { + public static final String SERIALIZED_NAME_DATA = "Data"; + + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nonnull + private String data; + + public static final String SERIALIZED_NAME_FIELD_TYPE = "FieldType"; + + @SerializedName(SERIALIZED_NAME_FIELD_TYPE) + @javax.annotation.Nonnull + private Integer fieldType; + + public RfidRawData() {} + + public RfidRawData data(@javax.annotation.Nonnull String data) { + this.data = data; + return this; + } + + /** + * Get data + * + * @return data + */ + @javax.annotation.Nonnull + public String getData() { + return data; + } + + public void setData(@javax.annotation.Nonnull String data) { + this.data = data; + } + + public RfidRawData fieldType(@javax.annotation.Nonnull Integer fieldType) { + this.fieldType = fieldType; + return this; + } + + /** + * Get fieldType + * + * @return fieldType + */ + @javax.annotation.Nonnull + public Integer getFieldType() { + return fieldType; + } + + public void setFieldType(@javax.annotation.Nonnull Integer fieldType) { + this.fieldType = fieldType; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RfidRawData rfidRawData = (RfidRawData) o; + return Objects.equals(this.data, rfidRawData.data) + && Objects.equals(this.fieldType, rfidRawData.fieldType); + } + + @Override + public int hashCode() { + return Objects.hash(data, fieldType); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfidRawData {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" fieldType: ").append(toIndentedString(fieldType)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Data"); + openapiFields.add("FieldType"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Data"); + openapiRequiredFields.add("FieldType"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfidRawData + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfidRawData.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RfidRawData is not found in the empty JSON string", + RfidRawData.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RfidRawData.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RfidRawData` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RfidRawData.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("Data").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Data` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Data").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfidRawData.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfidRawData' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RfidRawData.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RfidRawData value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RfidRawData read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RfidRawData given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfidRawData + * @throws IOException if the JSON string is invalid with respect to RfidRawData + */ + public static RfidRawData fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfidRawData.class); + } + + /** + * Convert an instance of RfidRawData to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java index 374df9dc..0d35a2ea 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java @@ -44,25 +44,25 @@ public class RfidSessionData { @SerializedName(SERIALIZED_NAME_VIRTUAL_MODE) @javax.annotation.Nullable - private Object virtualMode = null; + private String virtualMode; public static final String SERIALIZED_NAME_SD_K_VERSION = "SDKVersion"; @SerializedName(SERIALIZED_NAME_SD_K_VERSION) @javax.annotation.Nullable - private Object sdKVersion = null; + private String sdKVersion; public static final String SERIALIZED_NAME_DRIVER_VERSION = "DriverVersion"; @SerializedName(SERIALIZED_NAME_DRIVER_VERSION) @javax.annotation.Nullable - private Object driverVersion = null; + private String driverVersion; public static final String SERIALIZED_NAME_FIRMWARE_VERSION = "FirmwareVersion"; @SerializedName(SERIALIZED_NAME_FIRMWARE_VERSION) @javax.annotation.Nullable - private Object firmwareVersion = null; + private String firmwareVersion; public static final String SERIALIZED_NAME_APPLICATIONS = "Applications"; @@ -136,9 +136,15 @@ public class RfidSessionData { @javax.annotation.Nonnull private List securityObjects; + public static final String SERIALIZED_NAME_STATUS = "Status"; + + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private CheckResult status; + public RfidSessionData() {} - public RfidSessionData virtualMode(@javax.annotation.Nullable Object virtualMode) { + public RfidSessionData virtualMode(@javax.annotation.Nullable String virtualMode) { this.virtualMode = virtualMode; return this; } @@ -150,15 +156,15 @@ public RfidSessionData virtualMode(@javax.annotation.Nullable Object virtualMode * @return virtualMode */ @javax.annotation.Nullable - public Object getVirtualMode() { + public String getVirtualMode() { return virtualMode; } - public void setVirtualMode(@javax.annotation.Nullable Object virtualMode) { + public void setVirtualMode(@javax.annotation.Nullable String virtualMode) { this.virtualMode = virtualMode; } - public RfidSessionData sdKVersion(@javax.annotation.Nullable Object sdKVersion) { + public RfidSessionData sdKVersion(@javax.annotation.Nullable String sdKVersion) { this.sdKVersion = sdKVersion; return this; } @@ -169,15 +175,15 @@ public RfidSessionData sdKVersion(@javax.annotation.Nullable Object sdKVersion) * @return sdKVersion */ @javax.annotation.Nullable - public Object getSdKVersion() { + public String getSdKVersion() { return sdKVersion; } - public void setSdKVersion(@javax.annotation.Nullable Object sdKVersion) { + public void setSdKVersion(@javax.annotation.Nullable String sdKVersion) { this.sdKVersion = sdKVersion; } - public RfidSessionData driverVersion(@javax.annotation.Nullable Object driverVersion) { + public RfidSessionData driverVersion(@javax.annotation.Nullable String driverVersion) { this.driverVersion = driverVersion; return this; } @@ -188,15 +194,15 @@ public RfidSessionData driverVersion(@javax.annotation.Nullable Object driverVer * @return driverVersion */ @javax.annotation.Nullable - public Object getDriverVersion() { + public String getDriverVersion() { return driverVersion; } - public void setDriverVersion(@javax.annotation.Nullable Object driverVersion) { + public void setDriverVersion(@javax.annotation.Nullable String driverVersion) { this.driverVersion = driverVersion; } - public RfidSessionData firmwareVersion(@javax.annotation.Nullable Object firmwareVersion) { + public RfidSessionData firmwareVersion(@javax.annotation.Nullable String firmwareVersion) { this.firmwareVersion = firmwareVersion; return this; } @@ -207,11 +213,11 @@ public RfidSessionData firmwareVersion(@javax.annotation.Nullable Object firmwar * @return firmwareVersion */ @javax.annotation.Nullable - public Object getFirmwareVersion() { + public String getFirmwareVersion() { return firmwareVersion; } - public void setFirmwareVersion(@javax.annotation.Nullable Object firmwareVersion) { + public void setFirmwareVersion(@javax.annotation.Nullable String firmwareVersion) { this.firmwareVersion = firmwareVersion; } @@ -485,6 +491,25 @@ public void setSecurityObjects( this.securityObjects = securityObjects; } + public RfidSessionData status(@javax.annotation.Nullable CheckResult status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @javax.annotation.Nullable + public CheckResult getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable CheckResult status) { + this.status = status; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -509,7 +534,8 @@ public boolean equals(Object o) { && Objects.equals(this.sessionKey, rfidSessionData.sessionKey) && Objects.equals(this.sessionTerminal, rfidSessionData.sessionTerminal) && Objects.equals(this.sessionProcedure, rfidSessionData.sessionProcedure) - && Objects.equals(this.securityObjects, rfidSessionData.securityObjects); + && Objects.equals(this.securityObjects, rfidSessionData.securityObjects) + && Objects.equals(this.status, rfidSessionData.status); } @Override @@ -530,7 +556,8 @@ public int hashCode() { sessionKey, sessionTerminal, sessionProcedure, - securityObjects); + securityObjects, + status); } @Override @@ -553,6 +580,7 @@ public String toString() { sb.append(" sessionTerminal: ").append(toIndentedString(sessionTerminal)).append("\n"); sb.append(" sessionProcedure: ").append(toIndentedString(sessionProcedure)).append("\n"); sb.append(" securityObjects: ").append(toIndentedString(securityObjects)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append("}"); return sb.toString(); } @@ -589,13 +617,10 @@ private String toIndentedString(Object o) { openapiFields.add("Session_terminal"); openapiFields.add("Session_procedure"); openapiFields.add("SecurityObjects"); + openapiFields.add("Status"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("VirtualMode"); - openapiRequiredFields.add("SDKVersion"); - openapiRequiredFields.add("DriverVersion"); - openapiRequiredFields.add("FirmwareVersion"); openapiRequiredFields.add("Applications"); openapiRequiredFields.add("AccessControls"); openapiRequiredFields.add("CardProperties"); @@ -648,6 +673,34 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("VirtualMode") != null && !jsonObj.get("VirtualMode").isJsonNull()) + && !jsonObj.get("VirtualMode").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `VirtualMode` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("VirtualMode").toString())); + } + if ((jsonObj.get("SDKVersion") != null && !jsonObj.get("SDKVersion").isJsonNull()) + && !jsonObj.get("SDKVersion").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `SDKVersion` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("SDKVersion").toString())); + } + if ((jsonObj.get("DriverVersion") != null && !jsonObj.get("DriverVersion").isJsonNull()) + && !jsonObj.get("DriverVersion").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `DriverVersion` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("DriverVersion").toString())); + } + if ((jsonObj.get("FirmwareVersion") != null && !jsonObj.get("FirmwareVersion").isJsonNull()) + && !jsonObj.get("FirmwareVersion").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `FirmwareVersion` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("FirmwareVersion").toString())); + } // ensure the json data is an array if (!jsonObj.get("Applications").isJsonArray()) { throw new IllegalArgumentException( @@ -710,6 +763,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti RfidSecurityObject.validateJsonElement(jsonArraysecurityObjects.get(i)); } ; + // validate the optional field `Status` + if (jsonObj.get("Status") != null && !jsonObj.get("Status").isJsonNull()) { + CheckResult.validateJsonElement(jsonObj.get("Status")); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityObjectCertificates.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityObjectCertificates.java new file mode 100644 index 00000000..4ee1873d --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityObjectCertificates.java @@ -0,0 +1,194 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** SecurityObjectCertificates */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class SecurityObjectCertificates { + public static final String SERIALIZED_NAME_CERTIFICATE_DATA = "Certificate_Data"; + + @SerializedName(SERIALIZED_NAME_CERTIFICATE_DATA) + @javax.annotation.Nullable + private CertificateData certificateData; + + public SecurityObjectCertificates() {} + + public SecurityObjectCertificates certificateData( + @javax.annotation.Nullable CertificateData certificateData) { + this.certificateData = certificateData; + return this; + } + + /** + * Get certificateData + * + * @return certificateData + */ + @javax.annotation.Nullable + public CertificateData getCertificateData() { + return certificateData; + } + + public void setCertificateData(@javax.annotation.Nullable CertificateData certificateData) { + this.certificateData = certificateData; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityObjectCertificates securityObjectCertificates = (SecurityObjectCertificates) o; + return Objects.equals(this.certificateData, securityObjectCertificates.certificateData); + } + + @Override + public int hashCode() { + return Objects.hash(certificateData); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityObjectCertificates {\n"); + sb.append(" certificateData: ").append(toIndentedString(certificateData)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Certificate_Data"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SecurityObjectCertificates + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SecurityObjectCertificates.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in SecurityObjectCertificates is not found in the empty JSON string", + SecurityObjectCertificates.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SecurityObjectCertificates.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `SecurityObjectCertificates` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `Certificate_Data` + if (jsonObj.get("Certificate_Data") != null && !jsonObj.get("Certificate_Data").isJsonNull()) { + CertificateData.validateJsonElement(jsonObj.get("Certificate_Data")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SecurityObjectCertificates.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SecurityObjectCertificates' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(SecurityObjectCertificates.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, SecurityObjectCertificates value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SecurityObjectCertificates read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of SecurityObjectCertificates given an JSON string + * + * @param jsonString JSON string + * @return An instance of SecurityObjectCertificates + * @throws IOException if the JSON string is invalid with respect to SecurityObjectCertificates + */ + public static SecurityObjectCertificates fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SecurityObjectCertificates.class); + } + + /** + * Convert an instance of SecurityObjectCertificates to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java index 55cd0cea..c20d7037 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java @@ -13,6 +13,7 @@ package com.regula.documentreader.webclient.model; import com.google.gson.Gson; +import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.TypeAdapter; @@ -23,7 +24,9 @@ import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; import java.io.IOException; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; @@ -36,12 +39,18 @@ public class TDocBinaryInfo { public static final String SERIALIZED_NAME_R_F_I_D_B_I_N_A_R_Y_D_A_T_A = "RFID_BINARY_DATA"; @SerializedName(SERIALIZED_NAME_R_F_I_D_B_I_N_A_R_Y_D_A_T_A) - @javax.annotation.Nonnull + @javax.annotation.Nullable private BinaryData RFID_BINARY_DATA; + public static final String SERIALIZED_NAME_R_F_I_D_R_A_W_D_A_T_A = "RFID_RAW_DATA"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_R_A_W_D_A_T_A) + @javax.annotation.Nullable + private List RFID_RAW_DATA; + public TDocBinaryInfo() {} - public TDocBinaryInfo RFID_BINARY_DATA(@javax.annotation.Nonnull BinaryData RFID_BINARY_DATA) { + public TDocBinaryInfo RFID_BINARY_DATA(@javax.annotation.Nullable BinaryData RFID_BINARY_DATA) { this.RFID_BINARY_DATA = RFID_BINARY_DATA; return this; } @@ -51,15 +60,42 @@ public TDocBinaryInfo RFID_BINARY_DATA(@javax.annotation.Nonnull BinaryData RFID * * @return RFID_BINARY_DATA */ - @javax.annotation.Nonnull + @javax.annotation.Nullable public BinaryData getRFIDBINARYDATA() { return RFID_BINARY_DATA; } - public void setRFIDBINARYDATA(@javax.annotation.Nonnull BinaryData RFID_BINARY_DATA) { + public void setRFIDBINARYDATA(@javax.annotation.Nullable BinaryData RFID_BINARY_DATA) { this.RFID_BINARY_DATA = RFID_BINARY_DATA; } + public TDocBinaryInfo RFID_RAW_DATA(@javax.annotation.Nullable List RFID_RAW_DATA) { + this.RFID_RAW_DATA = RFID_RAW_DATA; + return this; + } + + public TDocBinaryInfo addRFIDRAWDATAItem(RfidRawData RFID_RAW_DATAItem) { + if (this.RFID_RAW_DATA == null) { + this.RFID_RAW_DATA = new ArrayList<>(); + } + this.RFID_RAW_DATA.add(RFID_RAW_DATAItem); + return this; + } + + /** + * Get RFID_RAW_DATA + * + * @return RFID_RAW_DATA + */ + @javax.annotation.Nullable + public List getRFIDRAWDATA() { + return RFID_RAW_DATA; + } + + public void setRFIDRAWDATA(@javax.annotation.Nullable List RFID_RAW_DATA) { + this.RFID_RAW_DATA = RFID_RAW_DATA; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -69,12 +105,13 @@ public boolean equals(Object o) { return false; } TDocBinaryInfo tdocBinaryInfo = (TDocBinaryInfo) o; - return Objects.equals(this.RFID_BINARY_DATA, tdocBinaryInfo.RFID_BINARY_DATA); + return Objects.equals(this.RFID_BINARY_DATA, tdocBinaryInfo.RFID_BINARY_DATA) + && Objects.equals(this.RFID_RAW_DATA, tdocBinaryInfo.RFID_RAW_DATA); } @Override public int hashCode() { - return Objects.hash(RFID_BINARY_DATA); + return Objects.hash(RFID_BINARY_DATA, RFID_RAW_DATA); } @Override @@ -82,6 +119,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class TDocBinaryInfo {\n"); sb.append(" RFID_BINARY_DATA: ").append(toIndentedString(RFID_BINARY_DATA)).append("\n"); + sb.append(" RFID_RAW_DATA: ").append(toIndentedString(RFID_RAW_DATA)).append("\n"); sb.append("}"); return sb.toString(); } @@ -103,10 +141,10 @@ private String toIndentedString(Object o) { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); openapiFields.add("RFID_BINARY_DATA"); + openapiFields.add("RFID_RAW_DATA"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("RFID_BINARY_DATA"); } /** @@ -136,19 +174,29 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti entry.getKey(), jsonElement.toString())); } } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : TDocBinaryInfo.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `RFID_BINARY_DATA` + if (jsonObj.get("RFID_BINARY_DATA") != null && !jsonObj.get("RFID_BINARY_DATA").isJsonNull()) { + BinaryData.validateJsonElement(jsonObj.get("RFID_BINARY_DATA")); + } + if (jsonObj.get("RFID_RAW_DATA") != null && !jsonObj.get("RFID_RAW_DATA").isJsonNull()) { + JsonArray jsonArrayRFID_RAW_DATA = jsonObj.getAsJsonArray("RFID_RAW_DATA"); + if (jsonArrayRFID_RAW_DATA != null) { + // ensure the json data is an array + if (!jsonObj.get("RFID_RAW_DATA").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `RFID_RAW_DATA` to be an array in the JSON string but got `%s`", + jsonObj.get("RFID_RAW_DATA").toString())); + } + + // validate the optional field `RFID_RAW_DATA` (array) + for (int i = 0; i < jsonArrayRFID_RAW_DATA.size(); i++) { + RfidRawData.validateJsonElement(jsonArrayRFID_RAW_DATA.get(i)); + } + ; } } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - // validate the required field `RFID_BINARY_DATA` - BinaryData.validateJsonElement(jsonObj.get("RFID_BINARY_DATA")); } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfo.java new file mode 100644 index 00000000..6be339d8 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfo.java @@ -0,0 +1,233 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** TOriginalRFIDGraphicsInfo */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TOriginalRFIDGraphicsInfo { + public static final String SERIALIZED_NAME_R_F_I_D_O_R_I_G_I_N_A_L_G_R_A_P_H_D_A_T_A = + "RFID_ORIGINAL_GRAPH_DATA"; + + @SerializedName(SERIALIZED_NAME_R_F_I_D_O_R_I_G_I_N_A_L_G_R_A_P_H_D_A_T_A) + @javax.annotation.Nonnull + private List RFID_ORIGINAL_GRAPH_DATA; + + public TOriginalRFIDGraphicsInfo() {} + + public TOriginalRFIDGraphicsInfo RFID_ORIGINAL_GRAPH_DATA( + @javax.annotation.Nonnull List RFID_ORIGINAL_GRAPH_DATA) { + this.RFID_ORIGINAL_GRAPH_DATA = RFID_ORIGINAL_GRAPH_DATA; + return this; + } + + public TOriginalRFIDGraphicsInfo addRFIDORIGINALGRAPHDATAItem( + GraphData RFID_ORIGINAL_GRAPH_DATAItem) { + if (this.RFID_ORIGINAL_GRAPH_DATA == null) { + this.RFID_ORIGINAL_GRAPH_DATA = new ArrayList<>(); + } + this.RFID_ORIGINAL_GRAPH_DATA.add(RFID_ORIGINAL_GRAPH_DATAItem); + return this; + } + + /** + * Get RFID_ORIGINAL_GRAPH_DATA + * + * @return RFID_ORIGINAL_GRAPH_DATA + */ + @javax.annotation.Nonnull + public List getRFIDORIGINALGRAPHDATA() { + return RFID_ORIGINAL_GRAPH_DATA; + } + + public void setRFIDORIGINALGRAPHDATA( + @javax.annotation.Nonnull List RFID_ORIGINAL_GRAPH_DATA) { + this.RFID_ORIGINAL_GRAPH_DATA = RFID_ORIGINAL_GRAPH_DATA; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TOriginalRFIDGraphicsInfo toriginalRFIDGraphicsInfo = (TOriginalRFIDGraphicsInfo) o; + return Objects.equals( + this.RFID_ORIGINAL_GRAPH_DATA, toriginalRFIDGraphicsInfo.RFID_ORIGINAL_GRAPH_DATA); + } + + @Override + public int hashCode() { + return Objects.hash(RFID_ORIGINAL_GRAPH_DATA); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TOriginalRFIDGraphicsInfo {\n"); + sb.append(" RFID_ORIGINAL_GRAPH_DATA: ") + .append(toIndentedString(RFID_ORIGINAL_GRAPH_DATA)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RFID_ORIGINAL_GRAPH_DATA"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("RFID_ORIGINAL_GRAPH_DATA"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TOriginalRFIDGraphicsInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TOriginalRFIDGraphicsInfo.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TOriginalRFIDGraphicsInfo is not found in the empty JSON string", + TOriginalRFIDGraphicsInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TOriginalRFIDGraphicsInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TOriginalRFIDGraphicsInfo` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TOriginalRFIDGraphicsInfo.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("RFID_ORIGINAL_GRAPH_DATA").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `RFID_ORIGINAL_GRAPH_DATA` to be an array in the JSON string but got `%s`", + jsonObj.get("RFID_ORIGINAL_GRAPH_DATA").toString())); + } + + JsonArray jsonArrayRFID_ORIGINAL_GRAPH_DATA = + jsonObj.getAsJsonArray("RFID_ORIGINAL_GRAPH_DATA"); + // validate the required field `RFID_ORIGINAL_GRAPH_DATA` (array) + for (int i = 0; i < jsonArrayRFID_ORIGINAL_GRAPH_DATA.size(); i++) { + GraphData.validateJsonElement(jsonArrayRFID_ORIGINAL_GRAPH_DATA.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TOriginalRFIDGraphicsInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TOriginalRFIDGraphicsInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TOriginalRFIDGraphicsInfo.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TOriginalRFIDGraphicsInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TOriginalRFIDGraphicsInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TOriginalRFIDGraphicsInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of TOriginalRFIDGraphicsInfo + * @throws IOException if the JSON string is invalid with respect to TOriginalRFIDGraphicsInfo + */ + public static TOriginalRFIDGraphicsInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TOriginalRFIDGraphicsInfo.class); + } + + /** + * Convert an instance of TOriginalRFIDGraphicsInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Text.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Text.java index 696274dd..d9e6ed3c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Text.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Text.java @@ -64,7 +64,7 @@ public class Text { @SerializedName(SERIALIZED_NAME_FIELD_LIST) @javax.annotation.Nonnull - private List fieldList; + private List fieldList; public static final String SERIALIZED_NAME_AVAILABLE_SOURCE_LIST = "availableSourceList"; @@ -150,15 +150,12 @@ public void setDateFormat(@javax.annotation.Nonnull String dateFormat) { this.dateFormat = dateFormat; } - public Text fieldList( - @javax.annotation.Nonnull - List fieldList) { + public Text fieldList(@javax.annotation.Nonnull List fieldList) { this.fieldList = fieldList; return this; } - public Text addFieldListItem( - com.regula.documentreader.webclient.model.ext.TextField fieldListItem) { + public Text addFieldListItem(TextField fieldListItem) { if (this.fieldList == null) { this.fieldList = new ArrayList<>(); } @@ -172,13 +169,11 @@ public Text addFieldListItem( * @return fieldList */ @javax.annotation.Nonnull - public List getFieldList() { + public List getFieldList() { return fieldList; } - public void setFieldList( - @javax.annotation.Nonnull - List fieldList) { + public void setFieldList(@javax.annotation.Nonnull List fieldList) { this.fieldList = fieldList; } @@ -343,8 +338,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonArray jsonArrayfieldList = jsonObj.getAsJsonArray("fieldList"); // validate the required field `fieldList` (array) for (int i = 0; i < jsonArrayfieldList.size(); i++) { - com.regula.documentreader.webclient.model.ext.TextField.validateJsonElement( - jsonArrayfieldList.get(i)); + TextField.validateJsonElement(jsonArrayfieldList.get(i)); } ; // ensure the json data is an array diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java index 1e61d46f..c7d8eac5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java @@ -37,12 +37,11 @@ public class TextResult extends ResultItem { @SerializedName(SERIALIZED_NAME_TEXT) @javax.annotation.Nonnull - private com.regula.documentreader.webclient.model.ext.Text text; + private Text text; public TextResult() {} - public TextResult text( - @javax.annotation.Nonnull com.regula.documentreader.webclient.model.ext.Text text) { + public TextResult text(@javax.annotation.Nonnull Text text) { this.text = text; return this; } @@ -53,12 +52,11 @@ public TextResult text( * @return text */ @javax.annotation.Nonnull - public com.regula.documentreader.webclient.model.ext.Text getText() { + public Text getText() { return text; } - public void setText( - @javax.annotation.Nonnull com.regula.documentreader.webclient.model.ext.Text text) { + public void setText(@javax.annotation.Nonnull Text text) { this.text = text; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java index 9dded1e6..c096220f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java @@ -58,7 +58,7 @@ public class TrfFtBytes { public static final String SERIALIZED_NAME_DATA = "Data"; @SerializedName(SERIALIZED_NAME_DATA) - @javax.annotation.Nonnull + @javax.annotation.Nullable private String data; public TrfFtBytes() {} @@ -121,7 +121,7 @@ public void setLength(@javax.annotation.Nonnull BigDecimal length) { this.length = length; } - public TrfFtBytes data(@javax.annotation.Nonnull String data) { + public TrfFtBytes data(@javax.annotation.Nullable String data) { this.data = data; return this; } @@ -131,12 +131,12 @@ public TrfFtBytes data(@javax.annotation.Nonnull String data) { * * @return data */ - @javax.annotation.Nonnull + @javax.annotation.Nullable public String getData() { return data; } - public void setData(@javax.annotation.Nonnull String data) { + public void setData(@javax.annotation.Nullable String data) { this.data = data; } @@ -241,7 +241,8 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `Type` TrfFtBytesType.validateJsonElement(jsonObj.get("Type")); - if (!jsonObj.get("Data").isJsonPrimitive()) { + if ((jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) + && !jsonObj.get("Data").isJsonPrimitive()) { throw new IllegalArgumentException( String.format( "Expected the field `Data` to be a primitive type in the JSON string but got `%s`", diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java index 2b7da713..0420d343 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java @@ -39,19 +39,19 @@ public class TrfFtString { public static final String SERIALIZED_NAME_TYPE = "Type"; @SerializedName(SERIALIZED_NAME_TYPE) - @javax.annotation.Nonnull - private TrfFtStringType type; + @javax.annotation.Nullable + private Integer type; public static final String SERIALIZED_NAME_STATUS = "Status"; @SerializedName(SERIALIZED_NAME_STATUS) - @javax.annotation.Nonnull - private TrfFtStringStatus status; + @javax.annotation.Nullable + private Integer status; public static final String SERIALIZED_NAME_FORMAT = "Format"; @SerializedName(SERIALIZED_NAME_FORMAT) - @javax.annotation.Nonnull + @javax.annotation.Nullable private String format; public static final String SERIALIZED_NAME_DATA = "Data"; @@ -62,7 +62,7 @@ public class TrfFtString { public TrfFtString() {} - public TrfFtString type(@javax.annotation.Nonnull TrfFtStringType type) { + public TrfFtString type(@javax.annotation.Nullable Integer type) { this.type = type; return this; } @@ -72,35 +72,36 @@ public TrfFtString type(@javax.annotation.Nonnull TrfFtStringType type) { * * @return type */ - @javax.annotation.Nonnull - public TrfFtStringType getType() { + @javax.annotation.Nullable + public Integer getType() { return type; } - public void setType(@javax.annotation.Nonnull TrfFtStringType type) { + public void setType(@javax.annotation.Nullable Integer type) { this.type = type; } - public TrfFtString status(@javax.annotation.Nonnull TrfFtStringStatus status) { + public TrfFtString status(@javax.annotation.Nullable Integer status) { this.status = status; return this; } /** - * Get status + * Result of logical analysis of compliance of the contents of the field with the requirements of + * the specification * * @return status */ - @javax.annotation.Nonnull - public TrfFtStringStatus getStatus() { + @javax.annotation.Nullable + public Integer getStatus() { return status; } - public void setStatus(@javax.annotation.Nonnull TrfFtStringStatus status) { + public void setStatus(@javax.annotation.Nullable Integer status) { this.status = status; } - public TrfFtString format(@javax.annotation.Nonnull String format) { + public TrfFtString format(@javax.annotation.Nullable String format) { this.format = format; return this; } @@ -110,12 +111,12 @@ public TrfFtString format(@javax.annotation.Nonnull String format) { * * @return format */ - @javax.annotation.Nonnull + @javax.annotation.Nullable public String getFormat() { return format; } - public void setFormat(@javax.annotation.Nonnull String format) { + public void setFormat(@javax.annotation.Nullable String format) { this.format = format; } @@ -193,9 +194,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("Type"); - openapiRequiredFields.add("Status"); - openapiRequiredFields.add("Format"); openapiRequiredFields.add("Data"); } @@ -237,11 +235,8 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - // validate the required field `Type` - TrfFtStringType.validateJsonElement(jsonObj.get("Type")); - // validate the required field `Status` - TrfFtStringStatus.validateJsonElement(jsonObj.get("Status")); - if (!jsonObj.get("Format").isJsonPrimitive()) { + if ((jsonObj.get("Format") != null && !jsonObj.get("Format").isJsonNull()) + && !jsonObj.get("Format").isJsonPrimitive()) { throw new IllegalArgumentException( String.format( "Expected the field `Format` to be a primitive type in the JSON string but got `%s`", diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringStatus.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringStatus.java deleted file mode 100644 index bc5d5ba1..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringStatus.java +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; - -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class TrfFtStringStatus extends AbstractOpenApiSchema { - private static final Logger log = Logger.getLogger(TrfFtStringStatus.class.getName()); - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!TrfFtStringStatus.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'TrfFtStringStatus' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter adapterParsingNotificationCodes = - gson.getDelegateAdapter(this, TypeToken.get(ParsingNotificationCodes.class)); - final TypeAdapter adapterParsingErrorCodes = - gson.getDelegateAdapter(this, TypeToken.get(ParsingErrorCodes.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, TrfFtStringStatus value) throws IOException { - if (value == null || value.getActualInstance() == null) { - elementAdapter.write(out, null); - return; - } - - // check if the actual instance is of the type `ParsingNotificationCodes` - if (value.getActualInstance() instanceof ParsingNotificationCodes) { - JsonElement element = - adapterParsingNotificationCodes.toJsonTree( - (ParsingNotificationCodes) value.getActualInstance()); - elementAdapter.write(out, element); - return; - } - // check if the actual instance is of the type `ParsingErrorCodes` - if (value.getActualInstance() instanceof ParsingErrorCodes) { - JsonElement element = - adapterParsingErrorCodes.toJsonTree( - (ParsingErrorCodes) value.getActualInstance()); - elementAdapter.write(out, element); - return; - } - throw new IOException( - "Failed to serialize as the type doesn't match oneOf schemas: ParsingErrorCodes, ParsingNotificationCodes"); - } - - @Override - public TrfFtStringStatus read(JsonReader in) throws IOException { - Object deserialized = null; - JsonElement jsonElement = elementAdapter.read(in); - - int match = 0; - ArrayList errorMessages = new ArrayList<>(); - TypeAdapter actualAdapter = elementAdapter; - - // deserialize ParsingNotificationCodes - try { - // validate the JSON object to see if any exception is thrown - ParsingNotificationCodes.validateJsonElement(jsonElement); - actualAdapter = adapterParsingNotificationCodes; - match++; - log.log(Level.FINER, "Input data matches schema 'ParsingNotificationCodes'"); - } catch (Exception e) { - // deserialization failed, continue - errorMessages.add( - String.format( - "Deserialization for ParsingNotificationCodes failed with `%s`.", - e.getMessage())); - log.log( - Level.FINER, "Input data does not match schema 'ParsingNotificationCodes'", e); - } - // deserialize ParsingErrorCodes - try { - // validate the JSON object to see if any exception is thrown - ParsingErrorCodes.validateJsonElement(jsonElement); - actualAdapter = adapterParsingErrorCodes; - match++; - log.log(Level.FINER, "Input data matches schema 'ParsingErrorCodes'"); - } catch (Exception e) { - // deserialization failed, continue - errorMessages.add( - String.format( - "Deserialization for ParsingErrorCodes failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'ParsingErrorCodes'", e); - } - - if (match == 1) { - TrfFtStringStatus ret = new TrfFtStringStatus(); - ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); - return ret; - } - - throw new IOException( - String.format( - "Failed deserialization for TrfFtStringStatus: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", - match, errorMessages, jsonElement.toString())); - } - }.nullSafe(); - } - } - - // store a list of schema names defined in oneOf - public static final Map> schemas = new HashMap>(); - - public TrfFtStringStatus() { - super("oneOf", Boolean.FALSE); - } - - public TrfFtStringStatus(Object o) { - super("oneOf", Boolean.FALSE); - setActualInstance(o); - } - - static { - schemas.put("ParsingNotificationCodes", ParsingNotificationCodes.class); - schemas.put("ParsingErrorCodes", ParsingErrorCodes.class); - } - - @Override - public Map> getSchemas() { - return TrfFtStringStatus.schemas; - } - - /** - * Set the instance that matches the oneOf child schema, check the instance parameter is valid - * against the oneOf child schemas: ParsingErrorCodes, ParsingNotificationCodes - * - *

It could be an instance of the 'oneOf' schemas. - */ - @Override - public void setActualInstance(Object instance) { - if (instance instanceof ParsingNotificationCodes) { - super.setActualInstance(instance); - return; - } - - if (instance instanceof ParsingErrorCodes) { - super.setActualInstance(instance); - return; - } - - throw new RuntimeException( - "Invalid instance type. Must be ParsingErrorCodes, ParsingNotificationCodes"); - } - - /** - * Get the actual instance, which can be the following: ParsingErrorCodes, - * ParsingNotificationCodes - * - * @return The actual instance (ParsingErrorCodes, ParsingNotificationCodes) - */ - @SuppressWarnings("unchecked") - @Override - public Object getActualInstance() { - return super.getActualInstance(); - } - - /** - * Get the actual instance of `ParsingNotificationCodes`. If the actual instance is not - * `ParsingNotificationCodes`, the ClassCastException will be thrown. - * - * @return The actual instance of `ParsingNotificationCodes` - * @throws ClassCastException if the instance is not `ParsingNotificationCodes` - */ - public ParsingNotificationCodes getParsingNotificationCodes() throws ClassCastException { - return (ParsingNotificationCodes) super.getActualInstance(); - } - - /** - * Get the actual instance of `ParsingErrorCodes`. If the actual instance is not - * `ParsingErrorCodes`, the ClassCastException will be thrown. - * - * @return The actual instance of `ParsingErrorCodes` - * @throws ClassCastException if the instance is not `ParsingErrorCodes` - */ - public ParsingErrorCodes getParsingErrorCodes() throws ClassCastException { - return (ParsingErrorCodes) super.getActualInstance(); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to TrfFtStringStatus - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - // validate oneOf schemas one by one - int validCount = 0; - ArrayList errorMessages = new ArrayList<>(); - // validate the json string with ParsingNotificationCodes - try { - ParsingNotificationCodes.validateJsonElement(jsonElement); - validCount++; - } catch (Exception e) { - errorMessages.add( - String.format( - "Deserialization for ParsingNotificationCodes failed with `%s`.", e.getMessage())); - // continue to the next one - } - // validate the json string with ParsingErrorCodes - try { - ParsingErrorCodes.validateJsonElement(jsonElement); - validCount++; - } catch (Exception e) { - errorMessages.add( - String.format("Deserialization for ParsingErrorCodes failed with `%s`.", e.getMessage())); - // continue to the next one - } - if (validCount != 1) { - throw new IOException( - String.format( - "The JSON string is invalid for TrfFtStringStatus with oneOf schemas: ParsingErrorCodes, ParsingNotificationCodes. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", - validCount, errorMessages, jsonElement.toString())); - } - } - - /** - * Create an instance of TrfFtStringStatus given an JSON string - * - * @param jsonString JSON string - * @return An instance of TrfFtStringStatus - * @throws IOException if the JSON string is invalid with respect to TrfFtStringStatus - */ - public static TrfFtStringStatus fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, TrfFtStringStatus.class); - } - - /** - * Convert an instance of TrfFtStringStatus to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringType.java deleted file mode 100644 index 1a85f06e..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtStringType.java +++ /dev/null @@ -1,261 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; - -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class TrfFtStringType extends AbstractOpenApiSchema { - private static final Logger log = Logger.getLogger(TrfFtStringType.class.getName()); - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!TrfFtStringType.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'TrfFtStringType' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter adapterGraphicFieldType = - gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldType.class)); - final TypeAdapter adapterTextFieldType = - gson.getDelegateAdapter(this, TypeToken.get(TextFieldType.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, TrfFtStringType value) throws IOException { - if (value == null || value.getActualInstance() == null) { - elementAdapter.write(out, null); - return; - } - - // check if the actual instance is of the type `GraphicFieldType` - if (value.getActualInstance() instanceof GraphicFieldType) { - JsonElement element = - adapterGraphicFieldType.toJsonTree( - (GraphicFieldType) value.getActualInstance()); - elementAdapter.write(out, element); - return; - } - // check if the actual instance is of the type `TextFieldType` - if (value.getActualInstance() instanceof TextFieldType) { - JsonElement element = - adapterTextFieldType.toJsonTree((TextFieldType) value.getActualInstance()); - elementAdapter.write(out, element); - return; - } - throw new IOException( - "Failed to serialize as the type doesn't match oneOf schemas: GraphicFieldType, TextFieldType"); - } - - @Override - public TrfFtStringType read(JsonReader in) throws IOException { - Object deserialized = null; - JsonElement jsonElement = elementAdapter.read(in); - - int match = 0; - ArrayList errorMessages = new ArrayList<>(); - TypeAdapter actualAdapter = elementAdapter; - - // deserialize GraphicFieldType - try { - // validate the JSON object to see if any exception is thrown - GraphicFieldType.validateJsonElement(jsonElement); - actualAdapter = adapterGraphicFieldType; - match++; - log.log(Level.FINER, "Input data matches schema 'GraphicFieldType'"); - } catch (Exception e) { - // deserialization failed, continue - errorMessages.add( - String.format( - "Deserialization for GraphicFieldType failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'GraphicFieldType'", e); - } - // deserialize TextFieldType - try { - // validate the JSON object to see if any exception is thrown - TextFieldType.validateJsonElement(jsonElement); - actualAdapter = adapterTextFieldType; - match++; - log.log(Level.FINER, "Input data matches schema 'TextFieldType'"); - } catch (Exception e) { - // deserialization failed, continue - errorMessages.add( - String.format( - "Deserialization for TextFieldType failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'TextFieldType'", e); - } - - if (match == 1) { - TrfFtStringType ret = new TrfFtStringType(); - ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); - return ret; - } - - throw new IOException( - String.format( - "Failed deserialization for TrfFtStringType: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", - match, errorMessages, jsonElement.toString())); - } - }.nullSafe(); - } - } - - // store a list of schema names defined in oneOf - public static final Map> schemas = new HashMap>(); - - public TrfFtStringType() { - super("oneOf", Boolean.FALSE); - } - - public TrfFtStringType(Object o) { - super("oneOf", Boolean.FALSE); - setActualInstance(o); - } - - static { - schemas.put("GraphicFieldType", GraphicFieldType.class); - schemas.put("TextFieldType", TextFieldType.class); - } - - @Override - public Map> getSchemas() { - return TrfFtStringType.schemas; - } - - /** - * Set the instance that matches the oneOf child schema, check the instance parameter is valid - * against the oneOf child schemas: GraphicFieldType, TextFieldType - * - *

It could be an instance of the 'oneOf' schemas. - */ - @Override - public void setActualInstance(Object instance) { - if (instance instanceof GraphicFieldType) { - super.setActualInstance(instance); - return; - } - - if (instance instanceof TextFieldType) { - super.setActualInstance(instance); - return; - } - - throw new RuntimeException("Invalid instance type. Must be GraphicFieldType, TextFieldType"); - } - - /** - * Get the actual instance, which can be the following: GraphicFieldType, TextFieldType - * - * @return The actual instance (GraphicFieldType, TextFieldType) - */ - @SuppressWarnings("unchecked") - @Override - public Object getActualInstance() { - return super.getActualInstance(); - } - - /** - * Get the actual instance of `GraphicFieldType`. If the actual instance is not - * `GraphicFieldType`, the ClassCastException will be thrown. - * - * @return The actual instance of `GraphicFieldType` - * @throws ClassCastException if the instance is not `GraphicFieldType` - */ - public GraphicFieldType getGraphicFieldType() throws ClassCastException { - return (GraphicFieldType) super.getActualInstance(); - } - - /** - * Get the actual instance of `TextFieldType`. If the actual instance is not `TextFieldType`, the - * ClassCastException will be thrown. - * - * @return The actual instance of `TextFieldType` - * @throws ClassCastException if the instance is not `TextFieldType` - */ - public TextFieldType getTextFieldType() throws ClassCastException { - return (TextFieldType) super.getActualInstance(); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to TrfFtStringType - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - // validate oneOf schemas one by one - int validCount = 0; - ArrayList errorMessages = new ArrayList<>(); - // validate the json string with GraphicFieldType - try { - GraphicFieldType.validateJsonElement(jsonElement); - validCount++; - } catch (Exception e) { - errorMessages.add( - String.format("Deserialization for GraphicFieldType failed with `%s`.", e.getMessage())); - // continue to the next one - } - // validate the json string with TextFieldType - try { - TextFieldType.validateJsonElement(jsonElement); - validCount++; - } catch (Exception e) { - errorMessages.add( - String.format("Deserialization for TextFieldType failed with `%s`.", e.getMessage())); - // continue to the next one - } - if (validCount != 1) { - throw new IOException( - String.format( - "The JSON string is invalid for TrfFtStringType with oneOf schemas: GraphicFieldType, TextFieldType. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", - validCount, errorMessages, jsonElement.toString())); - } - } - - /** - * Create an instance of TrfFtStringType given an JSON string - * - * @param jsonString JSON string - * @return An instance of TrfFtStringType - * @throws IOException if the JSON string is invalid with respect to TrfFtStringType - */ - public static TrfFtStringType fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, TrfFtStringType.class); - } - - /** - * Convert an instance of TrfFtStringType to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/Images.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/Images.java index 8eddd130..0ef9424b 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/Images.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/Images.java @@ -5,9 +5,14 @@ import java.util.ArrayList; import java.util.List; import javax.annotation.Nullable; +import org.springframework.beans.BeanUtils; public class Images extends com.regula.documentreader.webclient.model.Images { + public Images(com.regula.documentreader.webclient.model.Images imagesContainer) { + BeanUtils.copyProperties(imagesContainer, this); + } + public Images withAvailableSourceList(List availableSourceList) { this.setAvailableSourceList(availableSourceList); return this; @@ -17,7 +22,7 @@ public Images withAvailableSourceList(List availableSourc public Images addAvailableSourceListItem(ImagesAvailableSource availableSourceListItem) { com.regula.documentreader.webclient.model.Images images = super.addAvailableSourceListItem(availableSourceListItem); - return (Images) images; + return new Images(images); } @Override @@ -31,7 +36,7 @@ public void setAvailableSourceList(List availableSourceLi } public Images withFieldList(List fieldList) { - List fields = new ArrayList<>(); + List fields = new ArrayList<>(); for (ImagesField field : fieldList) { fields.add(field); } @@ -43,7 +48,7 @@ public Images withFieldList(List fieldList) { public ImagesField getField(GraphicFieldType fieldType) { for (com.regula.documentreader.webclient.model.ImagesField field : getFieldList()) { if (field.getFieldType() == fieldType) { - return (ImagesField) field; + return new ImagesField(field); } } return null; @@ -53,7 +58,7 @@ public List getFields(int fieldType) { List fields = new ArrayList<>(); for (com.regula.documentreader.webclient.model.ImagesField field : getFieldList()) { if (field.getFieldType().getValue() == fieldType) { - fields.add((ImagesField) field); + fields.add(new ImagesField(field)); } } return fields; diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ImagesField.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ImagesField.java index 896d7e01..bf6ddabd 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ImagesField.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ImagesField.java @@ -6,9 +6,14 @@ import com.regula.documentreader.webclient.model.Source; import java.util.List; import javax.annotation.Nullable; +import org.springframework.beans.BeanUtils; public class ImagesField extends com.regula.documentreader.webclient.model.ImagesField { + public ImagesField(com.regula.documentreader.webclient.model.ImagesField field) { + BeanUtils.copyProperties(field, this); + } + public ImagesField withFieldName(String fieldName) { this.setFieldName(fieldName); return this; @@ -28,7 +33,7 @@ public ImagesField withValueList(List valueList) { public ImagesField addValueListItem(ImagesFieldValue valueListItem) { com.regula.documentreader.webclient.model.ImagesField field = super.addValueListItem(valueListItem); - return (ImagesField) field; + return new ImagesField(field); } @Override diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java index 227c6976..7aefdcf3 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionRequest.java @@ -1,10 +1,10 @@ package com.regula.documentreader.webclient.model.ext; import com.google.gson.Gson; +import com.regula.documentreader.webclient.model.ContainerList; import com.regula.documentreader.webclient.model.ProcessParams; import com.regula.documentreader.webclient.model.ProcessRequest; import com.regula.documentreader.webclient.model.ProcessSystemInfo; -import com.regula.documentreader.webclient.model.ContainerList; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java index 9e55d39f..3d29c7e1 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java @@ -40,7 +40,7 @@ public Status status() { public Text text() { TextResult result = resultByType(Result.TEXT); if (result != null) { - return (Text) result.getText(); + return new Text(result.getText()); } return null; } @@ -76,7 +76,7 @@ public String GetLog() { public Images images() { ImagesResult result = resultByType(Result.IMAGES); if (result != null) { - return (Images) result.getImages(); + return new Images(result.getImages()); } return null; } @@ -90,7 +90,7 @@ public Authenticity authenticity() { public Authenticity authenticity(int page_idx) { AuthenticityResult result = getResult(Result.AUTHENTICITY, page_idx); if (result != null) { - return (Authenticity) result.getAuthenticityCheckList(); + return new Authenticity(result.getAuthenticityCheckList()); } return null; } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/Text.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/Text.java index cf7b8502..2b9591fc 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/Text.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/Text.java @@ -8,18 +8,23 @@ import java.util.List; import java.util.Objects; import javax.annotation.Nullable; +import org.springframework.beans.BeanUtils; public class Text extends com.regula.documentreader.webclient.model.Text { + public Text(com.regula.documentreader.webclient.model.Text textContainer) { + BeanUtils.copyProperties(textContainer, this); + } + @Nullable public TextField getField(TextFieldType fieldType) { TextField result = null; for (com.regula.documentreader.webclient.model.TextField field : getFieldList()) { if (field.getFieldType() == fieldType && field.getLcid() == LCID.LATIN) { - return (TextField) field; + return new TextField(field); } if (result == null && field.getFieldType() == fieldType) { - result = (TextField) field; + result = new TextField(field); } } return result; @@ -29,7 +34,7 @@ public TextField getField(TextFieldType fieldType) { public TextField getField(TextFieldType fieldType, LCID lcid) { for (com.regula.documentreader.webclient.model.TextField field : getFieldList()) { if (field.getFieldType() == fieldType && field.getLcid() == lcid) { - return (TextField) field; + return new TextField(field); } } return null; @@ -40,10 +45,10 @@ public TextField getField(String fieldName) { TextField result = null; for (com.regula.documentreader.webclient.model.TextField field : getFieldList()) { if (Objects.equals(field.getFieldName(), fieldName) && field.getLcid() == LCID.LATIN) { - return (TextField) field; + return new TextField(field); } if (result == null && Objects.equals(field.getFieldName(), fieldName)) { - result = (TextField) field; + result = new TextField(field); } } return result; @@ -53,7 +58,7 @@ public TextField getField(String fieldName) { public TextField getField(String fieldName, LCID lcid) { for (com.regula.documentreader.webclient.model.TextField field : getFieldList()) { if (Objects.equals(field.getFieldName(), fieldName) && field.getLcid() == lcid) { - return (TextField) field; + return new TextField(field); } } return null; @@ -103,7 +108,8 @@ public Text withComparisonStatus(CheckResult comparisonStatus) { } public Text withFieldList(List fieldList) { - List convertedList = new ArrayList<>(fieldList); + List convertedList = + new ArrayList<>(fieldList); this.setFieldList(convertedList); return this; } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/TextField.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/TextField.java index 6b991292..91e50688 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/TextField.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/TextField.java @@ -9,9 +9,14 @@ import com.regula.documentreader.webclient.model.TextFieldValue; import java.util.List; import javax.annotation.Nullable; +import org.springframework.beans.BeanUtils; public class TextField extends com.regula.documentreader.webclient.model.TextField { + public TextField(com.regula.documentreader.webclient.model.TextField field) { + BeanUtils.copyProperties(field, this); + } + public TextField withFieldType(TextFieldType fieldType) { this.setFieldType(fieldType); return this; diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/Authenticity.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/Authenticity.java index 1a7bbfdf..9281d51a 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/Authenticity.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/Authenticity.java @@ -1,13 +1,18 @@ package com.regula.documentreader.webclient.model.ext.authenticity; import com.regula.documentreader.webclient.model.AuthenticityCheckList; -import com.regula.documentreader.webclient.model.AuthenticityResultType; import com.regula.documentreader.webclient.model.AuthenticityCheckResult; +import com.regula.documentreader.webclient.model.AuthenticityResultType; import java.util.List; import javax.annotation.Nullable; +import org.springframework.beans.BeanUtils; public class Authenticity extends com.regula.documentreader.webclient.model.AuthenticityCheckList { + public Authenticity(com.regula.documentreader.webclient.model.AuthenticityCheckList list) { + BeanUtils.copyProperties(list, this); + } + public AuthenticityCheckList withCount(Integer count) { this.setCount(count); return this; diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/FiberChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/FiberChecks.java index 1ac498e6..910de147 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/FiberChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/FiberChecks.java @@ -1,7 +1,7 @@ package com.regula.documentreader.webclient.model.ext.authenticity; -import com.regula.documentreader.webclient.model.FiberResult; import com.regula.documentreader.webclient.model.AuthenticityCheckResult; +import com.regula.documentreader.webclient.model.FiberResult; import java.util.List; public class FiberChecks extends AuthenticityResult { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/IdentChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/IdentChecks.java index 87a1e91d..6aae5b28 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/IdentChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/IdentChecks.java @@ -1,8 +1,8 @@ package com.regula.documentreader.webclient.model.ext.authenticity; +import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import com.regula.documentreader.webclient.model.IdentResult; import com.regula.documentreader.webclient.model.SecurityFeatureType; -import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import java.util.List; import javax.annotation.Nullable; diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/ImageIdentChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/ImageIdentChecks.java index bb3f88f5..42b95934 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/ImageIdentChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/ImageIdentChecks.java @@ -1,7 +1,7 @@ package com.regula.documentreader.webclient.model.ext.authenticity; -import com.regula.documentreader.webclient.model.PhotoIdentResult; import com.regula.documentreader.webclient.model.AuthenticityCheckResult; +import com.regula.documentreader.webclient.model.PhotoIdentResult; import java.util.List; public class ImageIdentChecks extends AuthenticityResult { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/OCRSecurityTextChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/OCRSecurityTextChecks.java index a5068838..43637a40 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/OCRSecurityTextChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/OCRSecurityTextChecks.java @@ -1,7 +1,7 @@ package com.regula.documentreader.webclient.model.ext.authenticity; -import com.regula.documentreader.webclient.model.OCRSecurityTextResult; import com.regula.documentreader.webclient.model.AuthenticityCheckResult; +import com.regula.documentreader.webclient.model.OCRSecurityTextResult; import java.util.List; public class OCRSecurityTextChecks extends AuthenticityResult { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/SecurityFeatureChecks.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/SecurityFeatureChecks.java index 5c6e1d98..2278eb82 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/SecurityFeatureChecks.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/authenticity/SecurityFeatureChecks.java @@ -1,8 +1,8 @@ package com.regula.documentreader.webclient.model.ext.authenticity; +import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import com.regula.documentreader.webclient.model.SecurityFeatureResult; import com.regula.documentreader.webclient.model.SecurityFeatureType; -import com.regula.documentreader.webclient.model.AuthenticityCheckResult; import java.util.List; import javax.annotation.Nullable; diff --git a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java index f94eaee5..5b8a984e 100644 --- a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java +++ b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java @@ -38,12 +38,11 @@ public static void main(String[] args) throws IOException, UnsupportedEncodingEx var containerList = new ContainerList(); containerList.setList(List.of(license, encryptedRCL)); - var requestParams = new RecognitionParams() - .withScenario(Scenario.FULL_PROCESS) - .withDoublePageSpread(true) - .withMeasureSystem(MeasureSystem.METRIC) - .withDateFormat("M/d/yyyy") - .withAlreadyCropped(true); + var requestParams = new ProcessParams() + .scenario(Scenario.FULL_PROCESS) + .measureSystem(MeasureSystem.METRIC) + .dateFormat("M/d/yyyy") + .alreadyCropped(true); RecognitionRequest request = new RecognitionRequest( requestParams, containerList); diff --git a/example/src/main/java/com/regula/documentreader/webclient/example/Main.java b/example/src/main/java/com/regula/documentreader/webclient/example/Main.java index 0f4c767d..147064af 100755 --- a/example/src/main/java/com/regula/documentreader/webclient/example/Main.java +++ b/example/src/main/java/com/regula/documentreader/webclient/example/Main.java @@ -45,7 +45,7 @@ public static void main(String[] args) throws IOException, ApiException { var whitePageRequestImage = new ProcessRequestImage(whitePage0, Light.WHITE, 0); var requestParams = new ProcessParams() - .scenario(Scenario.MRZ) + .scenario(Scenario.FULL_PROCESS) .resultTypeOutput( Arrays.asList( // actual results @@ -80,7 +80,6 @@ public static void main(String[] args) throws IOException, ApiException { RecognitionResponse response = api.process(request); var requestJson = request.json(); var responseJson = response.json(); - System.out.println(response.text()); // to send raw request(ex encrypted one) with overriding processing params here use next api // RecognitionResponse response = api.process(request, requestParams); diff --git a/java-generator-config.json b/java-generator-config.json index 7a674551..7b3dc3ea 100755 --- a/java-generator-config.json +++ b/java-generator-config.json @@ -11,15 +11,10 @@ "containerDefaultToNull": true, "legacyDiscriminatorBehavior": false, "typeMappings" : { - "TextField" : "com.regula.documentreader.webclient.model.ext.TextField", - "ImagesField" : "com.regula.documentreader.webclient.model.ext.ImagesField", - "Text": "com.regula.documentreader.webclient.model.ext.Text", - "Images" : "com.regula.documentreader.webclient.model.ext.Images", - "AuthenticityCheckList" : "com.regula.documentreader.webclient.model.ext.authenticity.Authenticity", "ContainerListListInner": "ResultItem", "AuthenticityCheckResultListInner": "AuthenticityCheckResultItem", - "DocVisualExtendedInfoPArrayFieldsInner": "DocVisualExtendedInfo", - "GraphicFieldsListPArrayFieldsInner": "GraphicFieldsList" + "DocVisualExtendedInfoPArrayFieldsInner": "DocVisualExtendedField", + "GraphicFieldsListPArrayFieldsInner": "GraphicField" }, "nameMappings": { "List": "list" From d000521252251591feb3d7bd2b16dd22b30a2da2 Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Fri, 7 Mar 2025 18:04:12 +0300 Subject: [PATCH 04/19] Fix example --- client/.openapi-generator/FILES | 2 -- .../regula/documentreader/webclient/JSON.java | 2 -- .../webclient/model/ParsedData.java | 11 ++++--- .../model/RfidAccessControlInfo.java | 11 +++---- .../webclient/model/RfidCertificateEx.java | 11 +++---- .../webclient/model/RfidDataFile.java | 11 +++---- .../webclient/model/RfidSecurityObject.java | 11 +++---- .../webclient/model/RfidSignerInfoEx.java | 30 +++++++++++++++---- .../webclient/model/TrfFtBytes.java | 12 ++++---- .../webclient/encryptedRCL/Example.java | 2 +- 10 files changed, 59 insertions(+), 44 deletions(-) diff --git a/client/.openapi-generator/FILES b/client/.openapi-generator/FILES index 0a6be84a..81152f63 100755 --- a/client/.openapi-generator/FILES +++ b/client/.openapi-generator/FILES @@ -131,7 +131,6 @@ src/main/generated/com/regula/documentreader/webclient/model/OutData.java src/main/generated/com/regula/documentreader/webclient/model/OutDataTransactionImagesFieldValue.java src/main/generated/com/regula/documentreader/webclient/model/PArrayField.java src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java -src/main/generated/com/regula/documentreader/webclient/model/ParsingErrorCodes.java src/main/generated/com/regula/documentreader/webclient/model/ParsingNotificationCodes.java src/main/generated/com/regula/documentreader/webclient/model/PerDocumentConfig.java src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentResult.java @@ -215,7 +214,6 @@ src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessR src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponse.java src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResult.java src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java -src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytesType.java src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java diff --git a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java index 82855652..1294fadc 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java @@ -1280,8 +1280,6 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.TrfFtBytes.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.TrfFtBytesType.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.TrfFtString.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java index 677ab48d..60ad5754 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java @@ -39,17 +39,17 @@ public class ParsedData { @SerializedName(SERIALIZED_NAME_PARSING_NOTIFICATIONS) @javax.annotation.Nullable - private List parsingNotifications; + private List parsingNotifications; public ParsedData() {} public ParsedData parsingNotifications( - @javax.annotation.Nullable List parsingNotifications) { + @javax.annotation.Nullable List parsingNotifications) { this.parsingNotifications = parsingNotifications; return this; } - public ParsedData addParsingNotificationsItem(Integer parsingNotificationsItem) { + public ParsedData addParsingNotificationsItem(Long parsingNotificationsItem) { if (this.parsingNotifications == null) { this.parsingNotifications = new ArrayList<>(); } @@ -63,12 +63,11 @@ public ParsedData addParsingNotificationsItem(Integer parsingNotificationsItem) * @return parsingNotifications */ @javax.annotation.Nullable - public List getParsingNotifications() { + public List getParsingNotifications() { return parsingNotifications; } - public void setParsingNotifications( - @javax.annotation.Nullable List parsingNotifications) { + public void setParsingNotifications(@javax.annotation.Nullable List parsingNotifications) { this.parsingNotifications = parsingNotifications; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java index 9407e8c4..dc98ff0e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java @@ -61,7 +61,7 @@ public class RfidAccessControlInfo { @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) @javax.annotation.Nonnull - private List notifications; + private List notifications; public static final String SERIALIZED_NAME_ACCESS_CONTROL_OPTIONS = "AccessControlOptions"; @@ -130,12 +130,12 @@ public void setActiveOptionIdx(@javax.annotation.Nullable BigDecimal activeOptio } public RfidAccessControlInfo notifications( - @javax.annotation.Nonnull List notifications) { + @javax.annotation.Nonnull List notifications) { this.notifications = notifications; return this; } - public RfidAccessControlInfo addNotificationsItem(ParsingErrorCodes notificationsItem) { + public RfidAccessControlInfo addNotificationsItem(ParsingNotificationCodes notificationsItem) { if (this.notifications == null) { this.notifications = new ArrayList<>(); } @@ -149,11 +149,12 @@ public RfidAccessControlInfo addNotificationsItem(ParsingErrorCodes notification * @return notifications */ @javax.annotation.Nonnull - public List getNotifications() { + public List getNotifications() { return notifications; } - public void setNotifications(@javax.annotation.Nonnull List notifications) { + public void setNotifications( + @javax.annotation.Nonnull List notifications) { this.notifications = notifications; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java index 8d58f967..8a07e60d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java @@ -93,7 +93,7 @@ public class RfidCertificateEx { @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) @javax.annotation.Nonnull - private List notifications; + private List notifications; public static final String SERIALIZED_NAME_ORIGIN = "Origin"; @@ -284,12 +284,12 @@ public void setExtensions(@javax.annotation.Nonnull List exten } public RfidCertificateEx notifications( - @javax.annotation.Nonnull List notifications) { + @javax.annotation.Nonnull List notifications) { this.notifications = notifications; return this; } - public RfidCertificateEx addNotificationsItem(ParsingErrorCodes notificationsItem) { + public RfidCertificateEx addNotificationsItem(ParsingNotificationCodes notificationsItem) { if (this.notifications == null) { this.notifications = new ArrayList<>(); } @@ -304,11 +304,12 @@ public RfidCertificateEx addNotificationsItem(ParsingErrorCodes notificationsIte * @return notifications */ @javax.annotation.Nonnull - public List getNotifications() { + public List getNotifications() { return notifications; } - public void setNotifications(@javax.annotation.Nonnull List notifications) { + public void setNotifications( + @javax.annotation.Nonnull List notifications) { this.notifications = notifications; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java index db38727b..f82b35f6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java @@ -80,7 +80,7 @@ public class RfidDataFile { @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) @javax.annotation.Nullable - private List notifications; + private List notifications; public static final String SERIALIZED_NAME_DOC_FIELDS_TEXT = "DocFields_Text"; @@ -231,12 +231,12 @@ public void setPaStatus(@javax.annotation.Nullable RFIDErrorCodes paStatus) { } public RfidDataFile notifications( - @javax.annotation.Nullable List notifications) { + @javax.annotation.Nullable List notifications) { this.notifications = notifications; return this; } - public RfidDataFile addNotificationsItem(ParsingErrorCodes notificationsItem) { + public RfidDataFile addNotificationsItem(ParsingNotificationCodes notificationsItem) { if (this.notifications == null) { this.notifications = new ArrayList<>(); } @@ -251,11 +251,12 @@ public RfidDataFile addNotificationsItem(ParsingErrorCodes notificationsItem) { * @return notifications */ @javax.annotation.Nullable - public List getNotifications() { + public List getNotifications() { return notifications; } - public void setNotifications(@javax.annotation.Nullable List notifications) { + public void setNotifications( + @javax.annotation.Nullable List notifications) { this.notifications = notifications; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java index 7d88f8b9..116c286a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java @@ -62,7 +62,7 @@ public class RfidSecurityObject { @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) @javax.annotation.Nonnull - private List notifications; + private List notifications; public static final String SERIALIZED_NAME_SIGNER_INFOS = "SignerInfos"; @@ -130,12 +130,12 @@ public void setFileReference(@javax.annotation.Nonnull BigDecimal fileReference) } public RfidSecurityObject notifications( - @javax.annotation.Nonnull List notifications) { + @javax.annotation.Nonnull List notifications) { this.notifications = notifications; return this; } - public RfidSecurityObject addNotificationsItem(ParsingErrorCodes notificationsItem) { + public RfidSecurityObject addNotificationsItem(ParsingNotificationCodes notificationsItem) { if (this.notifications == null) { this.notifications = new ArrayList<>(); } @@ -149,11 +149,12 @@ public RfidSecurityObject addNotificationsItem(ParsingErrorCodes notificationsIt * @return notifications */ @javax.annotation.Nonnull - public List getNotifications() { + public List getNotifications() { return notifications; } - public void setNotifications(@javax.annotation.Nonnull List notifications) { + public void setNotifications( + @javax.annotation.Nonnull List notifications) { this.notifications = notifications; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java index 7be40a1e..502b306d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java @@ -111,7 +111,7 @@ public class RfidSignerInfoEx { @SerializedName(SERIALIZED_NAME_NOTIFICATIONS) @javax.annotation.Nonnull - private ParsingErrorCodes notifications; + private List notifications; public RfidSignerInfoEx() {} @@ -346,22 +346,32 @@ public void setDataToHash(@javax.annotation.Nonnull String dataToHash) { this.dataToHash = dataToHash; } - public RfidSignerInfoEx notifications(@javax.annotation.Nonnull ParsingErrorCodes notifications) { + public RfidSignerInfoEx notifications( + @javax.annotation.Nonnull List notifications) { this.notifications = notifications; return this; } + public RfidSignerInfoEx addNotificationsItem(ParsingNotificationCodes notificationsItem) { + if (this.notifications == null) { + this.notifications = new ArrayList<>(); + } + this.notifications.add(notificationsItem); + return this; + } + /** * Get notifications * * @return notifications */ @javax.annotation.Nonnull - public ParsingErrorCodes getNotifications() { + public List getNotifications() { return notifications; } - public void setNotifications(@javax.annotation.Nonnull ParsingErrorCodes notifications) { + public void setNotifications( + @javax.annotation.Nonnull List notifications) { this.notifications = notifications; } @@ -566,8 +576,16 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti "Expected the field `DataToHash` to be a primitive type in the JSON string but got `%s`", jsonObj.get("DataToHash").toString())); } - // validate the required field `Notifications` - ParsingErrorCodes.validateJsonElement(jsonObj.get("Notifications")); + // ensure the required json array is present + if (jsonObj.get("Notifications") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("Notifications").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Notifications` to be an array in the JSON string but got `%s`", + jsonObj.get("Notifications").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java index c096220f..60b0240a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java @@ -41,7 +41,7 @@ public class TrfFtBytes { @SerializedName(SERIALIZED_NAME_TYPE) @javax.annotation.Nonnull - private TrfFtBytesType type; + private Integer type; public static final String SERIALIZED_NAME_STATUS = "Status"; @@ -63,22 +63,22 @@ public class TrfFtBytes { public TrfFtBytes() {} - public TrfFtBytes type(@javax.annotation.Nonnull TrfFtBytesType type) { + public TrfFtBytes type(@javax.annotation.Nonnull Integer type) { this.type = type; return this; } /** - * Get type + * Logical type of the field * * @return type */ @javax.annotation.Nonnull - public TrfFtBytesType getType() { + public Integer getType() { return type; } - public void setType(@javax.annotation.Nonnull TrfFtBytesType type) { + public void setType(@javax.annotation.Nonnull Integer type) { this.type = type; } @@ -239,8 +239,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - // validate the required field `Type` - TrfFtBytesType.validateJsonElement(jsonObj.get("Type")); if ((jsonObj.get("Data") != null && !jsonObj.get("Data").isJsonNull()) && !jsonObj.get("Data").isJsonPrimitive()) { throw new IllegalArgumentException( diff --git a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java index 5b8a984e..9df7bc55 100644 --- a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java +++ b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java @@ -20,7 +20,7 @@ public class Example { public static final String API_BASE_PATH = "API_BASE_PATH"; public static final String TEST_LICENSE = "TEST_LICENSE"; - public static void main(String[] args) throws IOException, UnsupportedEncodingException { + public static void main(String[] args) throws IOException { var apiBaseUrl = System.getenv(API_BASE_PATH); if (apiBaseUrl == null) { From dc230e5d18c99d3f99a84a4cf58a45436abaeb20 Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Mon, 10 Mar 2025 13:16:41 +0300 Subject: [PATCH 05/19] Update models --- client/.openapi-generator/FILES | 22 + .../regula/documentreader/webclient/JSON.java | 57 +++ .../model/AuthenticityCheckListItem.java | 207 ++++++++ .../webclient/model/ByteArrayItem.java | 206 ++++++++ .../webclient/model/CandidatesListItem.java | 195 ++++++++ .../webclient/model/DocBarCodeInfoItem.java | 203 ++++++++ .../webclient/model/DocGraphicsInfoItem.java | 203 ++++++++ .../model/DocVisualExtendedInfoItem.java | 207 ++++++++ .../model/DocumentBinaryInfoResult.java | 5 +- .../webclient/model/DocumentPositionItem.java | 203 ++++++++ .../webclient/model/EncryptedRCLItem.java | 201 ++++++++ .../webclient/model/EncryptedRCLResult.java | 2 +- .../webclient/model/FaceDetectionItem.java | 202 ++++++++ .../model/ImageQualityCheckListItem.java | 207 ++++++++ .../webclient/model/ImagesItem.java | 202 ++++++++ .../webclient/model/LicenseItem.java | 201 ++++++++ .../webclient/model/LicenseResult.java | 2 +- .../model/ListVerifiedFieldsItem.java | 204 ++++++++ .../webclient/model/MRZTestQualityItem.java | 203 ++++++++ .../webclient/model/MrzPositionItem.java | 202 ++++++++ .../webclient/model/OneCandidateItem.java | 233 +++++++++ .../webclient/model/ParsingErrorCodes.java | 446 ------------------ .../model/RawImageContainerItem.java | 203 ++++++++ .../model/ResultMRZDetectorItem.java | 203 ++++++++ .../webclient/model/StatusItem.java | 202 ++++++++ .../webclient/model/TDocBinaryInfoItem.java | 203 ++++++++ .../model/TOriginalRFIDGraphicsInfoItem.java | 210 +++++++++ .../webclient/model/TextItem.java | 202 ++++++++ .../webclient/model/TrfFtBytesType.java | 261 ---------- 29 files changed, 4587 insertions(+), 710 deletions(-) create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckListItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/CandidatesListItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocGraphicsInfoItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckListItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ImagesItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/LicenseItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFieldsItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/MrzPositionItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidateItem.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ParsingErrorCodes.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetectorItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/StatusItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfoItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfoItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TextItem.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytesType.java diff --git a/client/.openapi-generator/FILES b/client/.openapi-generator/FILES index 81152f63..72061a36 100755 --- a/client/.openapi-generator/FILES +++ b/client/.openapi-generator/FILES @@ -24,6 +24,7 @@ src/main/generated/com/regula/documentreader/webclient/model/AreaArray.java src/main/generated/com/regula/documentreader/webclient/model/AreaContainer.java src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java +src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckListItem.java src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultListInner.java @@ -34,7 +35,9 @@ src/main/generated/com/regula/documentreader/webclient/model/BarcodeType.java src/main/generated/com/regula/documentreader/webclient/model/BcPDF417INFO.java src/main/generated/com/regula/documentreader/webclient/model/BcROIDETECT.java src/main/generated/com/regula/documentreader/webclient/model/BinaryData.java +src/main/generated/com/regula/documentreader/webclient/model/ByteArrayItem.java src/main/generated/com/regula/documentreader/webclient/model/ByteArrayResult.java +src/main/generated/com/regula/documentreader/webclient/model/CandidatesListItem.java src/main/generated/com/regula/documentreader/webclient/model/CertificateData.java src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java @@ -50,16 +53,20 @@ src/main/generated/com/regula/documentreader/webclient/model/DetailsRFID.java src/main/generated/com/regula/documentreader/webclient/model/DeviceInfo.java src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfo.java src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoFieldsList.java +src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoItem.java +src/main/generated/com/regula/documentreader/webclient/model/DocGraphicsInfoItem.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java +src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoItem.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java src/main/generated/com/regula/documentreader/webclient/model/DocumentImage.java src/main/generated/com/regula/documentreader/webclient/model/DocumentImageResult.java src/main/generated/com/regula/documentreader/webclient/model/DocumentPosition.java +src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionItem.java src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionResult.java src/main/generated/com/regula/documentreader/webclient/model/DocumentType.java src/main/generated/com/regula/documentreader/webclient/model/DocumentTypeRecognitionResult.java @@ -67,12 +74,14 @@ src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandid src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesList.java src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesResult.java src/main/generated/com/regula/documentreader/webclient/model/DocumentsDatabase.java +src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLItem.java src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java src/main/generated/com/regula/documentreader/webclient/model/FDSIDList.java src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java src/main/generated/com/regula/documentreader/webclient/model/FaceApiSearch.java src/main/generated/com/regula/documentreader/webclient/model/FaceDetection.java +src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionItem.java src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionResult.java src/main/generated/com/regula/documentreader/webclient/model/FaceItem.java src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java @@ -94,6 +103,7 @@ src/main/generated/com/regula/documentreader/webclient/model/ImageData.java src/main/generated/com/regula/documentreader/webclient/model/ImageQA.java src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheck.java src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckList.java +src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckListItem.java src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckType.java src/main/generated/com/regula/documentreader/webclient/model/ImageQualityResult.java src/main/generated/com/regula/documentreader/webclient/model/ImageTransactionData.java @@ -101,6 +111,7 @@ src/main/generated/com/regula/documentreader/webclient/model/Images.java src/main/generated/com/regula/documentreader/webclient/model/ImagesAvailableSource.java src/main/generated/com/regula/documentreader/webclient/model/ImagesField.java src/main/generated/com/regula/documentreader/webclient/model/ImagesFieldValue.java +src/main/generated/com/regula/documentreader/webclient/model/ImagesItem.java src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java src/main/generated/com/regula/documentreader/webclient/model/InData.java src/main/generated/com/regula/documentreader/webclient/model/InDataTransactionImagesFieldValue.java @@ -109,10 +120,12 @@ src/main/generated/com/regula/documentreader/webclient/model/InputBarcodeType.ja src/main/generated/com/regula/documentreader/webclient/model/InputImageQualityChecks.java src/main/generated/com/regula/documentreader/webclient/model/LCID.java src/main/generated/com/regula/documentreader/webclient/model/LexicalAnalysisResult.java +src/main/generated/com/regula/documentreader/webclient/model/LicenseItem.java src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java src/main/generated/com/regula/documentreader/webclient/model/Light.java src/main/generated/com/regula/documentreader/webclient/model/ListTransactionsByTagResponse.java src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFields.java +src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFieldsItem.java src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java src/main/generated/com/regula/documentreader/webclient/model/LogLevel.java src/main/generated/com/regula/documentreader/webclient/model/MRZDetectorResult.java @@ -120,12 +133,15 @@ src/main/generated/com/regula/documentreader/webclient/model/MRZFormat.java src/main/generated/com/regula/documentreader/webclient/model/MRZPositionResult.java src/main/generated/com/regula/documentreader/webclient/model/MRZRowsItem.java src/main/generated/com/regula/documentreader/webclient/model/MRZTestQuality.java +src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityItem.java src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityResult.java src/main/generated/com/regula/documentreader/webclient/model/MeasureSystem.java src/main/generated/com/regula/documentreader/webclient/model/MrzDetectModeEnum.java src/main/generated/com/regula/documentreader/webclient/model/MrzPosition.java +src/main/generated/com/regula/documentreader/webclient/model/MrzPositionItem.java src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextResult.java src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java +src/main/generated/com/regula/documentreader/webclient/model/OneCandidateItem.java src/main/generated/com/regula/documentreader/webclient/model/OriginalSymbol.java src/main/generated/com/regula/documentreader/webclient/model/OutData.java src/main/generated/com/regula/documentreader/webclient/model/OutDataTransactionImagesFieldValue.java @@ -147,11 +163,13 @@ src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.ja src/main/generated/com/regula/documentreader/webclient/model/RFIDErrorCodes.java src/main/generated/com/regula/documentreader/webclient/model/RFIDGraphicsInfoResult.java src/main/generated/com/regula/documentreader/webclient/model/RFIDPKDResourceType.java +src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerItem.java src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerList.java src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java src/main/generated/com/regula/documentreader/webclient/model/Result.java src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java +src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetectorItem.java src/main/generated/com/regula/documentreader/webclient/model/RfidAChip.java src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlProcedureType.java @@ -190,6 +208,7 @@ src/main/generated/com/regula/documentreader/webclient/model/SecurityObjectCerti src/main/generated/com/regula/documentreader/webclient/model/Source.java src/main/generated/com/regula/documentreader/webclient/model/SourceValidity.java src/main/generated/com/regula/documentreader/webclient/model/Status.java +src/main/generated/com/regula/documentreader/webclient/model/StatusItem.java src/main/generated/com/regula/documentreader/webclient/model/StatusResult.java src/main/generated/com/regula/documentreader/webclient/model/StringItem.java src/main/generated/com/regula/documentreader/webclient/model/StringRecognitionResult.java @@ -198,13 +217,16 @@ src/main/generated/com/regula/documentreader/webclient/model/SymbolCandidate.jav src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java src/main/generated/com/regula/documentreader/webclient/model/SymbolRecognitionResult.java src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java +src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfoItem.java src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfo.java +src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfoItem.java src/main/generated/com/regula/documentreader/webclient/model/Text.java src/main/generated/com/regula/documentreader/webclient/model/TextAvailableSource.java src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java src/main/generated/com/regula/documentreader/webclient/model/TextField.java src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java src/main/generated/com/regula/documentreader/webclient/model/TextFieldValue.java +src/main/generated/com/regula/documentreader/webclient/model/TextItem.java src/main/generated/com/regula/documentreader/webclient/model/TextPostProcessing.java src/main/generated/com/regula/documentreader/webclient/model/TextResult.java src/main/generated/com/regula/documentreader/webclient/model/TransactionImage.java diff --git a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java index 1294fadc..01862ad9 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java @@ -941,6 +941,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.AuthenticityCheckList .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.AuthenticityCheckListItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.AuthenticityCheckResult .CustomTypeAdapterFactory()); @@ -956,8 +959,13 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.BcROIDETECT.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.BinaryData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ByteArrayItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ByteArrayResult.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.CandidatesListItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.CertificateData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -987,6 +995,12 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocBarCodeInfoFieldsList .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocBarCodeInfoItem + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocGraphicsInfoItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocVisualExtendedFieldRect .CustomTypeAdapterFactory()); @@ -996,6 +1010,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocVisualExtendedInfo .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocVisualExtendedInfoItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocVisualExtendedInfoPArrayFieldsInner .CustomTypeAdapterFactory()); @@ -1009,6 +1026,9 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocumentPosition.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocumentPositionItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocumentPositionResult .CustomTypeAdapterFactory()); @@ -1023,6 +1043,8 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocumentsDatabase.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.EncryptedRCLItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.EncryptedRCLResult .CustomTypeAdapterFactory()); @@ -1036,6 +1058,8 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.FaceApiSearch.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.FaceDetection.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.FaceDetectionItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.FaceDetectionResult .CustomTypeAdapterFactory()); @@ -1079,6 +1103,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ImageQualityCheckList .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ImageQualityCheckListItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ImageQualityResult .CustomTypeAdapterFactory()); @@ -1094,6 +1121,8 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.ImagesField.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ImagesFieldValue.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ImagesItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ImagesResult.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1106,6 +1135,8 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.LexicalAnalysisResult .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.LicenseItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.LicenseResult.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1114,6 +1145,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ListVerifiedFields .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ListVerifiedFieldsItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.LivenessParams.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1124,16 +1158,23 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.MRZRowsItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.MRZTestQuality.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.MRZTestQualityItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.MRZTestQualityResult .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.MrzPosition.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.MrzPositionItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.OCRSecurityTextResult .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.OneCandidate.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.OneCandidateItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.OriginalSymbol.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1169,6 +1210,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.RFIDGraphicsInfoResult .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RawImageContainerItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.RawImageContainerList .CustomTypeAdapterFactory()); @@ -1177,6 +1221,9 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ResultMRZDetector.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ResultMRZDetectorItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.RfidAccessControlInfo .CustomTypeAdapterFactory()); @@ -1227,6 +1274,8 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.SourceValidity.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.Status.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.StatusItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.StatusResult.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1246,9 +1295,15 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.TDocBinaryInfo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TDocBinaryInfoItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.TOriginalRFIDGraphicsInfo .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TOriginalRFIDGraphicsInfoItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.Text.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1260,6 +1315,8 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.TextField.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.TextFieldValue.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TextItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.TextResult.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckListItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckListItem.java new file mode 100644 index 00000000..59fa5555 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckListItem.java @@ -0,0 +1,207 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** AuthenticityCheckListItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class AuthenticityCheckListItem { + public static final String SERIALIZED_NAME_AUTHENTICITY_CHECK_LIST = "AuthenticityCheckList"; + + @SerializedName(SERIALIZED_NAME_AUTHENTICITY_CHECK_LIST) + @javax.annotation.Nonnull + private AuthenticityCheckList authenticityCheckList; + + public AuthenticityCheckListItem() {} + + public AuthenticityCheckListItem authenticityCheckList( + @javax.annotation.Nonnull AuthenticityCheckList authenticityCheckList) { + this.authenticityCheckList = authenticityCheckList; + return this; + } + + /** + * Get authenticityCheckList + * + * @return authenticityCheckList + */ + @javax.annotation.Nonnull + public AuthenticityCheckList getAuthenticityCheckList() { + return authenticityCheckList; + } + + public void setAuthenticityCheckList( + @javax.annotation.Nonnull AuthenticityCheckList authenticityCheckList) { + this.authenticityCheckList = authenticityCheckList; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AuthenticityCheckListItem authenticityCheckListItem = (AuthenticityCheckListItem) o; + return Objects.equals( + this.authenticityCheckList, authenticityCheckListItem.authenticityCheckList); + } + + @Override + public int hashCode() { + return Objects.hash(authenticityCheckList); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AuthenticityCheckListItem {\n"); + sb.append(" authenticityCheckList: ") + .append(toIndentedString(authenticityCheckList)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("AuthenticityCheckList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("AuthenticityCheckList"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AuthenticityCheckListItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AuthenticityCheckListItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in AuthenticityCheckListItem is not found in the empty JSON string", + AuthenticityCheckListItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!AuthenticityCheckListItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `AuthenticityCheckListItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AuthenticityCheckListItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `AuthenticityCheckList` + AuthenticityCheckList.validateJsonElement(jsonObj.get("AuthenticityCheckList")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AuthenticityCheckListItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AuthenticityCheckListItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(AuthenticityCheckListItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, AuthenticityCheckListItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public AuthenticityCheckListItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of AuthenticityCheckListItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of AuthenticityCheckListItem + * @throws IOException if the JSON string is invalid with respect to AuthenticityCheckListItem + */ + public static AuthenticityCheckListItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AuthenticityCheckListItem.class); + } + + /** + * Convert an instance of AuthenticityCheckListItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayItem.java new file mode 100644 index 00000000..05f4c03e --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayItem.java @@ -0,0 +1,206 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** ByteArrayItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class ByteArrayItem { + public static final String SERIALIZED_NAME_BYTE_ARRAY = "ByteArray"; + + @SerializedName(SERIALIZED_NAME_BYTE_ARRAY) + @javax.annotation.Nonnull + private String byteArray; + + public ByteArrayItem() {} + + public ByteArrayItem byteArray(@javax.annotation.Nonnull String byteArray) { + this.byteArray = byteArray; + return this; + } + + /** + * Byte array in base64 + * + * @return byteArray + */ + @javax.annotation.Nonnull + public String getByteArray() { + return byteArray; + } + + public void setByteArray(@javax.annotation.Nonnull String byteArray) { + this.byteArray = byteArray; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ByteArrayItem byteArrayItem = (ByteArrayItem) o; + return Objects.equals(this.byteArray, byteArrayItem.byteArray); + } + + @Override + public int hashCode() { + return Objects.hash(byteArray); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ByteArrayItem {\n"); + sb.append(" byteArray: ").append(toIndentedString(byteArray)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ByteArray"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ByteArray"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ByteArrayItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ByteArrayItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ByteArrayItem is not found in the empty JSON string", + ByteArrayItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ByteArrayItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ByteArrayItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ByteArrayItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("ByteArray").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ByteArray` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("ByteArray").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ByteArrayItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ByteArrayItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ByteArrayItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ByteArrayItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ByteArrayItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ByteArrayItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of ByteArrayItem + * @throws IOException if the JSON string is invalid with respect to ByteArrayItem + */ + public static ByteArrayItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ByteArrayItem.class); + } + + /** + * Convert an instance of ByteArrayItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/CandidatesListItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/CandidatesListItem.java new file mode 100644 index 00000000..2ec71104 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/CandidatesListItem.java @@ -0,0 +1,195 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** CandidatesListItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class CandidatesListItem { + public static final String SERIALIZED_NAME_CANDIDATES_LIST = "CandidatesList"; + + @SerializedName(SERIALIZED_NAME_CANDIDATES_LIST) + @javax.annotation.Nullable + private DocumentTypesCandidatesList candidatesList; + + public CandidatesListItem() {} + + public CandidatesListItem candidatesList( + @javax.annotation.Nullable DocumentTypesCandidatesList candidatesList) { + this.candidatesList = candidatesList; + return this; + } + + /** + * Get candidatesList + * + * @return candidatesList + */ + @javax.annotation.Nullable + public DocumentTypesCandidatesList getCandidatesList() { + return candidatesList; + } + + public void setCandidatesList( + @javax.annotation.Nullable DocumentTypesCandidatesList candidatesList) { + this.candidatesList = candidatesList; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CandidatesListItem candidatesListItem = (CandidatesListItem) o; + return Objects.equals(this.candidatesList, candidatesListItem.candidatesList); + } + + @Override + public int hashCode() { + return Objects.hash(candidatesList); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CandidatesListItem {\n"); + sb.append(" candidatesList: ").append(toIndentedString(candidatesList)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("CandidatesList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CandidatesListItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CandidatesListItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in CandidatesListItem is not found in the empty JSON string", + CandidatesListItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!CandidatesListItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `CandidatesListItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `CandidatesList` + if (jsonObj.get("CandidatesList") != null && !jsonObj.get("CandidatesList").isJsonNull()) { + DocumentTypesCandidatesList.validateJsonElement(jsonObj.get("CandidatesList")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CandidatesListItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CandidatesListItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(CandidatesListItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, CandidatesListItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public CandidatesListItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of CandidatesListItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of CandidatesListItem + * @throws IOException if the JSON string is invalid with respect to CandidatesListItem + */ + public static CandidatesListItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CandidatesListItem.class); + } + + /** + * Convert an instance of CandidatesListItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoItem.java new file mode 100644 index 00000000..316202cf --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoItem.java @@ -0,0 +1,203 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** DocBarCodeInfoItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class DocBarCodeInfoItem { + public static final String SERIALIZED_NAME_DOC_BAR_CODE_INFO = "DocBarCodeInfo"; + + @SerializedName(SERIALIZED_NAME_DOC_BAR_CODE_INFO) + @javax.annotation.Nonnull + private DocBarCodeInfoFieldsList docBarCodeInfo; + + public DocBarCodeInfoItem() {} + + public DocBarCodeInfoItem docBarCodeInfo( + @javax.annotation.Nonnull DocBarCodeInfoFieldsList docBarCodeInfo) { + this.docBarCodeInfo = docBarCodeInfo; + return this; + } + + /** + * Get docBarCodeInfo + * + * @return docBarCodeInfo + */ + @javax.annotation.Nonnull + public DocBarCodeInfoFieldsList getDocBarCodeInfo() { + return docBarCodeInfo; + } + + public void setDocBarCodeInfo(@javax.annotation.Nonnull DocBarCodeInfoFieldsList docBarCodeInfo) { + this.docBarCodeInfo = docBarCodeInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocBarCodeInfoItem docBarCodeInfoItem = (DocBarCodeInfoItem) o; + return Objects.equals(this.docBarCodeInfo, docBarCodeInfoItem.docBarCodeInfo); + } + + @Override + public int hashCode() { + return Objects.hash(docBarCodeInfo); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DocBarCodeInfoItem {\n"); + sb.append(" docBarCodeInfo: ").append(toIndentedString(docBarCodeInfo)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("DocBarCodeInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("DocBarCodeInfo"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocBarCodeInfoItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocBarCodeInfoItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocBarCodeInfoItem is not found in the empty JSON string", + DocBarCodeInfoItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocBarCodeInfoItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocBarCodeInfoItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocBarCodeInfoItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `DocBarCodeInfo` + DocBarCodeInfoFieldsList.validateJsonElement(jsonObj.get("DocBarCodeInfo")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocBarCodeInfoItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocBarCodeInfoItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocBarCodeInfoItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocBarCodeInfoItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocBarCodeInfoItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocBarCodeInfoItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocBarCodeInfoItem + * @throws IOException if the JSON string is invalid with respect to DocBarCodeInfoItem + */ + public static DocBarCodeInfoItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocBarCodeInfoItem.class); + } + + /** + * Convert an instance of DocBarCodeInfoItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocGraphicsInfoItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocGraphicsInfoItem.java new file mode 100644 index 00000000..95fd3168 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocGraphicsInfoItem.java @@ -0,0 +1,203 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** DocGraphicsInfoItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class DocGraphicsInfoItem { + public static final String SERIALIZED_NAME_DOC_GRAPHICS_INFO = "DocGraphicsInfo"; + + @SerializedName(SERIALIZED_NAME_DOC_GRAPHICS_INFO) + @javax.annotation.Nonnull + private GraphicFieldsList docGraphicsInfo; + + public DocGraphicsInfoItem() {} + + public DocGraphicsInfoItem docGraphicsInfo( + @javax.annotation.Nonnull GraphicFieldsList docGraphicsInfo) { + this.docGraphicsInfo = docGraphicsInfo; + return this; + } + + /** + * Get docGraphicsInfo + * + * @return docGraphicsInfo + */ + @javax.annotation.Nonnull + public GraphicFieldsList getDocGraphicsInfo() { + return docGraphicsInfo; + } + + public void setDocGraphicsInfo(@javax.annotation.Nonnull GraphicFieldsList docGraphicsInfo) { + this.docGraphicsInfo = docGraphicsInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocGraphicsInfoItem docGraphicsInfoItem = (DocGraphicsInfoItem) o; + return Objects.equals(this.docGraphicsInfo, docGraphicsInfoItem.docGraphicsInfo); + } + + @Override + public int hashCode() { + return Objects.hash(docGraphicsInfo); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DocGraphicsInfoItem {\n"); + sb.append(" docGraphicsInfo: ").append(toIndentedString(docGraphicsInfo)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("DocGraphicsInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("DocGraphicsInfo"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocGraphicsInfoItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocGraphicsInfoItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocGraphicsInfoItem is not found in the empty JSON string", + DocGraphicsInfoItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocGraphicsInfoItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocGraphicsInfoItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocGraphicsInfoItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `DocGraphicsInfo` + GraphicFieldsList.validateJsonElement(jsonObj.get("DocGraphicsInfo")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocGraphicsInfoItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocGraphicsInfoItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocGraphicsInfoItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocGraphicsInfoItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocGraphicsInfoItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocGraphicsInfoItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocGraphicsInfoItem + * @throws IOException if the JSON string is invalid with respect to DocGraphicsInfoItem + */ + public static DocGraphicsInfoItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocGraphicsInfoItem.class); + } + + /** + * Convert an instance of DocGraphicsInfoItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoItem.java new file mode 100644 index 00000000..00edc749 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoItem.java @@ -0,0 +1,207 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** DocVisualExtendedInfoItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class DocVisualExtendedInfoItem { + public static final String SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO = "DocVisualExtendedInfo"; + + @SerializedName(SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO) + @javax.annotation.Nonnull + private DocVisualExtendedInfo docVisualExtendedInfo; + + public DocVisualExtendedInfoItem() {} + + public DocVisualExtendedInfoItem docVisualExtendedInfo( + @javax.annotation.Nonnull DocVisualExtendedInfo docVisualExtendedInfo) { + this.docVisualExtendedInfo = docVisualExtendedInfo; + return this; + } + + /** + * Get docVisualExtendedInfo + * + * @return docVisualExtendedInfo + */ + @javax.annotation.Nonnull + public DocVisualExtendedInfo getDocVisualExtendedInfo() { + return docVisualExtendedInfo; + } + + public void setDocVisualExtendedInfo( + @javax.annotation.Nonnull DocVisualExtendedInfo docVisualExtendedInfo) { + this.docVisualExtendedInfo = docVisualExtendedInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocVisualExtendedInfoItem docVisualExtendedInfoItem = (DocVisualExtendedInfoItem) o; + return Objects.equals( + this.docVisualExtendedInfo, docVisualExtendedInfoItem.docVisualExtendedInfo); + } + + @Override + public int hashCode() { + return Objects.hash(docVisualExtendedInfo); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DocVisualExtendedInfoItem {\n"); + sb.append(" docVisualExtendedInfo: ") + .append(toIndentedString(docVisualExtendedInfo)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("DocVisualExtendedInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("DocVisualExtendedInfo"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocVisualExtendedInfoItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocVisualExtendedInfoItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocVisualExtendedInfoItem is not found in the empty JSON string", + DocVisualExtendedInfoItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocVisualExtendedInfoItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocVisualExtendedInfoItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocVisualExtendedInfoItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `DocVisualExtendedInfo` + DocVisualExtendedInfo.validateJsonElement(jsonObj.get("DocVisualExtendedInfo")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocVisualExtendedInfoItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocVisualExtendedInfoItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedInfoItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocVisualExtendedInfoItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocVisualExtendedInfoItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocVisualExtendedInfoItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocVisualExtendedInfoItem + * @throws IOException if the JSON string is invalid with respect to DocVisualExtendedInfoItem + */ + public static DocVisualExtendedInfoItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocVisualExtendedInfoItem.class); + } + + /** + * Convert an instance of DocVisualExtendedInfoItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java index 6b4bdab1..19771507 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java @@ -28,7 +28,10 @@ import java.util.Objects; import java.util.Set; -/** DocumentBinaryInfoResult */ +/** + * Structure is used to store the data reading results from the RFID-chip in a form of a list of the + * logically separated data groups. + */ @javax.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0") diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionItem.java new file mode 100644 index 00000000..9f6dbf05 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionItem.java @@ -0,0 +1,203 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** DocumentPositionItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class DocumentPositionItem { + public static final String SERIALIZED_NAME_DOCUMENT_POSITION = "DocumentPosition"; + + @SerializedName(SERIALIZED_NAME_DOCUMENT_POSITION) + @javax.annotation.Nonnull + private DocumentPosition documentPosition; + + public DocumentPositionItem() {} + + public DocumentPositionItem documentPosition( + @javax.annotation.Nonnull DocumentPosition documentPosition) { + this.documentPosition = documentPosition; + return this; + } + + /** + * Get documentPosition + * + * @return documentPosition + */ + @javax.annotation.Nonnull + public DocumentPosition getDocumentPosition() { + return documentPosition; + } + + public void setDocumentPosition(@javax.annotation.Nonnull DocumentPosition documentPosition) { + this.documentPosition = documentPosition; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocumentPositionItem documentPositionItem = (DocumentPositionItem) o; + return Objects.equals(this.documentPosition, documentPositionItem.documentPosition); + } + + @Override + public int hashCode() { + return Objects.hash(documentPosition); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DocumentPositionItem {\n"); + sb.append(" documentPosition: ").append(toIndentedString(documentPosition)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("DocumentPosition"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("DocumentPosition"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocumentPositionItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocumentPositionItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocumentPositionItem is not found in the empty JSON string", + DocumentPositionItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocumentPositionItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocumentPositionItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocumentPositionItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `DocumentPosition` + DocumentPosition.validateJsonElement(jsonObj.get("DocumentPosition")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocumentPositionItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocumentPositionItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocumentPositionItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocumentPositionItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocumentPositionItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocumentPositionItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocumentPositionItem + * @throws IOException if the JSON string is invalid with respect to DocumentPositionItem + */ + public static DocumentPositionItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocumentPositionItem.class); + } + + /** + * Convert an instance of DocumentPositionItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLItem.java new file mode 100644 index 00000000..bf4d95fb --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLItem.java @@ -0,0 +1,201 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** EncryptedRCLItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class EncryptedRCLItem { + public static final String SERIALIZED_NAME_ENCRYPTED_R_C_L = "EncryptedRCL"; + + @SerializedName(SERIALIZED_NAME_ENCRYPTED_R_C_L) + @javax.annotation.Nonnull + private byte[] encryptedRCL; + + public EncryptedRCLItem() {} + + public EncryptedRCLItem encryptedRCL(@javax.annotation.Nonnull byte[] encryptedRCL) { + this.encryptedRCL = encryptedRCL; + return this; + } + + /** + * Base64 encoded data + * + * @return encryptedRCL + */ + @javax.annotation.Nonnull + public byte[] getEncryptedRCL() { + return encryptedRCL; + } + + public void setEncryptedRCL(@javax.annotation.Nonnull byte[] encryptedRCL) { + this.encryptedRCL = encryptedRCL; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EncryptedRCLItem encryptedRCLItem = (EncryptedRCLItem) o; + return Arrays.equals(this.encryptedRCL, encryptedRCLItem.encryptedRCL); + } + + @Override + public int hashCode() { + return Objects.hash(Arrays.hashCode(encryptedRCL)); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EncryptedRCLItem {\n"); + sb.append(" encryptedRCL: ").append(toIndentedString(encryptedRCL)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("EncryptedRCL"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("EncryptedRCL"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to EncryptedRCLItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!EncryptedRCLItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in EncryptedRCLItem is not found in the empty JSON string", + EncryptedRCLItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!EncryptedRCLItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `EncryptedRCLItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : EncryptedRCLItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!EncryptedRCLItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'EncryptedRCLItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(EncryptedRCLItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, EncryptedRCLItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public EncryptedRCLItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of EncryptedRCLItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of EncryptedRCLItem + * @throws IOException if the JSON string is invalid with respect to EncryptedRCLItem + */ + public static EncryptedRCLItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, EncryptedRCLItem.class); + } + + /** + * Convert an instance of EncryptedRCLItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java index fa30c71f..9b19e753 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java @@ -29,7 +29,7 @@ import java.util.Objects; import java.util.Set; -/** EncryptedRCLResult */ +/** Contains encrypted result container list */ @javax.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0") diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionItem.java new file mode 100644 index 00000000..af4abf96 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionItem.java @@ -0,0 +1,202 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** FaceDetectionItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class FaceDetectionItem { + public static final String SERIALIZED_NAME_FACE_DETECTION = "FaceDetection"; + + @SerializedName(SERIALIZED_NAME_FACE_DETECTION) + @javax.annotation.Nonnull + private FaceDetection faceDetection; + + public FaceDetectionItem() {} + + public FaceDetectionItem faceDetection(@javax.annotation.Nonnull FaceDetection faceDetection) { + this.faceDetection = faceDetection; + return this; + } + + /** + * Get faceDetection + * + * @return faceDetection + */ + @javax.annotation.Nonnull + public FaceDetection getFaceDetection() { + return faceDetection; + } + + public void setFaceDetection(@javax.annotation.Nonnull FaceDetection faceDetection) { + this.faceDetection = faceDetection; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FaceDetectionItem faceDetectionItem = (FaceDetectionItem) o; + return Objects.equals(this.faceDetection, faceDetectionItem.faceDetection); + } + + @Override + public int hashCode() { + return Objects.hash(faceDetection); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FaceDetectionItem {\n"); + sb.append(" faceDetection: ").append(toIndentedString(faceDetection)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FaceDetection"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FaceDetection"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FaceDetectionItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FaceDetectionItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in FaceDetectionItem is not found in the empty JSON string", + FaceDetectionItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FaceDetectionItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `FaceDetectionItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : FaceDetectionItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `FaceDetection` + FaceDetection.validateJsonElement(jsonObj.get("FaceDetection")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FaceDetectionItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FaceDetectionItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(FaceDetectionItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, FaceDetectionItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FaceDetectionItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of FaceDetectionItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of FaceDetectionItem + * @throws IOException if the JSON string is invalid with respect to FaceDetectionItem + */ + public static FaceDetectionItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FaceDetectionItem.class); + } + + /** + * Convert an instance of FaceDetectionItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckListItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckListItem.java new file mode 100644 index 00000000..75d4bf0f --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckListItem.java @@ -0,0 +1,207 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** ImageQualityCheckListItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class ImageQualityCheckListItem { + public static final String SERIALIZED_NAME_IMAGE_QUALITY_CHECK_LIST = "ImageQualityCheckList"; + + @SerializedName(SERIALIZED_NAME_IMAGE_QUALITY_CHECK_LIST) + @javax.annotation.Nonnull + private ImageQualityCheckList imageQualityCheckList; + + public ImageQualityCheckListItem() {} + + public ImageQualityCheckListItem imageQualityCheckList( + @javax.annotation.Nonnull ImageQualityCheckList imageQualityCheckList) { + this.imageQualityCheckList = imageQualityCheckList; + return this; + } + + /** + * Get imageQualityCheckList + * + * @return imageQualityCheckList + */ + @javax.annotation.Nonnull + public ImageQualityCheckList getImageQualityCheckList() { + return imageQualityCheckList; + } + + public void setImageQualityCheckList( + @javax.annotation.Nonnull ImageQualityCheckList imageQualityCheckList) { + this.imageQualityCheckList = imageQualityCheckList; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImageQualityCheckListItem imageQualityCheckListItem = (ImageQualityCheckListItem) o; + return Objects.equals( + this.imageQualityCheckList, imageQualityCheckListItem.imageQualityCheckList); + } + + @Override + public int hashCode() { + return Objects.hash(imageQualityCheckList); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImageQualityCheckListItem {\n"); + sb.append(" imageQualityCheckList: ") + .append(toIndentedString(imageQualityCheckList)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ImageQualityCheckList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ImageQualityCheckList"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImageQualityCheckListItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImageQualityCheckListItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ImageQualityCheckListItem is not found in the empty JSON string", + ImageQualityCheckListItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImageQualityCheckListItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ImageQualityCheckListItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ImageQualityCheckListItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `ImageQualityCheckList` + ImageQualityCheckList.validateJsonElement(jsonObj.get("ImageQualityCheckList")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImageQualityCheckListItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImageQualityCheckListItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ImageQualityCheckListItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ImageQualityCheckListItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImageQualityCheckListItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ImageQualityCheckListItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImageQualityCheckListItem + * @throws IOException if the JSON string is invalid with respect to ImageQualityCheckListItem + */ + public static ImageQualityCheckListItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImageQualityCheckListItem.class); + } + + /** + * Convert an instance of ImageQualityCheckListItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesItem.java new file mode 100644 index 00000000..4fe9e5fe --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesItem.java @@ -0,0 +1,202 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** ImagesItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class ImagesItem { + public static final String SERIALIZED_NAME_IMAGES = "Images"; + + @SerializedName(SERIALIZED_NAME_IMAGES) + @javax.annotation.Nonnull + private Images images; + + public ImagesItem() {} + + public ImagesItem images(@javax.annotation.Nonnull Images images) { + this.images = images; + return this; + } + + /** + * Get images + * + * @return images + */ + @javax.annotation.Nonnull + public Images getImages() { + return images; + } + + public void setImages(@javax.annotation.Nonnull Images images) { + this.images = images; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ImagesItem imagesItem = (ImagesItem) o; + return Objects.equals(this.images, imagesItem.images); + } + + @Override + public int hashCode() { + return Objects.hash(images); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ImagesItem {\n"); + sb.append(" images: ").append(toIndentedString(images)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Images"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Images"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ImagesItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ImagesItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ImagesItem is not found in the empty JSON string", + ImagesItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ImagesItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ImagesItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ImagesItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `Images` + Images.validateJsonElement(jsonObj.get("Images")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ImagesItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ImagesItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ImagesItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ImagesItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ImagesItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ImagesItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of ImagesItem + * @throws IOException if the JSON string is invalid with respect to ImagesItem + */ + public static ImagesItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ImagesItem.class); + } + + /** + * Convert an instance of ImagesItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseItem.java new file mode 100644 index 00000000..9865955d --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseItem.java @@ -0,0 +1,201 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** LicenseItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class LicenseItem { + public static final String SERIALIZED_NAME_LICENSE = "License"; + + @SerializedName(SERIALIZED_NAME_LICENSE) + @javax.annotation.Nonnull + private byte[] license; + + public LicenseItem() {} + + public LicenseItem license(@javax.annotation.Nonnull byte[] license) { + this.license = license; + return this; + } + + /** + * Base64 encoded data + * + * @return license + */ + @javax.annotation.Nonnull + public byte[] getLicense() { + return license; + } + + public void setLicense(@javax.annotation.Nonnull byte[] license) { + this.license = license; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LicenseItem licenseItem = (LicenseItem) o; + return Arrays.equals(this.license, licenseItem.license); + } + + @Override + public int hashCode() { + return Objects.hash(Arrays.hashCode(license)); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LicenseItem {\n"); + sb.append(" license: ").append(toIndentedString(license)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("License"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("License"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to LicenseItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!LicenseItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in LicenseItem is not found in the empty JSON string", + LicenseItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!LicenseItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `LicenseItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : LicenseItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!LicenseItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'LicenseItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(LicenseItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, LicenseItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public LicenseItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of LicenseItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of LicenseItem + * @throws IOException if the JSON string is invalid with respect to LicenseItem + */ + public static LicenseItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, LicenseItem.class); + } + + /** + * Convert an instance of LicenseItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java index 8d0433c9..2026609c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java @@ -29,7 +29,7 @@ import java.util.Objects; import java.util.Set; -/** LicenseResult */ +/** Contains license */ @javax.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0") diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFieldsItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFieldsItem.java new file mode 100644 index 00000000..d3243067 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFieldsItem.java @@ -0,0 +1,204 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** ListVerifiedFieldsItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class ListVerifiedFieldsItem { + public static final String SERIALIZED_NAME_LIST_VERIFIED_FIELDS = "ListVerifiedFields"; + + @SerializedName(SERIALIZED_NAME_LIST_VERIFIED_FIELDS) + @javax.annotation.Nonnull + private ListVerifiedFields listVerifiedFields; + + public ListVerifiedFieldsItem() {} + + public ListVerifiedFieldsItem listVerifiedFields( + @javax.annotation.Nonnull ListVerifiedFields listVerifiedFields) { + this.listVerifiedFields = listVerifiedFields; + return this; + } + + /** + * Get listVerifiedFields + * + * @return listVerifiedFields + */ + @javax.annotation.Nonnull + public ListVerifiedFields getListVerifiedFields() { + return listVerifiedFields; + } + + public void setListVerifiedFields( + @javax.annotation.Nonnull ListVerifiedFields listVerifiedFields) { + this.listVerifiedFields = listVerifiedFields; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ListVerifiedFieldsItem listVerifiedFieldsItem = (ListVerifiedFieldsItem) o; + return Objects.equals(this.listVerifiedFields, listVerifiedFieldsItem.listVerifiedFields); + } + + @Override + public int hashCode() { + return Objects.hash(listVerifiedFields); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ListVerifiedFieldsItem {\n"); + sb.append(" listVerifiedFields: ").append(toIndentedString(listVerifiedFields)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ListVerifiedFields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ListVerifiedFields"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ListVerifiedFieldsItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ListVerifiedFieldsItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ListVerifiedFieldsItem is not found in the empty JSON string", + ListVerifiedFieldsItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ListVerifiedFieldsItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ListVerifiedFieldsItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ListVerifiedFieldsItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `ListVerifiedFields` + ListVerifiedFields.validateJsonElement(jsonObj.get("ListVerifiedFields")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ListVerifiedFieldsItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ListVerifiedFieldsItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ListVerifiedFieldsItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ListVerifiedFieldsItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ListVerifiedFieldsItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ListVerifiedFieldsItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of ListVerifiedFieldsItem + * @throws IOException if the JSON string is invalid with respect to ListVerifiedFieldsItem + */ + public static ListVerifiedFieldsItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ListVerifiedFieldsItem.class); + } + + /** + * Convert an instance of ListVerifiedFieldsItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityItem.java new file mode 100644 index 00000000..7c8bfacc --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityItem.java @@ -0,0 +1,203 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** MRZTestQualityItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class MRZTestQualityItem { + public static final String SERIALIZED_NAME_MR_Z_TEST_QUALITY = "MRZTestQuality"; + + @SerializedName(SERIALIZED_NAME_MR_Z_TEST_QUALITY) + @javax.annotation.Nonnull + private MRZTestQuality mrZTestQuality; + + public MRZTestQualityItem() {} + + public MRZTestQualityItem mrZTestQuality( + @javax.annotation.Nonnull MRZTestQuality mrZTestQuality) { + this.mrZTestQuality = mrZTestQuality; + return this; + } + + /** + * Get mrZTestQuality + * + * @return mrZTestQuality + */ + @javax.annotation.Nonnull + public MRZTestQuality getMrZTestQuality() { + return mrZTestQuality; + } + + public void setMrZTestQuality(@javax.annotation.Nonnull MRZTestQuality mrZTestQuality) { + this.mrZTestQuality = mrZTestQuality; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MRZTestQualityItem mrZTestQualityItem = (MRZTestQualityItem) o; + return Objects.equals(this.mrZTestQuality, mrZTestQualityItem.mrZTestQuality); + } + + @Override + public int hashCode() { + return Objects.hash(mrZTestQuality); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MRZTestQualityItem {\n"); + sb.append(" mrZTestQuality: ").append(toIndentedString(mrZTestQuality)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MRZTestQuality"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("MRZTestQuality"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MRZTestQualityItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MRZTestQualityItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in MRZTestQualityItem is not found in the empty JSON string", + MRZTestQualityItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MRZTestQualityItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `MRZTestQualityItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MRZTestQualityItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `MRZTestQuality` + MRZTestQuality.validateJsonElement(jsonObj.get("MRZTestQuality")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MRZTestQualityItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MRZTestQualityItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(MRZTestQualityItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, MRZTestQualityItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MRZTestQualityItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of MRZTestQualityItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of MRZTestQualityItem + * @throws IOException if the JSON string is invalid with respect to MRZTestQualityItem + */ + public static MRZTestQualityItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MRZTestQualityItem.class); + } + + /** + * Convert an instance of MRZTestQualityItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPositionItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPositionItem.java new file mode 100644 index 00000000..7dd31fb9 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPositionItem.java @@ -0,0 +1,202 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** MrzPositionItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class MrzPositionItem { + public static final String SERIALIZED_NAME_MRZ_POSITION = "MrzPosition"; + + @SerializedName(SERIALIZED_NAME_MRZ_POSITION) + @javax.annotation.Nonnull + private MrzPosition mrzPosition; + + public MrzPositionItem() {} + + public MrzPositionItem mrzPosition(@javax.annotation.Nonnull MrzPosition mrzPosition) { + this.mrzPosition = mrzPosition; + return this; + } + + /** + * Get mrzPosition + * + * @return mrzPosition + */ + @javax.annotation.Nonnull + public MrzPosition getMrzPosition() { + return mrzPosition; + } + + public void setMrzPosition(@javax.annotation.Nonnull MrzPosition mrzPosition) { + this.mrzPosition = mrzPosition; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + MrzPositionItem mrzPositionItem = (MrzPositionItem) o; + return Objects.equals(this.mrzPosition, mrzPositionItem.mrzPosition); + } + + @Override + public int hashCode() { + return Objects.hash(mrzPosition); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MrzPositionItem {\n"); + sb.append(" mrzPosition: ").append(toIndentedString(mrzPosition)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("MrzPosition"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("MrzPosition"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MrzPositionItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MrzPositionItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in MrzPositionItem is not found in the empty JSON string", + MrzPositionItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!MrzPositionItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `MrzPositionItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : MrzPositionItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `MrzPosition` + MrzPosition.validateJsonElement(jsonObj.get("MrzPosition")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MrzPositionItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MrzPositionItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(MrzPositionItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, MrzPositionItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public MrzPositionItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of MrzPositionItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of MrzPositionItem + * @throws IOException if the JSON string is invalid with respect to MrzPositionItem + */ + public static MrzPositionItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MrzPositionItem.class); + } + + /** + * Convert an instance of MrzPositionItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidateItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidateItem.java new file mode 100644 index 00000000..3d293a41 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidateItem.java @@ -0,0 +1,233 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** OneCandidateItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class OneCandidateItem { + public static final String SERIALIZED_NAME_ONE_CANDIDATE = "OneCandidate"; + + @SerializedName(SERIALIZED_NAME_ONE_CANDIDATE) + @javax.annotation.Nonnull + private OneCandidate oneCandidate; + + public static final String SERIALIZED_NAME_XM_L_BUFFER = "XML_buffer"; + + @SerializedName(SERIALIZED_NAME_XM_L_BUFFER) + @javax.annotation.Nullable + private String xmLBuffer; + + public OneCandidateItem() {} + + public OneCandidateItem(String xmLBuffer) { + this(); + this.xmLBuffer = xmLBuffer; + } + + public OneCandidateItem oneCandidate(@javax.annotation.Nonnull OneCandidate oneCandidate) { + this.oneCandidate = oneCandidate; + return this; + } + + /** + * Get oneCandidate + * + * @return oneCandidate + */ + @javax.annotation.Nonnull + public OneCandidate getOneCandidate() { + return oneCandidate; + } + + public void setOneCandidate(@javax.annotation.Nonnull OneCandidate oneCandidate) { + this.oneCandidate = oneCandidate; + } + + /** + * Get xmLBuffer + * + * @return xmLBuffer + */ + @javax.annotation.Nullable + public String getXmLBuffer() { + return xmLBuffer; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OneCandidateItem oneCandidateItem = (OneCandidateItem) o; + return Objects.equals(this.oneCandidate, oneCandidateItem.oneCandidate) + && Objects.equals(this.xmLBuffer, oneCandidateItem.xmLBuffer); + } + + @Override + public int hashCode() { + return Objects.hash(oneCandidate, xmLBuffer); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OneCandidateItem {\n"); + sb.append(" oneCandidate: ").append(toIndentedString(oneCandidate)).append("\n"); + sb.append(" xmLBuffer: ").append(toIndentedString(xmLBuffer)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("OneCandidate"); + openapiFields.add("XML_buffer"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("OneCandidate"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OneCandidateItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OneCandidateItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in OneCandidateItem is not found in the empty JSON string", + OneCandidateItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OneCandidateItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `OneCandidateItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : OneCandidateItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `OneCandidate` + OneCandidate.validateJsonElement(jsonObj.get("OneCandidate")); + if ((jsonObj.get("XML_buffer") != null && !jsonObj.get("XML_buffer").isJsonNull()) + && !jsonObj.get("XML_buffer").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `XML_buffer` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("XML_buffer").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OneCandidateItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OneCandidateItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(OneCandidateItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, OneCandidateItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OneCandidateItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of OneCandidateItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of OneCandidateItem + * @throws IOException if the JSON string is invalid with respect to OneCandidateItem + */ + public static OneCandidateItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OneCandidateItem.class); + } + + /** + * Convert an instance of OneCandidateItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingErrorCodes.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingErrorCodes.java deleted file mode 100644 index 31831cd9..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingErrorCodes.java +++ /dev/null @@ -1,446 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.JsonElement; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import java.io.IOException; - -/** The enumeration contains error codes that can return during the RFID chip processing. */ -@JsonAdapter(ParsingErrorCodes.Adapter.class) -public enum ParsingErrorCodes { - - /** OK */ - errLDS_Ok(1l), - - /** ASN: Incorrect data */ - errLDS_ASN_IncorrectData(2147483649l), - - /** ASN: Not enough data */ - errLDS_ASN_NotEnoughData(2147483650l), - - /** ASN: Contents unexpected data */ - errLDS_ASN_Contents_UnexpectedData(2147483651l), - - /** ASN Signed data: Incorrect data */ - errLDS_ASN_SignedData_IncorrectData(2147483656l), - - /** ASN Signed data: Encap contents incorrect data */ - errLDS_ASN_SignedData_EncapContents_IncorrectData(2147483657l), - - /** ASN Signed data: Version incorrect data */ - errLDS_ASN_SignedData_Version_IncorrectData(2147483658l), - - /** ASN Signed data: Digest algorithms incorrect data */ - errLDS_ASN_SignedData_DigestAlgorithms_IncorrectData(2147483665l), - - /** ASN LDS object: Incorrect data */ - errLDS_ASN_LDSObject_IncorrectData(2147483667l), - - /** ASN LDS object: Version incorrect data */ - errLDS_ASN_LDSObject_Version_IncorrectData(2147483668l), - - /** ASN LDS object: Digest algorithm incorrect data */ - errLDS_ASN_LDSObject_DigestAlgorithm_IncorrectData(2147483669l), - - /** ASN LDS object: DG hashes incorrect data */ - errLDS_ASN_LDSObject_DGHashes_IncorrectData(2147483670l), - - /** ASN LDS object: Version info incorrect data */ - errLDS_ASN_LDSObject_VersionInfo_IncorrectData(2147483666l), - - /** ASN Certificate: Incorrect data */ - errLDS_ASN_Certificate_IncorrectData(2147483671l), - - /** ASN Certificate: Version incorrect data */ - errLDS_ASN_Certificate_Version_IncorrectData(2147483672l), - - /** ASN Certificate: SN incorrect data */ - errLDS_ASN_Certificate_SN_IncorrectData(2147483673l), - - /** ASN Certificate: Signature incorrect data */ - errLDS_ASN_Certificate_Signature_IncorrectData(2147483674l), - - /** ASN Certificate: Issuer incorrect data */ - errLDS_ASN_Certificate_Issuer_IncorrectData(2147483675l), - - /** ASN Certificate: Validity incorrect data */ - errLDS_ASN_Certificate_Validity_IncorrectData(2147483676l), - - /** ASN Certificate: Subject incorrect data */ - errLDS_ASN_Certificate_Subject_IncorrectData(2147483677l), - - /** ASN Certificate: Subject PK incorrect data */ - errLDS_ASN_Certificate_SubjectPK_IncorrectData(2147483678l), - - /** ASN Certificate: Extensions incorrect data */ - errLDS_ASN_Certificate_Extensions_IncorrectData(2147483679l), - - /** ASN Signer info: Incorrect data */ - errLDS_ASN_SignerInfo_IncorrectData(2147483680l), - - /** ASN Signer info: Version incorrect data */ - errLDS_ASN_SignerInfo_Version_IncorrectData(2147483681l), - - /** ASN Signer info: SID incorrect data */ - errLDS_ASN_SignerInfo_SID_IncorrectData(2147483682l), - - /** ASN Signer info: Digest algorithms incorrect data */ - errLDS_ASN_SignerInfo_DigestAlg_IncorrectData(2147483683l), - - /** ASN Signer info: Signed attributes incorrect data */ - errLDS_ASN_SignerInfo_SignedAttrs_IncorrectData(2147483684l), - - /** ASN Signer info: Sign algorithms incorrect data */ - errLDS_ASN_SignerInfo_SignAlg_IncorrectData(2147483685l), - - /** ASN Signer info: Signature incorrect data */ - errLDS_ASN_SignerInfo_Signature_IncorrectData(2147483686l), - - /** ASN Signer info: Unsigned attributes incorrect data */ - errLDS_ASN_SignerInfo_UnsignedAttrs_IncorrectData(2147483687l), - - /** ICAO LDS object: Unsupported digest algorithm */ - errLDS_ICAO_LDSObject_UnsupportedDigestAlgorithm(2147483696l), - - /** ICAO Signed data: Signer info empty */ - errLDS_ICAO_SignedData_SignerInfos_Empty(2147483697l), - - /** ICAO Signer info: Unsupported digest algorithm */ - errLDS_ICAO_SignerInfo_UnsupportedDigestAlgorithm(2147483698l), - - /** ICAO Signer info: Unsupported signature algorithm */ - errLDS_ICAO_SignerInfo_UnsupportedSignatureAlgorithm(2147483699l), - - /** ICAO Signer info: Message digest error */ - errLDS_ICAO_SignerInfo_MessageDigestError(2147483700l), - - /** ICAO Signer info: Signed attributes missed */ - errLDS_ICAO_SignerInfo_SignedAttrs_Missed(2147483702l), - - /** Auth: Signer info cannot find certificate */ - errLDS_Auth_SignerInfo_CantFindCertificate(2147483701l), - - /** Auth: Error */ - errLDS_Auth_Error(2147483728l), - - /** Auth: Unsupported signature algorithm */ - errLDS_Auth_UnsupportedSignatureAlgorithm(2147483729l), - - /** Auth: Unsupported public key algorithm */ - errLDS_Auth_UnsupportedPublicKeyAlgorithm(2147483730l), - - /** Auth: Messed algorithms */ - errLDS_Auth_MessedAlgorithms(2147483731l), - - /** Auth: Public key data invalid */ - errLDS_Auth_PublicKeyDataInvalid(2147483732l), - - /** Auth: Algorithm parameters data invalid */ - errLDS_Auth_AlgorithmParametersDataInvalid(2147483733l), - - /** Auth: Signature data invalid */ - errLDS_Auth_SignatureDataInvalid(2147483734l), - - /** Auth: Unsupported digest algorithm */ - errLDS_Auth_UnsupportedDigestAlgorithm(2147483735l), - - /** Auth: Signature data incorrect */ - errLDS_Auth_SignatureDataIncorrect(2147483736l), - - /** Auth: Algorithm parameters not defined */ - errLDS_Auth_AlgorithmParametersNotDefined(2147483737l), - - /** Auth: Signature check failed */ - errLDS_Auth_SignatureCheckFailed(2147483738l), - - /** DG: Wrong Tag */ - errLDS_DG_WrongTag(2147483760l), - - /** DG: Contents unexpected data */ - errLDS_DG_Contents_UnexpectedData(2147483761l), - - /** BAP: Symmetric Cypher Cannot Initialize */ - errLDS_BAP_SymmetricCypher_CantInitialize(2164260881l), - - /** PACE: Info Not Available */ - errLDS_PACE_Info_NotAvailable(2164260896l), - - /** PACE: Symmetric Cypher Cannot Initialize */ - errLDS_PACE_SymmetricCypher_CantInitialize(2164260897l), - - /** PACE: Key Agreement Cannot Initialize */ - errLDS_PACE_KeyAgreement_CantInitialize(2164260898l), - - /** PACE: Ephemeral Keys Cannot Create */ - errLDS_PACE_EphemeralKeys_CantCreate(2164260899l), - - /** PACE: Mapping Cannot Decode Nonce */ - errLDS_PACE_Mapping_CantDecodeNonce(2164260900l), - - /** PACE: Shared Secret Cannot Create */ - errLDS_PACE_SharedSecret_CantCreate(2164260901l), - - /** PACE: Domain Params Unsupported Format */ - errLDS_PACE_DomainParams_UnsupportedFormat(2164260902l), - - /** PACE: Ephemeral Keys Incorrect */ - errLDS_PACE_EphemeralKeys_Incorrect(2164260903l), - - /** PACE: Mapping Ephemeral Keys Incorrect */ - errLDS_PACE_Mapping_EphemeralKeys_Incorrect(2164260904l), - - /** PACE: Mapping Cannot Perform */ - errLDS_PACE_Mapping_CantPerform(2164260905l), - - /** PACE: Non-Matching Auth Tokens */ - errLDS_PACE_NonMatchingAuthTokens(2164260906l), - - /** PACE: CAM data incorrect */ - errLDS_PACE_CAM_Data_Incorrect(2164260907l), - - /** PACE: CAM data cannot verify */ - errLDS_PACE_CAM_Data_CantVerify(2164260908l), - - /** PACE: CAM data non-matching */ - errLDS_PACE_CAM_Data_NonMatching(2164260909l), - - /** PACE: IM scheme incorrect */ - errLDS_PACE_IM_Scheme_Incorrect(2164260910l), - - /** PACE: Random mapping failed */ - errLDS_PACE_IM_RandomMapping_Failed(2164260911l), - - /** CA: Cannot Find Public Key */ - errLDS_CA_CantFindPublicKey(2164260912l), - - /** CA: Cannot Find Info */ - errLDS_CA_CantFindInfo(2164260913l), - - /** CA: Incorrect Version */ - errLDS_CA_IncorrectVersion(2164260914l), - - /** CA: Cannot Find Domain Parameters */ - errLDS_CA_CantFindDomainParameters(2164260915l), - - /** CA: Key Agreement Cannot Initialize */ - errLDS_CA_KeyAgreement_CantInitialize(2164260916l), - - /** CA: Public Key Unsupported Algorithm */ - errLDS_CA_PublicKey_UnsupportedAlgorithm(2164260917l), - - /** CA: Ephemeral Keys Cannot Create */ - errLDS_CA_EphemeralKeys_CantCreate(2164260918l), - - /** CA: Shared Secret Cannot Create */ - errLDS_CA_SharedSecret_CantCreate(2164260919l), - - /** CA: Non-Matching Auth Tokens */ - errLDS_CA_NonMatchingAuthTokens(2164260920l), - - /** TA: Incorrect Version */ - errLDS_TA_IncorrectVersion(2164260928l), - - /** TA: Cannot Build Certificate Chain */ - errLDS_TA_CantBuildCertificateChain(2164260929l), - - /** TA: Cannot Find IS Private Key */ - errLDS_TA_CantFindISPrivateKey(2164260930l), - - /** TA: Public Key Unsupported Algorithm */ - errLDS_TA_PublicKey_UnsupportedAlgorithm(2164260931l), - - /** TA: Signature Building Error */ - errLDS_TA_SignatureBuildingError(2164260932l), - - /** TA: Invalid Key Algorithm Parameters */ - errLDS_TA_InvalidKeyAlgorithmParameters(2164260933l), - - /** AA: Public Key Unsupported Algorithm */ - errLDS_AA_PublicKey_UnsupportedAlgorithm(2164260944l), - - /** AA: Public Key Incorrect Data */ - errLDS_AA_PublicKey_IncorrectData(2164260945l), - - /** AA: Public Key Incorrect Parameters */ - errLDS_AA_PublicKey_IncorrectParameters(2164260946l), - - /** AA: Public Key Undefined Parameters */ - errLDS_AA_PublicKey_UndefinedParameters(2164260947l), - - /** AA: Signature Incorrect Data */ - errLDS_AA_Signature_IncorrectData(2164260948l), - - /** AA: Unsupported recovery scheme */ - errLDS_AA_UnsupportedRecoveryScheme(2164260949l), - - /** AA: Incorrect Trailer */ - errLDS_AA_IncorrectTrailer(2164260950l), - - /** AA: Unsupported Digest Algorithm */ - errLDS_AA_UnsupportedDigestAlgorithm(2164260951l), - - /** RI: Sector Key Cannot Find */ - errLDS_RI_SectorKey_CantFind(2164260976l), - - /** RI: Sector Key Incorrect Data */ - errLDS_RI_SectorKey_IncorrectData(2164260977l), - - /** RI: Sector Key Incomplete Data */ - errLDS_RI_SectorKey_IncompleteData(2164260978l), - - /** CV Certificate: Missing mandatory data PK */ - errLDS_CV_Certificate_MissingMandatoryData_PK(2164260960l), - - /** CV Certificate: Public key unsupported */ - errLDS_CV_Certificate_PublicKey_Unsupported(2164260962l), - - /** CV Certificate: CHAT unsupported terminal type */ - errLDS_CV_Certificate_CHAT_UnsupportedTerminalType(2164260963l), - - /** CV Certificate: Private key unsupported */ - errLDS_CV_Certificate_PrivateKey_Unsupported(2164260964l), - - /** CV Certificate: Private key invalid params */ - errLDS_CV_Certificate_PrivateKey_InvalidParams(2164260965l), - - /** CV Certificate: Incorrect data */ - errLDS_CV_Certificate_IncorrectData(2164261216l), - - /** CV Certificate: CPI incorrect data */ - errLDS_CV_Certificate_CPI_IncorrectData(2164261217l), - - /** CV Certificate: CAR incorrect data */ - errLDS_CV_Certificate_CAR_IncorrectData(2164261218l), - - /** CV Certificate: Public key incorrect data */ - errLDS_CV_Certificate_PublicKey_IncorrectData(2164261219l), - - /** CV Certificate: CHR incorrect data */ - errLDS_CV_Certificate_CHR_IncorrectData(2164261220l), - - /** CV Certificate: CHAT incorrect data */ - errLDS_CV_Certificate_CHAT_IncorrectData(2164261221l), - - /** CV Certificate: Valid from incorrect data */ - errLDS_CV_Certificate_ValidFrom_IncorrectData(2164261222l), - - /** CV Certificate: Valid to incorrect data */ - errLDS_CV_Certificate_ValidTo_IncorrectData(2164261223l), - - /** CV Certificate: Extensions incorrect data */ - errLDS_CV_Certificate_Extensions_IncorrectData(2164261224l), - - /** CV Certificate: Private key incorrect data */ - errLDS_CV_Certificate_PrivateKey_IncorrectData(2164261225l), - - /** CV Certificate: Private key missing */ - errLDS_CV_Certificate_PrivateKey_Missing(2164261226l), - - /** VDS: Unsupported version */ - errLDS_VDS_UnsupportedVersion(2164261376l), - - /** VDS: Issuing country size */ - errLDS_VDS_Issuing_Country_Size(2164261377l), - - /** VDS: Issuing country incorrect data */ - errLDS_VDS_Issuing_Country_IncorrectData(2164261378l), - - /** VDS: Signature certificate size */ - errLDS_VDS_Signer_Certificate_Size(2164261379l), - - /** VDS: Signature certificate data */ - errLDS_VDS_Signer_Certificate_Data(2164261380l), - - /** VDS: Signature incorrect data */ - errLDS_VDS_Signature_IncorrectData(2164261381l), - - /** VDS: Incorrect data */ - errLDS_VDS_NC_IncorrectData(2164261632l), - - /** VDS: Missing or incorrect data */ - errLDS_VDS_NC_MissingOrIncorrect_Data(2164261633l), - - /** VDS: Missing or incorrect header */ - errLDS_VDS_NC_MissingOrIncorrect_Header(2164261634l), - - /** VDS: Missing or incorrect type */ - errLDS_VDS_NC_MissingOrIncorrect_Type(2164261635l), - - /** VDS: Missing or incorrect version */ - errLDS_VDS_NC_MissingOrIncorrect_Version(2164261636l), - - /** VDS: Missing or incorrect issuing country */ - errLDS_VDS_NC_MissingOrIncorrect_IssuingCountry(2164261637l), - - /** VDS: Missing or incorrect message */ - errLDS_VDS_NC_MissingOrIncorrect_Message(2164261638l), - - /** VDS: Missing or incorrect signature */ - errLDS_VDS_NC_MissingOrIncorrect_Signature(2164261639l), - - /** VDS: Missing or incorrect signature algorithm */ - errLDS_VDS_NC_MissingOrIncorrect_SigAlgorithm(2164261640l), - - /** VDS: Missing or incorrect certificate */ - errLDS_VDS_NC_MissingOrIncorrect_Certificate(2164261641l), - - /** VDS: Missing or incorrect signature value */ - errLDS_VDS_NC_MissingOrIncorrect_SigValue(2164261642l); - - private Long value; - - ParsingErrorCodes(Long value) { - this.value = value; - } - - public Long getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static ParsingErrorCodes fromValue(Long value) { - for (ParsingErrorCodes b : ParsingErrorCodes.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final ParsingErrorCodes enumeration) - throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public ParsingErrorCodes read(final JsonReader jsonReader) throws IOException { - Long value = jsonReader.nextLong(); - return ParsingErrorCodes.fromValue(value); - } - } - - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - Long value = jsonElement.getAsLong(); - ParsingErrorCodes.fromValue(value); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerItem.java new file mode 100644 index 00000000..f297ddb4 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerItem.java @@ -0,0 +1,203 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** RawImageContainerItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RawImageContainerItem { + public static final String SERIALIZED_NAME_RAW_IMAGE_CONTAINER = "RawImageContainer"; + + @SerializedName(SERIALIZED_NAME_RAW_IMAGE_CONTAINER) + @javax.annotation.Nonnull + private ImageData rawImageContainer; + + public RawImageContainerItem() {} + + public RawImageContainerItem rawImageContainer( + @javax.annotation.Nonnull ImageData rawImageContainer) { + this.rawImageContainer = rawImageContainer; + return this; + } + + /** + * Get rawImageContainer + * + * @return rawImageContainer + */ + @javax.annotation.Nonnull + public ImageData getRawImageContainer() { + return rawImageContainer; + } + + public void setRawImageContainer(@javax.annotation.Nonnull ImageData rawImageContainer) { + this.rawImageContainer = rawImageContainer; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RawImageContainerItem rawImageContainerItem = (RawImageContainerItem) o; + return Objects.equals(this.rawImageContainer, rawImageContainerItem.rawImageContainer); + } + + @Override + public int hashCode() { + return Objects.hash(rawImageContainer); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RawImageContainerItem {\n"); + sb.append(" rawImageContainer: ").append(toIndentedString(rawImageContainer)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RawImageContainer"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("RawImageContainer"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RawImageContainerItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RawImageContainerItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RawImageContainerItem is not found in the empty JSON string", + RawImageContainerItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RawImageContainerItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RawImageContainerItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RawImageContainerItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `RawImageContainer` + ImageData.validateJsonElement(jsonObj.get("RawImageContainer")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RawImageContainerItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RawImageContainerItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RawImageContainerItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RawImageContainerItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RawImageContainerItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RawImageContainerItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of RawImageContainerItem + * @throws IOException if the JSON string is invalid with respect to RawImageContainerItem + */ + public static RawImageContainerItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RawImageContainerItem.class); + } + + /** + * Convert an instance of RawImageContainerItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetectorItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetectorItem.java new file mode 100644 index 00000000..fb878896 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetectorItem.java @@ -0,0 +1,203 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** ResultMRZDetectorItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class ResultMRZDetectorItem { + public static final String SERIALIZED_NAME_RESULT_M_R_Z_DETECTOR = "ResultMRZDetector"; + + @SerializedName(SERIALIZED_NAME_RESULT_M_R_Z_DETECTOR) + @javax.annotation.Nonnull + private ResultMRZDetector resultMRZDetector; + + public ResultMRZDetectorItem() {} + + public ResultMRZDetectorItem resultMRZDetector( + @javax.annotation.Nonnull ResultMRZDetector resultMRZDetector) { + this.resultMRZDetector = resultMRZDetector; + return this; + } + + /** + * Get resultMRZDetector + * + * @return resultMRZDetector + */ + @javax.annotation.Nonnull + public ResultMRZDetector getResultMRZDetector() { + return resultMRZDetector; + } + + public void setResultMRZDetector(@javax.annotation.Nonnull ResultMRZDetector resultMRZDetector) { + this.resultMRZDetector = resultMRZDetector; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ResultMRZDetectorItem resultMRZDetectorItem = (ResultMRZDetectorItem) o; + return Objects.equals(this.resultMRZDetector, resultMRZDetectorItem.resultMRZDetector); + } + + @Override + public int hashCode() { + return Objects.hash(resultMRZDetector); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ResultMRZDetectorItem {\n"); + sb.append(" resultMRZDetector: ").append(toIndentedString(resultMRZDetector)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ResultMRZDetector"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ResultMRZDetector"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ResultMRZDetectorItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ResultMRZDetectorItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in ResultMRZDetectorItem is not found in the empty JSON string", + ResultMRZDetectorItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ResultMRZDetectorItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ResultMRZDetectorItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ResultMRZDetectorItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `ResultMRZDetector` + ResultMRZDetector.validateJsonElement(jsonObj.get("ResultMRZDetector")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ResultMRZDetectorItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ResultMRZDetectorItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ResultMRZDetectorItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ResultMRZDetectorItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ResultMRZDetectorItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of ResultMRZDetectorItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of ResultMRZDetectorItem + * @throws IOException if the JSON string is invalid with respect to ResultMRZDetectorItem + */ + public static ResultMRZDetectorItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ResultMRZDetectorItem.class); + } + + /** + * Convert an instance of ResultMRZDetectorItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/StatusItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/StatusItem.java new file mode 100644 index 00000000..0f4a4a59 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/StatusItem.java @@ -0,0 +1,202 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** StatusItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class StatusItem { + public static final String SERIALIZED_NAME_STATUS = "Status"; + + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nonnull + private Status status; + + public StatusItem() {} + + public StatusItem status(@javax.annotation.Nonnull Status status) { + this.status = status; + return this; + } + + /** + * Get status + * + * @return status + */ + @javax.annotation.Nonnull + public Status getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nonnull Status status) { + this.status = status; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StatusItem statusItem = (StatusItem) o; + return Objects.equals(this.status, statusItem.status); + } + + @Override + public int hashCode() { + return Objects.hash(status); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StatusItem {\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Status"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Status"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to StatusItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!StatusItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in StatusItem is not found in the empty JSON string", + StatusItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!StatusItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `StatusItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : StatusItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `Status` + Status.validateJsonElement(jsonObj.get("Status")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!StatusItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'StatusItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(StatusItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, StatusItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public StatusItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of StatusItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of StatusItem + * @throws IOException if the JSON string is invalid with respect to StatusItem + */ + public static StatusItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, StatusItem.class); + } + + /** + * Convert an instance of StatusItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfoItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfoItem.java new file mode 100644 index 00000000..655e0426 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfoItem.java @@ -0,0 +1,203 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** TDocBinaryInfoItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TDocBinaryInfoItem { + public static final String SERIALIZED_NAME_TDOC_BINARY_INFO = "TDocBinaryInfo"; + + @SerializedName(SERIALIZED_NAME_TDOC_BINARY_INFO) + @javax.annotation.Nonnull + private TDocBinaryInfo tdocBinaryInfo; + + public TDocBinaryInfoItem() {} + + public TDocBinaryInfoItem tdocBinaryInfo( + @javax.annotation.Nonnull TDocBinaryInfo tdocBinaryInfo) { + this.tdocBinaryInfo = tdocBinaryInfo; + return this; + } + + /** + * Get tdocBinaryInfo + * + * @return tdocBinaryInfo + */ + @javax.annotation.Nonnull + public TDocBinaryInfo getTdocBinaryInfo() { + return tdocBinaryInfo; + } + + public void setTdocBinaryInfo(@javax.annotation.Nonnull TDocBinaryInfo tdocBinaryInfo) { + this.tdocBinaryInfo = tdocBinaryInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TDocBinaryInfoItem tdocBinaryInfoItem = (TDocBinaryInfoItem) o; + return Objects.equals(this.tdocBinaryInfo, tdocBinaryInfoItem.tdocBinaryInfo); + } + + @Override + public int hashCode() { + return Objects.hash(tdocBinaryInfo); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TDocBinaryInfoItem {\n"); + sb.append(" tdocBinaryInfo: ").append(toIndentedString(tdocBinaryInfo)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("TDocBinaryInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("TDocBinaryInfo"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TDocBinaryInfoItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TDocBinaryInfoItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TDocBinaryInfoItem is not found in the empty JSON string", + TDocBinaryInfoItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TDocBinaryInfoItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TDocBinaryInfoItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TDocBinaryInfoItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `TDocBinaryInfo` + TDocBinaryInfo.validateJsonElement(jsonObj.get("TDocBinaryInfo")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TDocBinaryInfoItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TDocBinaryInfoItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TDocBinaryInfoItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TDocBinaryInfoItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TDocBinaryInfoItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TDocBinaryInfoItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of TDocBinaryInfoItem + * @throws IOException if the JSON string is invalid with respect to TDocBinaryInfoItem + */ + public static TDocBinaryInfoItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TDocBinaryInfoItem.class); + } + + /** + * Convert an instance of TDocBinaryInfoItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfoItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfoItem.java new file mode 100644 index 00000000..92ddf162 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfoItem.java @@ -0,0 +1,210 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** TOriginalRFIDGraphicsInfoItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TOriginalRFIDGraphicsInfoItem { + public static final String SERIALIZED_NAME_TORIGINAL_R_F_I_D_GRAPHICS_INFO = + "TOriginalRFIDGraphicsInfo"; + + @SerializedName(SERIALIZED_NAME_TORIGINAL_R_F_I_D_GRAPHICS_INFO) + @javax.annotation.Nonnull + private TOriginalRFIDGraphicsInfo toriginalRFIDGraphicsInfo; + + public TOriginalRFIDGraphicsInfoItem() {} + + public TOriginalRFIDGraphicsInfoItem toriginalRFIDGraphicsInfo( + @javax.annotation.Nonnull TOriginalRFIDGraphicsInfo toriginalRFIDGraphicsInfo) { + this.toriginalRFIDGraphicsInfo = toriginalRFIDGraphicsInfo; + return this; + } + + /** + * Get toriginalRFIDGraphicsInfo + * + * @return toriginalRFIDGraphicsInfo + */ + @javax.annotation.Nonnull + public TOriginalRFIDGraphicsInfo getToriginalRFIDGraphicsInfo() { + return toriginalRFIDGraphicsInfo; + } + + public void setToriginalRFIDGraphicsInfo( + @javax.annotation.Nonnull TOriginalRFIDGraphicsInfo toriginalRFIDGraphicsInfo) { + this.toriginalRFIDGraphicsInfo = toriginalRFIDGraphicsInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TOriginalRFIDGraphicsInfoItem toriginalRFIDGraphicsInfoItem = (TOriginalRFIDGraphicsInfoItem) o; + return Objects.equals( + this.toriginalRFIDGraphicsInfo, toriginalRFIDGraphicsInfoItem.toriginalRFIDGraphicsInfo); + } + + @Override + public int hashCode() { + return Objects.hash(toriginalRFIDGraphicsInfo); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TOriginalRFIDGraphicsInfoItem {\n"); + sb.append(" toriginalRFIDGraphicsInfo: ") + .append(toIndentedString(toriginalRFIDGraphicsInfo)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("TOriginalRFIDGraphicsInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("TOriginalRFIDGraphicsInfo"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * TOriginalRFIDGraphicsInfoItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TOriginalRFIDGraphicsInfoItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TOriginalRFIDGraphicsInfoItem is not found in the empty JSON string", + TOriginalRFIDGraphicsInfoItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TOriginalRFIDGraphicsInfoItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TOriginalRFIDGraphicsInfoItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TOriginalRFIDGraphicsInfoItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `TOriginalRFIDGraphicsInfo` + TOriginalRFIDGraphicsInfo.validateJsonElement(jsonObj.get("TOriginalRFIDGraphicsInfo")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TOriginalRFIDGraphicsInfoItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TOriginalRFIDGraphicsInfoItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TOriginalRFIDGraphicsInfoItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TOriginalRFIDGraphicsInfoItem value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TOriginalRFIDGraphicsInfoItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TOriginalRFIDGraphicsInfoItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of TOriginalRFIDGraphicsInfoItem + * @throws IOException if the JSON string is invalid with respect to TOriginalRFIDGraphicsInfoItem + */ + public static TOriginalRFIDGraphicsInfoItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TOriginalRFIDGraphicsInfoItem.class); + } + + /** + * Convert an instance of TOriginalRFIDGraphicsInfoItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextItem.java new file mode 100644 index 00000000..4d2a574f --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextItem.java @@ -0,0 +1,202 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** TextItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TextItem { + public static final String SERIALIZED_NAME_TEXT = "Text"; + + @SerializedName(SERIALIZED_NAME_TEXT) + @javax.annotation.Nonnull + private Text text; + + public TextItem() {} + + public TextItem text(@javax.annotation.Nonnull Text text) { + this.text = text; + return this; + } + + /** + * Get text + * + * @return text + */ + @javax.annotation.Nonnull + public Text getText() { + return text; + } + + public void setText(@javax.annotation.Nonnull Text text) { + this.text = text; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TextItem textItem = (TextItem) o; + return Objects.equals(this.text, textItem.text); + } + + @Override + public int hashCode() { + return Objects.hash(text); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TextItem {\n"); + sb.append(" text: ").append(toIndentedString(text)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("Text"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("Text"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to TextItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TextItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TextItem is not found in the empty JSON string", + TextItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TextItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TextItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TextItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `Text` + Text.validateJsonElement(jsonObj.get("Text")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TextItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TextItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TextItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TextItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TextItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TextItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of TextItem + * @throws IOException if the JSON string is invalid with respect to TextItem + */ + public static TextItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TextItem.class); + } + + /** + * Convert an instance of TextItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytesType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytesType.java deleted file mode 100644 index bf454c34..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytesType.java +++ /dev/null @@ -1,261 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; - -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class TrfFtBytesType extends AbstractOpenApiSchema { - private static final Logger log = Logger.getLogger(TrfFtBytesType.class.getName()); - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!TrfFtBytesType.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'TrfFtBytesType' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter adapterGraphicFieldType = - gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldType.class)); - final TypeAdapter adapterTextFieldType = - gson.getDelegateAdapter(this, TypeToken.get(TextFieldType.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, TrfFtBytesType value) throws IOException { - if (value == null || value.getActualInstance() == null) { - elementAdapter.write(out, null); - return; - } - - // check if the actual instance is of the type `GraphicFieldType` - if (value.getActualInstance() instanceof GraphicFieldType) { - JsonElement element = - adapterGraphicFieldType.toJsonTree( - (GraphicFieldType) value.getActualInstance()); - elementAdapter.write(out, element); - return; - } - // check if the actual instance is of the type `TextFieldType` - if (value.getActualInstance() instanceof TextFieldType) { - JsonElement element = - adapterTextFieldType.toJsonTree((TextFieldType) value.getActualInstance()); - elementAdapter.write(out, element); - return; - } - throw new IOException( - "Failed to serialize as the type doesn't match oneOf schemas: GraphicFieldType, TextFieldType"); - } - - @Override - public TrfFtBytesType read(JsonReader in) throws IOException { - Object deserialized = null; - JsonElement jsonElement = elementAdapter.read(in); - - int match = 0; - ArrayList errorMessages = new ArrayList<>(); - TypeAdapter actualAdapter = elementAdapter; - - // deserialize GraphicFieldType - try { - // validate the JSON object to see if any exception is thrown - GraphicFieldType.validateJsonElement(jsonElement); - actualAdapter = adapterGraphicFieldType; - match++; - log.log(Level.FINER, "Input data matches schema 'GraphicFieldType'"); - } catch (Exception e) { - // deserialization failed, continue - errorMessages.add( - String.format( - "Deserialization for GraphicFieldType failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'GraphicFieldType'", e); - } - // deserialize TextFieldType - try { - // validate the JSON object to see if any exception is thrown - TextFieldType.validateJsonElement(jsonElement); - actualAdapter = adapterTextFieldType; - match++; - log.log(Level.FINER, "Input data matches schema 'TextFieldType'"); - } catch (Exception e) { - // deserialization failed, continue - errorMessages.add( - String.format( - "Deserialization for TextFieldType failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'TextFieldType'", e); - } - - if (match == 1) { - TrfFtBytesType ret = new TrfFtBytesType(); - ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); - return ret; - } - - throw new IOException( - String.format( - "Failed deserialization for TrfFtBytesType: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", - match, errorMessages, jsonElement.toString())); - } - }.nullSafe(); - } - } - - // store a list of schema names defined in oneOf - public static final Map> schemas = new HashMap>(); - - public TrfFtBytesType() { - super("oneOf", Boolean.FALSE); - } - - public TrfFtBytesType(Object o) { - super("oneOf", Boolean.FALSE); - setActualInstance(o); - } - - static { - schemas.put("GraphicFieldType", GraphicFieldType.class); - schemas.put("TextFieldType", TextFieldType.class); - } - - @Override - public Map> getSchemas() { - return TrfFtBytesType.schemas; - } - - /** - * Set the instance that matches the oneOf child schema, check the instance parameter is valid - * against the oneOf child schemas: GraphicFieldType, TextFieldType - * - *

It could be an instance of the 'oneOf' schemas. - */ - @Override - public void setActualInstance(Object instance) { - if (instance instanceof GraphicFieldType) { - super.setActualInstance(instance); - return; - } - - if (instance instanceof TextFieldType) { - super.setActualInstance(instance); - return; - } - - throw new RuntimeException("Invalid instance type. Must be GraphicFieldType, TextFieldType"); - } - - /** - * Get the actual instance, which can be the following: GraphicFieldType, TextFieldType - * - * @return The actual instance (GraphicFieldType, TextFieldType) - */ - @SuppressWarnings("unchecked") - @Override - public Object getActualInstance() { - return super.getActualInstance(); - } - - /** - * Get the actual instance of `GraphicFieldType`. If the actual instance is not - * `GraphicFieldType`, the ClassCastException will be thrown. - * - * @return The actual instance of `GraphicFieldType` - * @throws ClassCastException if the instance is not `GraphicFieldType` - */ - public GraphicFieldType getGraphicFieldType() throws ClassCastException { - return (GraphicFieldType) super.getActualInstance(); - } - - /** - * Get the actual instance of `TextFieldType`. If the actual instance is not `TextFieldType`, the - * ClassCastException will be thrown. - * - * @return The actual instance of `TextFieldType` - * @throws ClassCastException if the instance is not `TextFieldType` - */ - public TextFieldType getTextFieldType() throws ClassCastException { - return (TextFieldType) super.getActualInstance(); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to TrfFtBytesType - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - // validate oneOf schemas one by one - int validCount = 0; - ArrayList errorMessages = new ArrayList<>(); - // validate the json string with GraphicFieldType - try { - GraphicFieldType.validateJsonElement(jsonElement); - validCount++; - } catch (Exception e) { - errorMessages.add( - String.format("Deserialization for GraphicFieldType failed with `%s`.", e.getMessage())); - // continue to the next one - } - // validate the json string with TextFieldType - try { - TextFieldType.validateJsonElement(jsonElement); - validCount++; - } catch (Exception e) { - errorMessages.add( - String.format("Deserialization for TextFieldType failed with `%s`.", e.getMessage())); - // continue to the next one - } - if (validCount != 1) { - throw new IOException( - String.format( - "The JSON string is invalid for TrfFtBytesType with oneOf schemas: GraphicFieldType, TextFieldType. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", - validCount, errorMessages, jsonElement.toString())); - } - } - - /** - * Create an instance of TrfFtBytesType given an JSON string - * - * @param jsonString JSON string - * @return An instance of TrfFtBytesType - * @throws IOException if the JSON string is invalid with respect to TrfFtBytesType - */ - public static TrfFtBytesType fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, TrfFtBytesType.class); - } - - /** - * Convert an instance of TrfFtBytesType to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} From d6efe9095fe5aa20743a2e43271085d9d399a42c Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Mon, 10 Mar 2025 14:03:08 +0300 Subject: [PATCH 06/19] Update models --- client/.openapi-generator/FILES | 9 + .../regula/documentreader/webclient/JSON.java | 24 + .../model/DocVisualExtendedFieldRectItem.java | 198 +++++++ .../model/DocVisualExtendedFieldRfidItem.java | 300 ++++++++++ .../webclient/model/FiberItem.java | 540 ++++++++++++++++++ .../webclient/model/GraphicFieldRectItem.java | 202 +++++++ .../webclient/model/GraphicFieldRfidItem.java | 295 ++++++++++ .../webclient/model/IdentItem.java | 359 ++++++++++++ .../webclient/model/OCRSecurityTextItem.java | 523 +++++++++++++++++ .../webclient/model/PhotoIdentItem.java | 521 +++++++++++++++++ .../webclient/model/SecurityFeatureItem.java | 357 ++++++++++++ 11 files changed, 3328 insertions(+) create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRectItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfidItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/FiberItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRectItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfidItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/IdentItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureItem.java diff --git a/client/.openapi-generator/FILES b/client/.openapi-generator/FILES index 72061a36..d6afcc4a 100755 --- a/client/.openapi-generator/FILES +++ b/client/.openapi-generator/FILES @@ -57,7 +57,9 @@ src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoItem. src/main/generated/com/regula/documentreader/webclient/model/DocGraphicsInfoItem.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java +src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRectItem.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java +src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfidItem.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoItem.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java @@ -84,6 +86,7 @@ src/main/generated/com/regula/documentreader/webclient/model/FaceDetection.java src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionItem.java src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionResult.java src/main/generated/com/regula/documentreader/webclient/model/FaceItem.java +src/main/generated/com/regula/documentreader/webclient/model/FiberItem.java src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java src/main/generated/com/regula/documentreader/webclient/model/FieldItem.java src/main/generated/com/regula/documentreader/webclient/model/FileImage.java @@ -91,13 +94,16 @@ src/main/generated/com/regula/documentreader/webclient/model/GetTransactionsByTa src/main/generated/com/regula/documentreader/webclient/model/GraphData.java src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java +src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRectItem.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java +src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfidItem.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java src/main/generated/com/regula/documentreader/webclient/model/Healthcheck.java src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java +src/main/generated/com/regula/documentreader/webclient/model/IdentItem.java src/main/generated/com/regula/documentreader/webclient/model/IdentResult.java src/main/generated/com/regula/documentreader/webclient/model/ImageData.java src/main/generated/com/regula/documentreader/webclient/model/ImageQA.java @@ -139,6 +145,7 @@ src/main/generated/com/regula/documentreader/webclient/model/MeasureSystem.java src/main/generated/com/regula/documentreader/webclient/model/MrzDetectModeEnum.java src/main/generated/com/regula/documentreader/webclient/model/MrzPosition.java src/main/generated/com/regula/documentreader/webclient/model/MrzPositionItem.java +src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextItem.java src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextResult.java src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java src/main/generated/com/regula/documentreader/webclient/model/OneCandidateItem.java @@ -149,6 +156,7 @@ src/main/generated/com/regula/documentreader/webclient/model/PArrayField.java src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java src/main/generated/com/regula/documentreader/webclient/model/ParsingNotificationCodes.java src/main/generated/com/regula/documentreader/webclient/model/PerDocumentConfig.java +src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentItem.java src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentResult.java src/main/generated/com/regula/documentreader/webclient/model/Point.java src/main/generated/com/regula/documentreader/webclient/model/PointArray.java @@ -202,6 +210,7 @@ src/main/generated/com/regula/documentreader/webclient/model/RfidTerminalType.ja src/main/generated/com/regula/documentreader/webclient/model/RfidType.java src/main/generated/com/regula/documentreader/webclient/model/RfidValidity.java src/main/generated/com/regula/documentreader/webclient/model/Scenario.java +src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureItem.java src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureResult.java src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureType.java src/main/generated/com/regula/documentreader/webclient/model/SecurityObjectCertificates.java diff --git a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java index 01862ad9..4ac7724e 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java @@ -1004,9 +1004,15 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocVisualExtendedFieldRect .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocVisualExtendedFieldRectItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocVisualExtendedFieldRfid .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.DocVisualExtendedFieldRfidItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocVisualExtendedInfo .CustomTypeAdapterFactory()); @@ -1065,6 +1071,8 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.FaceItem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.FiberItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.FiberResult.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1078,8 +1086,14 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.GraphData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.GraphicFieldRect.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.GraphicFieldRectItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.GraphicFieldRfid.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.GraphicFieldRfidItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.GraphicFieldsList.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1092,6 +1106,8 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.HealthcheckDocumentsDatabase .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.IdentItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.IdentResult.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1168,6 +1184,9 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.MrzPosition.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.MrzPositionItem.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.OCRSecurityTextItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.OCRSecurityTextResult .CustomTypeAdapterFactory()); @@ -1188,6 +1207,8 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.ParsedData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.PerDocumentConfig.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.PhotoIdentItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.PhotoIdentResult.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1264,6 +1285,9 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.RfidTerminal.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.RfidValidity.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.SecurityFeatureItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.SecurityFeatureResult .CustomTypeAdapterFactory()); diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRectItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRectItem.java new file mode 100644 index 00000000..4c0cefad --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRectItem.java @@ -0,0 +1,198 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** DocVisualExtendedFieldRectItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class DocVisualExtendedFieldRectItem { + public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; + + @SerializedName(SERIALIZED_NAME_FIELD_RECT) + @javax.annotation.Nullable + private RectangleCoordinates fieldRect; + + public DocVisualExtendedFieldRectItem() {} + + public DocVisualExtendedFieldRectItem fieldRect( + @javax.annotation.Nullable RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + return this; + } + + /** + * Get fieldRect + * + * @return fieldRect + */ + @javax.annotation.Nullable + public RectangleCoordinates getFieldRect() { + return fieldRect; + } + + public void setFieldRect(@javax.annotation.Nullable RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocVisualExtendedFieldRectItem docVisualExtendedFieldRectItem = + (DocVisualExtendedFieldRectItem) o; + return Objects.equals(this.fieldRect, docVisualExtendedFieldRectItem.fieldRect); + } + + @Override + public int hashCode() { + return Objects.hash(fieldRect); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DocVisualExtendedFieldRectItem {\n"); + sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldRect"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * DocVisualExtendedFieldRectItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocVisualExtendedFieldRectItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocVisualExtendedFieldRectItem is not found in the empty JSON string", + DocVisualExtendedFieldRectItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocVisualExtendedFieldRectItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocVisualExtendedFieldRectItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `FieldRect` + if (jsonObj.get("FieldRect") != null && !jsonObj.get("FieldRect").isJsonNull()) { + RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocVisualExtendedFieldRectItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocVisualExtendedFieldRectItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldRectItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocVisualExtendedFieldRectItem value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocVisualExtendedFieldRectItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocVisualExtendedFieldRectItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocVisualExtendedFieldRectItem + * @throws IOException if the JSON string is invalid with respect to + * DocVisualExtendedFieldRectItem + */ + public static DocVisualExtendedFieldRectItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocVisualExtendedFieldRectItem.class); + } + + /** + * Convert an instance of DocVisualExtendedFieldRectItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfidItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfidItem.java new file mode 100644 index 00000000..8b39b17a --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfidItem.java @@ -0,0 +1,300 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** DocVisualExtendedFieldRfidItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class DocVisualExtendedFieldRfidItem { + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G = "RFID_OriginDG"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G) + @javax.annotation.Nonnull + private RfidDataGroupTypeTag rfIDOriginDG; + + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG = "RFID_OriginDGTag"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG) + @javax.annotation.Nullable + private Integer rfIDOriginDGTag; + + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY = "RFID_OriginTagEntry"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY) + @javax.annotation.Nonnull + private BigDecimal rfIDOriginTagEntry; + + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW = "RFID_OriginEntryView"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW) + @javax.annotation.Nullable + private Integer rfIDOriginEntryView; + + public DocVisualExtendedFieldRfidItem() {} + + public DocVisualExtendedFieldRfidItem rfIDOriginDG( + @javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { + this.rfIDOriginDG = rfIDOriginDG; + return this; + } + + /** + * Get rfIDOriginDG + * + * @return rfIDOriginDG + */ + @javax.annotation.Nonnull + public RfidDataGroupTypeTag getRfIDOriginDG() { + return rfIDOriginDG; + } + + public void setRfIDOriginDG(@javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { + this.rfIDOriginDG = rfIDOriginDG; + } + + public DocVisualExtendedFieldRfidItem rfIDOriginDGTag( + @javax.annotation.Nullable Integer rfIDOriginDGTag) { + this.rfIDOriginDGTag = rfIDOriginDGTag; + return this; + } + + /** + * Get rfIDOriginDGTag + * + * @return rfIDOriginDGTag + */ + @javax.annotation.Nullable + public Integer getRfIDOriginDGTag() { + return rfIDOriginDGTag; + } + + public void setRfIDOriginDGTag(@javax.annotation.Nullable Integer rfIDOriginDGTag) { + this.rfIDOriginDGTag = rfIDOriginDGTag; + } + + public DocVisualExtendedFieldRfidItem rfIDOriginTagEntry( + @javax.annotation.Nonnull BigDecimal rfIDOriginTagEntry) { + this.rfIDOriginTagEntry = rfIDOriginTagEntry; + return this; + } + + /** + * Record index of the text field source in the data group + * + * @return rfIDOriginTagEntry + */ + @javax.annotation.Nonnull + public BigDecimal getRfIDOriginTagEntry() { + return rfIDOriginTagEntry; + } + + public void setRfIDOriginTagEntry(@javax.annotation.Nonnull BigDecimal rfIDOriginTagEntry) { + this.rfIDOriginTagEntry = rfIDOriginTagEntry; + } + + public DocVisualExtendedFieldRfidItem rfIDOriginEntryView( + @javax.annotation.Nullable Integer rfIDOriginEntryView) { + this.rfIDOriginEntryView = rfIDOriginEntryView; + return this; + } + + /** + * Get rfIDOriginEntryView + * + * @return rfIDOriginEntryView + */ + @javax.annotation.Nullable + public Integer getRfIDOriginEntryView() { + return rfIDOriginEntryView; + } + + public void setRfIDOriginEntryView(@javax.annotation.Nullable Integer rfIDOriginEntryView) { + this.rfIDOriginEntryView = rfIDOriginEntryView; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocVisualExtendedFieldRfidItem docVisualExtendedFieldRfidItem = + (DocVisualExtendedFieldRfidItem) o; + return Objects.equals(this.rfIDOriginDG, docVisualExtendedFieldRfidItem.rfIDOriginDG) + && Objects.equals(this.rfIDOriginDGTag, docVisualExtendedFieldRfidItem.rfIDOriginDGTag) + && Objects.equals( + this.rfIDOriginTagEntry, docVisualExtendedFieldRfidItem.rfIDOriginTagEntry) + && Objects.equals( + this.rfIDOriginEntryView, docVisualExtendedFieldRfidItem.rfIDOriginEntryView); + } + + @Override + public int hashCode() { + return Objects.hash(rfIDOriginDG, rfIDOriginDGTag, rfIDOriginTagEntry, rfIDOriginEntryView); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DocVisualExtendedFieldRfidItem {\n"); + sb.append(" rfIDOriginDG: ").append(toIndentedString(rfIDOriginDG)).append("\n"); + sb.append(" rfIDOriginDGTag: ").append(toIndentedString(rfIDOriginDGTag)).append("\n"); + sb.append(" rfIDOriginTagEntry: ").append(toIndentedString(rfIDOriginTagEntry)).append("\n"); + sb.append(" rfIDOriginEntryView: ") + .append(toIndentedString(rfIDOriginEntryView)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RFID_OriginDG"); + openapiFields.add("RFID_OriginDGTag"); + openapiFields.add("RFID_OriginTagEntry"); + openapiFields.add("RFID_OriginEntryView"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("RFID_OriginDG"); + openapiRequiredFields.add("RFID_OriginTagEntry"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * DocVisualExtendedFieldRfidItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocVisualExtendedFieldRfidItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocVisualExtendedFieldRfidItem is not found in the empty JSON string", + DocVisualExtendedFieldRfidItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocVisualExtendedFieldRfidItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocVisualExtendedFieldRfidItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocVisualExtendedFieldRfidItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `RFID_OriginDG` + RfidDataGroupTypeTag.validateJsonElement(jsonObj.get("RFID_OriginDG")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocVisualExtendedFieldRfidItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocVisualExtendedFieldRfidItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldRfidItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocVisualExtendedFieldRfidItem value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocVisualExtendedFieldRfidItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocVisualExtendedFieldRfidItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocVisualExtendedFieldRfidItem + * @throws IOException if the JSON string is invalid with respect to + * DocVisualExtendedFieldRfidItem + */ + public static DocVisualExtendedFieldRfidItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocVisualExtendedFieldRfidItem.class); + } + + /** + * Convert an instance of DocVisualExtendedFieldRfidItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FiberItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FiberItem.java new file mode 100644 index 00000000..5541779a --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FiberItem.java @@ -0,0 +1,540 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** FiberItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class FiberItem { + public static final String SERIALIZED_NAME_RECT_COUNT = "RectCount"; + + @SerializedName(SERIALIZED_NAME_RECT_COUNT) + @javax.annotation.Nonnull + private Integer rectCount; + + public static final String SERIALIZED_NAME_EXPECTED_COUNT = "ExpectedCount"; + + @SerializedName(SERIALIZED_NAME_EXPECTED_COUNT) + @javax.annotation.Nonnull + private Integer expectedCount; + + public static final String SERIALIZED_NAME_LIGHT_VALUE = "LightValue"; + + @SerializedName(SERIALIZED_NAME_LIGHT_VALUE) + @javax.annotation.Nullable + private Light lightValue; + + public static final String SERIALIZED_NAME_LIGHT_DISP = "LightDisp"; + + @SerializedName(SERIALIZED_NAME_LIGHT_DISP) + @javax.annotation.Nullable + private Integer lightDisp; + + public static final String SERIALIZED_NAME_RECT_ARRAY = "RectArray"; + + @SerializedName(SERIALIZED_NAME_RECT_ARRAY) + @javax.annotation.Nonnull + private List rectArray; + + public static final String SERIALIZED_NAME_WIDTH = "Width"; + + @SerializedName(SERIALIZED_NAME_WIDTH) + @javax.annotation.Nonnull + private List width; + + public static final String SERIALIZED_NAME_LENGTH = "Length"; + + @SerializedName(SERIALIZED_NAME_LENGTH) + @javax.annotation.Nonnull + private List length; + + public static final String SERIALIZED_NAME_AREA = "Area"; + + @SerializedName(SERIALIZED_NAME_AREA) + @javax.annotation.Nonnull + private List area; + + public static final String SERIALIZED_NAME_COLOR_VALUES = "ColorValues"; + + @SerializedName(SERIALIZED_NAME_COLOR_VALUES) + @javax.annotation.Nonnull + private List colorValues; + + public FiberItem() {} + + public FiberItem rectCount(@javax.annotation.Nonnull Integer rectCount) { + this.rectCount = rectCount; + return this; + } + + /** + * For UV_Fibers authenticity result type + * + * @return rectCount + */ + @javax.annotation.Nonnull + public Integer getRectCount() { + return rectCount; + } + + public void setRectCount(@javax.annotation.Nonnull Integer rectCount) { + this.rectCount = rectCount; + } + + public FiberItem expectedCount(@javax.annotation.Nonnull Integer expectedCount) { + this.expectedCount = expectedCount; + return this; + } + + /** + * Expected fibers number. For UV_Fibers authentication result type + * + * @return expectedCount + */ + @javax.annotation.Nonnull + public Integer getExpectedCount() { + return expectedCount; + } + + public void setExpectedCount(@javax.annotation.Nonnull Integer expectedCount) { + this.expectedCount = expectedCount; + } + + public FiberItem lightValue(@javax.annotation.Nullable Light lightValue) { + this.lightValue = lightValue; + return this; + } + + /** + * Get lightValue + * + * @return lightValue + */ + @javax.annotation.Nullable + public Light getLightValue() { + return lightValue; + } + + public void setLightValue(@javax.annotation.Nullable Light lightValue) { + this.lightValue = lightValue; + } + + public FiberItem lightDisp(@javax.annotation.Nullable Integer lightDisp) { + this.lightDisp = lightDisp; + return this; + } + + /** + * For UV_Background authentication result type + * + * @return lightDisp + */ + @javax.annotation.Nullable + public Integer getLightDisp() { + return lightDisp; + } + + public void setLightDisp(@javax.annotation.Nullable Integer lightDisp) { + this.lightDisp = lightDisp; + } + + public FiberItem rectArray(@javax.annotation.Nonnull List rectArray) { + this.rectArray = rectArray; + return this; + } + + public FiberItem addRectArrayItem(RectangleCoordinates rectArrayItem) { + if (this.rectArray == null) { + this.rectArray = new ArrayList<>(); + } + this.rectArray.add(rectArrayItem); + return this; + } + + /** + * Coordinates of located areas for defined fibers type + * + * @return rectArray + */ + @javax.annotation.Nonnull + public List getRectArray() { + return rectArray; + } + + public void setRectArray(@javax.annotation.Nonnull List rectArray) { + this.rectArray = rectArray; + } + + public FiberItem width(@javax.annotation.Nonnull List width) { + this.width = width; + return this; + } + + public FiberItem addWidthItem(Integer widthItem) { + if (this.width == null) { + this.width = new ArrayList<>(); + } + this.width.add(widthItem); + return this; + } + + /** + * Fibers width value for located areas (in pixels) + * + * @return width + */ + @javax.annotation.Nonnull + public List getWidth() { + return width; + } + + public void setWidth(@javax.annotation.Nonnull List width) { + this.width = width; + } + + public FiberItem length(@javax.annotation.Nonnull List length) { + this.length = length; + return this; + } + + public FiberItem addLengthItem(Integer lengthItem) { + if (this.length == null) { + this.length = new ArrayList<>(); + } + this.length.add(lengthItem); + return this; + } + + /** + * Fibers length value for located areas (in pixels) + * + * @return length + */ + @javax.annotation.Nonnull + public List getLength() { + return length; + } + + public void setLength(@javax.annotation.Nonnull List length) { + this.length = length; + } + + public FiberItem area(@javax.annotation.Nonnull List area) { + this.area = area; + return this; + } + + public FiberItem addAreaItem(Integer areaItem) { + if (this.area == null) { + this.area = new ArrayList<>(); + } + this.area.add(areaItem); + return this; + } + + /** + * Fibers value for areas (in pixels) + * + * @return area + */ + @javax.annotation.Nonnull + public List getArea() { + return area; + } + + public void setArea(@javax.annotation.Nonnull List area) { + this.area = area; + } + + public FiberItem colorValues(@javax.annotation.Nonnull List colorValues) { + this.colorValues = colorValues; + return this; + } + + public FiberItem addColorValuesItem(Integer colorValuesItem) { + if (this.colorValues == null) { + this.colorValues = new ArrayList<>(); + } + this.colorValues.add(colorValuesItem); + return this; + } + + /** + * Fibers color value + * + * @return colorValues + */ + @javax.annotation.Nonnull + public List getColorValues() { + return colorValues; + } + + public void setColorValues(@javax.annotation.Nonnull List colorValues) { + this.colorValues = colorValues; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + FiberItem fiberItem = (FiberItem) o; + return Objects.equals(this.rectCount, fiberItem.rectCount) + && Objects.equals(this.expectedCount, fiberItem.expectedCount) + && Objects.equals(this.lightValue, fiberItem.lightValue) + && Objects.equals(this.lightDisp, fiberItem.lightDisp) + && Objects.equals(this.rectArray, fiberItem.rectArray) + && Objects.equals(this.width, fiberItem.width) + && Objects.equals(this.length, fiberItem.length) + && Objects.equals(this.area, fiberItem.area) + && Objects.equals(this.colorValues, fiberItem.colorValues); + } + + @Override + public int hashCode() { + return Objects.hash( + rectCount, + expectedCount, + lightValue, + lightDisp, + rectArray, + width, + length, + area, + colorValues); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class FiberItem {\n"); + sb.append(" rectCount: ").append(toIndentedString(rectCount)).append("\n"); + sb.append(" expectedCount: ").append(toIndentedString(expectedCount)).append("\n"); + sb.append(" lightValue: ").append(toIndentedString(lightValue)).append("\n"); + sb.append(" lightDisp: ").append(toIndentedString(lightDisp)).append("\n"); + sb.append(" rectArray: ").append(toIndentedString(rectArray)).append("\n"); + sb.append(" width: ").append(toIndentedString(width)).append("\n"); + sb.append(" length: ").append(toIndentedString(length)).append("\n"); + sb.append(" area: ").append(toIndentedString(area)).append("\n"); + sb.append(" colorValues: ").append(toIndentedString(colorValues)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RectCount"); + openapiFields.add("ExpectedCount"); + openapiFields.add("LightValue"); + openapiFields.add("LightDisp"); + openapiFields.add("RectArray"); + openapiFields.add("Width"); + openapiFields.add("Length"); + openapiFields.add("Area"); + openapiFields.add("ColorValues"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("RectCount"); + openapiRequiredFields.add("ExpectedCount"); + openapiRequiredFields.add("RectArray"); + openapiRequiredFields.add("Width"); + openapiRequiredFields.add("Length"); + openapiRequiredFields.add("Area"); + openapiRequiredFields.add("ColorValues"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to FiberItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!FiberItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in FiberItem is not found in the empty JSON string", + FiberItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!FiberItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `FiberItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : FiberItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `LightValue` + if (jsonObj.get("LightValue") != null && !jsonObj.get("LightValue").isJsonNull()) { + Light.validateJsonElement(jsonObj.get("LightValue")); + } + // ensure the json data is an array + if (!jsonObj.get("RectArray").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `RectArray` to be an array in the JSON string but got `%s`", + jsonObj.get("RectArray").toString())); + } + + JsonArray jsonArrayrectArray = jsonObj.getAsJsonArray("RectArray"); + // validate the required field `RectArray` (array) + for (int i = 0; i < jsonArrayrectArray.size(); i++) { + RectangleCoordinates.validateJsonElement(jsonArrayrectArray.get(i)); + } + ; + // ensure the required json array is present + if (jsonObj.get("Width") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("Width").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Width` to be an array in the JSON string but got `%s`", + jsonObj.get("Width").toString())); + } + // ensure the required json array is present + if (jsonObj.get("Length") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("Length").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Length` to be an array in the JSON string but got `%s`", + jsonObj.get("Length").toString())); + } + // ensure the required json array is present + if (jsonObj.get("Area") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("Area").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Area` to be an array in the JSON string but got `%s`", + jsonObj.get("Area").toString())); + } + // ensure the required json array is present + if (jsonObj.get("ColorValues") == null) { + throw new IllegalArgumentException( + "Expected the field `linkedContent` to be an array in the JSON string but got `null`"); + } else if (!jsonObj.get("ColorValues").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `ColorValues` to be an array in the JSON string but got `%s`", + jsonObj.get("ColorValues").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!FiberItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'FiberItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(FiberItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, FiberItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public FiberItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of FiberItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of FiberItem + * @throws IOException if the JSON string is invalid with respect to FiberItem + */ + public static FiberItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, FiberItem.class); + } + + /** + * Convert an instance of FiberItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRectItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRectItem.java new file mode 100644 index 00000000..ab9ae092 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRectItem.java @@ -0,0 +1,202 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** GraphicFieldRectItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class GraphicFieldRectItem { + public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; + + @SerializedName(SERIALIZED_NAME_FIELD_RECT) + @javax.annotation.Nonnull + private RectangleCoordinates fieldRect; + + public GraphicFieldRectItem() {} + + public GraphicFieldRectItem fieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + return this; + } + + /** + * Get fieldRect + * + * @return fieldRect + */ + @javax.annotation.Nonnull + public RectangleCoordinates getFieldRect() { + return fieldRect; + } + + public void setFieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GraphicFieldRectItem graphicFieldRectItem = (GraphicFieldRectItem) o; + return Objects.equals(this.fieldRect, graphicFieldRectItem.fieldRect); + } + + @Override + public int hashCode() { + return Objects.hash(fieldRect); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GraphicFieldRectItem {\n"); + sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldRect"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FieldRect"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GraphicFieldRectItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GraphicFieldRectItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in GraphicFieldRectItem is not found in the empty JSON string", + GraphicFieldRectItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GraphicFieldRectItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `GraphicFieldRectItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : GraphicFieldRectItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `FieldRect` + RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GraphicFieldRectItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GraphicFieldRectItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldRectItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, GraphicFieldRectItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GraphicFieldRectItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of GraphicFieldRectItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of GraphicFieldRectItem + * @throws IOException if the JSON string is invalid with respect to GraphicFieldRectItem + */ + public static GraphicFieldRectItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GraphicFieldRectItem.class); + } + + /** + * Convert an instance of GraphicFieldRectItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfidItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfidItem.java new file mode 100644 index 00000000..8c1a07a1 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfidItem.java @@ -0,0 +1,295 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** GraphicFieldRfidItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class GraphicFieldRfidItem { + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G = "RFID_OriginDG"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G) + @javax.annotation.Nonnull + private RfidDataGroupTypeTag rfIDOriginDG; + + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG = "RFID_OriginDGTag"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG) + @javax.annotation.Nonnull + private Integer rfIDOriginDGTag; + + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY = "RFID_OriginTagEntry"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY) + @javax.annotation.Nonnull + private Integer rfIDOriginTagEntry; + + public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW = "RFID_OriginEntryView"; + + @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW) + @javax.annotation.Nonnull + private Integer rfIDOriginEntryView; + + public GraphicFieldRfidItem() {} + + public GraphicFieldRfidItem rfIDOriginDG( + @javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { + this.rfIDOriginDG = rfIDOriginDG; + return this; + } + + /** + * Get rfIDOriginDG + * + * @return rfIDOriginDG + */ + @javax.annotation.Nonnull + public RfidDataGroupTypeTag getRfIDOriginDG() { + return rfIDOriginDG; + } + + public void setRfIDOriginDG(@javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { + this.rfIDOriginDG = rfIDOriginDG; + } + + public GraphicFieldRfidItem rfIDOriginDGTag(@javax.annotation.Nonnull Integer rfIDOriginDGTag) { + this.rfIDOriginDGTag = rfIDOriginDGTag; + return this; + } + + /** + * Index of the source record of the image with biometric information in the information data + * group. Only for Result.RFID_GRAPHICS result. + * + * @return rfIDOriginDGTag + */ + @javax.annotation.Nonnull + public Integer getRfIDOriginDGTag() { + return rfIDOriginDGTag; + } + + public void setRfIDOriginDGTag(@javax.annotation.Nonnull Integer rfIDOriginDGTag) { + this.rfIDOriginDGTag = rfIDOriginDGTag; + } + + public GraphicFieldRfidItem rfIDOriginTagEntry( + @javax.annotation.Nonnull Integer rfIDOriginTagEntry) { + this.rfIDOriginTagEntry = rfIDOriginTagEntry; + return this; + } + + /** + * Index of the template in the record with biometric data. Only for Result.RFID_GRAPHICS result. + * + * @return rfIDOriginTagEntry + */ + @javax.annotation.Nonnull + public Integer getRfIDOriginTagEntry() { + return rfIDOriginTagEntry; + } + + public void setRfIDOriginTagEntry(@javax.annotation.Nonnull Integer rfIDOriginTagEntry) { + this.rfIDOriginTagEntry = rfIDOriginTagEntry; + } + + public GraphicFieldRfidItem rfIDOriginEntryView( + @javax.annotation.Nonnull Integer rfIDOriginEntryView) { + this.rfIDOriginEntryView = rfIDOriginEntryView; + return this; + } + + /** + * Index of the variant of the biometric data template. Only for Result.RFID_GRAPHICS result. + * + * @return rfIDOriginEntryView + */ + @javax.annotation.Nonnull + public Integer getRfIDOriginEntryView() { + return rfIDOriginEntryView; + } + + public void setRfIDOriginEntryView(@javax.annotation.Nonnull Integer rfIDOriginEntryView) { + this.rfIDOriginEntryView = rfIDOriginEntryView; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GraphicFieldRfidItem graphicFieldRfidItem = (GraphicFieldRfidItem) o; + return Objects.equals(this.rfIDOriginDG, graphicFieldRfidItem.rfIDOriginDG) + && Objects.equals(this.rfIDOriginDGTag, graphicFieldRfidItem.rfIDOriginDGTag) + && Objects.equals(this.rfIDOriginTagEntry, graphicFieldRfidItem.rfIDOriginTagEntry) + && Objects.equals(this.rfIDOriginEntryView, graphicFieldRfidItem.rfIDOriginEntryView); + } + + @Override + public int hashCode() { + return Objects.hash(rfIDOriginDG, rfIDOriginDGTag, rfIDOriginTagEntry, rfIDOriginEntryView); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GraphicFieldRfidItem {\n"); + sb.append(" rfIDOriginDG: ").append(toIndentedString(rfIDOriginDG)).append("\n"); + sb.append(" rfIDOriginDGTag: ").append(toIndentedString(rfIDOriginDGTag)).append("\n"); + sb.append(" rfIDOriginTagEntry: ").append(toIndentedString(rfIDOriginTagEntry)).append("\n"); + sb.append(" rfIDOriginEntryView: ") + .append(toIndentedString(rfIDOriginEntryView)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("RFID_OriginDG"); + openapiFields.add("RFID_OriginDGTag"); + openapiFields.add("RFID_OriginTagEntry"); + openapiFields.add("RFID_OriginEntryView"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("RFID_OriginDG"); + openapiRequiredFields.add("RFID_OriginDGTag"); + openapiRequiredFields.add("RFID_OriginTagEntry"); + openapiRequiredFields.add("RFID_OriginEntryView"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to GraphicFieldRfidItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!GraphicFieldRfidItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in GraphicFieldRfidItem is not found in the empty JSON string", + GraphicFieldRfidItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GraphicFieldRfidItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `GraphicFieldRfidItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : GraphicFieldRfidItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `RFID_OriginDG` + RfidDataGroupTypeTag.validateJsonElement(jsonObj.get("RFID_OriginDG")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GraphicFieldRfidItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GraphicFieldRfidItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldRfidItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, GraphicFieldRfidItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GraphicFieldRfidItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of GraphicFieldRfidItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of GraphicFieldRfidItem + * @throws IOException if the JSON string is invalid with respect to GraphicFieldRfidItem + */ + public static GraphicFieldRfidItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, GraphicFieldRfidItem.class); + } + + /** + * Convert an instance of GraphicFieldRfidItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/IdentItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/IdentItem.java new file mode 100644 index 00000000..b4addde3 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/IdentItem.java @@ -0,0 +1,359 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** IdentItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class IdentItem { + public static final String SERIALIZED_NAME_ELEMENT_TYPE = "ElementType"; + + @SerializedName(SERIALIZED_NAME_ELEMENT_TYPE) + @javax.annotation.Nonnull + private SecurityFeatureType elementType; + + public static final String SERIALIZED_NAME_LIGHT_INDEX = "LightIndex"; + + @SerializedName(SERIALIZED_NAME_LIGHT_INDEX) + @javax.annotation.Nonnull + private Light lightIndex; + + public static final String SERIALIZED_NAME_AREA = "Area"; + + @SerializedName(SERIALIZED_NAME_AREA) + @javax.annotation.Nullable + private RectangleCoordinates area; + + public static final String SERIALIZED_NAME_IMAGE = "Image"; + + @SerializedName(SERIALIZED_NAME_IMAGE) + @javax.annotation.Nonnull + private ImageData image; + + public static final String SERIALIZED_NAME_ETALON_IMAGE = "EtalonImage"; + + @SerializedName(SERIALIZED_NAME_ETALON_IMAGE) + @javax.annotation.Nonnull + private ImageData etalonImage; + + public static final String SERIALIZED_NAME_AREA_LIST = "AreaList"; + + @SerializedName(SERIALIZED_NAME_AREA_LIST) + @javax.annotation.Nullable + private AreaContainer areaList; + + public IdentItem() {} + + public IdentItem elementType(@javax.annotation.Nonnull SecurityFeatureType elementType) { + this.elementType = elementType; + return this; + } + + /** + * Get elementType + * + * @return elementType + */ + @javax.annotation.Nonnull + public SecurityFeatureType getElementType() { + return elementType; + } + + public void setElementType(@javax.annotation.Nonnull SecurityFeatureType elementType) { + this.elementType = elementType; + } + + public IdentItem lightIndex(@javax.annotation.Nonnull Light lightIndex) { + this.lightIndex = lightIndex; + return this; + } + + /** + * Get lightIndex + * + * @return lightIndex + */ + @javax.annotation.Nonnull + public Light getLightIndex() { + return lightIndex; + } + + public void setLightIndex(@javax.annotation.Nonnull Light lightIndex) { + this.lightIndex = lightIndex; + } + + public IdentItem area(@javax.annotation.Nullable RectangleCoordinates area) { + this.area = area; + return this; + } + + /** + * Get area + * + * @return area + */ + @javax.annotation.Nullable + public RectangleCoordinates getArea() { + return area; + } + + public void setArea(@javax.annotation.Nullable RectangleCoordinates area) { + this.area = area; + } + + public IdentItem image(@javax.annotation.Nonnull ImageData image) { + this.image = image; + return this; + } + + /** + * Get image + * + * @return image + */ + @javax.annotation.Nonnull + public ImageData getImage() { + return image; + } + + public void setImage(@javax.annotation.Nonnull ImageData image) { + this.image = image; + } + + public IdentItem etalonImage(@javax.annotation.Nonnull ImageData etalonImage) { + this.etalonImage = etalonImage; + return this; + } + + /** + * Get etalonImage + * + * @return etalonImage + */ + @javax.annotation.Nonnull + public ImageData getEtalonImage() { + return etalonImage; + } + + public void setEtalonImage(@javax.annotation.Nonnull ImageData etalonImage) { + this.etalonImage = etalonImage; + } + + public IdentItem areaList(@javax.annotation.Nullable AreaContainer areaList) { + this.areaList = areaList; + return this; + } + + /** + * Get areaList + * + * @return areaList + */ + @javax.annotation.Nullable + public AreaContainer getAreaList() { + return areaList; + } + + public void setAreaList(@javax.annotation.Nullable AreaContainer areaList) { + this.areaList = areaList; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IdentItem identItem = (IdentItem) o; + return Objects.equals(this.elementType, identItem.elementType) + && Objects.equals(this.lightIndex, identItem.lightIndex) + && Objects.equals(this.area, identItem.area) + && Objects.equals(this.image, identItem.image) + && Objects.equals(this.etalonImage, identItem.etalonImage) + && Objects.equals(this.areaList, identItem.areaList); + } + + @Override + public int hashCode() { + return Objects.hash(elementType, lightIndex, area, image, etalonImage, areaList); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IdentItem {\n"); + sb.append(" elementType: ").append(toIndentedString(elementType)).append("\n"); + sb.append(" lightIndex: ").append(toIndentedString(lightIndex)).append("\n"); + sb.append(" area: ").append(toIndentedString(area)).append("\n"); + sb.append(" image: ").append(toIndentedString(image)).append("\n"); + sb.append(" etalonImage: ").append(toIndentedString(etalonImage)).append("\n"); + sb.append(" areaList: ").append(toIndentedString(areaList)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ElementType"); + openapiFields.add("LightIndex"); + openapiFields.add("Area"); + openapiFields.add("Image"); + openapiFields.add("EtalonImage"); + openapiFields.add("AreaList"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ElementType"); + openapiRequiredFields.add("LightIndex"); + openapiRequiredFields.add("Image"); + openapiRequiredFields.add("EtalonImage"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to IdentItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!IdentItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in IdentItem is not found in the empty JSON string", + IdentItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!IdentItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `IdentItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : IdentItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `ElementType` + SecurityFeatureType.validateJsonElement(jsonObj.get("ElementType")); + // validate the required field `LightIndex` + Light.validateJsonElement(jsonObj.get("LightIndex")); + // validate the optional field `Area` + if (jsonObj.get("Area") != null && !jsonObj.get("Area").isJsonNull()) { + RectangleCoordinates.validateJsonElement(jsonObj.get("Area")); + } + // validate the required field `Image` + ImageData.validateJsonElement(jsonObj.get("Image")); + // validate the required field `EtalonImage` + ImageData.validateJsonElement(jsonObj.get("EtalonImage")); + // validate the optional field `AreaList` + if (jsonObj.get("AreaList") != null && !jsonObj.get("AreaList").isJsonNull()) { + AreaContainer.validateJsonElement(jsonObj.get("AreaList")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!IdentItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'IdentItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(IdentItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, IdentItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public IdentItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of IdentItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of IdentItem + * @throws IOException if the JSON string is invalid with respect to IdentItem + */ + public static IdentItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, IdentItem.class); + } + + /** + * Convert an instance of IdentItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextItem.java new file mode 100644 index 00000000..15ffe794 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextItem.java @@ -0,0 +1,523 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** OCRSecurityTextItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class OCRSecurityTextItem { + public static final String SERIALIZED_NAME_CRITICAL_FLAG = "CriticalFlag"; + + @SerializedName(SERIALIZED_NAME_CRITICAL_FLAG) + @javax.annotation.Nonnull + private Critical criticalFlag; + + public static final String SERIALIZED_NAME_LIGHT_TYPE = "LightType"; + + @SerializedName(SERIALIZED_NAME_LIGHT_TYPE) + @javax.annotation.Nonnull + private Light lightType; + + public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; + + @SerializedName(SERIALIZED_NAME_FIELD_RECT) + @javax.annotation.Nonnull + private RectangleCoordinates fieldRect; + + public static final String SERIALIZED_NAME_ETALON_RESULT_TYPE = "EtalonResultType"; + + @SerializedName(SERIALIZED_NAME_ETALON_RESULT_TYPE) + @javax.annotation.Nonnull + private Integer etalonResultType; + + public static final String SERIALIZED_NAME_ETALON_FIELD_TYPE = "EtalonFieldType"; + + @SerializedName(SERIALIZED_NAME_ETALON_FIELD_TYPE) + @javax.annotation.Nonnull + private Integer etalonFieldType; + + public static final String SERIALIZED_NAME_ETALON_LIGHT_TYPE = "EtalonLightType"; + + @SerializedName(SERIALIZED_NAME_ETALON_LIGHT_TYPE) + @javax.annotation.Nonnull + private Integer etalonLightType; + + public static final String SERIALIZED_NAME_ETALON_FIELD_RECT = "EtalonFieldRect"; + + @SerializedName(SERIALIZED_NAME_ETALON_FIELD_RECT) + @javax.annotation.Nonnull + private RectangleCoordinates etalonFieldRect; + + public static final String SERIALIZED_NAME_SECURITY_TEXT_RESULT_O_C_R = "SecurityTextResultOCR"; + + @SerializedName(SERIALIZED_NAME_SECURITY_TEXT_RESULT_O_C_R) + @javax.annotation.Nonnull + private String securityTextResultOCR; + + public static final String SERIALIZED_NAME_ETALON_RESULT_O_C_R = "EtalonResultOCR"; + + @SerializedName(SERIALIZED_NAME_ETALON_RESULT_O_C_R) + @javax.annotation.Nonnull + private String etalonResultOCR; + + public static final String SERIALIZED_NAME_RESERVED1 = "Reserved1"; + + @SerializedName(SERIALIZED_NAME_RESERVED1) + @javax.annotation.Nullable + private Integer reserved1; + + public static final String SERIALIZED_NAME_RESERVED2 = "Reserved2"; + + @SerializedName(SERIALIZED_NAME_RESERVED2) + @javax.annotation.Nullable + private Integer reserved2; + + public OCRSecurityTextItem() {} + + public OCRSecurityTextItem criticalFlag(@javax.annotation.Nonnull Critical criticalFlag) { + this.criticalFlag = criticalFlag; + return this; + } + + /** + * Get criticalFlag + * + * @return criticalFlag + */ + @javax.annotation.Nonnull + public Critical getCriticalFlag() { + return criticalFlag; + } + + public void setCriticalFlag(@javax.annotation.Nonnull Critical criticalFlag) { + this.criticalFlag = criticalFlag; + } + + public OCRSecurityTextItem lightType(@javax.annotation.Nonnull Light lightType) { + this.lightType = lightType; + return this; + } + + /** + * Get lightType + * + * @return lightType + */ + @javax.annotation.Nonnull + public Light getLightType() { + return lightType; + } + + public void setLightType(@javax.annotation.Nonnull Light lightType) { + this.lightType = lightType; + } + + public OCRSecurityTextItem fieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + return this; + } + + /** + * Get fieldRect + * + * @return fieldRect + */ + @javax.annotation.Nonnull + public RectangleCoordinates getFieldRect() { + return fieldRect; + } + + public void setFieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + } + + public OCRSecurityTextItem etalonResultType(@javax.annotation.Nonnull Integer etalonResultType) { + this.etalonResultType = etalonResultType; + return this; + } + + /** + * Get etalonResultType + * + * @return etalonResultType + */ + @javax.annotation.Nonnull + public Integer getEtalonResultType() { + return etalonResultType; + } + + public void setEtalonResultType(@javax.annotation.Nonnull Integer etalonResultType) { + this.etalonResultType = etalonResultType; + } + + public OCRSecurityTextItem etalonFieldType(@javax.annotation.Nonnull Integer etalonFieldType) { + this.etalonFieldType = etalonFieldType; + return this; + } + + /** + * Get etalonFieldType + * + * @return etalonFieldType + */ + @javax.annotation.Nonnull + public Integer getEtalonFieldType() { + return etalonFieldType; + } + + public void setEtalonFieldType(@javax.annotation.Nonnull Integer etalonFieldType) { + this.etalonFieldType = etalonFieldType; + } + + public OCRSecurityTextItem etalonLightType(@javax.annotation.Nonnull Integer etalonLightType) { + this.etalonLightType = etalonLightType; + return this; + } + + /** + * Get etalonLightType + * + * @return etalonLightType + */ + @javax.annotation.Nonnull + public Integer getEtalonLightType() { + return etalonLightType; + } + + public void setEtalonLightType(@javax.annotation.Nonnull Integer etalonLightType) { + this.etalonLightType = etalonLightType; + } + + public OCRSecurityTextItem etalonFieldRect( + @javax.annotation.Nonnull RectangleCoordinates etalonFieldRect) { + this.etalonFieldRect = etalonFieldRect; + return this; + } + + /** + * Get etalonFieldRect + * + * @return etalonFieldRect + */ + @javax.annotation.Nonnull + public RectangleCoordinates getEtalonFieldRect() { + return etalonFieldRect; + } + + public void setEtalonFieldRect(@javax.annotation.Nonnull RectangleCoordinates etalonFieldRect) { + this.etalonFieldRect = etalonFieldRect; + } + + public OCRSecurityTextItem securityTextResultOCR( + @javax.annotation.Nonnull String securityTextResultOCR) { + this.securityTextResultOCR = securityTextResultOCR; + return this; + } + + /** + * Get securityTextResultOCR + * + * @return securityTextResultOCR + */ + @javax.annotation.Nonnull + public String getSecurityTextResultOCR() { + return securityTextResultOCR; + } + + public void setSecurityTextResultOCR(@javax.annotation.Nonnull String securityTextResultOCR) { + this.securityTextResultOCR = securityTextResultOCR; + } + + public OCRSecurityTextItem etalonResultOCR(@javax.annotation.Nonnull String etalonResultOCR) { + this.etalonResultOCR = etalonResultOCR; + return this; + } + + /** + * Get etalonResultOCR + * + * @return etalonResultOCR + */ + @javax.annotation.Nonnull + public String getEtalonResultOCR() { + return etalonResultOCR; + } + + public void setEtalonResultOCR(@javax.annotation.Nonnull String etalonResultOCR) { + this.etalonResultOCR = etalonResultOCR; + } + + public OCRSecurityTextItem reserved1(@javax.annotation.Nullable Integer reserved1) { + this.reserved1 = reserved1; + return this; + } + + /** + * Get reserved1 + * + * @return reserved1 + */ + @javax.annotation.Nullable + public Integer getReserved1() { + return reserved1; + } + + public void setReserved1(@javax.annotation.Nullable Integer reserved1) { + this.reserved1 = reserved1; + } + + public OCRSecurityTextItem reserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; + return this; + } + + /** + * Get reserved2 + * + * @return reserved2 + */ + @javax.annotation.Nullable + public Integer getReserved2() { + return reserved2; + } + + public void setReserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OCRSecurityTextItem ocRSecurityTextItem = (OCRSecurityTextItem) o; + return Objects.equals(this.criticalFlag, ocRSecurityTextItem.criticalFlag) + && Objects.equals(this.lightType, ocRSecurityTextItem.lightType) + && Objects.equals(this.fieldRect, ocRSecurityTextItem.fieldRect) + && Objects.equals(this.etalonResultType, ocRSecurityTextItem.etalonResultType) + && Objects.equals(this.etalonFieldType, ocRSecurityTextItem.etalonFieldType) + && Objects.equals(this.etalonLightType, ocRSecurityTextItem.etalonLightType) + && Objects.equals(this.etalonFieldRect, ocRSecurityTextItem.etalonFieldRect) + && Objects.equals(this.securityTextResultOCR, ocRSecurityTextItem.securityTextResultOCR) + && Objects.equals(this.etalonResultOCR, ocRSecurityTextItem.etalonResultOCR) + && Objects.equals(this.reserved1, ocRSecurityTextItem.reserved1) + && Objects.equals(this.reserved2, ocRSecurityTextItem.reserved2); + } + + @Override + public int hashCode() { + return Objects.hash( + criticalFlag, + lightType, + fieldRect, + etalonResultType, + etalonFieldType, + etalonLightType, + etalonFieldRect, + securityTextResultOCR, + etalonResultOCR, + reserved1, + reserved2); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OCRSecurityTextItem {\n"); + sb.append(" criticalFlag: ").append(toIndentedString(criticalFlag)).append("\n"); + sb.append(" lightType: ").append(toIndentedString(lightType)).append("\n"); + sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); + sb.append(" etalonResultType: ").append(toIndentedString(etalonResultType)).append("\n"); + sb.append(" etalonFieldType: ").append(toIndentedString(etalonFieldType)).append("\n"); + sb.append(" etalonLightType: ").append(toIndentedString(etalonLightType)).append("\n"); + sb.append(" etalonFieldRect: ").append(toIndentedString(etalonFieldRect)).append("\n"); + sb.append(" securityTextResultOCR: ") + .append(toIndentedString(securityTextResultOCR)) + .append("\n"); + sb.append(" etalonResultOCR: ").append(toIndentedString(etalonResultOCR)).append("\n"); + sb.append(" reserved1: ").append(toIndentedString(reserved1)).append("\n"); + sb.append(" reserved2: ").append(toIndentedString(reserved2)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("CriticalFlag"); + openapiFields.add("LightType"); + openapiFields.add("FieldRect"); + openapiFields.add("EtalonResultType"); + openapiFields.add("EtalonFieldType"); + openapiFields.add("EtalonLightType"); + openapiFields.add("EtalonFieldRect"); + openapiFields.add("SecurityTextResultOCR"); + openapiFields.add("EtalonResultOCR"); + openapiFields.add("Reserved1"); + openapiFields.add("Reserved2"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("CriticalFlag"); + openapiRequiredFields.add("LightType"); + openapiRequiredFields.add("FieldRect"); + openapiRequiredFields.add("EtalonResultType"); + openapiRequiredFields.add("EtalonFieldType"); + openapiRequiredFields.add("EtalonLightType"); + openapiRequiredFields.add("EtalonFieldRect"); + openapiRequiredFields.add("SecurityTextResultOCR"); + openapiRequiredFields.add("EtalonResultOCR"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to OCRSecurityTextItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!OCRSecurityTextItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in OCRSecurityTextItem is not found in the empty JSON string", + OCRSecurityTextItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!OCRSecurityTextItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `OCRSecurityTextItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : OCRSecurityTextItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `CriticalFlag` + Critical.validateJsonElement(jsonObj.get("CriticalFlag")); + // validate the required field `LightType` + Light.validateJsonElement(jsonObj.get("LightType")); + // validate the required field `FieldRect` + RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); + // validate the required field `EtalonFieldRect` + RectangleCoordinates.validateJsonElement(jsonObj.get("EtalonFieldRect")); + if (!jsonObj.get("SecurityTextResultOCR").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `SecurityTextResultOCR` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("SecurityTextResultOCR").toString())); + } + if (!jsonObj.get("EtalonResultOCR").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `EtalonResultOCR` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("EtalonResultOCR").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!OCRSecurityTextItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'OCRSecurityTextItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(OCRSecurityTextItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, OCRSecurityTextItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public OCRSecurityTextItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of OCRSecurityTextItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of OCRSecurityTextItem + * @throws IOException if the JSON string is invalid with respect to OCRSecurityTextItem + */ + public static OCRSecurityTextItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, OCRSecurityTextItem.class); + } + + /** + * Convert an instance of OCRSecurityTextItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentItem.java new file mode 100644 index 00000000..bdd575c4 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentItem.java @@ -0,0 +1,521 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** PhotoIdentItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class PhotoIdentItem { + public static final String SERIALIZED_NAME_LIGHT_INDEX = "LightIndex"; + + @SerializedName(SERIALIZED_NAME_LIGHT_INDEX) + @javax.annotation.Nonnull + private Light lightIndex; + + public static final String SERIALIZED_NAME_AREA = "Area"; + + @SerializedName(SERIALIZED_NAME_AREA) + @javax.annotation.Nonnull + private RectangleCoordinates area; + + public static final String SERIALIZED_NAME_SOURCE_IMAGE = "SourceImage"; + + @SerializedName(SERIALIZED_NAME_SOURCE_IMAGE) + @javax.annotation.Nonnull + private ImageData sourceImage; + + public static final String SERIALIZED_NAME_RESULT_IMAGES = "ResultImages"; + + @SerializedName(SERIALIZED_NAME_RESULT_IMAGES) + @javax.annotation.Nonnull + private RawImageContainerList resultImages; + + public static final String SERIALIZED_NAME_FIELD_TYPES_COUNT = "FieldTypesCount"; + + @SerializedName(SERIALIZED_NAME_FIELD_TYPES_COUNT) + @javax.annotation.Nullable + private Integer fieldTypesCount; + + public static final String SERIALIZED_NAME_FIELD_TYPES_LIST = "FieldTypesList"; + + @SerializedName(SERIALIZED_NAME_FIELD_TYPES_LIST) + @javax.annotation.Nullable + private List fieldTypesList; + + public static final String SERIALIZED_NAME_STEP = "Step"; + + @SerializedName(SERIALIZED_NAME_STEP) + @javax.annotation.Nullable + private Integer step; + + public static final String SERIALIZED_NAME_ANGLE = "Angle"; + + @SerializedName(SERIALIZED_NAME_ANGLE) + @javax.annotation.Nullable + private Integer angle; + + public static final String SERIALIZED_NAME_RESERVED1 = "Reserved1"; + + @SerializedName(SERIALIZED_NAME_RESERVED1) + @javax.annotation.Nullable + private Integer reserved1; + + public static final String SERIALIZED_NAME_RESERVED2 = "Reserved2"; + + @SerializedName(SERIALIZED_NAME_RESERVED2) + @javax.annotation.Nullable + private Integer reserved2; + + public static final String SERIALIZED_NAME_RESERVED3 = "Reserved3"; + + @SerializedName(SERIALIZED_NAME_RESERVED3) + @javax.annotation.Nullable + private Integer reserved3; + + public PhotoIdentItem() {} + + public PhotoIdentItem lightIndex(@javax.annotation.Nonnull Light lightIndex) { + this.lightIndex = lightIndex; + return this; + } + + /** + * Get lightIndex + * + * @return lightIndex + */ + @javax.annotation.Nonnull + public Light getLightIndex() { + return lightIndex; + } + + public void setLightIndex(@javax.annotation.Nonnull Light lightIndex) { + this.lightIndex = lightIndex; + } + + public PhotoIdentItem area(@javax.annotation.Nonnull RectangleCoordinates area) { + this.area = area; + return this; + } + + /** + * Get area + * + * @return area + */ + @javax.annotation.Nonnull + public RectangleCoordinates getArea() { + return area; + } + + public void setArea(@javax.annotation.Nonnull RectangleCoordinates area) { + this.area = area; + } + + public PhotoIdentItem sourceImage(@javax.annotation.Nonnull ImageData sourceImage) { + this.sourceImage = sourceImage; + return this; + } + + /** + * Get sourceImage + * + * @return sourceImage + */ + @javax.annotation.Nonnull + public ImageData getSourceImage() { + return sourceImage; + } + + public void setSourceImage(@javax.annotation.Nonnull ImageData sourceImage) { + this.sourceImage = sourceImage; + } + + public PhotoIdentItem resultImages(@javax.annotation.Nonnull RawImageContainerList resultImages) { + this.resultImages = resultImages; + return this; + } + + /** + * Get resultImages + * + * @return resultImages + */ + @javax.annotation.Nonnull + public RawImageContainerList getResultImages() { + return resultImages; + } + + public void setResultImages(@javax.annotation.Nonnull RawImageContainerList resultImages) { + this.resultImages = resultImages; + } + + public PhotoIdentItem fieldTypesCount(@javax.annotation.Nullable Integer fieldTypesCount) { + this.fieldTypesCount = fieldTypesCount; + return this; + } + + /** + * Get fieldTypesCount + * + * @return fieldTypesCount + */ + @javax.annotation.Nullable + public Integer getFieldTypesCount() { + return fieldTypesCount; + } + + public void setFieldTypesCount(@javax.annotation.Nullable Integer fieldTypesCount) { + this.fieldTypesCount = fieldTypesCount; + } + + public PhotoIdentItem fieldTypesList(@javax.annotation.Nullable List fieldTypesList) { + this.fieldTypesList = fieldTypesList; + return this; + } + + public PhotoIdentItem addFieldTypesListItem(Integer fieldTypesListItem) { + if (this.fieldTypesList == null) { + this.fieldTypesList = new ArrayList<>(); + } + this.fieldTypesList.add(fieldTypesListItem); + return this; + } + + /** + * Get fieldTypesList + * + * @return fieldTypesList + */ + @javax.annotation.Nullable + public List getFieldTypesList() { + return fieldTypesList; + } + + public void setFieldTypesList(@javax.annotation.Nullable List fieldTypesList) { + this.fieldTypesList = fieldTypesList; + } + + public PhotoIdentItem step(@javax.annotation.Nullable Integer step) { + this.step = step; + return this; + } + + /** + * Get step + * + * @return step + */ + @javax.annotation.Nullable + public Integer getStep() { + return step; + } + + public void setStep(@javax.annotation.Nullable Integer step) { + this.step = step; + } + + public PhotoIdentItem angle(@javax.annotation.Nullable Integer angle) { + this.angle = angle; + return this; + } + + /** + * Get angle + * + * @return angle + */ + @javax.annotation.Nullable + public Integer getAngle() { + return angle; + } + + public void setAngle(@javax.annotation.Nullable Integer angle) { + this.angle = angle; + } + + public PhotoIdentItem reserved1(@javax.annotation.Nullable Integer reserved1) { + this.reserved1 = reserved1; + return this; + } + + /** + * Get reserved1 + * + * @return reserved1 + */ + @javax.annotation.Nullable + public Integer getReserved1() { + return reserved1; + } + + public void setReserved1(@javax.annotation.Nullable Integer reserved1) { + this.reserved1 = reserved1; + } + + public PhotoIdentItem reserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; + return this; + } + + /** + * Get reserved2 + * + * @return reserved2 + */ + @javax.annotation.Nullable + public Integer getReserved2() { + return reserved2; + } + + public void setReserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; + } + + public PhotoIdentItem reserved3(@javax.annotation.Nullable Integer reserved3) { + this.reserved3 = reserved3; + return this; + } + + /** + * Get reserved3 + * + * @return reserved3 + */ + @javax.annotation.Nullable + public Integer getReserved3() { + return reserved3; + } + + public void setReserved3(@javax.annotation.Nullable Integer reserved3) { + this.reserved3 = reserved3; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PhotoIdentItem photoIdentItem = (PhotoIdentItem) o; + return Objects.equals(this.lightIndex, photoIdentItem.lightIndex) + && Objects.equals(this.area, photoIdentItem.area) + && Objects.equals(this.sourceImage, photoIdentItem.sourceImage) + && Objects.equals(this.resultImages, photoIdentItem.resultImages) + && Objects.equals(this.fieldTypesCount, photoIdentItem.fieldTypesCount) + && Objects.equals(this.fieldTypesList, photoIdentItem.fieldTypesList) + && Objects.equals(this.step, photoIdentItem.step) + && Objects.equals(this.angle, photoIdentItem.angle) + && Objects.equals(this.reserved1, photoIdentItem.reserved1) + && Objects.equals(this.reserved2, photoIdentItem.reserved2) + && Objects.equals(this.reserved3, photoIdentItem.reserved3); + } + + @Override + public int hashCode() { + return Objects.hash( + lightIndex, + area, + sourceImage, + resultImages, + fieldTypesCount, + fieldTypesList, + step, + angle, + reserved1, + reserved2, + reserved3); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PhotoIdentItem {\n"); + sb.append(" lightIndex: ").append(toIndentedString(lightIndex)).append("\n"); + sb.append(" area: ").append(toIndentedString(area)).append("\n"); + sb.append(" sourceImage: ").append(toIndentedString(sourceImage)).append("\n"); + sb.append(" resultImages: ").append(toIndentedString(resultImages)).append("\n"); + sb.append(" fieldTypesCount: ").append(toIndentedString(fieldTypesCount)).append("\n"); + sb.append(" fieldTypesList: ").append(toIndentedString(fieldTypesList)).append("\n"); + sb.append(" step: ").append(toIndentedString(step)).append("\n"); + sb.append(" angle: ").append(toIndentedString(angle)).append("\n"); + sb.append(" reserved1: ").append(toIndentedString(reserved1)).append("\n"); + sb.append(" reserved2: ").append(toIndentedString(reserved2)).append("\n"); + sb.append(" reserved3: ").append(toIndentedString(reserved3)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("LightIndex"); + openapiFields.add("Area"); + openapiFields.add("SourceImage"); + openapiFields.add("ResultImages"); + openapiFields.add("FieldTypesCount"); + openapiFields.add("FieldTypesList"); + openapiFields.add("Step"); + openapiFields.add("Angle"); + openapiFields.add("Reserved1"); + openapiFields.add("Reserved2"); + openapiFields.add("Reserved3"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("LightIndex"); + openapiRequiredFields.add("Area"); + openapiRequiredFields.add("SourceImage"); + openapiRequiredFields.add("ResultImages"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to PhotoIdentItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!PhotoIdentItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in PhotoIdentItem is not found in the empty JSON string", + PhotoIdentItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!PhotoIdentItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `PhotoIdentItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : PhotoIdentItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `LightIndex` + Light.validateJsonElement(jsonObj.get("LightIndex")); + // validate the required field `Area` + RectangleCoordinates.validateJsonElement(jsonObj.get("Area")); + // validate the required field `SourceImage` + ImageData.validateJsonElement(jsonObj.get("SourceImage")); + // validate the required field `ResultImages` + RawImageContainerList.validateJsonElement(jsonObj.get("ResultImages")); + // ensure the optional json data is an array if present + if (jsonObj.get("FieldTypesList") != null + && !jsonObj.get("FieldTypesList").isJsonNull() + && !jsonObj.get("FieldTypesList").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `FieldTypesList` to be an array in the JSON string but got `%s`", + jsonObj.get("FieldTypesList").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!PhotoIdentItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'PhotoIdentItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(PhotoIdentItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, PhotoIdentItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public PhotoIdentItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of PhotoIdentItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of PhotoIdentItem + * @throws IOException if the JSON string is invalid with respect to PhotoIdentItem + */ + public static PhotoIdentItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, PhotoIdentItem.class); + } + + /** + * Convert an instance of PhotoIdentItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureItem.java new file mode 100644 index 00000000..7e10a8e0 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureItem.java @@ -0,0 +1,357 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** SecurityFeatureItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class SecurityFeatureItem { + public static final String SERIALIZED_NAME_ELEMENT_TYPE = "ElementType"; + + @SerializedName(SERIALIZED_NAME_ELEMENT_TYPE) + @javax.annotation.Nonnull + private SecurityFeatureType elementType; + + public static final String SERIALIZED_NAME_ELEMENT_RECT = "ElementRect"; + + @SerializedName(SERIALIZED_NAME_ELEMENT_RECT) + @javax.annotation.Nonnull + private RectangleCoordinates elementRect; + + public static final String SERIALIZED_NAME_VISIBILITY = "Visibility"; + + @SerializedName(SERIALIZED_NAME_VISIBILITY) + @javax.annotation.Nonnull + private Visibility visibility; + + public static final String SERIALIZED_NAME_CRITICAL_FLAG = "CriticalFlag"; + + @SerializedName(SERIALIZED_NAME_CRITICAL_FLAG) + @javax.annotation.Nonnull + private Critical criticalFlag; + + public static final String SERIALIZED_NAME_AREA_LIST = "AreaList"; + + @SerializedName(SERIALIZED_NAME_AREA_LIST) + @javax.annotation.Nullable + private AreaContainer areaList; + + public static final String SERIALIZED_NAME_RESERVED2 = "Reserved2"; + + @SerializedName(SERIALIZED_NAME_RESERVED2) + @javax.annotation.Nullable + private Integer reserved2; + + public SecurityFeatureItem() {} + + public SecurityFeatureItem elementType( + @javax.annotation.Nonnull SecurityFeatureType elementType) { + this.elementType = elementType; + return this; + } + + /** + * Get elementType + * + * @return elementType + */ + @javax.annotation.Nonnull + public SecurityFeatureType getElementType() { + return elementType; + } + + public void setElementType(@javax.annotation.Nonnull SecurityFeatureType elementType) { + this.elementType = elementType; + } + + public SecurityFeatureItem elementRect( + @javax.annotation.Nonnull RectangleCoordinates elementRect) { + this.elementRect = elementRect; + return this; + } + + /** + * Get elementRect + * + * @return elementRect + */ + @javax.annotation.Nonnull + public RectangleCoordinates getElementRect() { + return elementRect; + } + + public void setElementRect(@javax.annotation.Nonnull RectangleCoordinates elementRect) { + this.elementRect = elementRect; + } + + public SecurityFeatureItem visibility(@javax.annotation.Nonnull Visibility visibility) { + this.visibility = visibility; + return this; + } + + /** + * Get visibility + * + * @return visibility + */ + @javax.annotation.Nonnull + public Visibility getVisibility() { + return visibility; + } + + public void setVisibility(@javax.annotation.Nonnull Visibility visibility) { + this.visibility = visibility; + } + + public SecurityFeatureItem criticalFlag(@javax.annotation.Nonnull Critical criticalFlag) { + this.criticalFlag = criticalFlag; + return this; + } + + /** + * Get criticalFlag + * + * @return criticalFlag + */ + @javax.annotation.Nonnull + public Critical getCriticalFlag() { + return criticalFlag; + } + + public void setCriticalFlag(@javax.annotation.Nonnull Critical criticalFlag) { + this.criticalFlag = criticalFlag; + } + + public SecurityFeatureItem areaList(@javax.annotation.Nullable AreaContainer areaList) { + this.areaList = areaList; + return this; + } + + /** + * Get areaList + * + * @return areaList + */ + @javax.annotation.Nullable + public AreaContainer getAreaList() { + return areaList; + } + + public void setAreaList(@javax.annotation.Nullable AreaContainer areaList) { + this.areaList = areaList; + } + + public SecurityFeatureItem reserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; + return this; + } + + /** + * Get reserved2 + * + * @return reserved2 + */ + @javax.annotation.Nullable + public Integer getReserved2() { + return reserved2; + } + + public void setReserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityFeatureItem securityFeatureItem = (SecurityFeatureItem) o; + return Objects.equals(this.elementType, securityFeatureItem.elementType) + && Objects.equals(this.elementRect, securityFeatureItem.elementRect) + && Objects.equals(this.visibility, securityFeatureItem.visibility) + && Objects.equals(this.criticalFlag, securityFeatureItem.criticalFlag) + && Objects.equals(this.areaList, securityFeatureItem.areaList) + && Objects.equals(this.reserved2, securityFeatureItem.reserved2); + } + + @Override + public int hashCode() { + return Objects.hash(elementType, elementRect, visibility, criticalFlag, areaList, reserved2); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityFeatureItem {\n"); + sb.append(" elementType: ").append(toIndentedString(elementType)).append("\n"); + sb.append(" elementRect: ").append(toIndentedString(elementRect)).append("\n"); + sb.append(" visibility: ").append(toIndentedString(visibility)).append("\n"); + sb.append(" criticalFlag: ").append(toIndentedString(criticalFlag)).append("\n"); + sb.append(" areaList: ").append(toIndentedString(areaList)).append("\n"); + sb.append(" reserved2: ").append(toIndentedString(reserved2)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("ElementType"); + openapiFields.add("ElementRect"); + openapiFields.add("Visibility"); + openapiFields.add("CriticalFlag"); + openapiFields.add("AreaList"); + openapiFields.add("Reserved2"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("ElementType"); + openapiRequiredFields.add("ElementRect"); + openapiRequiredFields.add("Visibility"); + openapiRequiredFields.add("CriticalFlag"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to SecurityFeatureItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!SecurityFeatureItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in SecurityFeatureItem is not found in the empty JSON string", + SecurityFeatureItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!SecurityFeatureItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `SecurityFeatureItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : SecurityFeatureItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `ElementType` + SecurityFeatureType.validateJsonElement(jsonObj.get("ElementType")); + // validate the required field `ElementRect` + RectangleCoordinates.validateJsonElement(jsonObj.get("ElementRect")); + // validate the required field `Visibility` + Visibility.validateJsonElement(jsonObj.get("Visibility")); + // validate the required field `CriticalFlag` + Critical.validateJsonElement(jsonObj.get("CriticalFlag")); + // validate the optional field `AreaList` + if (jsonObj.get("AreaList") != null && !jsonObj.get("AreaList").isJsonNull()) { + AreaContainer.validateJsonElement(jsonObj.get("AreaList")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!SecurityFeatureItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'SecurityFeatureItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(SecurityFeatureItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, SecurityFeatureItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public SecurityFeatureItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of SecurityFeatureItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of SecurityFeatureItem + * @throws IOException if the JSON string is invalid with respect to SecurityFeatureItem + */ + public static SecurityFeatureItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, SecurityFeatureItem.class); + } + + /** + * Convert an instance of SecurityFeatureItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} From 65388238390309ee1c43c86eacabf73b8e1ddccf Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Mon, 17 Mar 2025 15:12:48 +0300 Subject: [PATCH 07/19] Update models --- client/.openapi-generator/FILES | 18 +- .../regula/documentreader/webclient/JSON.java | 67 ++- .../webclient/model/ContainerList.java | 9 +- .../model/ContainerListListInner.java | 68 ++- .../model/DocVisualExtendedField.java | 476 +++------------ .../model/DocVisualExtendedFieldItem.java | 203 +++++++ ...ocVisualExtendedInfoPArrayFieldsInner.java | 2 +- .../webclient/model/ErrorCoordinates.java | 33 +- .../webclient/model/GraphicField.java | 93 ++- .../GraphicFieldsListPArrayFieldsInner.java | 2 +- .../model/RFIDDocVisualExtendedField.java | 310 ++++++++++ .../model/RFIDDocVisualExtendedFieldItem.java | 293 ++++++++++ .../model/RFIDDocVisualExtendedInfo.java | 258 +++++++++ .../model/RFIDDocVisualExtendedInfoItem.java | 209 +++++++ .../webclient/model/RFIDTextDataResult.java | 211 +++++++ .../webclient/model/ResultItem.java | 2 +- .../webclient/model/ResultMRZDetector.java | 11 +- .../webclient/model/RfidDataGroupTypeTag.java | 4 +- .../webclient/model/StringItem.java | 33 +- .../webclient/model/SymbolEstimationItem.java | 51 +- .../model/TransactionProcessResponseItem.java | 205 +++++++ .../model/VisualExtendedFieldItem.java | 548 ++++++++++++++++++ 22 files changed, 2590 insertions(+), 516 deletions(-) create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedField.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedFieldItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfo.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfoItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/RFIDTextDataResult.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponseItem.java create mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/VisualExtendedFieldItem.java diff --git a/client/.openapi-generator/FILES b/client/.openapi-generator/FILES index d6afcc4a..c9908823 100755 --- a/client/.openapi-generator/FILES +++ b/client/.openapi-generator/FILES @@ -56,13 +56,9 @@ src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoField src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoItem.java src/main/generated/com/regula/documentreader/webclient/model/DocGraphicsInfoItem.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java -src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java -src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRectItem.java -src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java -src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfidItem.java +src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldItem.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoItem.java -src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java src/main/generated/com/regula/documentreader/webclient/model/DocumentImage.java @@ -93,13 +89,8 @@ src/main/generated/com/regula/documentreader/webclient/model/FileImage.java src/main/generated/com/regula/documentreader/webclient/model/GetTransactionsByTagResponse.java src/main/generated/com/regula/documentreader/webclient/model/GraphData.java src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java -src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java -src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRectItem.java -src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java -src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfidItem.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java -src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java src/main/generated/com/regula/documentreader/webclient/model/Healthcheck.java src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java @@ -168,9 +159,14 @@ src/main/generated/com/regula/documentreader/webclient/model/ProcessRequestImage src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java src/main/generated/com/regula/documentreader/webclient/model/ProcessSystemInfo.java src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.java +src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedField.java +src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedFieldItem.java +src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfo.java +src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfoItem.java src/main/generated/com/regula/documentreader/webclient/model/RFIDErrorCodes.java src/main/generated/com/regula/documentreader/webclient/model/RFIDGraphicsInfoResult.java src/main/generated/com/regula/documentreader/webclient/model/RFIDPKDResourceType.java +src/main/generated/com/regula/documentreader/webclient/model/RFIDTextDataResult.java src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerItem.java src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerList.java src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java @@ -243,9 +239,11 @@ src/main/generated/com/regula/documentreader/webclient/model/TransactionInfo.jav src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessGetResponse.java src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponse.java +src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponseItem.java src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResult.java src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java src/main/generated/com/regula/documentreader/webclient/model/Visibility.java +src/main/generated/com/regula/documentreader/webclient/model/VisualExtendedFieldItem.java diff --git a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java index 4ac7724e..44a81d71 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java @@ -271,7 +271,7 @@ public static GsonBuilder createGson() { "101", com.regula.documentreader.webclient.model.DocumentBinaryInfoResult.class); classByDiscriminatorValue.put( - "102", com.regula.documentreader.webclient.model.TextDataResult.class); + "102", com.regula.documentreader.webclient.model.RFIDTextDataResult.class); classByDiscriminatorValue.put( "103", com.regula.documentreader.webclient.model.GraphicsResult.class); classByDiscriminatorValue.put( @@ -404,6 +404,9 @@ public static GsonBuilder createGson() { classByDiscriminatorValue.put( "RFIDGraphicsInfoResult", com.regula.documentreader.webclient.model.RFIDGraphicsInfoResult.class); + classByDiscriminatorValue.put( + "RFIDTextDataResult", + com.regula.documentreader.webclient.model.RFIDTextDataResult.class); classByDiscriminatorValue.put( "StatusResult", com.regula.documentreader.webclient.model.StatusResult.class); @@ -739,6 +742,22 @@ public static GsonBuilder createGson() { getDiscriminatorValue(readElement, "result_type")); } }) + .registerTypeSelector( + com.regula.documentreader.webclient.model.RFIDTextDataResult.class, + new TypeSelector() { + @Override + public Class< + ? extends com.regula.documentreader.webclient.model.RFIDTextDataResult> + getClassForElement(JsonElement readElement) { + Map classByDiscriminatorValue = new HashMap(); + classByDiscriminatorValue.put( + "RFIDTextDataResult", + com.regula.documentreader.webclient.model.RFIDTextDataResult.class); + return getClassByDiscriminator( + classByDiscriminatorValue, + getDiscriminatorValue(readElement, "result_type")); + } + }) .registerTypeSelector( com.regula.documentreader.webclient.model.ResultItem.class, new TypeSelector() { @@ -752,7 +771,7 @@ public static GsonBuilder createGson() { "101", com.regula.documentreader.webclient.model.DocumentBinaryInfoResult.class); classByDiscriminatorValue.put( - "102", com.regula.documentreader.webclient.model.TextDataResult.class); + "102", com.regula.documentreader.webclient.model.RFIDTextDataResult.class); classByDiscriminatorValue.put( "103", com.regula.documentreader.webclient.model.GraphicsResult.class); classByDiscriminatorValue.put( @@ -1002,16 +1021,10 @@ private static Class getClassByDiscriminator( new com.regula.documentreader.webclient.model.DocGraphicsInfoItem .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.DocVisualExtendedFieldRect + new com.regula.documentreader.webclient.model.DocVisualExtendedField .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.DocVisualExtendedFieldRectItem - .CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.DocVisualExtendedFieldRfid - .CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.DocVisualExtendedFieldRfidItem + new com.regula.documentreader.webclient.model.DocVisualExtendedFieldItem .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocVisualExtendedInfo @@ -1019,9 +1032,6 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocVisualExtendedInfoItem .CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.DocVisualExtendedInfoPArrayFieldsInner - .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.DocumentBinaryInfoResult .CustomTypeAdapterFactory()); @@ -1085,20 +1095,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.GraphData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.GraphicFieldRect.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.GraphicFieldRectItem - .CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.GraphicFieldRfid.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.GraphicFieldRfidItem - .CustomTypeAdapterFactory()); + new com.regula.documentreader.webclient.model.GraphicField.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.GraphicFieldsList.CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.GraphicFieldsListPArrayFieldsInner - .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.GraphicsResult.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1228,9 +1227,24 @@ private static Class getClassByDiscriminator( .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ProcessSystemInfo.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RFIDDocVisualExtendedField + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RFIDDocVisualExtendedFieldItem + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RFIDDocVisualExtendedInfo + .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RFIDDocVisualExtendedInfoItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.RFIDGraphicsInfoResult .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.RFIDTextDataResult + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.RawImageContainerItem .CustomTypeAdapterFactory()); @@ -1356,6 +1370,9 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.TransactionProcessResponse .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.TransactionProcessResponseItem + .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.TransactionProcessResult .CustomTypeAdapterFactory()); diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerList.java index 609aa829..c7c778b4 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerList.java @@ -39,7 +39,7 @@ public class ContainerList { public static final String SERIALIZED_NAME_COUNT = "Count"; @SerializedName(SERIALIZED_NAME_COUNT) - @javax.annotation.Nonnull + @javax.annotation.Nullable private Integer count; public static final String SERIALIZED_NAME_LIST = "List"; @@ -50,7 +50,7 @@ public class ContainerList { public ContainerList() {} - public ContainerList count(@javax.annotation.Nonnull Integer count) { + public ContainerList count(@javax.annotation.Nullable Integer count) { this.count = count; return this; } @@ -60,12 +60,12 @@ public ContainerList count(@javax.annotation.Nonnull Integer count) { * * @return count */ - @javax.annotation.Nonnull + @javax.annotation.Nullable public Integer getCount() { return count; } - public void setCount(@javax.annotation.Nonnull Integer count) { + public void setCount(@javax.annotation.Nullable Integer count) { this.count = count; } @@ -145,7 +145,6 @@ private String toIndentedString(Object o) { // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("Count"); openapiRequiredFields.add("List"); } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java index 5114f428..4fc8b657 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java @@ -85,6 +85,8 @@ public TypeAdapter create(Gson gson, TypeToken type) { gson.getDelegateAdapter(this, TypeToken.get(MRZTestQualityResult.class)); final TypeAdapter adapterRFIDGraphicsInfoResult = gson.getDelegateAdapter(this, TypeToken.get(RFIDGraphicsInfoResult.class)); + final TypeAdapter adapterRFIDTextDataResult = + gson.getDelegateAdapter(this, TypeToken.get(RFIDTextDataResult.class)); return (TypeAdapter) new TypeAdapter() { @@ -263,8 +265,16 @@ public void write(JsonWriter out, ContainerListListInner value) throws IOExcepti elementAdapter.write(out, element); return; } + // check if the actual instance is of the type `RFIDTextDataResult` + if (value.getActualInstance() instanceof RFIDTextDataResult) { + JsonElement element = + adapterRFIDTextDataResult.toJsonTree( + (RFIDTextDataResult) value.getActualInstance()); + elementAdapter.write(out, element); + return; + } throw new IOException( - "Failed to serialize as the type doesn't match oneOf schemas: AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, StatusResult, TextDataResult, TextResult"); + "Failed to serialize as the type doesn't match oneOf schemas: AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, RFIDTextDataResult, StatusResult, TextDataResult, TextResult"); } @Override @@ -603,6 +613,21 @@ public ContainerListListInner read(JsonReader in) throws IOException { log.log( Level.FINER, "Input data does not match schema 'RFIDGraphicsInfoResult'", e); } + // deserialize RFIDTextDataResult + try { + // validate the JSON object to see if any exception is thrown + RFIDTextDataResult.validateJsonElement(jsonElement); + actualAdapter = adapterRFIDTextDataResult; + match++; + log.log(Level.FINER, "Input data matches schema 'RFIDTextDataResult'"); + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add( + String.format( + "Deserialization for RFIDTextDataResult failed with `%s`.", + e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RFIDTextDataResult'", e); + } if (match == 1) { ContainerListListInner ret = new ContainerListListInner(); @@ -654,6 +679,7 @@ public ContainerListListInner(Object o) { schemas.put("MRZPositionResult", MRZPositionResult.class); schemas.put("MRZTestQualityResult", MRZTestQualityResult.class); schemas.put("RFIDGraphicsInfoResult", RFIDGraphicsInfoResult.class); + schemas.put("RFIDTextDataResult", RFIDTextDataResult.class); } @Override @@ -667,8 +693,8 @@ public Map> getSchemas() { * DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, * DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, * ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, - * MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, StatusResult, TextDataResult, - * TextResult + * MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, RFIDTextDataResult, + * StatusResult, TextDataResult, TextResult * *

It could be an instance of the 'oneOf' schemas. */ @@ -784,8 +810,13 @@ public void setActualInstance(Object instance) { return; } + if (instance instanceof RFIDTextDataResult) { + super.setActualInstance(instance); + return; + } + throw new RuntimeException( - "Invalid instance type. Must be AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, StatusResult, TextDataResult, TextResult"); + "Invalid instance type. Must be AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, RFIDTextDataResult, StatusResult, TextDataResult, TextResult"); } /** @@ -794,14 +825,14 @@ public void setActualInstance(Object instance) { * DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, * GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, * MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, - * StatusResult, TextDataResult, TextResult + * RFIDTextDataResult, StatusResult, TextDataResult, TextResult * * @return The actual instance (AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, * DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, * DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, * ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, - * MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, StatusResult, - * TextDataResult, TextResult) + * MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, RFIDTextDataResult, + * StatusResult, TextDataResult, TextResult) */ @SuppressWarnings("unchecked") @Override @@ -1052,6 +1083,17 @@ public RFIDGraphicsInfoResult getRFIDGraphicsInfoResult() throws ClassCastExcept return (RFIDGraphicsInfoResult) super.getActualInstance(); } + /** + * Get the actual instance of `RFIDTextDataResult`. If the actual instance is not + * `RFIDTextDataResult`, the ClassCastException will be thrown. + * + * @return The actual instance of `RFIDTextDataResult` + * @throws ClassCastException if the instance is not `RFIDTextDataResult` + */ + public RFIDTextDataResult getRFIDTextDataResult() throws ClassCastException { + return (RFIDTextDataResult) super.getActualInstance(); + } + /** * Validates the JSON Element and throws an exception if issues found * @@ -1273,10 +1315,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti "Deserialization for RFIDGraphicsInfoResult failed with `%s`.", e.getMessage())); // continue to the next one } + // validate the json string with RFIDTextDataResult + try { + RFIDTextDataResult.validateJsonElement(jsonElement); + validCount++; + } catch (Exception e) { + errorMessages.add( + String.format( + "Deserialization for RFIDTextDataResult failed with `%s`.", e.getMessage())); + // continue to the next one + } if (validCount != 1) { throw new IOException( String.format( - "The JSON string is invalid for ContainerListListInner with oneOf schemas: AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, StatusResult, TextDataResult, TextResult. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", + "The JSON string is invalid for ContainerListListInner with oneOf schemas: AuthenticityResult, ByteArrayResult, ChosenDocumentTypeResult, DocBarCodeInfo, DocumentBinaryInfoResult, DocumentImageResult, DocumentPositionResult, DocumentTypesCandidatesResult, EncryptedRCLResult, FaceDetectionResult, GraphicsResult, ImageQualityResult, ImagesResult, LexicalAnalysisResult, LicenseResult, MRZDetectorResult, MRZPositionResult, MRZTestQualityResult, RFIDGraphicsInfoResult, RFIDTextDataResult, StatusResult, TextDataResult, TextResult. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", validCount, errorMessages, jsonElement.toString())); } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java index 57e35d1f..f0d76d52 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java @@ -12,360 +12,53 @@ package com.regula.documentreader.webclient.model; -import com.google.gson.JsonArray; +import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; import java.io.IOException; -import java.math.BigDecimal; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** DocVisualExtendedField */ @javax.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0") -public class DocVisualExtendedField { - public static final String SERIALIZED_NAME_FIELD_TYPE = "FieldType"; +public class DocVisualExtendedField extends VisualExtendedFieldItem { + public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; - @SerializedName(SERIALIZED_NAME_FIELD_TYPE) + @SerializedName(SERIALIZED_NAME_FIELD_RECT) @javax.annotation.Nonnull - private Integer fieldType; - - public static final String SERIALIZED_NAME_W_FIELD_TYPE = "wFieldType"; - - @SerializedName(SERIALIZED_NAME_W_FIELD_TYPE) - @javax.annotation.Nonnull - private TextFieldType wFieldType; - - public static final String SERIALIZED_NAME_FIELD_NAME = "FieldName"; - - @SerializedName(SERIALIZED_NAME_FIELD_NAME) - @javax.annotation.Nonnull - private String fieldName; - - public static final String SERIALIZED_NAME_STRINGS_COUNT = "StringsCount"; - - @SerializedName(SERIALIZED_NAME_STRINGS_COUNT) - @javax.annotation.Nonnull - private BigDecimal stringsCount; - - public static final String SERIALIZED_NAME_STRINGS_RESULT = "StringsResult"; - - @SerializedName(SERIALIZED_NAME_STRINGS_RESULT) - @javax.annotation.Nonnull - private List stringsResult; - - public static final String SERIALIZED_NAME_BUF_LENGTH = "Buf_Length"; - - @SerializedName(SERIALIZED_NAME_BUF_LENGTH) - @javax.annotation.Nonnull - private BigDecimal bufLength; - - public static final String SERIALIZED_NAME_BUF_TEXT = "Buf_Text"; - - @SerializedName(SERIALIZED_NAME_BUF_TEXT) - @javax.annotation.Nonnull - private String bufText; - - public static final String SERIALIZED_NAME_FIELD_MASK = "FieldMask"; - - @SerializedName(SERIALIZED_NAME_FIELD_MASK) - @javax.annotation.Nullable - private String fieldMask; - - public static final String SERIALIZED_NAME_VALIDITY = "Validity"; - - @SerializedName(SERIALIZED_NAME_VALIDITY) - @javax.annotation.Nullable - private Integer validity; - - public static final String SERIALIZED_NAME_IN_COMPARISON = "InComparison"; - - @SerializedName(SERIALIZED_NAME_IN_COMPARISON) - @javax.annotation.Nullable - private Integer inComparison; - - public static final String SERIALIZED_NAME_W_L_C_I_D = "wLCID"; - - @SerializedName(SERIALIZED_NAME_W_L_C_I_D) - @javax.annotation.Nullable - private Integer wLCID; - - public static final String SERIALIZED_NAME_RESERVED2 = "Reserved2"; - - @SerializedName(SERIALIZED_NAME_RESERVED2) - @javax.annotation.Nullable - private Integer reserved2; - - public static final String SERIALIZED_NAME_RESERVED3 = "Reserved3"; - - @SerializedName(SERIALIZED_NAME_RESERVED3) - @javax.annotation.Nullable - private Integer reserved3; + private RectangleCoordinates fieldRect; public DocVisualExtendedField() {} - public DocVisualExtendedField fieldType(@javax.annotation.Nonnull Integer fieldType) { - this.fieldType = fieldType; - return this; - } - - /** - * Get fieldType - * - * @return fieldType - */ - @javax.annotation.Nonnull - public Integer getFieldType() { - return fieldType; - } - - public void setFieldType(@javax.annotation.Nonnull Integer fieldType) { - this.fieldType = fieldType; - } - - public DocVisualExtendedField wFieldType(@javax.annotation.Nonnull TextFieldType wFieldType) { - this.wFieldType = wFieldType; - return this; - } - - /** - * Get wFieldType - * - * @return wFieldType - */ - @javax.annotation.Nonnull - public TextFieldType getwFieldType() { - return wFieldType; - } - - public void setwFieldType(@javax.annotation.Nonnull TextFieldType wFieldType) { - this.wFieldType = wFieldType; - } - - public DocVisualExtendedField fieldName(@javax.annotation.Nonnull String fieldName) { - this.fieldName = fieldName; - return this; - } - - /** - * Field symbolic name (null-terminated string) - * - * @return fieldName - */ - @javax.annotation.Nonnull - public String getFieldName() { - return fieldName; - } - - public void setFieldName(@javax.annotation.Nonnull String fieldName) { - this.fieldName = fieldName; - } - - public DocVisualExtendedField stringsCount(@javax.annotation.Nonnull BigDecimal stringsCount) { - this.stringsCount = stringsCount; - return this; - } - - /** - * Number of StringsResult array elements - * - * @return stringsCount - */ - @javax.annotation.Nonnull - public BigDecimal getStringsCount() { - return stringsCount; - } - - public void setStringsCount(@javax.annotation.Nonnull BigDecimal stringsCount) { - this.stringsCount = stringsCount; - } - - public DocVisualExtendedField stringsResult( - @javax.annotation.Nonnull List stringsResult) { - this.stringsResult = stringsResult; - return this; - } - - public DocVisualExtendedField addStringsResultItem(StringRecognitionResult stringsResultItem) { - if (this.stringsResult == null) { - this.stringsResult = new ArrayList<>(); - } - this.stringsResult.add(stringsResultItem); - return this; - } - - /** - * Array of recognizing probabilities for a each line of text field. Only for Result.VISUAL_TEXT - * and Result.MRZ_TEXT results. - * - * @return stringsResult - */ - @javax.annotation.Nonnull - public List getStringsResult() { - return stringsResult; - } - - public void setStringsResult( - @javax.annotation.Nonnull List stringsResult) { - this.stringsResult = stringsResult; - } - - public DocVisualExtendedField bufLength(@javax.annotation.Nonnull BigDecimal bufLength) { - this.bufLength = bufLength; - return this; - } - - /** - * Buf_Text text string length - * - * @return bufLength - */ - @javax.annotation.Nonnull - public BigDecimal getBufLength() { - return bufLength; - } - - public void setBufLength(@javax.annotation.Nonnull BigDecimal bufLength) { - this.bufLength = bufLength; - } - - public DocVisualExtendedField bufText(@javax.annotation.Nonnull String bufText) { - this.bufText = bufText; + public DocVisualExtendedField fieldRect( + @javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; return this; } /** - * Text field data in UTF8 format. Results of reading different lines of a multi-line field are - * separated by '^' + * Get fieldRect * - * @return bufText + * @return fieldRect */ @javax.annotation.Nonnull - public String getBufText() { - return bufText; - } - - public void setBufText(@javax.annotation.Nonnull String bufText) { - this.bufText = bufText; - } - - public DocVisualExtendedField fieldMask(@javax.annotation.Nullable String fieldMask) { - this.fieldMask = fieldMask; - return this; - } - - /** - * Get fieldMask - * - * @return fieldMask - */ - @javax.annotation.Nullable - public String getFieldMask() { - return fieldMask; - } - - public void setFieldMask(@javax.annotation.Nullable String fieldMask) { - this.fieldMask = fieldMask; - } - - public DocVisualExtendedField validity(@javax.annotation.Nullable Integer validity) { - this.validity = validity; - return this; - } - - /** - * Get validity - * - * @return validity - */ - @javax.annotation.Nullable - public Integer getValidity() { - return validity; + public RectangleCoordinates getFieldRect() { + return fieldRect; } - public void setValidity(@javax.annotation.Nullable Integer validity) { - this.validity = validity; - } - - public DocVisualExtendedField inComparison(@javax.annotation.Nullable Integer inComparison) { - this.inComparison = inComparison; - return this; - } - - /** - * Get inComparison - * - * @return inComparison - */ - @javax.annotation.Nullable - public Integer getInComparison() { - return inComparison; - } - - public void setInComparison(@javax.annotation.Nullable Integer inComparison) { - this.inComparison = inComparison; - } - - public DocVisualExtendedField wLCID(@javax.annotation.Nullable Integer wLCID) { - this.wLCID = wLCID; - return this; - } - - /** - * Get wLCID - * - * @return wLCID - */ - @javax.annotation.Nullable - public Integer getwLCID() { - return wLCID; - } - - public void setwLCID(@javax.annotation.Nullable Integer wLCID) { - this.wLCID = wLCID; - } - - public DocVisualExtendedField reserved2(@javax.annotation.Nullable Integer reserved2) { - this.reserved2 = reserved2; - return this; - } - - /** - * Get reserved2 - * - * @return reserved2 - */ - @javax.annotation.Nullable - public Integer getReserved2() { - return reserved2; - } - - public void setReserved2(@javax.annotation.Nullable Integer reserved2) { - this.reserved2 = reserved2; - } - - public DocVisualExtendedField reserved3(@javax.annotation.Nullable Integer reserved3) { - this.reserved3 = reserved3; - return this; - } - - /** - * Get reserved3 - * - * @return reserved3 - */ - @javax.annotation.Nullable - public Integer getReserved3() { - return reserved3; - } - - public void setReserved3(@javax.annotation.Nullable Integer reserved3) { - this.reserved3 = reserved3; + public void setFieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; } @Override @@ -377,56 +70,20 @@ public boolean equals(Object o) { return false; } DocVisualExtendedField docVisualExtendedField = (DocVisualExtendedField) o; - return Objects.equals(this.fieldType, docVisualExtendedField.fieldType) - && Objects.equals(this.wFieldType, docVisualExtendedField.wFieldType) - && Objects.equals(this.fieldName, docVisualExtendedField.fieldName) - && Objects.equals(this.stringsCount, docVisualExtendedField.stringsCount) - && Objects.equals(this.stringsResult, docVisualExtendedField.stringsResult) - && Objects.equals(this.bufLength, docVisualExtendedField.bufLength) - && Objects.equals(this.bufText, docVisualExtendedField.bufText) - && Objects.equals(this.fieldMask, docVisualExtendedField.fieldMask) - && Objects.equals(this.validity, docVisualExtendedField.validity) - && Objects.equals(this.inComparison, docVisualExtendedField.inComparison) - && Objects.equals(this.wLCID, docVisualExtendedField.wLCID) - && Objects.equals(this.reserved2, docVisualExtendedField.reserved2) - && Objects.equals(this.reserved3, docVisualExtendedField.reserved3); + return Objects.equals(this.fieldRect, docVisualExtendedField.fieldRect) && super.equals(o); } @Override public int hashCode() { - return Objects.hash( - fieldType, - wFieldType, - fieldName, - stringsCount, - stringsResult, - bufLength, - bufText, - fieldMask, - validity, - inComparison, - wLCID, - reserved2, - reserved3); + return Objects.hash(fieldRect, super.hashCode()); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class DocVisualExtendedField {\n"); - sb.append(" fieldType: ").append(toIndentedString(fieldType)).append("\n"); - sb.append(" wFieldType: ").append(toIndentedString(wFieldType)).append("\n"); - sb.append(" fieldName: ").append(toIndentedString(fieldName)).append("\n"); - sb.append(" stringsCount: ").append(toIndentedString(stringsCount)).append("\n"); - sb.append(" stringsResult: ").append(toIndentedString(stringsResult)).append("\n"); - sb.append(" bufLength: ").append(toIndentedString(bufLength)).append("\n"); - sb.append(" bufText: ").append(toIndentedString(bufText)).append("\n"); - sb.append(" fieldMask: ").append(toIndentedString(fieldMask)).append("\n"); - sb.append(" validity: ").append(toIndentedString(validity)).append("\n"); - sb.append(" inComparison: ").append(toIndentedString(inComparison)).append("\n"); - sb.append(" wLCID: ").append(toIndentedString(wLCID)).append("\n"); - sb.append(" reserved2: ").append(toIndentedString(reserved2)).append("\n"); - sb.append(" reserved3: ").append(toIndentedString(reserved3)).append("\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); sb.append("}"); return sb.toString(); } @@ -460,9 +117,11 @@ private String toIndentedString(Object o) { openapiFields.add("wLCID"); openapiFields.add("Reserved2"); openapiFields.add("Reserved3"); + openapiFields.add("FieldRect"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FieldRect"); openapiRequiredFields.add("FieldType"); openapiRequiredFields.add("wFieldType"); openapiRequiredFields.add("FieldName"); @@ -488,41 +147,58 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti DocVisualExtendedField.openapiRequiredFields.toString())); } } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - // validate the required field `wFieldType` - TextFieldType.validateJsonElement(jsonObj.get("wFieldType")); - if (!jsonObj.get("FieldName").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `FieldName` to be a primitive type in the JSON string but got `%s`", - jsonObj.get("FieldName").toString())); - } - // ensure the json data is an array - if (!jsonObj.get("StringsResult").isJsonArray()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `StringsResult` to be an array in the JSON string but got `%s`", - jsonObj.get("StringsResult").toString())); - } - JsonArray jsonArraystringsResult = jsonObj.getAsJsonArray("StringsResult"); - // validate the required field `StringsResult` (array) - for (int i = 0; i < jsonArraystringsResult.size(); i++) { - StringRecognitionResult.validateJsonElement(jsonArraystringsResult.get(i)); + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocVisualExtendedField.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocVisualExtendedField` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } } - ; - if (!jsonObj.get("Buf_Text").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `Buf_Text` to be a primitive type in the JSON string but got `%s`", - jsonObj.get("Buf_Text").toString())); + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocVisualExtendedField.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } } - if ((jsonObj.get("FieldMask") != null && !jsonObj.get("FieldMask").isJsonNull()) - && !jsonObj.get("FieldMask").isJsonPrimitive()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `FieldMask` to be a primitive type in the JSON string but got `%s`", - jsonObj.get("FieldMask").toString())); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `FieldRect` + RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocVisualExtendedField.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocVisualExtendedField' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedField.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocVisualExtendedField value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocVisualExtendedField read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); } } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldItem.java new file mode 100644 index 00000000..bfcae273 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldItem.java @@ -0,0 +1,203 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** DocVisualExtendedFieldItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class DocVisualExtendedFieldItem { + public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; + + @SerializedName(SERIALIZED_NAME_FIELD_RECT) + @javax.annotation.Nonnull + private RectangleCoordinates fieldRect; + + public DocVisualExtendedFieldItem() {} + + public DocVisualExtendedFieldItem fieldRect( + @javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + return this; + } + + /** + * Get fieldRect + * + * @return fieldRect + */ + @javax.annotation.Nonnull + public RectangleCoordinates getFieldRect() { + return fieldRect; + } + + public void setFieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DocVisualExtendedFieldItem docVisualExtendedFieldItem = (DocVisualExtendedFieldItem) o; + return Objects.equals(this.fieldRect, docVisualExtendedFieldItem.fieldRect); + } + + @Override + public int hashCode() { + return Objects.hash(fieldRect); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DocVisualExtendedFieldItem {\n"); + sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldRect"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FieldRect"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to DocVisualExtendedFieldItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!DocVisualExtendedFieldItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in DocVisualExtendedFieldItem is not found in the empty JSON string", + DocVisualExtendedFieldItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!DocVisualExtendedFieldItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `DocVisualExtendedFieldItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : DocVisualExtendedFieldItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `FieldRect` + RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!DocVisualExtendedFieldItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'DocVisualExtendedFieldItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, DocVisualExtendedFieldItem value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public DocVisualExtendedFieldItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of DocVisualExtendedFieldItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of DocVisualExtendedFieldItem + * @throws IOException if the JSON string is invalid with respect to DocVisualExtendedFieldItem + */ + public static DocVisualExtendedFieldItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, DocVisualExtendedFieldItem.class); + } + + /** + * Convert an instance of DocVisualExtendedFieldItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java index 194af490..b2380d32 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java @@ -40,7 +40,7 @@ public static class CustomTypeAdapterFactory implements TypeAdapterFactory { public TypeAdapter create(Gson gson, TypeToken type) { if (!DocVisualExtendedInfoPArrayFieldsInner.class.isAssignableFrom(type.getRawType())) { return null; // this class only serializes 'DocVisualExtendedInfoPArrayFieldsInner' and its - // subtypes + // subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); final TypeAdapter adapterDocVisualExtendedFieldRect = diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java index 99c9e0a5..c28b90eb 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java @@ -23,6 +23,7 @@ import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; import java.io.IOException; +import java.math.BigDecimal; import java.util.HashSet; import java.util.Map; import java.util.Objects; @@ -37,29 +38,29 @@ public class ErrorCoordinates { @SerializedName(SERIALIZED_NAME_LEFT) @javax.annotation.Nullable - private Integer left; + private BigDecimal left; public static final String SERIALIZED_NAME_TOP = "Top"; @SerializedName(SERIALIZED_NAME_TOP) @javax.annotation.Nullable - private Integer top; + private BigDecimal top; public static final String SERIALIZED_NAME_RIGHT = "Right"; @SerializedName(SERIALIZED_NAME_RIGHT) @javax.annotation.Nullable - private Integer right; + private BigDecimal right; public static final String SERIALIZED_NAME_BOTTOM = "Bottom"; @SerializedName(SERIALIZED_NAME_BOTTOM) @javax.annotation.Nullable - private Integer bottom; + private BigDecimal bottom; public ErrorCoordinates() {} - public ErrorCoordinates left(@javax.annotation.Nullable Integer left) { + public ErrorCoordinates left(@javax.annotation.Nullable BigDecimal left) { this.left = left; return this; } @@ -70,15 +71,15 @@ public ErrorCoordinates left(@javax.annotation.Nullable Integer left) { * @return left */ @javax.annotation.Nullable - public Integer getLeft() { + public BigDecimal getLeft() { return left; } - public void setLeft(@javax.annotation.Nullable Integer left) { + public void setLeft(@javax.annotation.Nullable BigDecimal left) { this.left = left; } - public ErrorCoordinates top(@javax.annotation.Nullable Integer top) { + public ErrorCoordinates top(@javax.annotation.Nullable BigDecimal top) { this.top = top; return this; } @@ -89,15 +90,15 @@ public ErrorCoordinates top(@javax.annotation.Nullable Integer top) { * @return top */ @javax.annotation.Nullable - public Integer getTop() { + public BigDecimal getTop() { return top; } - public void setTop(@javax.annotation.Nullable Integer top) { + public void setTop(@javax.annotation.Nullable BigDecimal top) { this.top = top; } - public ErrorCoordinates right(@javax.annotation.Nullable Integer right) { + public ErrorCoordinates right(@javax.annotation.Nullable BigDecimal right) { this.right = right; return this; } @@ -108,15 +109,15 @@ public ErrorCoordinates right(@javax.annotation.Nullable Integer right) { * @return right */ @javax.annotation.Nullable - public Integer getRight() { + public BigDecimal getRight() { return right; } - public void setRight(@javax.annotation.Nullable Integer right) { + public void setRight(@javax.annotation.Nullable BigDecimal right) { this.right = right; } - public ErrorCoordinates bottom(@javax.annotation.Nullable Integer bottom) { + public ErrorCoordinates bottom(@javax.annotation.Nullable BigDecimal bottom) { this.bottom = bottom; return this; } @@ -127,11 +128,11 @@ public ErrorCoordinates bottom(@javax.annotation.Nullable Integer bottom) { * @return bottom */ @javax.annotation.Nullable - public Integer getBottom() { + public BigDecimal getBottom() { return bottom; } - public void setBottom(@javax.annotation.Nullable Integer bottom) { + public void setBottom(@javax.annotation.Nullable BigDecimal bottom) { this.bottom = bottom; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java index fcfc76ed..174d3505 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java @@ -12,19 +12,33 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; import java.io.IOException; import java.util.HashSet; +import java.util.Map; import java.util.Objects; +import java.util.Set; /** Information about one graphic field - abstract class */ @javax.annotation.Generated( value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0") public class GraphicField { + public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; + + @SerializedName(SERIALIZED_NAME_FIELD_RECT) + @javax.annotation.Nonnull + private RectangleCoordinates fieldRect; + public static final String SERIALIZED_NAME_FIELD_TYPE = "FieldType"; @SerializedName(SERIALIZED_NAME_FIELD_TYPE) @@ -45,6 +59,25 @@ public class GraphicField { public GraphicField() {} + public GraphicField fieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + return this; + } + + /** + * Get fieldRect + * + * @return fieldRect + */ + @javax.annotation.Nonnull + public RectangleCoordinates getFieldRect() { + return fieldRect; + } + + public void setFieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { + this.fieldRect = fieldRect; + } + public GraphicField fieldType(@javax.annotation.Nonnull GraphicFieldType fieldType) { this.fieldType = fieldType; return this; @@ -111,20 +144,22 @@ public boolean equals(Object o) { return false; } GraphicField graphicField = (GraphicField) o; - return Objects.equals(this.fieldType, graphicField.fieldType) + return Objects.equals(this.fieldRect, graphicField.fieldRect) + && Objects.equals(this.fieldType, graphicField.fieldType) && Objects.equals(this.fieldName, graphicField.fieldName) && Objects.equals(this.image, graphicField.image); } @Override public int hashCode() { - return Objects.hash(fieldType, fieldName, image); + return Objects.hash(fieldRect, fieldType, fieldName, image); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class GraphicField {\n"); + sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); sb.append(" fieldType: ").append(toIndentedString(fieldType)).append("\n"); sb.append(" fieldName: ").append(toIndentedString(fieldName)).append("\n"); sb.append(" image: ").append(toIndentedString(image)).append("\n"); @@ -148,12 +183,14 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); + openapiFields.add("FieldRect"); openapiFields.add("FieldType"); openapiFields.add("FieldName"); openapiFields.add("image"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FieldRect"); openapiRequiredFields.add("FieldType"); openapiRequiredFields.add("FieldName"); openapiRequiredFields.add("image"); @@ -175,7 +212,30 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti GraphicField.openapiRequiredFields.toString())); } } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!GraphicField.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `GraphicField` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : GraphicField.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `FieldRect` + RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); // validate the required field `FieldType` GraphicFieldType.validateJsonElement(jsonObj.get("FieldType")); if (!jsonObj.get("FieldName").isJsonPrimitive()) { @@ -188,6 +248,35 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti ImageData.validateJsonElement(jsonObj.get("image")); } + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!GraphicField.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'GraphicField' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(GraphicField.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, GraphicField value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public GraphicField read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + /** * Create an instance of GraphicField given an JSON string * diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java index 6d84db4d..223103cf 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java @@ -40,7 +40,7 @@ public static class CustomTypeAdapterFactory implements TypeAdapterFactory { public TypeAdapter create(Gson gson, TypeToken type) { if (!GraphicFieldsListPArrayFieldsInner.class.isAssignableFrom(type.getRawType())) { return null; // this class only serializes 'GraphicFieldsListPArrayFieldsInner' and its - // subtypes + // subtypes } final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); final TypeAdapter adapterGraphicFieldRect = diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedField.java new file mode 100644 index 00000000..65db1427 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedField.java @@ -0,0 +1,310 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** RFIDDocVisualExtendedField */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RFIDDocVisualExtendedField extends VisualExtendedFieldItem { + public static final String SERIALIZED_NAME_ORIGIN_D_G = "OriginDG"; + + @SerializedName(SERIALIZED_NAME_ORIGIN_D_G) + @javax.annotation.Nonnull + private Integer originDG; + + public static final String SERIALIZED_NAME_ORIGIN_D_G_TAG = "OriginDGTag"; + + @SerializedName(SERIALIZED_NAME_ORIGIN_D_G_TAG) + @javax.annotation.Nullable + private Integer originDGTag; + + public static final String SERIALIZED_NAME_ORIGIN_TAG_ENTRY = "OriginTagEntry"; + + @SerializedName(SERIALIZED_NAME_ORIGIN_TAG_ENTRY) + @javax.annotation.Nonnull + private BigDecimal originTagEntry; + + public static final String SERIALIZED_NAME_ORIGIN_ENTRY_VIEW = "OriginEntryView"; + + @SerializedName(SERIALIZED_NAME_ORIGIN_ENTRY_VIEW) + @javax.annotation.Nullable + private Integer originEntryView; + + public RFIDDocVisualExtendedField() {} + + public RFIDDocVisualExtendedField originDG(@javax.annotation.Nonnull Integer originDG) { + this.originDG = originDG; + return this; + } + + /** + * Get originDG + * + * @return originDG + */ + @javax.annotation.Nonnull + public Integer getOriginDG() { + return originDG; + } + + public void setOriginDG(@javax.annotation.Nonnull Integer originDG) { + this.originDG = originDG; + } + + public RFIDDocVisualExtendedField originDGTag(@javax.annotation.Nullable Integer originDGTag) { + this.originDGTag = originDGTag; + return this; + } + + /** + * Get originDGTag + * + * @return originDGTag + */ + @javax.annotation.Nullable + public Integer getOriginDGTag() { + return originDGTag; + } + + public void setOriginDGTag(@javax.annotation.Nullable Integer originDGTag) { + this.originDGTag = originDGTag; + } + + public RFIDDocVisualExtendedField originTagEntry( + @javax.annotation.Nonnull BigDecimal originTagEntry) { + this.originTagEntry = originTagEntry; + return this; + } + + /** + * Record index of the text field source in the data group + * + * @return originTagEntry + */ + @javax.annotation.Nonnull + public BigDecimal getOriginTagEntry() { + return originTagEntry; + } + + public void setOriginTagEntry(@javax.annotation.Nonnull BigDecimal originTagEntry) { + this.originTagEntry = originTagEntry; + } + + public RFIDDocVisualExtendedField originEntryView( + @javax.annotation.Nullable Integer originEntryView) { + this.originEntryView = originEntryView; + return this; + } + + /** + * Get originEntryView + * + * @return originEntryView + */ + @javax.annotation.Nullable + public Integer getOriginEntryView() { + return originEntryView; + } + + public void setOriginEntryView(@javax.annotation.Nullable Integer originEntryView) { + this.originEntryView = originEntryView; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RFIDDocVisualExtendedField rfIDDocVisualExtendedField = (RFIDDocVisualExtendedField) o; + return Objects.equals(this.originDG, rfIDDocVisualExtendedField.originDG) + && Objects.equals(this.originDGTag, rfIDDocVisualExtendedField.originDGTag) + && Objects.equals(this.originTagEntry, rfIDDocVisualExtendedField.originTagEntry) + && Objects.equals(this.originEntryView, rfIDDocVisualExtendedField.originEntryView) + && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(originDG, originDGTag, originTagEntry, originEntryView, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RFIDDocVisualExtendedField {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" originDG: ").append(toIndentedString(originDG)).append("\n"); + sb.append(" originDGTag: ").append(toIndentedString(originDGTag)).append("\n"); + sb.append(" originTagEntry: ").append(toIndentedString(originTagEntry)).append("\n"); + sb.append(" originEntryView: ").append(toIndentedString(originEntryView)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldType"); + openapiFields.add("wFieldType"); + openapiFields.add("FieldName"); + openapiFields.add("StringsCount"); + openapiFields.add("StringsResult"); + openapiFields.add("Buf_Length"); + openapiFields.add("Buf_Text"); + openapiFields.add("FieldMask"); + openapiFields.add("Validity"); + openapiFields.add("InComparison"); + openapiFields.add("wLCID"); + openapiFields.add("Reserved2"); + openapiFields.add("Reserved3"); + openapiFields.add("OriginDG"); + openapiFields.add("OriginDGTag"); + openapiFields.add("OriginTagEntry"); + openapiFields.add("OriginEntryView"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("OriginDG"); + openapiRequiredFields.add("OriginTagEntry"); + openapiRequiredFields.add("FieldType"); + openapiRequiredFields.add("wFieldType"); + openapiRequiredFields.add("FieldName"); + openapiRequiredFields.add("StringsCount"); + openapiRequiredFields.add("StringsResult"); + openapiRequiredFields.add("Buf_Length"); + openapiRequiredFields.add("Buf_Text"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RFIDDocVisualExtendedField + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RFIDDocVisualExtendedField.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RFIDDocVisualExtendedField is not found in the empty JSON string", + RFIDDocVisualExtendedField.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RFIDDocVisualExtendedField.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RFIDDocVisualExtendedField` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RFIDDocVisualExtendedField.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RFIDDocVisualExtendedField.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RFIDDocVisualExtendedField' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RFIDDocVisualExtendedField.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RFIDDocVisualExtendedField value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RFIDDocVisualExtendedField read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RFIDDocVisualExtendedField given an JSON string + * + * @param jsonString JSON string + * @return An instance of RFIDDocVisualExtendedField + * @throws IOException if the JSON string is invalid with respect to RFIDDocVisualExtendedField + */ + public static RFIDDocVisualExtendedField fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RFIDDocVisualExtendedField.class); + } + + /** + * Convert an instance of RFIDDocVisualExtendedField to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedFieldItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedFieldItem.java new file mode 100644 index 00000000..e45dd043 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedFieldItem.java @@ -0,0 +1,293 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** RFIDDocVisualExtendedFieldItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RFIDDocVisualExtendedFieldItem { + public static final String SERIALIZED_NAME_ORIGIN_D_G = "OriginDG"; + + @SerializedName(SERIALIZED_NAME_ORIGIN_D_G) + @javax.annotation.Nonnull + private Integer originDG; + + public static final String SERIALIZED_NAME_ORIGIN_D_G_TAG = "OriginDGTag"; + + @SerializedName(SERIALIZED_NAME_ORIGIN_D_G_TAG) + @javax.annotation.Nullable + private Integer originDGTag; + + public static final String SERIALIZED_NAME_ORIGIN_TAG_ENTRY = "OriginTagEntry"; + + @SerializedName(SERIALIZED_NAME_ORIGIN_TAG_ENTRY) + @javax.annotation.Nonnull + private BigDecimal originTagEntry; + + public static final String SERIALIZED_NAME_ORIGIN_ENTRY_VIEW = "OriginEntryView"; + + @SerializedName(SERIALIZED_NAME_ORIGIN_ENTRY_VIEW) + @javax.annotation.Nullable + private Integer originEntryView; + + public RFIDDocVisualExtendedFieldItem() {} + + public RFIDDocVisualExtendedFieldItem originDG(@javax.annotation.Nonnull Integer originDG) { + this.originDG = originDG; + return this; + } + + /** + * Get originDG + * + * @return originDG + */ + @javax.annotation.Nonnull + public Integer getOriginDG() { + return originDG; + } + + public void setOriginDG(@javax.annotation.Nonnull Integer originDG) { + this.originDG = originDG; + } + + public RFIDDocVisualExtendedFieldItem originDGTag( + @javax.annotation.Nullable Integer originDGTag) { + this.originDGTag = originDGTag; + return this; + } + + /** + * Get originDGTag + * + * @return originDGTag + */ + @javax.annotation.Nullable + public Integer getOriginDGTag() { + return originDGTag; + } + + public void setOriginDGTag(@javax.annotation.Nullable Integer originDGTag) { + this.originDGTag = originDGTag; + } + + public RFIDDocVisualExtendedFieldItem originTagEntry( + @javax.annotation.Nonnull BigDecimal originTagEntry) { + this.originTagEntry = originTagEntry; + return this; + } + + /** + * Record index of the text field source in the data group + * + * @return originTagEntry + */ + @javax.annotation.Nonnull + public BigDecimal getOriginTagEntry() { + return originTagEntry; + } + + public void setOriginTagEntry(@javax.annotation.Nonnull BigDecimal originTagEntry) { + this.originTagEntry = originTagEntry; + } + + public RFIDDocVisualExtendedFieldItem originEntryView( + @javax.annotation.Nullable Integer originEntryView) { + this.originEntryView = originEntryView; + return this; + } + + /** + * Get originEntryView + * + * @return originEntryView + */ + @javax.annotation.Nullable + public Integer getOriginEntryView() { + return originEntryView; + } + + public void setOriginEntryView(@javax.annotation.Nullable Integer originEntryView) { + this.originEntryView = originEntryView; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RFIDDocVisualExtendedFieldItem rfIDDocVisualExtendedFieldItem = + (RFIDDocVisualExtendedFieldItem) o; + return Objects.equals(this.originDG, rfIDDocVisualExtendedFieldItem.originDG) + && Objects.equals(this.originDGTag, rfIDDocVisualExtendedFieldItem.originDGTag) + && Objects.equals(this.originTagEntry, rfIDDocVisualExtendedFieldItem.originTagEntry) + && Objects.equals(this.originEntryView, rfIDDocVisualExtendedFieldItem.originEntryView); + } + + @Override + public int hashCode() { + return Objects.hash(originDG, originDGTag, originTagEntry, originEntryView); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RFIDDocVisualExtendedFieldItem {\n"); + sb.append(" originDG: ").append(toIndentedString(originDG)).append("\n"); + sb.append(" originDGTag: ").append(toIndentedString(originDGTag)).append("\n"); + sb.append(" originTagEntry: ").append(toIndentedString(originTagEntry)).append("\n"); + sb.append(" originEntryView: ").append(toIndentedString(originEntryView)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("OriginDG"); + openapiFields.add("OriginDGTag"); + openapiFields.add("OriginTagEntry"); + openapiFields.add("OriginEntryView"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("OriginDG"); + openapiRequiredFields.add("OriginTagEntry"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * RFIDDocVisualExtendedFieldItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RFIDDocVisualExtendedFieldItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RFIDDocVisualExtendedFieldItem is not found in the empty JSON string", + RFIDDocVisualExtendedFieldItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RFIDDocVisualExtendedFieldItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RFIDDocVisualExtendedFieldItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RFIDDocVisualExtendedFieldItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RFIDDocVisualExtendedFieldItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RFIDDocVisualExtendedFieldItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RFIDDocVisualExtendedFieldItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RFIDDocVisualExtendedFieldItem value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RFIDDocVisualExtendedFieldItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RFIDDocVisualExtendedFieldItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of RFIDDocVisualExtendedFieldItem + * @throws IOException if the JSON string is invalid with respect to + * RFIDDocVisualExtendedFieldItem + */ + public static RFIDDocVisualExtendedFieldItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RFIDDocVisualExtendedFieldItem.class); + } + + /** + * Convert an instance of RFIDDocVisualExtendedFieldItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfo.java new file mode 100644 index 00000000..76f4f90c --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfo.java @@ -0,0 +1,258 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** Container for extracted text fields. Fields are identified by type and language */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RFIDDocVisualExtendedInfo { + public static final String SERIALIZED_NAME_N_FIELDS = "nFields"; + + @SerializedName(SERIALIZED_NAME_N_FIELDS) + @javax.annotation.Nonnull + private BigDecimal nFields; + + public static final String SERIALIZED_NAME_P_ARRAY_FIELDS = "pArrayFields"; + + @SerializedName(SERIALIZED_NAME_P_ARRAY_FIELDS) + @javax.annotation.Nonnull + private List pArrayFields; + + public RFIDDocVisualExtendedInfo() {} + + public RFIDDocVisualExtendedInfo nFields(@javax.annotation.Nonnull BigDecimal nFields) { + this.nFields = nFields; + return this; + } + + /** + * Number of pArrayFields array elements + * + * @return nFields + */ + @javax.annotation.Nonnull + public BigDecimal getnFields() { + return nFields; + } + + public void setnFields(@javax.annotation.Nonnull BigDecimal nFields) { + this.nFields = nFields; + } + + public RFIDDocVisualExtendedInfo pArrayFields( + @javax.annotation.Nonnull List pArrayFields) { + this.pArrayFields = pArrayFields; + return this; + } + + public RFIDDocVisualExtendedInfo addPArrayFieldsItem( + RFIDDocVisualExtendedField pArrayFieldsItem) { + if (this.pArrayFields == null) { + this.pArrayFields = new ArrayList<>(); + } + this.pArrayFields.add(pArrayFieldsItem); + return this; + } + + /** + * Get pArrayFields + * + * @return pArrayFields + */ + @javax.annotation.Nonnull + public List getpArrayFields() { + return pArrayFields; + } + + public void setpArrayFields( + @javax.annotation.Nonnull List pArrayFields) { + this.pArrayFields = pArrayFields; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RFIDDocVisualExtendedInfo rfIDDocVisualExtendedInfo = (RFIDDocVisualExtendedInfo) o; + return Objects.equals(this.nFields, rfIDDocVisualExtendedInfo.nFields) + && Objects.equals(this.pArrayFields, rfIDDocVisualExtendedInfo.pArrayFields); + } + + @Override + public int hashCode() { + return Objects.hash(nFields, pArrayFields); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RFIDDocVisualExtendedInfo {\n"); + sb.append(" nFields: ").append(toIndentedString(nFields)).append("\n"); + sb.append(" pArrayFields: ").append(toIndentedString(pArrayFields)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("nFields"); + openapiFields.add("pArrayFields"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("nFields"); + openapiRequiredFields.add("pArrayFields"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RFIDDocVisualExtendedInfo + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RFIDDocVisualExtendedInfo.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RFIDDocVisualExtendedInfo is not found in the empty JSON string", + RFIDDocVisualExtendedInfo.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RFIDDocVisualExtendedInfo.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RFIDDocVisualExtendedInfo` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RFIDDocVisualExtendedInfo.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // ensure the json data is an array + if (!jsonObj.get("pArrayFields").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `pArrayFields` to be an array in the JSON string but got `%s`", + jsonObj.get("pArrayFields").toString())); + } + + JsonArray jsonArraypArrayFields = jsonObj.getAsJsonArray("pArrayFields"); + // validate the required field `pArrayFields` (array) + for (int i = 0; i < jsonArraypArrayFields.size(); i++) { + RFIDDocVisualExtendedField.validateJsonElement(jsonArraypArrayFields.get(i)); + } + ; + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RFIDDocVisualExtendedInfo.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RFIDDocVisualExtendedInfo' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RFIDDocVisualExtendedInfo.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RFIDDocVisualExtendedInfo value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RFIDDocVisualExtendedInfo read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RFIDDocVisualExtendedInfo given an JSON string + * + * @param jsonString JSON string + * @return An instance of RFIDDocVisualExtendedInfo + * @throws IOException if the JSON string is invalid with respect to RFIDDocVisualExtendedInfo + */ + public static RFIDDocVisualExtendedInfo fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RFIDDocVisualExtendedInfo.class); + } + + /** + * Convert an instance of RFIDDocVisualExtendedInfo to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfoItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfoItem.java new file mode 100644 index 00000000..1c168600 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfoItem.java @@ -0,0 +1,209 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** RFIDDocVisualExtendedInfoItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RFIDDocVisualExtendedInfoItem { + public static final String SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO = "DocVisualExtendedInfo"; + + @SerializedName(SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO) + @javax.annotation.Nonnull + private RFIDDocVisualExtendedInfo docVisualExtendedInfo; + + public RFIDDocVisualExtendedInfoItem() {} + + public RFIDDocVisualExtendedInfoItem docVisualExtendedInfo( + @javax.annotation.Nonnull RFIDDocVisualExtendedInfo docVisualExtendedInfo) { + this.docVisualExtendedInfo = docVisualExtendedInfo; + return this; + } + + /** + * Get docVisualExtendedInfo + * + * @return docVisualExtendedInfo + */ + @javax.annotation.Nonnull + public RFIDDocVisualExtendedInfo getDocVisualExtendedInfo() { + return docVisualExtendedInfo; + } + + public void setDocVisualExtendedInfo( + @javax.annotation.Nonnull RFIDDocVisualExtendedInfo docVisualExtendedInfo) { + this.docVisualExtendedInfo = docVisualExtendedInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RFIDDocVisualExtendedInfoItem rfIDDocVisualExtendedInfoItem = (RFIDDocVisualExtendedInfoItem) o; + return Objects.equals( + this.docVisualExtendedInfo, rfIDDocVisualExtendedInfoItem.docVisualExtendedInfo); + } + + @Override + public int hashCode() { + return Objects.hash(docVisualExtendedInfo); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RFIDDocVisualExtendedInfoItem {\n"); + sb.append(" docVisualExtendedInfo: ") + .append(toIndentedString(docVisualExtendedInfo)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("DocVisualExtendedInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("DocVisualExtendedInfo"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * RFIDDocVisualExtendedInfoItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RFIDDocVisualExtendedInfoItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RFIDDocVisualExtendedInfoItem is not found in the empty JSON string", + RFIDDocVisualExtendedInfoItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RFIDDocVisualExtendedInfoItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RFIDDocVisualExtendedInfoItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RFIDDocVisualExtendedInfoItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `DocVisualExtendedInfo` + RFIDDocVisualExtendedInfo.validateJsonElement(jsonObj.get("DocVisualExtendedInfo")); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RFIDDocVisualExtendedInfoItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RFIDDocVisualExtendedInfoItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RFIDDocVisualExtendedInfoItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RFIDDocVisualExtendedInfoItem value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RFIDDocVisualExtendedInfoItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RFIDDocVisualExtendedInfoItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of RFIDDocVisualExtendedInfoItem + * @throws IOException if the JSON string is invalid with respect to RFIDDocVisualExtendedInfoItem + */ + public static RFIDDocVisualExtendedInfoItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RFIDDocVisualExtendedInfoItem.class); + } + + /** + * Convert an instance of RFIDDocVisualExtendedInfoItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDTextDataResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDTextDataResult.java new file mode 100644 index 00000000..ee185dc5 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDTextDataResult.java @@ -0,0 +1,211 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** RFIDTextDataResult */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class RFIDTextDataResult extends ResultItem { + public static final String SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO = "DocVisualExtendedInfo"; + + @SerializedName(SERIALIZED_NAME_DOC_VISUAL_EXTENDED_INFO) + @javax.annotation.Nonnull + private RFIDDocVisualExtendedInfo docVisualExtendedInfo; + + public RFIDTextDataResult() {} + + public RFIDTextDataResult docVisualExtendedInfo( + @javax.annotation.Nonnull RFIDDocVisualExtendedInfo docVisualExtendedInfo) { + this.docVisualExtendedInfo = docVisualExtendedInfo; + return this; + } + + /** + * Get docVisualExtendedInfo + * + * @return docVisualExtendedInfo + */ + @javax.annotation.Nonnull + public RFIDDocVisualExtendedInfo getDocVisualExtendedInfo() { + return docVisualExtendedInfo; + } + + public void setDocVisualExtendedInfo( + @javax.annotation.Nonnull RFIDDocVisualExtendedInfo docVisualExtendedInfo) { + this.docVisualExtendedInfo = docVisualExtendedInfo; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RFIDTextDataResult rfIDTextDataResult = (RFIDTextDataResult) o; + return Objects.equals(this.docVisualExtendedInfo, rfIDTextDataResult.docVisualExtendedInfo) + && super.equals(o); + } + + @Override + public int hashCode() { + return Objects.hash(docVisualExtendedInfo, super.hashCode()); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RFIDTextDataResult {\n"); + sb.append(" ").append(toIndentedString(super.toString())).append("\n"); + sb.append(" docVisualExtendedInfo: ") + .append(toIndentedString(docVisualExtendedInfo)) + .append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("buf_length"); + openapiFields.add("light"); + openapiFields.add("list_idx"); + openapiFields.add("page_idx"); + openapiFields.add("result_type"); + openapiFields.add("DocVisualExtendedInfo"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("DocVisualExtendedInfo"); + openapiRequiredFields.add("result_type"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RFIDTextDataResult + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RFIDTextDataResult.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in RFIDTextDataResult is not found in the empty JSON string", + RFIDTextDataResult.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!RFIDTextDataResult.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `RFIDTextDataResult` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : RFIDTextDataResult.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RFIDTextDataResult.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RFIDTextDataResult' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(RFIDTextDataResult.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, RFIDTextDataResult value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public RFIDTextDataResult read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of RFIDTextDataResult given an JSON string + * + * @param jsonString JSON string + * @return An instance of RFIDTextDataResult + * @throws IOException if the JSON string is invalid with respect to RFIDTextDataResult + */ + public static RFIDTextDataResult fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RFIDTextDataResult.class); + } + + /** + * Convert an instance of RFIDTextDataResult to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java index 02c784e8..973968d5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java @@ -238,7 +238,7 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti DocumentBinaryInfoResult.validateJsonElement(jsonElement); break; case "102": - TextDataResult.validateJsonElement(jsonElement); + RFIDTextDataResult.validateJsonElement(jsonElement); break; case "103": GraphicsResult.validateJsonElement(jsonElement); diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java index c7193ac2..119aaa2d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java @@ -24,6 +24,7 @@ import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -58,7 +59,7 @@ public class ResultMRZDetector { @SerializedName(SERIALIZED_NAME_BOUNDING_QUADRANGLE) @javax.annotation.Nonnull - private List boundingQuadrangle; + private List boundingQuadrangle; public ResultMRZDetector() {} @@ -128,12 +129,12 @@ public void setMrZRowsNum(@javax.annotation.Nonnull Integer mrZRowsNum) { } public ResultMRZDetector boundingQuadrangle( - @javax.annotation.Nonnull List boundingQuadrangle) { + @javax.annotation.Nonnull List boundingQuadrangle) { this.boundingQuadrangle = boundingQuadrangle; return this; } - public ResultMRZDetector addBoundingQuadrangleItem(Integer boundingQuadrangleItem) { + public ResultMRZDetector addBoundingQuadrangleItem(BigDecimal boundingQuadrangleItem) { if (this.boundingQuadrangle == null) { this.boundingQuadrangle = new ArrayList<>(); } @@ -147,11 +148,11 @@ public ResultMRZDetector addBoundingQuadrangleItem(Integer boundingQuadrangleIte * @return boundingQuadrangle */ @javax.annotation.Nonnull - public List getBoundingQuadrangle() { + public List getBoundingQuadrangle() { return boundingQuadrangle; } - public void setBoundingQuadrangle(@javax.annotation.Nonnull List boundingQuadrangle) { + public void setBoundingQuadrangle(@javax.annotation.Nonnull List boundingQuadrangle) { this.boundingQuadrangle = boundingQuadrangle; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java index c73c5eed..b353172f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java @@ -187,10 +187,10 @@ public enum RfidDataGroupTypeTag { EDL_DG12(113), /** Extended Length Data, Data Group 13 */ - EDL_DG14(111), + EDL_DG13(111), /** Extended Length Data, Data Group 14 */ - NUMBER_1103(110); + EDL_DG14(110); private Integer value; diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/StringItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/StringItem.java index e945000d..7b098fae 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/StringItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/StringItem.java @@ -24,6 +24,7 @@ import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; import java.io.IOException; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -101,25 +102,25 @@ public class StringItem { @SerializedName(SERIALIZED_NAME_SIZE_ERROR_A_L_I_G_N_M_E_N_T) @javax.annotation.Nonnull - private Integer sizeErrorALIGNMENT; + private BigDecimal sizeErrorALIGNMENT; public static final String SERIALIZED_NAME_SIZE_ERROR_D_I_S_T_A_N_C_E = "SizeError_DISTANCE"; @SerializedName(SERIALIZED_NAME_SIZE_ERROR_D_I_S_T_A_N_C_E) @javax.annotation.Nonnull - private Integer sizeErrorDISTANCE; + private BigDecimal sizeErrorDISTANCE; public static final String SERIALIZED_NAME_SIZE_ERROR_I_N_T_E_R_V_A_L = "SizeError_INTERVAL"; @SerializedName(SERIALIZED_NAME_SIZE_ERROR_I_N_T_E_R_V_A_L) @javax.annotation.Nonnull - private Integer sizeErrorINTERVAL; + private BigDecimal sizeErrorINTERVAL; public static final String SERIALIZED_NAME_STRING_ANGLE = "StringAngle"; @SerializedName(SERIALIZED_NAME_STRING_ANGLE) @javax.annotation.Nonnull - private Integer stringAngle; + private BigDecimal stringAngle; public static final String SERIALIZED_NAME_STRING_BORDERS = "StringBorders"; @@ -341,7 +342,7 @@ public void setSYMBOLSPARAM(@javax.annotation.Nonnull Integer SYMBOLS_PARAM) { this.SYMBOLS_PARAM = SYMBOLS_PARAM; } - public StringItem sizeErrorALIGNMENT(@javax.annotation.Nonnull Integer sizeErrorALIGNMENT) { + public StringItem sizeErrorALIGNMENT(@javax.annotation.Nonnull BigDecimal sizeErrorALIGNMENT) { this.sizeErrorALIGNMENT = sizeErrorALIGNMENT; return this; } @@ -352,15 +353,15 @@ public StringItem sizeErrorALIGNMENT(@javax.annotation.Nonnull Integer sizeError * @return sizeErrorALIGNMENT */ @javax.annotation.Nonnull - public Integer getSizeErrorALIGNMENT() { + public BigDecimal getSizeErrorALIGNMENT() { return sizeErrorALIGNMENT; } - public void setSizeErrorALIGNMENT(@javax.annotation.Nonnull Integer sizeErrorALIGNMENT) { + public void setSizeErrorALIGNMENT(@javax.annotation.Nonnull BigDecimal sizeErrorALIGNMENT) { this.sizeErrorALIGNMENT = sizeErrorALIGNMENT; } - public StringItem sizeErrorDISTANCE(@javax.annotation.Nonnull Integer sizeErrorDISTANCE) { + public StringItem sizeErrorDISTANCE(@javax.annotation.Nonnull BigDecimal sizeErrorDISTANCE) { this.sizeErrorDISTANCE = sizeErrorDISTANCE; return this; } @@ -371,15 +372,15 @@ public StringItem sizeErrorDISTANCE(@javax.annotation.Nonnull Integer sizeErrorD * @return sizeErrorDISTANCE */ @javax.annotation.Nonnull - public Integer getSizeErrorDISTANCE() { + public BigDecimal getSizeErrorDISTANCE() { return sizeErrorDISTANCE; } - public void setSizeErrorDISTANCE(@javax.annotation.Nonnull Integer sizeErrorDISTANCE) { + public void setSizeErrorDISTANCE(@javax.annotation.Nonnull BigDecimal sizeErrorDISTANCE) { this.sizeErrorDISTANCE = sizeErrorDISTANCE; } - public StringItem sizeErrorINTERVAL(@javax.annotation.Nonnull Integer sizeErrorINTERVAL) { + public StringItem sizeErrorINTERVAL(@javax.annotation.Nonnull BigDecimal sizeErrorINTERVAL) { this.sizeErrorINTERVAL = sizeErrorINTERVAL; return this; } @@ -390,15 +391,15 @@ public StringItem sizeErrorINTERVAL(@javax.annotation.Nonnull Integer sizeErrorI * @return sizeErrorINTERVAL */ @javax.annotation.Nonnull - public Integer getSizeErrorINTERVAL() { + public BigDecimal getSizeErrorINTERVAL() { return sizeErrorINTERVAL; } - public void setSizeErrorINTERVAL(@javax.annotation.Nonnull Integer sizeErrorINTERVAL) { + public void setSizeErrorINTERVAL(@javax.annotation.Nonnull BigDecimal sizeErrorINTERVAL) { this.sizeErrorINTERVAL = sizeErrorINTERVAL; } - public StringItem stringAngle(@javax.annotation.Nonnull Integer stringAngle) { + public StringItem stringAngle(@javax.annotation.Nonnull BigDecimal stringAngle) { this.stringAngle = stringAngle; return this; } @@ -409,11 +410,11 @@ public StringItem stringAngle(@javax.annotation.Nonnull Integer stringAngle) { * @return stringAngle */ @javax.annotation.Nonnull - public Integer getStringAngle() { + public BigDecimal getStringAngle() { return stringAngle; } - public void setStringAngle(@javax.annotation.Nonnull Integer stringAngle) { + public void setStringAngle(@javax.annotation.Nonnull BigDecimal stringAngle) { this.stringAngle = stringAngle; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java index b216dea9..2e39303c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java @@ -23,6 +23,7 @@ import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; import java.io.IOException; +import java.math.BigDecimal; import java.util.HashSet; import java.util.Map; import java.util.Objects; @@ -98,39 +99,39 @@ public class SymbolEstimationItem { @SerializedName(SERIALIZED_NAME_SIZE_ERROR_ALIGN_WITH_NEXT) @javax.annotation.Nonnull - private Integer sizeErrorAlignWithNext; + private BigDecimal sizeErrorAlignWithNext; public static final String SERIALIZED_NAME_SIZE_ERROR_ALIGN_WITH_PREV = "SizeErrorAlignWithPrev"; @SerializedName(SERIALIZED_NAME_SIZE_ERROR_ALIGN_WITH_PREV) @javax.annotation.Nonnull - private Integer sizeErrorAlignWithPrev; + private BigDecimal sizeErrorAlignWithPrev; public static final String SERIALIZED_NAME_SIZE_ERROR_INTERV_WITH_NEXT = "SizeErrorIntervWithNext"; @SerializedName(SERIALIZED_NAME_SIZE_ERROR_INTERV_WITH_NEXT) @javax.annotation.Nonnull - private Integer sizeErrorIntervWithNext; + private BigDecimal sizeErrorIntervWithNext; public static final String SERIALIZED_NAME_SIZE_ERROR_INTERV_WITH_PREV = "SizeErrorIntervWithPrev"; @SerializedName(SERIALIZED_NAME_SIZE_ERROR_INTERV_WITH_PREV) @javax.annotation.Nonnull - private Integer sizeErrorIntervWithPrev; + private BigDecimal sizeErrorIntervWithPrev; public static final String SERIALIZED_NAME_SIZE_ERROR_SYMBOL_HEIGHT = "SizeErrorSymbolHeight"; @SerializedName(SERIALIZED_NAME_SIZE_ERROR_SYMBOL_HEIGHT) @javax.annotation.Nonnull - private Integer sizeErrorSymbolHeight; + private BigDecimal sizeErrorSymbolHeight; public static final String SERIALIZED_NAME_SIZE_ERROR_SYMBOL_WIDTH = "SizeErrorSymbolWidth"; @SerializedName(SERIALIZED_NAME_SIZE_ERROR_SYMBOL_WIDTH) @javax.annotation.Nonnull - private Integer sizeErrorSymbolWidth; + private BigDecimal sizeErrorSymbolWidth; public static final String SERIALIZED_NAME_SYMBOL_BOUNDS = "SymbolBounds"; @@ -333,7 +334,7 @@ public void setSYMBOLSIZE(@javax.annotation.Nonnull Integer SYMBOL_SIZE) { } public SymbolEstimationItem sizeErrorAlignWithNext( - @javax.annotation.Nonnull Integer sizeErrorAlignWithNext) { + @javax.annotation.Nonnull BigDecimal sizeErrorAlignWithNext) { this.sizeErrorAlignWithNext = sizeErrorAlignWithNext; return this; } @@ -344,16 +345,17 @@ public SymbolEstimationItem sizeErrorAlignWithNext( * @return sizeErrorAlignWithNext */ @javax.annotation.Nonnull - public Integer getSizeErrorAlignWithNext() { + public BigDecimal getSizeErrorAlignWithNext() { return sizeErrorAlignWithNext; } - public void setSizeErrorAlignWithNext(@javax.annotation.Nonnull Integer sizeErrorAlignWithNext) { + public void setSizeErrorAlignWithNext( + @javax.annotation.Nonnull BigDecimal sizeErrorAlignWithNext) { this.sizeErrorAlignWithNext = sizeErrorAlignWithNext; } public SymbolEstimationItem sizeErrorAlignWithPrev( - @javax.annotation.Nonnull Integer sizeErrorAlignWithPrev) { + @javax.annotation.Nonnull BigDecimal sizeErrorAlignWithPrev) { this.sizeErrorAlignWithPrev = sizeErrorAlignWithPrev; return this; } @@ -364,16 +366,17 @@ public SymbolEstimationItem sizeErrorAlignWithPrev( * @return sizeErrorAlignWithPrev */ @javax.annotation.Nonnull - public Integer getSizeErrorAlignWithPrev() { + public BigDecimal getSizeErrorAlignWithPrev() { return sizeErrorAlignWithPrev; } - public void setSizeErrorAlignWithPrev(@javax.annotation.Nonnull Integer sizeErrorAlignWithPrev) { + public void setSizeErrorAlignWithPrev( + @javax.annotation.Nonnull BigDecimal sizeErrorAlignWithPrev) { this.sizeErrorAlignWithPrev = sizeErrorAlignWithPrev; } public SymbolEstimationItem sizeErrorIntervWithNext( - @javax.annotation.Nonnull Integer sizeErrorIntervWithNext) { + @javax.annotation.Nonnull BigDecimal sizeErrorIntervWithNext) { this.sizeErrorIntervWithNext = sizeErrorIntervWithNext; return this; } @@ -384,17 +387,17 @@ public SymbolEstimationItem sizeErrorIntervWithNext( * @return sizeErrorIntervWithNext */ @javax.annotation.Nonnull - public Integer getSizeErrorIntervWithNext() { + public BigDecimal getSizeErrorIntervWithNext() { return sizeErrorIntervWithNext; } public void setSizeErrorIntervWithNext( - @javax.annotation.Nonnull Integer sizeErrorIntervWithNext) { + @javax.annotation.Nonnull BigDecimal sizeErrorIntervWithNext) { this.sizeErrorIntervWithNext = sizeErrorIntervWithNext; } public SymbolEstimationItem sizeErrorIntervWithPrev( - @javax.annotation.Nonnull Integer sizeErrorIntervWithPrev) { + @javax.annotation.Nonnull BigDecimal sizeErrorIntervWithPrev) { this.sizeErrorIntervWithPrev = sizeErrorIntervWithPrev; return this; } @@ -405,17 +408,17 @@ public SymbolEstimationItem sizeErrorIntervWithPrev( * @return sizeErrorIntervWithPrev */ @javax.annotation.Nonnull - public Integer getSizeErrorIntervWithPrev() { + public BigDecimal getSizeErrorIntervWithPrev() { return sizeErrorIntervWithPrev; } public void setSizeErrorIntervWithPrev( - @javax.annotation.Nonnull Integer sizeErrorIntervWithPrev) { + @javax.annotation.Nonnull BigDecimal sizeErrorIntervWithPrev) { this.sizeErrorIntervWithPrev = sizeErrorIntervWithPrev; } public SymbolEstimationItem sizeErrorSymbolHeight( - @javax.annotation.Nonnull Integer sizeErrorSymbolHeight) { + @javax.annotation.Nonnull BigDecimal sizeErrorSymbolHeight) { this.sizeErrorSymbolHeight = sizeErrorSymbolHeight; return this; } @@ -426,16 +429,16 @@ public SymbolEstimationItem sizeErrorSymbolHeight( * @return sizeErrorSymbolHeight */ @javax.annotation.Nonnull - public Integer getSizeErrorSymbolHeight() { + public BigDecimal getSizeErrorSymbolHeight() { return sizeErrorSymbolHeight; } - public void setSizeErrorSymbolHeight(@javax.annotation.Nonnull Integer sizeErrorSymbolHeight) { + public void setSizeErrorSymbolHeight(@javax.annotation.Nonnull BigDecimal sizeErrorSymbolHeight) { this.sizeErrorSymbolHeight = sizeErrorSymbolHeight; } public SymbolEstimationItem sizeErrorSymbolWidth( - @javax.annotation.Nonnull Integer sizeErrorSymbolWidth) { + @javax.annotation.Nonnull BigDecimal sizeErrorSymbolWidth) { this.sizeErrorSymbolWidth = sizeErrorSymbolWidth; return this; } @@ -446,11 +449,11 @@ public SymbolEstimationItem sizeErrorSymbolWidth( * @return sizeErrorSymbolWidth */ @javax.annotation.Nonnull - public Integer getSizeErrorSymbolWidth() { + public BigDecimal getSizeErrorSymbolWidth() { return sizeErrorSymbolWidth; } - public void setSizeErrorSymbolWidth(@javax.annotation.Nonnull Integer sizeErrorSymbolWidth) { + public void setSizeErrorSymbolWidth(@javax.annotation.Nonnull BigDecimal sizeErrorSymbolWidth) { this.sizeErrorSymbolWidth = sizeErrorSymbolWidth; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponseItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponseItem.java new file mode 100644 index 00000000..ec0ff6c9 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponseItem.java @@ -0,0 +1,205 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** TransactionProcessResponseItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class TransactionProcessResponseItem { + public static final String SERIALIZED_NAME_CORE_LIB_RESULT_CODE = "CoreLibResultCode"; + + @SerializedName(SERIALIZED_NAME_CORE_LIB_RESULT_CODE) + @javax.annotation.Nonnull + private Integer coreLibResultCode; + + public TransactionProcessResponseItem() {} + + public TransactionProcessResponseItem coreLibResultCode( + @javax.annotation.Nonnull Integer coreLibResultCode) { + this.coreLibResultCode = coreLibResultCode; + return this; + } + + /** + * Get coreLibResultCode + * + * @return coreLibResultCode + */ + @javax.annotation.Nonnull + public Integer getCoreLibResultCode() { + return coreLibResultCode; + } + + public void setCoreLibResultCode(@javax.annotation.Nonnull Integer coreLibResultCode) { + this.coreLibResultCode = coreLibResultCode; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + TransactionProcessResponseItem transactionProcessResponseItem = + (TransactionProcessResponseItem) o; + return Objects.equals(this.coreLibResultCode, transactionProcessResponseItem.coreLibResultCode); + } + + @Override + public int hashCode() { + return Objects.hash(coreLibResultCode); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class TransactionProcessResponseItem {\n"); + sb.append(" coreLibResultCode: ").append(toIndentedString(coreLibResultCode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("CoreLibResultCode"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("CoreLibResultCode"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to + * TransactionProcessResponseItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!TransactionProcessResponseItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in TransactionProcessResponseItem is not found in the empty JSON string", + TransactionProcessResponseItem.openapiRequiredFields.toString())); + } + } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!TransactionProcessResponseItem.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `TransactionProcessResponseItem` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : TransactionProcessResponseItem.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!TransactionProcessResponseItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'TransactionProcessResponseItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(TransactionProcessResponseItem.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, TransactionProcessResponseItem value) + throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public TransactionProcessResponseItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + + /** + * Create an instance of TransactionProcessResponseItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of TransactionProcessResponseItem + * @throws IOException if the JSON string is invalid with respect to + * TransactionProcessResponseItem + */ + public static TransactionProcessResponseItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, TransactionProcessResponseItem.class); + } + + /** + * Convert an instance of TransactionProcessResponseItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/VisualExtendedFieldItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/VisualExtendedFieldItem.java new file mode 100644 index 00000000..0c57dcc9 --- /dev/null +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/VisualExtendedFieldItem.java @@ -0,0 +1,548 @@ +/* + * Regula Document Reader Web API + * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core + * + * The version of the OpenAPI document: 7.4.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package com.regula.documentreader.webclient.model; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.annotations.SerializedName; +import com.regula.documentreader.webclient.JSON; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; + +/** VisualExtendedFieldItem */ +@javax.annotation.Generated( + value = "org.openapitools.codegen.languages.JavaClientCodegen", + comments = "Generator version: 7.12.0") +public class VisualExtendedFieldItem { + public static final String SERIALIZED_NAME_FIELD_TYPE = "FieldType"; + + @SerializedName(SERIALIZED_NAME_FIELD_TYPE) + @javax.annotation.Nonnull + private Integer fieldType; + + public static final String SERIALIZED_NAME_W_FIELD_TYPE = "wFieldType"; + + @SerializedName(SERIALIZED_NAME_W_FIELD_TYPE) + @javax.annotation.Nonnull + private TextFieldType wFieldType; + + public static final String SERIALIZED_NAME_FIELD_NAME = "FieldName"; + + @SerializedName(SERIALIZED_NAME_FIELD_NAME) + @javax.annotation.Nonnull + private String fieldName; + + public static final String SERIALIZED_NAME_STRINGS_COUNT = "StringsCount"; + + @SerializedName(SERIALIZED_NAME_STRINGS_COUNT) + @javax.annotation.Nonnull + private BigDecimal stringsCount; + + public static final String SERIALIZED_NAME_STRINGS_RESULT = "StringsResult"; + + @SerializedName(SERIALIZED_NAME_STRINGS_RESULT) + @javax.annotation.Nonnull + private List stringsResult; + + public static final String SERIALIZED_NAME_BUF_LENGTH = "Buf_Length"; + + @SerializedName(SERIALIZED_NAME_BUF_LENGTH) + @javax.annotation.Nonnull + private BigDecimal bufLength; + + public static final String SERIALIZED_NAME_BUF_TEXT = "Buf_Text"; + + @SerializedName(SERIALIZED_NAME_BUF_TEXT) + @javax.annotation.Nonnull + private String bufText; + + public static final String SERIALIZED_NAME_FIELD_MASK = "FieldMask"; + + @SerializedName(SERIALIZED_NAME_FIELD_MASK) + @javax.annotation.Nullable + private String fieldMask; + + public static final String SERIALIZED_NAME_VALIDITY = "Validity"; + + @SerializedName(SERIALIZED_NAME_VALIDITY) + @javax.annotation.Nullable + private Integer validity; + + public static final String SERIALIZED_NAME_IN_COMPARISON = "InComparison"; + + @SerializedName(SERIALIZED_NAME_IN_COMPARISON) + @javax.annotation.Nullable + private Integer inComparison; + + public static final String SERIALIZED_NAME_W_L_C_I_D = "wLCID"; + + @SerializedName(SERIALIZED_NAME_W_L_C_I_D) + @javax.annotation.Nullable + private Integer wLCID; + + public static final String SERIALIZED_NAME_RESERVED2 = "Reserved2"; + + @SerializedName(SERIALIZED_NAME_RESERVED2) + @javax.annotation.Nullable + private Integer reserved2; + + public static final String SERIALIZED_NAME_RESERVED3 = "Reserved3"; + + @SerializedName(SERIALIZED_NAME_RESERVED3) + @javax.annotation.Nullable + private Integer reserved3; + + public VisualExtendedFieldItem() {} + + public VisualExtendedFieldItem fieldType(@javax.annotation.Nonnull Integer fieldType) { + this.fieldType = fieldType; + return this; + } + + /** + * Get fieldType + * + * @return fieldType + */ + @javax.annotation.Nonnull + public Integer getFieldType() { + return fieldType; + } + + public void setFieldType(@javax.annotation.Nonnull Integer fieldType) { + this.fieldType = fieldType; + } + + public VisualExtendedFieldItem wFieldType(@javax.annotation.Nonnull TextFieldType wFieldType) { + this.wFieldType = wFieldType; + return this; + } + + /** + * Get wFieldType + * + * @return wFieldType + */ + @javax.annotation.Nonnull + public TextFieldType getwFieldType() { + return wFieldType; + } + + public void setwFieldType(@javax.annotation.Nonnull TextFieldType wFieldType) { + this.wFieldType = wFieldType; + } + + public VisualExtendedFieldItem fieldName(@javax.annotation.Nonnull String fieldName) { + this.fieldName = fieldName; + return this; + } + + /** + * Field symbolic name (null-terminated string) + * + * @return fieldName + */ + @javax.annotation.Nonnull + public String getFieldName() { + return fieldName; + } + + public void setFieldName(@javax.annotation.Nonnull String fieldName) { + this.fieldName = fieldName; + } + + public VisualExtendedFieldItem stringsCount(@javax.annotation.Nonnull BigDecimal stringsCount) { + this.stringsCount = stringsCount; + return this; + } + + /** + * Number of StringsResult array elements + * + * @return stringsCount + */ + @javax.annotation.Nonnull + public BigDecimal getStringsCount() { + return stringsCount; + } + + public void setStringsCount(@javax.annotation.Nonnull BigDecimal stringsCount) { + this.stringsCount = stringsCount; + } + + public VisualExtendedFieldItem stringsResult( + @javax.annotation.Nonnull List stringsResult) { + this.stringsResult = stringsResult; + return this; + } + + public VisualExtendedFieldItem addStringsResultItem(StringRecognitionResult stringsResultItem) { + if (this.stringsResult == null) { + this.stringsResult = new ArrayList<>(); + } + this.stringsResult.add(stringsResultItem); + return this; + } + + /** + * Array of recognizing probabilities for a each line of text field. Only for Result.VISUAL_TEXT + * and Result.MRZ_TEXT results. + * + * @return stringsResult + */ + @javax.annotation.Nonnull + public List getStringsResult() { + return stringsResult; + } + + public void setStringsResult( + @javax.annotation.Nonnull List stringsResult) { + this.stringsResult = stringsResult; + } + + public VisualExtendedFieldItem bufLength(@javax.annotation.Nonnull BigDecimal bufLength) { + this.bufLength = bufLength; + return this; + } + + /** + * Buf_Text text string length + * + * @return bufLength + */ + @javax.annotation.Nonnull + public BigDecimal getBufLength() { + return bufLength; + } + + public void setBufLength(@javax.annotation.Nonnull BigDecimal bufLength) { + this.bufLength = bufLength; + } + + public VisualExtendedFieldItem bufText(@javax.annotation.Nonnull String bufText) { + this.bufText = bufText; + return this; + } + + /** + * Text field data in UTF8 format. Results of reading different lines of a multi-line field are + * separated by '^' + * + * @return bufText + */ + @javax.annotation.Nonnull + public String getBufText() { + return bufText; + } + + public void setBufText(@javax.annotation.Nonnull String bufText) { + this.bufText = bufText; + } + + public VisualExtendedFieldItem fieldMask(@javax.annotation.Nullable String fieldMask) { + this.fieldMask = fieldMask; + return this; + } + + /** + * Get fieldMask + * + * @return fieldMask + */ + @javax.annotation.Nullable + public String getFieldMask() { + return fieldMask; + } + + public void setFieldMask(@javax.annotation.Nullable String fieldMask) { + this.fieldMask = fieldMask; + } + + public VisualExtendedFieldItem validity(@javax.annotation.Nullable Integer validity) { + this.validity = validity; + return this; + } + + /** + * Get validity + * + * @return validity + */ + @javax.annotation.Nullable + public Integer getValidity() { + return validity; + } + + public void setValidity(@javax.annotation.Nullable Integer validity) { + this.validity = validity; + } + + public VisualExtendedFieldItem inComparison(@javax.annotation.Nullable Integer inComparison) { + this.inComparison = inComparison; + return this; + } + + /** + * Get inComparison + * + * @return inComparison + */ + @javax.annotation.Nullable + public Integer getInComparison() { + return inComparison; + } + + public void setInComparison(@javax.annotation.Nullable Integer inComparison) { + this.inComparison = inComparison; + } + + public VisualExtendedFieldItem wLCID(@javax.annotation.Nullable Integer wLCID) { + this.wLCID = wLCID; + return this; + } + + /** + * Get wLCID + * + * @return wLCID + */ + @javax.annotation.Nullable + public Integer getwLCID() { + return wLCID; + } + + public void setwLCID(@javax.annotation.Nullable Integer wLCID) { + this.wLCID = wLCID; + } + + public VisualExtendedFieldItem reserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; + return this; + } + + /** + * Get reserved2 + * + * @return reserved2 + */ + @javax.annotation.Nullable + public Integer getReserved2() { + return reserved2; + } + + public void setReserved2(@javax.annotation.Nullable Integer reserved2) { + this.reserved2 = reserved2; + } + + public VisualExtendedFieldItem reserved3(@javax.annotation.Nullable Integer reserved3) { + this.reserved3 = reserved3; + return this; + } + + /** + * Get reserved3 + * + * @return reserved3 + */ + @javax.annotation.Nullable + public Integer getReserved3() { + return reserved3; + } + + public void setReserved3(@javax.annotation.Nullable Integer reserved3) { + this.reserved3 = reserved3; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + VisualExtendedFieldItem visualExtendedFieldItem = (VisualExtendedFieldItem) o; + return Objects.equals(this.fieldType, visualExtendedFieldItem.fieldType) + && Objects.equals(this.wFieldType, visualExtendedFieldItem.wFieldType) + && Objects.equals(this.fieldName, visualExtendedFieldItem.fieldName) + && Objects.equals(this.stringsCount, visualExtendedFieldItem.stringsCount) + && Objects.equals(this.stringsResult, visualExtendedFieldItem.stringsResult) + && Objects.equals(this.bufLength, visualExtendedFieldItem.bufLength) + && Objects.equals(this.bufText, visualExtendedFieldItem.bufText) + && Objects.equals(this.fieldMask, visualExtendedFieldItem.fieldMask) + && Objects.equals(this.validity, visualExtendedFieldItem.validity) + && Objects.equals(this.inComparison, visualExtendedFieldItem.inComparison) + && Objects.equals(this.wLCID, visualExtendedFieldItem.wLCID) + && Objects.equals(this.reserved2, visualExtendedFieldItem.reserved2) + && Objects.equals(this.reserved3, visualExtendedFieldItem.reserved3); + } + + @Override + public int hashCode() { + return Objects.hash( + fieldType, + wFieldType, + fieldName, + stringsCount, + stringsResult, + bufLength, + bufText, + fieldMask, + validity, + inComparison, + wLCID, + reserved2, + reserved3); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class VisualExtendedFieldItem {\n"); + sb.append(" fieldType: ").append(toIndentedString(fieldType)).append("\n"); + sb.append(" wFieldType: ").append(toIndentedString(wFieldType)).append("\n"); + sb.append(" fieldName: ").append(toIndentedString(fieldName)).append("\n"); + sb.append(" stringsCount: ").append(toIndentedString(stringsCount)).append("\n"); + sb.append(" stringsResult: ").append(toIndentedString(stringsResult)).append("\n"); + sb.append(" bufLength: ").append(toIndentedString(bufLength)).append("\n"); + sb.append(" bufText: ").append(toIndentedString(bufText)).append("\n"); + sb.append(" fieldMask: ").append(toIndentedString(fieldMask)).append("\n"); + sb.append(" validity: ").append(toIndentedString(validity)).append("\n"); + sb.append(" inComparison: ").append(toIndentedString(inComparison)).append("\n"); + sb.append(" wLCID: ").append(toIndentedString(wLCID)).append("\n"); + sb.append(" reserved2: ").append(toIndentedString(reserved2)).append("\n"); + sb.append(" reserved3: ").append(toIndentedString(reserved3)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(); + openapiFields.add("FieldType"); + openapiFields.add("wFieldType"); + openapiFields.add("FieldName"); + openapiFields.add("StringsCount"); + openapiFields.add("StringsResult"); + openapiFields.add("Buf_Length"); + openapiFields.add("Buf_Text"); + openapiFields.add("FieldMask"); + openapiFields.add("Validity"); + openapiFields.add("InComparison"); + openapiFields.add("wLCID"); + openapiFields.add("Reserved2"); + openapiFields.add("Reserved3"); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(); + openapiRequiredFields.add("FieldType"); + openapiRequiredFields.add("wFieldType"); + openapiRequiredFields.add("FieldName"); + openapiRequiredFields.add("StringsCount"); + openapiRequiredFields.add("StringsResult"); + openapiRequiredFields.add("Buf_Length"); + openapiRequiredFields.add("Buf_Text"); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to VisualExtendedFieldItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!VisualExtendedFieldItem.openapiRequiredFields + .isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException( + String.format( + "The required field(s) %s in VisualExtendedFieldItem is not found in the empty JSON string", + VisualExtendedFieldItem.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `wFieldType` + TextFieldType.validateJsonElement(jsonObj.get("wFieldType")); + if (!jsonObj.get("FieldName").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `FieldName` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("FieldName").toString())); + } + // ensure the json data is an array + if (!jsonObj.get("StringsResult").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `StringsResult` to be an array in the JSON string but got `%s`", + jsonObj.get("StringsResult").toString())); + } + + JsonArray jsonArraystringsResult = jsonObj.getAsJsonArray("StringsResult"); + // validate the required field `StringsResult` (array) + for (int i = 0; i < jsonArraystringsResult.size(); i++) { + StringRecognitionResult.validateJsonElement(jsonArraystringsResult.get(i)); + } + ; + if (!jsonObj.get("Buf_Text").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `Buf_Text` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("Buf_Text").toString())); + } + if ((jsonObj.get("FieldMask") != null && !jsonObj.get("FieldMask").isJsonNull()) + && !jsonObj.get("FieldMask").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `FieldMask` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("FieldMask").toString())); + } + } + + /** + * Create an instance of VisualExtendedFieldItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of VisualExtendedFieldItem + * @throws IOException if the JSON string is invalid with respect to VisualExtendedFieldItem + */ + public static VisualExtendedFieldItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, VisualExtendedFieldItem.class); + } + + /** + * Convert an instance of VisualExtendedFieldItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} From c726104c979ceb7e9a4c70b68f4e1a64b03c5e98 Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Mon, 17 Mar 2025 15:17:40 +0300 Subject: [PATCH 08/19] Update generator ignore --- client/.openapi-generator-ignore | 4 +--- client/.openapi-generator/FILES | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/client/.openapi-generator-ignore b/client/.openapi-generator-ignore index 49681155..1f9e7273 100755 --- a/client/.openapi-generator-ignore +++ b/client/.openapi-generator-ignore @@ -12,7 +12,5 @@ pom.xml gradle/** api/** src/test/** - +.github/** src/main/AndroidManifest.xml - -# classes, modified after generation diff --git a/client/.openapi-generator/FILES b/client/.openapi-generator/FILES index c9908823..a4dffa8c 100755 --- a/client/.openapi-generator/FILES +++ b/client/.openapi-generator/FILES @@ -1,4 +1,3 @@ -.github/workflows/maven.yml src/main/generated/com/regula/documentreader/webclient/ApiCallback.java src/main/generated/com/regula/documentreader/webclient/ApiClient.java src/main/generated/com/regula/documentreader/webclient/ApiException.java From a79849dd4a739be8828a475adb0558bfa8a66ea0 Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Mon, 17 Mar 2025 16:42:06 +0300 Subject: [PATCH 09/19] Add headers --- client/generator-templates/api.mustache | 612 ++++++++++++++++++ .../webclient/api/HealthcheckApi.java | 83 ++- .../webclient/api/ProcessApi.java | 33 +- .../webclient/api/TransactionApi.java | 185 ++++-- .../webclient/api/DocumentReaderApi.java | 13 +- 5 files changed, 826 insertions(+), 100 deletions(-) create mode 100644 client/generator-templates/api.mustache diff --git a/client/generator-templates/api.mustache b/client/generator-templates/api.mustache new file mode 100644 index 00000000..32ef0564 --- /dev/null +++ b/client/generator-templates/api.mustache @@ -0,0 +1,612 @@ +{{>licenseInfo}} + +package {{package}}; + +import {{invokerPackage}}.ApiCallback; +import {{invokerPackage}}.ApiClient; +import {{invokerPackage}}.ApiException; +{{#dynamicOperations}} + import {{invokerPackage}}.ApiOperation; +{{/dynamicOperations}} +import {{invokerPackage}}.ApiResponse; +import {{invokerPackage}}.Configuration; +import {{invokerPackage}}.Pair; +import {{invokerPackage}}.ProgressRequestBody; +import {{invokerPackage}}.ProgressResponseBody; +{{#performBeanValidation}} + import {{invokerPackage}}.BeanValidationException; +{{/performBeanValidation}} + +import com.google.gson.reflect.TypeToken; +{{#dynamicOperations}} + import io.swagger.v3.oas.models.Operation; + import io.swagger.v3.oas.models.parameters.Parameter; +{{/dynamicOperations}} + +import java.io.IOException; + +{{#useBeanValidation}} + import {{javaxPackage}}.validation.constraints.*; + import {{javaxPackage}}.validation.Valid; +{{/useBeanValidation}} +{{#performBeanValidation}} + import {{javaxPackage}}.validation.ConstraintViolation; + import {{javaxPackage}}.validation.Validation; + import {{javaxPackage}}.validation.ValidatorFactory; + import {{javaxPackage}}.validation.executable.ExecutableValidator; + import java.util.Set; + import java.lang.reflect.Method; + import java.lang.reflect.Type; +{{/performBeanValidation}} + +{{#imports}}import {{import}}; +{{/imports}} + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +{{#supportStreaming}} + import java.io.InputStream; +{{/supportStreaming}} + +{{#operations}} + public class {{classname}} { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public {{classname}}() { + this(Configuration.getDefaultApiClient()); + } + + public {{classname}}(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public ApiClient getApiClient() { + return localVarApiClient; + } + + public void setApiClient(ApiClient apiClient) { + this.localVarApiClient = apiClient; + } + + public int getHostIndex() { + return localHostIndex; + } + + public void setHostIndex(int hostIndex) { + this.localHostIndex = hostIndex; + } + + public String getCustomBaseUrl() { + return localCustomBaseUrl; + } + + public void setCustomBaseUrl(String customBaseUrl) { + this.localCustomBaseUrl = customBaseUrl; + } + + {{#operation}} + {{^vendorExtensions.x-group-parameters}}/** + * Build call for {{operationId}}{{#allParams}} + * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}}{{/allParams}} + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + {{#responses.0}} + * @http.response.details + + + + {{#responses}} + + {{/responses}} +
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
+ {{/responses.0}} + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + {{#externalDocs}} + * {{description}} + * @see {{summary}} Documentation + {{/externalDocs}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + public{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}private{{/vendorExtensions.x-group-parameters}} okhttp3.Call {{operationId}}Call({{#allParams}}{{{dataType}}} {{paramName}}, {{/allParams}}HashMap headers, final ApiCallback _callback) throws ApiException { + String basePath = null; + // Operation Servers + String[] localBasePaths = new String[] { {{#servers}}"{{{url}}}"{{^-last}}, {{/-last}}{{/servers}} }; + + // Determine Base Path to Use + if (localCustomBaseUrl != null){ + basePath = localCustomBaseUrl; + } else if ( localBasePaths.length > 0 ) { + basePath = localBasePaths[localHostIndex]; + } else { + basePath = null; + } + + Object localVarPostBody = {{#bodyParam}}{{paramName}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}}; + + // create path and map variables + {{^dynamicOperations}} + String localVarPath = "{{{path}}}"{{#pathParams}} + .replace("{" + "{{baseName}}" + "}", localVarApiClient.escapeString({{#collectionFormat}}localVarApiClient.collectionPathParameterToString("{{{collectionFormat}}}", {{{paramName}}}){{/collectionFormat}}{{^collectionFormat}}{{{paramName}}}.toString(){{/collectionFormat}})){{/pathParams}}; + {{/dynamicOperations}} + {{#dynamicOperations}} + ApiOperation apiOperation = localVarApiClient.getOperationLookupMap().get("{{{operationId}}}"); + if (apiOperation == null) { + throw new ApiException("Operation not found in OAS"); + } + Operation operation = apiOperation.getOperation(); + String localVarPath = apiOperation.getPath(); + Map paramMap = new HashMap<>(); + {{#allParams}} + {{^isFormParam}} + {{^isBodyParam}} + paramMap.put("{{baseName}}", {{paramName}}); + {{/isBodyParam}} + {{/isFormParam}} + {{/allParams}} + {{/dynamicOperations}} + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + {{#formParams}} + if ({{paramName}} != null) { + localVarFormParams.put("{{baseName}}", {{paramName}}); + } + + {{/formParams}} + {{^dynamicOperations}} + {{#queryParams}} + if ({{paramName}} != null) { + {{#isFreeFormObject}}localVarQueryParams.addAll(localVarApiClient.freeFormParameterToPairs({{paramName}}));{{/isFreeFormObject}}{{^isFreeFormObject}}{{#collectionFormat}}localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("{{{.}}}", {{/collectionFormat}}{{^collectionFormat}}localVarQueryParams.addAll(localVarApiClient.parameterToPair({{/collectionFormat}}"{{baseName}}", {{paramName}}));{{/isFreeFormObject}} + } + + {{/queryParams}} + {{#constantParams}} + {{#isQueryParam}} + // Set client side default value of Query Param "{{baseName}}". + localVarCollectionQueryParams.add(new Pair("{{baseName}}", {{#_enum}}"{{{.}}}"{{/_enum}})); + + {{/isQueryParam}} + {{/constantParams}} + {{#constantParams}} + {{#isHeaderParam}} + // Set client side default value of Header Param "{{baseName}}". + localVarHeaderParams.put("{{baseName}}", {{#_enum}}"{{{.}}}"{{/_enum}}); + + {{/isHeaderParam}} + {{/constantParams}} + {{#cookieParams}} + if ({{paramName}} != null) { + localVarCookieParams.put("{{baseName}}", localVarApiClient.parameterToString({{paramName}})); + } + + {{/cookieParams}} + {{#constantParams}} + {{#isCookieParam}} + // Set client side default value of Cookie Param "{{baseName}}". + localVarCookieParams.put("{{baseName}}", {{#_enum}}"{{{.}}}"{{/_enum}}); + + {{/isCookieParam}} + {{/constantParams}} + {{/dynamicOperations}} + {{#dynamicOperations}} + localVarPath = localVarApiClient.fillParametersFromOperation(operation, paramMap, localVarPath, localVarQueryParams, localVarCollectionQueryParams, localVarHeaderParams, localVarCookieParams); + + {{/dynamicOperations}} + final String[] localVarAccepts = { + {{#produces}} + "{{{mediaType}}}"{{^-last}},{{/-last}} + {{/produces}} + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + {{#consumes}} + "{{{mediaType}}}"{{^-last}},{{/-last}} + {{/consumes}} + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + {{^dynamicOperations}} + {{#headerParams}} + + if ({{paramName}} != null) { + localVarHeaderParams.put("{{baseName}}", localVarApiClient.parameterToString({{paramName}})); + } + + {{/headerParams}} + {{/dynamicOperations}} + if(headers != null){ + for(String key : headers.keySet()){ + localVarHeaderParams.put(key, headers.get(key)); + } + } + String[] localVarAuthNames = new String[] { {{#withAWSV4Signature}}"AWS4Auth"{{/withAWSV4Signature}}{{#authMethods}}{{#-first}}{{#withAWSV4Signature}}, {{/withAWSV4Signature}}{{/-first}}"{{name}}"{{^-last}}, {{/-last}}{{/authMethods}} }; + return localVarApiClient.buildCall(basePath, localVarPath, {{^dynamicOperations}}"{{httpMethod}}"{{/dynamicOperations}}{{#dynamicOperations}}apiOperation.getMethod(){{/dynamicOperations}}, localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + @SuppressWarnings("rawtypes") + private okhttp3.Call {{operationId}}ValidateBeforeCall({{#allParams}}{{{dataType}}} {{paramName}}, {{/allParams}}HashMap headers, final ApiCallback _callback) throws ApiException { + {{^performBeanValidation}} + {{#allParams}} + {{#required}} + // verify the required parameter '{{paramName}}' is set + if ({{paramName}} == null) { + throw new ApiException("Missing the required parameter '{{paramName}}' when calling {{operationId}}(Async)"); + } + + {{/required}} + {{/allParams}} + return {{operationId}}Call({{#allParams}}{{paramName}}, {{/allParams}}headers, _callback); + + {{/performBeanValidation}} + {{#performBeanValidation}} + try { + ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); + ExecutableValidator executableValidator = factory.getValidator().forExecutables(); + + Object[] parameterValues = { {{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}} }; + Method method = this.getClass().getMethod("{{operationId}}WithHttpInfo"{{#allParams}}, {{#isArray}}java.util.List{{/isArray}}{{#isMap}}java.util.Map{{/isMap}}{{^isArray}}{{^isMap}}{{{dataType}}}{{/isMap}}{{/isArray}}.class{{/allParams}}); + Set> violations = executableValidator.validateParameters(this, method, + parameterValues); + + if (violations.size() == 0) { + return {{operationId}}Call({{#allParams}}{{paramName}}, {{/allParams}}_callback); + } else { + throw new BeanValidationException((Set) violations); + } + } catch (NoSuchMethodException e) { + e.printStackTrace(); + throw new ApiException(e.getMessage()); + } catch (SecurityException e) { + e.printStackTrace(); + throw new ApiException(e.getMessage()); + } + {{/performBeanValidation}} + } + + {{^vendorExtensions.x-group-parameters}} + /** + * {{summary}} + * {{notes}}{{#allParams}} + * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}}{{/allParams}}{{#returnType}} + * @return {{.}}{{/returnType}} + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + {{#responses.0}} + * @http.response.details + + + + {{#responses}} + + {{/responses}} +
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
+ {{/responses.0}} + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + {{#externalDocs}} + * {{description}} + * @see {{summary}} Documentation + {{/externalDocs}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + {{#vendorExtensions.x-streaming}} + public {{#returnType}}InputStream {{/returnType}}{{^returnType}}void {{/returnType}}{{operationId}}({{#allParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException { + {{#returnType}}InputStream localVarResp = {{/returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}});{{#returnType}} + return localVarResp;{{/returnType}} + } + {{/vendorExtensions.x-streaming}} + {{^vendorExtensions.x-streaming}} + public {{#returnType}}{{{.}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{operationId}}({{#allParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}, HashMap headers) throws ApiException { + {{#returnType}}ApiResponse<{{{.}}}> localVarResp = {{/returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}, headers);{{#returnType}} + return localVarResp.getData();{{/returnType}} + } + {{/vendorExtensions.x-streaming}} + {{/vendorExtensions.x-group-parameters}} + + {{^vendorExtensions.x-group-parameters}}/** + * {{summary}} + * {{notes}}{{#allParams}} + * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}}{{/allParams}} + * @return ApiResponse<{{returnType}}{{^returnType}}Void{{/returnType}}> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + {{#responses.0}} + * @http.response.details + + + + {{#responses}} + + {{/responses}} +
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
+ {{/responses.0}} + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + {{#externalDocs}} + * {{description}} + * @see {{summary}} Documentation + {{/externalDocs}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + public{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}private{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-streaming}} InputStream {{operationId}}WithHttpInfo({{#allParams}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException { + okhttp3.Call localVarCall = {{operationId}}ValidateBeforeCall({{#allParams}}{{paramName}}, {{/allParams}}null); + {{#returnType}} + {{#errorObjectType}} + try { + Type localVarReturnType = new TypeToken<{{{returnType}}}>(){}.getType(); + return localVarApiClient.executeStream(localVarCall, localVarReturnType); + } catch (ApiException e) { + e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<{{{errorObjectType}}}>(){}.getType())); + throw e; + } + {{/errorObjectType}} + {{^errorObjectType}} + Type localVarReturnType = new TypeToken<{{{returnType}}}>(){}.getType(); + return localVarApiClient.executeStream(localVarCall, localVarReturnType); + {{/errorObjectType}} + {{/returnType}} + } + {{/vendorExtensions.x-streaming}}{{^vendorExtensions.x-streaming}} ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{operationId}}WithHttpInfo({{#allParams}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}, HashMap headers) throws ApiException { + okhttp3.Call localVarCall = {{operationId}}ValidateBeforeCall({{#allParams}}{{paramName}}, {{/allParams}}headers, null); + {{^returnType}} + return localVarApiClient.execute(localVarCall); + {{/returnType}} + {{#returnType}} + {{#errorObjectType}} + try { + Type localVarReturnType = new TypeToken<{{{returnType}}}>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } catch (ApiException e) { + e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<{{{errorObjectType}}}>(){}.getType())); + throw e; + } + {{/errorObjectType}} + {{^errorObjectType}} + Type localVarReturnType = new TypeToken<{{{returnType}}}>(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + {{/errorObjectType}} + {{/returnType}} + } + {{/vendorExtensions.x-streaming}} + + {{^vendorExtensions.x-group-parameters}}/** + * {{summary}} (asynchronously) + * {{notes}}{{#allParams}} + * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}}{{/allParams}} + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + {{#responses.0}} + * @http.response.details + + + + {{#responses}} + + {{/responses}} +
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
+ {{/responses.0}} + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + {{#externalDocs}} + * {{description}} + * @see {{summary}} Documentation + {{/externalDocs}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + public{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}private{{/vendorExtensions.x-group-parameters}} okhttp3.Call {{operationId}}Async({{#allParams}}{{{dataType}}} {{paramName}}, {{/allParams}}HashMap headers, final ApiCallback<{{{returnType}}}{{^returnType}}Void{{/returnType}}> _callback) throws ApiException { + + okhttp3.Call localVarCall = {{operationId}}ValidateBeforeCall({{#allParams}}{{paramName}}, {{/allParams}}headers, _callback); + {{#returnType}}Type localVarReturnType = new TypeToken<{{{returnType}}}>(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);{{/returnType}}{{^returnType}}localVarApiClient.executeAsync(localVarCall, _callback);{{/returnType}} + return localVarCall; + } + {{#vendorExtensions.x-group-parameters}} + + public class API{{operationId}}Request { + {{#requiredParams}} + private final {{{dataType}}} {{paramName}}; + {{/requiredParams}} + {{#optionalParams}} + private {{{dataType}}} {{paramName}}; + {{/optionalParams}} + + private API{{operationId}}Request({{#requiredParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/requiredParams}}) { + {{#requiredParams}} + this.{{paramName}} = {{paramName}}; + {{/requiredParams}} + } + + {{#optionalParams}} + /** + * Set {{paramName}} + * @param {{paramName}} {{description}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}) + * @return API{{operationId}}Request + */ + public API{{operationId}}Request {{paramName}}({{{dataType}}} {{paramName}}) { + this.{{paramName}} = {{paramName}}; + return this; + } + + {{/optionalParams}} + /** + * Build call for {{operationId}} + * @param _callback ApiCallback API callback + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + {{#responses.0}} + * @http.response.details + + + + {{#responses}} + + {{/responses}} +
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
+ {{/responses.0}} + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + public okhttp3.Call buildCall(final ApiCallback _callback) throws ApiException { + return {{operationId}}Call({{#allParams}}{{paramName}}, {{/allParams}}_callback); + } + + /** + * Execute {{operationId}} request{{#returnType}} + * @return {{.}}{{/returnType}} + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + {{#responses.0}} + * @http.response.details + + + + {{#responses}} + + {{/responses}} +
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
+ {{/responses.0}} + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + {{^vendorExtensions.x-streaming}} + public {{{returnType}}}{{^returnType}}void{{/returnType}} execute() throws ApiException { + {{#returnType}}ApiResponse<{{{.}}}> localVarResp = {{/returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}});{{#returnType}} + return localVarResp.getData();{{/returnType}} + } + {{/vendorExtensions.x-streaming}} + {{#vendorExtensions.x-streaming}} + public InputStream execute() throws ApiException { + return {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); + } + {{/vendorExtensions.x-streaming}} + + /** + * Execute {{operationId}} request with HTTP info returned + * @return ApiResponse<{{returnType}}{{^returnType}}Void{{/returnType}}> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + {{#responses.0}} + * @http.response.details + + + + {{#responses}} + + {{/responses}} +
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
+ {{/responses.0}} + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + {{^vendorExtensions.x-streaming}} + public ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}> executeWithHttpInfo() throws ApiException { + return {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); + } + {{/vendorExtensions.x-streaming}} + {{#vendorExtensions.x-streaming}} + public InputStream executeWithHttpInfo() throws ApiException { + return {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); + } + {{/vendorExtensions.x-streaming}} + + /** + * Execute {{operationId}} request (asynchronously) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + {{#responses.0}} + * @http.response.details + + + + {{#responses}} + + {{/responses}} +
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
+ {{/responses.0}} + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + public okhttp3.Call executeAsync(final ApiCallback<{{{returnType}}}{{^returnType}}Void{{/returnType}}> _callback) throws ApiException { + return {{operationId}}Async({{#allParams}}{{paramName}}, {{/allParams}}_callback); + } + } + + /** + * {{summary}} + * {{notes}}{{#requiredParams}} + * @param {{paramName}} {{description}} (required){{/requiredParams}} + * @return API{{operationId}}Request + {{#responses.0}} + * @http.response.details + + + + {{#responses}} + + {{/responses}} +
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
+ {{/responses.0}} + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + {{#externalDocs}} + * {{description}} + * @see {{summary}} Documentation + {{/externalDocs}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + public API{{operationId}}Request {{operationId}}({{#requiredParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/requiredParams}}) { + return new API{{operationId}}Request({{#requiredParams}}{{paramName}}{{^-last}}, {{/-last}}{{/requiredParams}}); + } + {{/vendorExtensions.x-group-parameters}} + {{/operation}} + } +{{/operations}} \ No newline at end of file diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java index 86cf41c3..cdd15601 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java @@ -78,7 +78,8 @@ public void setCustomBaseUrl(String customBaseUrl) { * 200 Device info. - * */ - public okhttp3.Call healthzCall(String xRequestID, final ApiCallback _callback) + public okhttp3.Call healthzCall( + String xRequestID, HashMap headers, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -121,6 +122,11 @@ public okhttp3.Call healthzCall(String xRequestID, final ApiCallback _callback) localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); } + if (headers != null) { + for (String key : headers.keySet()) { + localVarHeaderParams.put(key, headers.get(key)); + } + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -137,9 +143,10 @@ public okhttp3.Call healthzCall(String xRequestID, final ApiCallback _callback) } @SuppressWarnings("rawtypes") - private okhttp3.Call healthzValidateBeforeCall(String xRequestID, final ApiCallback _callback) + private okhttp3.Call healthzValidateBeforeCall( + String xRequestID, HashMap headers, final ApiCallback _callback) throws ApiException { - return healthzCall(xRequestID, _callback); + return healthzCall(xRequestID, headers, _callback); } /** @@ -156,8 +163,9 @@ private okhttp3.Call healthzValidateBeforeCall(String xRequestID, final ApiCallb * 200 Device info. - * */ - public Healthcheck healthz(String xRequestID) throws ApiException { - ApiResponse localVarResp = healthzWithHttpInfo(xRequestID); + public Healthcheck healthz(String xRequestID, HashMap headers) + throws ApiException { + ApiResponse localVarResp = healthzWithHttpInfo(xRequestID, headers); return localVarResp.getData(); } @@ -175,8 +183,9 @@ public Healthcheck healthz(String xRequestID) throws ApiException { * 200 Device info. - * */ - public ApiResponse healthzWithHttpInfo(String xRequestID) throws ApiException { - okhttp3.Call localVarCall = healthzValidateBeforeCall(xRequestID, null); + public ApiResponse healthzWithHttpInfo( + String xRequestID, HashMap headers) throws ApiException { + okhttp3.Call localVarCall = healthzValidateBeforeCall(xRequestID, headers, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -195,10 +204,11 @@ public ApiResponse healthzWithHttpInfo(String xRequestID) throws Ap * 200 Device info. - * */ - public okhttp3.Call healthzAsync(String xRequestID, final ApiCallback _callback) + public okhttp3.Call healthzAsync( + String xRequestID, HashMap headers, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = healthzValidateBeforeCall(xRequestID, _callback); + okhttp3.Call localVarCall = healthzValidateBeforeCall(xRequestID, headers, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -220,7 +230,9 @@ public okhttp3.Call healthzAsync(String xRequestID, final ApiCallback headers, final ApiCallback _callback) + throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] {}; @@ -262,6 +274,11 @@ public okhttp3.Call pingCall(String xRequestID, final ApiCallback _callback) thr localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); } + if (headers != null) { + for (String key : headers.keySet()) { + localVarHeaderParams.put(key, headers.get(key)); + } + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -279,9 +296,10 @@ public okhttp3.Call pingCall(String xRequestID, final ApiCallback _callback) thr @Deprecated @SuppressWarnings("rawtypes") - private okhttp3.Call pingValidateBeforeCall(String xRequestID, final ApiCallback _callback) + private okhttp3.Call pingValidateBeforeCall( + String xRequestID, HashMap headers, final ApiCallback _callback) throws ApiException { - return pingCall(xRequestID, _callback); + return pingCall(xRequestID, headers, _callback); } /** @@ -301,8 +319,8 @@ private okhttp3.Call pingValidateBeforeCall(String xRequestID, final ApiCallback * @deprecated */ @Deprecated - public DeviceInfo ping(String xRequestID) throws ApiException { - ApiResponse localVarResp = pingWithHttpInfo(xRequestID); + public DeviceInfo ping(String xRequestID, HashMap headers) throws ApiException { + ApiResponse localVarResp = pingWithHttpInfo(xRequestID, headers); return localVarResp.getData(); } @@ -323,8 +341,9 @@ public DeviceInfo ping(String xRequestID) throws ApiException { * @deprecated */ @Deprecated - public ApiResponse pingWithHttpInfo(String xRequestID) throws ApiException { - okhttp3.Call localVarCall = pingValidateBeforeCall(xRequestID, null); + public ApiResponse pingWithHttpInfo( + String xRequestID, HashMap headers) throws ApiException { + okhttp3.Call localVarCall = pingValidateBeforeCall(xRequestID, headers, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -346,10 +365,11 @@ public ApiResponse pingWithHttpInfo(String xRequestID) throws ApiExc * @deprecated */ @Deprecated - public okhttp3.Call pingAsync(String xRequestID, final ApiCallback _callback) + public okhttp3.Call pingAsync( + String xRequestID, HashMap headers, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = pingValidateBeforeCall(xRequestID, _callback); + okhttp3.Call localVarCall = pingValidateBeforeCall(xRequestID, headers, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -369,7 +389,8 @@ public okhttp3.Call pingAsync(String xRequestID, final ApiCallback _ * 400 The license is not valid. - * */ - public okhttp3.Call readyzCall(String xRequestID, final ApiCallback _callback) + public okhttp3.Call readyzCall( + String xRequestID, HashMap headers, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -412,6 +433,11 @@ public okhttp3.Call readyzCall(String xRequestID, final ApiCallback _callback) localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); } + if (headers != null) { + for (String key : headers.keySet()) { + localVarHeaderParams.put(key, headers.get(key)); + } + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -428,9 +454,10 @@ public okhttp3.Call readyzCall(String xRequestID, final ApiCallback _callback) } @SuppressWarnings("rawtypes") - private okhttp3.Call readyzValidateBeforeCall(String xRequestID, final ApiCallback _callback) + private okhttp3.Call readyzValidateBeforeCall( + String xRequestID, HashMap headers, final ApiCallback _callback) throws ApiException { - return readyzCall(xRequestID, _callback); + return readyzCall(xRequestID, headers, _callback); } /** @@ -447,8 +474,8 @@ private okhttp3.Call readyzValidateBeforeCall(String xRequestID, final ApiCallba * 400 The license is not valid. - * */ - public void readyz(String xRequestID) throws ApiException { - readyzWithHttpInfo(xRequestID); + public void readyz(String xRequestID, HashMap headers) throws ApiException { + readyzWithHttpInfo(xRequestID, headers); } /** @@ -466,8 +493,9 @@ public void readyz(String xRequestID) throws ApiException { * 400 The license is not valid. - * */ - public ApiResponse readyzWithHttpInfo(String xRequestID) throws ApiException { - okhttp3.Call localVarCall = readyzValidateBeforeCall(xRequestID, null); + public ApiResponse readyzWithHttpInfo(String xRequestID, HashMap headers) + throws ApiException { + okhttp3.Call localVarCall = readyzValidateBeforeCall(xRequestID, headers, null); return localVarApiClient.execute(localVarCall); } @@ -486,10 +514,11 @@ public ApiResponse readyzWithHttpInfo(String xRequestID) throws ApiExcepti * 400 The license is not valid. - * */ - public okhttp3.Call readyzAsync(String xRequestID, final ApiCallback _callback) + public okhttp3.Call readyzAsync( + String xRequestID, HashMap headers, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = readyzValidateBeforeCall(xRequestID, _callback); + okhttp3.Call localVarCall = readyzValidateBeforeCall(xRequestID, headers, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java index 636eb8cb..57ad4f3c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java @@ -82,7 +82,10 @@ public void setCustomBaseUrl(String customBaseUrl) { * */ public okhttp3.Call apiProcessCall( - ProcessRequest processRequest, String xRequestID, final ApiCallback _callback) + ProcessRequest processRequest, + String xRequestID, + HashMap headers, + final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -125,6 +128,11 @@ public okhttp3.Call apiProcessCall( localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); } + if (headers != null) { + for (String key : headers.keySet()) { + localVarHeaderParams.put(key, headers.get(key)); + } + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -142,7 +150,10 @@ public okhttp3.Call apiProcessCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiProcessValidateBeforeCall( - ProcessRequest processRequest, String xRequestID, final ApiCallback _callback) + ProcessRequest processRequest, + String xRequestID, + HashMap headers, + final ApiCallback _callback) throws ApiException { // verify the required parameter 'processRequest' is set if (processRequest == null) { @@ -150,7 +161,7 @@ private okhttp3.Call apiProcessValidateBeforeCall( "Missing the required parameter 'processRequest' when calling apiProcess(Async)"); } - return apiProcessCall(processRequest, xRequestID, _callback); + return apiProcessCall(processRequest, xRequestID, headers, _callback); } /** @@ -170,9 +181,11 @@ private okhttp3.Call apiProcessValidateBeforeCall( * 403 Bad license. Either server or request does not contain valid license. - * */ - public ProcessResponse apiProcess(ProcessRequest processRequest, String xRequestID) + public ProcessResponse apiProcess( + ProcessRequest processRequest, String xRequestID, HashMap headers) throws ApiException { - ApiResponse localVarResp = apiProcessWithHttpInfo(processRequest, xRequestID); + ApiResponse localVarResp = + apiProcessWithHttpInfo(processRequest, xRequestID, headers); return localVarResp.getData(); } @@ -194,8 +207,10 @@ public ProcessResponse apiProcess(ProcessRequest processRequest, String xRequest * */ public ApiResponse apiProcessWithHttpInfo( - ProcessRequest processRequest, String xRequestID) throws ApiException { - okhttp3.Call localVarCall = apiProcessValidateBeforeCall(processRequest, xRequestID, null); + ProcessRequest processRequest, String xRequestID, HashMap headers) + throws ApiException { + okhttp3.Call localVarCall = + apiProcessValidateBeforeCall(processRequest, xRequestID, headers, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -220,10 +235,12 @@ public ApiResponse apiProcessWithHttpInfo( public okhttp3.Call apiProcessAsync( ProcessRequest processRequest, String xRequestID, + HashMap headers, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = apiProcessValidateBeforeCall(processRequest, xRequestID, _callback); + okhttp3.Call localVarCall = + apiProcessValidateBeforeCall(processRequest, xRequestID, headers, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java index dd195d05..a70a389c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java @@ -85,7 +85,8 @@ public void setCustomBaseUrl(String customBaseUrl) { * 403 Bad license. Either server or request does not contain valid license. - * */ - public okhttp3.Call apiV2TagTagIdDeleteCall(UUID tagId, final ApiCallback _callback) + public okhttp3.Call apiV2TagTagIdDeleteCall( + UUID tagId, HashMap headers, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -125,7 +126,11 @@ public okhttp3.Call apiV2TagTagIdDeleteCall(UUID tagId, final ApiCallback _callb if (localVarContentType != null) { localVarHeaderParams.put("Content-Type", localVarContentType); } - + if (headers != null) { + for (String key : headers.keySet()) { + localVarHeaderParams.put(key, headers.get(key)); + } + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -143,14 +148,15 @@ public okhttp3.Call apiV2TagTagIdDeleteCall(UUID tagId, final ApiCallback _callb @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TagTagIdDeleteValidateBeforeCall( - UUID tagId, final ApiCallback _callback) throws ApiException { + UUID tagId, HashMap headers, final ApiCallback _callback) + throws ApiException { // verify the required parameter 'tagId' is set if (tagId == null) { throw new ApiException( "Missing the required parameter 'tagId' when calling apiV2TagTagIdDelete(Async)"); } - return apiV2TagTagIdDeleteCall(tagId, _callback); + return apiV2TagTagIdDeleteCall(tagId, headers, _callback); } /** @@ -169,8 +175,9 @@ private okhttp3.Call apiV2TagTagIdDeleteValidateBeforeCall( * 403 Bad license. Either server or request does not contain valid license. - * */ - public Object apiV2TagTagIdDelete(UUID tagId) throws ApiException { - ApiResponse localVarResp = apiV2TagTagIdDeleteWithHttpInfo(tagId); + public Object apiV2TagTagIdDelete(UUID tagId, HashMap headers) + throws ApiException { + ApiResponse localVarResp = apiV2TagTagIdDeleteWithHttpInfo(tagId, headers); return localVarResp.getData(); } @@ -190,8 +197,9 @@ public Object apiV2TagTagIdDelete(UUID tagId) throws ApiException { * 403 Bad license. Either server or request does not contain valid license. - * */ - public ApiResponse apiV2TagTagIdDeleteWithHttpInfo(UUID tagId) throws ApiException { - okhttp3.Call localVarCall = apiV2TagTagIdDeleteValidateBeforeCall(tagId, null); + public ApiResponse apiV2TagTagIdDeleteWithHttpInfo( + UUID tagId, HashMap headers) throws ApiException { + okhttp3.Call localVarCall = apiV2TagTagIdDeleteValidateBeforeCall(tagId, headers, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -212,10 +220,11 @@ public ApiResponse apiV2TagTagIdDeleteWithHttpInfo(UUID tagId) throws Ap * 403 Bad license. Either server or request does not contain valid license. - * */ - public okhttp3.Call apiV2TagTagIdDeleteAsync(UUID tagId, final ApiCallback _callback) + public okhttp3.Call apiV2TagTagIdDeleteAsync( + UUID tagId, HashMap headers, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = apiV2TagTagIdDeleteValidateBeforeCall(tagId, _callback); + okhttp3.Call localVarCall = apiV2TagTagIdDeleteValidateBeforeCall(tagId, headers, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -236,7 +245,8 @@ public okhttp3.Call apiV2TagTagIdDeleteAsync(UUID tagId, final ApiCallback 403 Bad license. Either server or request does not contain valid license. - * */ - public okhttp3.Call apiV2TagTagIdTransactionsGetCall(String tagId, final ApiCallback _callback) + public okhttp3.Call apiV2TagTagIdTransactionsGetCall( + String tagId, HashMap headers, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -276,7 +286,11 @@ public okhttp3.Call apiV2TagTagIdTransactionsGetCall(String tagId, final ApiCall if (localVarContentType != null) { localVarHeaderParams.put("Content-Type", localVarContentType); } - + if (headers != null) { + for (String key : headers.keySet()) { + localVarHeaderParams.put(key, headers.get(key)); + } + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -294,14 +308,15 @@ public okhttp3.Call apiV2TagTagIdTransactionsGetCall(String tagId, final ApiCall @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TagTagIdTransactionsGetValidateBeforeCall( - String tagId, final ApiCallback _callback) throws ApiException { + String tagId, HashMap headers, final ApiCallback _callback) + throws ApiException { // verify the required parameter 'tagId' is set if (tagId == null) { throw new ApiException( "Missing the required parameter 'tagId' when calling apiV2TagTagIdTransactionsGet(Async)"); } - return apiV2TagTagIdTransactionsGetCall(tagId, _callback); + return apiV2TagTagIdTransactionsGetCall(tagId, headers, _callback); } /** @@ -320,10 +335,10 @@ private okhttp3.Call apiV2TagTagIdTransactionsGetValidateBeforeCall( * 403 Bad license. Either server or request does not contain valid license. - * */ - public ListTransactionsByTagResponse apiV2TagTagIdTransactionsGet(String tagId) - throws ApiException { + public ListTransactionsByTagResponse apiV2TagTagIdTransactionsGet( + String tagId, HashMap headers) throws ApiException { ApiResponse localVarResp = - apiV2TagTagIdTransactionsGetWithHttpInfo(tagId); + apiV2TagTagIdTransactionsGetWithHttpInfo(tagId, headers); return localVarResp.getData(); } @@ -344,8 +359,9 @@ public ListTransactionsByTagResponse apiV2TagTagIdTransactionsGet(String tagId) * */ public ApiResponse apiV2TagTagIdTransactionsGetWithHttpInfo( - String tagId) throws ApiException { - okhttp3.Call localVarCall = apiV2TagTagIdTransactionsGetValidateBeforeCall(tagId, null); + String tagId, HashMap headers) throws ApiException { + okhttp3.Call localVarCall = + apiV2TagTagIdTransactionsGetValidateBeforeCall(tagId, headers, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -367,10 +383,13 @@ public ApiResponse apiV2TagTagIdTransactionsGetWi * */ public okhttp3.Call apiV2TagTagIdTransactionsGetAsync( - String tagId, final ApiCallback _callback) + String tagId, + HashMap headers, + final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = apiV2TagTagIdTransactionsGetValidateBeforeCall(tagId, _callback); + okhttp3.Call localVarCall = + apiV2TagTagIdTransactionsGetValidateBeforeCall(tagId, headers, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -392,7 +411,8 @@ public okhttp3.Call apiV2TagTagIdTransactionsGetAsync( * */ public okhttp3.Call apiV2TransactionTransactionIdFileGetCall( - UUID transactionId, String name, final ApiCallback _callback) throws ApiException { + UUID transactionId, String name, HashMap headers, final ApiCallback _callback) + throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] {}; @@ -437,7 +457,11 @@ public okhttp3.Call apiV2TransactionTransactionIdFileGetCall( if (localVarContentType != null) { localVarHeaderParams.put("Content-Type", localVarContentType); } - + if (headers != null) { + for (String key : headers.keySet()) { + localVarHeaderParams.put(key, headers.get(key)); + } + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -455,7 +479,8 @@ public okhttp3.Call apiV2TransactionTransactionIdFileGetCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TransactionTransactionIdFileGetValidateBeforeCall( - UUID transactionId, String name, final ApiCallback _callback) throws ApiException { + UUID transactionId, String name, HashMap headers, final ApiCallback _callback) + throws ApiException { // verify the required parameter 'transactionId' is set if (transactionId == null) { throw new ApiException( @@ -468,7 +493,7 @@ private okhttp3.Call apiV2TransactionTransactionIdFileGetValidateBeforeCall( "Missing the required parameter 'name' when calling apiV2TransactionTransactionIdFileGet(Async)"); } - return apiV2TransactionTransactionIdFileGetCall(transactionId, name, _callback); + return apiV2TransactionTransactionIdFileGetCall(transactionId, name, headers, _callback); } /** @@ -487,10 +512,10 @@ private okhttp3.Call apiV2TransactionTransactionIdFileGetValidateBeforeCall( * 404 File not found - * */ - public File apiV2TransactionTransactionIdFileGet(UUID transactionId, String name) - throws ApiException { + public File apiV2TransactionTransactionIdFileGet( + UUID transactionId, String name, HashMap headers) throws ApiException { ApiResponse localVarResp = - apiV2TransactionTransactionIdFileGetWithHttpInfo(transactionId, name); + apiV2TransactionTransactionIdFileGetWithHttpInfo(transactionId, name, headers); return localVarResp.getData(); } @@ -511,9 +536,9 @@ public File apiV2TransactionTransactionIdFileGet(UUID transactionId, String name * */ public ApiResponse apiV2TransactionTransactionIdFileGetWithHttpInfo( - UUID transactionId, String name) throws ApiException { + UUID transactionId, String name, HashMap headers) throws ApiException { okhttp3.Call localVarCall = - apiV2TransactionTransactionIdFileGetValidateBeforeCall(transactionId, name, null); + apiV2TransactionTransactionIdFileGetValidateBeforeCall(transactionId, name, headers, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -535,10 +560,15 @@ public ApiResponse apiV2TransactionTransactionIdFileGetWithHttpInfo( * */ public okhttp3.Call apiV2TransactionTransactionIdFileGetAsync( - UUID transactionId, String name, final ApiCallback _callback) throws ApiException { + UUID transactionId, + String name, + HashMap headers, + final ApiCallback _callback) + throws ApiException { okhttp3.Call localVarCall = - apiV2TransactionTransactionIdFileGetValidateBeforeCall(transactionId, name, _callback); + apiV2TransactionTransactionIdFileGetValidateBeforeCall( + transactionId, name, headers, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -560,7 +590,8 @@ public okhttp3.Call apiV2TransactionTransactionIdFileGetAsync( * */ public okhttp3.Call apiV2TransactionTransactionIdGetCall( - UUID transactionId, final ApiCallback _callback) throws ApiException { + UUID transactionId, HashMap headers, final ApiCallback _callback) + throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] {}; @@ -601,7 +632,11 @@ public okhttp3.Call apiV2TransactionTransactionIdGetCall( if (localVarContentType != null) { localVarHeaderParams.put("Content-Type", localVarContentType); } - + if (headers != null) { + for (String key : headers.keySet()) { + localVarHeaderParams.put(key, headers.get(key)); + } + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -619,14 +654,15 @@ public okhttp3.Call apiV2TransactionTransactionIdGetCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TransactionTransactionIdGetValidateBeforeCall( - UUID transactionId, final ApiCallback _callback) throws ApiException { + UUID transactionId, HashMap headers, final ApiCallback _callback) + throws ApiException { // verify the required parameter 'transactionId' is set if (transactionId == null) { throw new ApiException( "Missing the required parameter 'transactionId' when calling apiV2TransactionTransactionIdGet(Async)"); } - return apiV2TransactionTransactionIdGetCall(transactionId, _callback); + return apiV2TransactionTransactionIdGetCall(transactionId, headers, _callback); } /** @@ -645,10 +681,10 @@ private okhttp3.Call apiV2TransactionTransactionIdGetValidateBeforeCall( * 403 Bad license. Either server or request does not contain valid license. - * */ - public TransactionProcessGetResponse apiV2TransactionTransactionIdGet(UUID transactionId) - throws ApiException { + public TransactionProcessGetResponse apiV2TransactionTransactionIdGet( + UUID transactionId, HashMap headers) throws ApiException { ApiResponse localVarResp = - apiV2TransactionTransactionIdGetWithHttpInfo(transactionId); + apiV2TransactionTransactionIdGetWithHttpInfo(transactionId, headers); return localVarResp.getData(); } @@ -669,9 +705,9 @@ public TransactionProcessGetResponse apiV2TransactionTransactionIdGet(UUID trans * */ public ApiResponse apiV2TransactionTransactionIdGetWithHttpInfo( - UUID transactionId) throws ApiException { + UUID transactionId, HashMap headers) throws ApiException { okhttp3.Call localVarCall = - apiV2TransactionTransactionIdGetValidateBeforeCall(transactionId, null); + apiV2TransactionTransactionIdGetValidateBeforeCall(transactionId, headers, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -693,11 +729,13 @@ public ApiResponse apiV2TransactionTransactionIdG * */ public okhttp3.Call apiV2TransactionTransactionIdGetAsync( - UUID transactionId, final ApiCallback _callback) + UUID transactionId, + HashMap headers, + final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = - apiV2TransactionTransactionIdGetValidateBeforeCall(transactionId, _callback); + apiV2TransactionTransactionIdGetValidateBeforeCall(transactionId, headers, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -722,6 +760,7 @@ public okhttp3.Call apiV2TransactionTransactionIdGetAsync( public okhttp3.Call apiV2TransactionTransactionIdProcessPostCall( UUID transactionId, TransactionProcessRequest transactionProcessRequest, + HashMap headers, final ApiCallback _callback) throws ApiException { String basePath = null; @@ -764,7 +803,11 @@ public okhttp3.Call apiV2TransactionTransactionIdProcessPostCall( if (localVarContentType != null) { localVarHeaderParams.put("Content-Type", localVarContentType); } - + if (headers != null) { + for (String key : headers.keySet()) { + localVarHeaderParams.put(key, headers.get(key)); + } + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -784,6 +827,7 @@ public okhttp3.Call apiV2TransactionTransactionIdProcessPostCall( private okhttp3.Call apiV2TransactionTransactionIdProcessPostValidateBeforeCall( UUID transactionId, TransactionProcessRequest transactionProcessRequest, + HashMap headers, final ApiCallback _callback) throws ApiException { // verify the required parameter 'transactionId' is set @@ -799,7 +843,7 @@ private okhttp3.Call apiV2TransactionTransactionIdProcessPostValidateBeforeCall( } return apiV2TransactionTransactionIdProcessPostCall( - transactionId, transactionProcessRequest, _callback); + transactionId, transactionProcessRequest, headers, _callback); } /** @@ -820,10 +864,13 @@ private okhttp3.Call apiV2TransactionTransactionIdProcessPostValidateBeforeCall( * */ public TransactionProcessResult apiV2TransactionTransactionIdProcessPost( - UUID transactionId, TransactionProcessRequest transactionProcessRequest) throws ApiException { + UUID transactionId, + TransactionProcessRequest transactionProcessRequest, + HashMap headers) + throws ApiException { ApiResponse localVarResp = apiV2TransactionTransactionIdProcessPostWithHttpInfo( - transactionId, transactionProcessRequest); + transactionId, transactionProcessRequest, headers); return localVarResp.getData(); } @@ -845,10 +892,13 @@ public TransactionProcessResult apiV2TransactionTransactionIdProcessPost( * */ public ApiResponse apiV2TransactionTransactionIdProcessPostWithHttpInfo( - UUID transactionId, TransactionProcessRequest transactionProcessRequest) throws ApiException { + UUID transactionId, + TransactionProcessRequest transactionProcessRequest, + HashMap headers) + throws ApiException { okhttp3.Call localVarCall = apiV2TransactionTransactionIdProcessPostValidateBeforeCall( - transactionId, transactionProcessRequest, null); + transactionId, transactionProcessRequest, headers, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -873,12 +923,13 @@ public ApiResponse apiV2TransactionTransactionIdProces public okhttp3.Call apiV2TransactionTransactionIdProcessPostAsync( UUID transactionId, TransactionProcessRequest transactionProcessRequest, + HashMap headers, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = apiV2TransactionTransactionIdProcessPostValidateBeforeCall( - transactionId, transactionProcessRequest, _callback); + transactionId, transactionProcessRequest, headers, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -901,7 +952,11 @@ public okhttp3.Call apiV2TransactionTransactionIdProcessPostAsync( * */ public okhttp3.Call apiV2TransactionTransactionIdResultsGetCall( - UUID transactionId, Boolean withImages, final ApiCallback _callback) throws ApiException { + UUID transactionId, + Boolean withImages, + HashMap headers, + final ApiCallback _callback) + throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] {}; @@ -946,7 +1001,11 @@ public okhttp3.Call apiV2TransactionTransactionIdResultsGetCall( if (localVarContentType != null) { localVarHeaderParams.put("Content-Type", localVarContentType); } - + if (headers != null) { + for (String key : headers.keySet()) { + localVarHeaderParams.put(key, headers.get(key)); + } + } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -964,14 +1023,19 @@ public okhttp3.Call apiV2TransactionTransactionIdResultsGetCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TransactionTransactionIdResultsGetValidateBeforeCall( - UUID transactionId, Boolean withImages, final ApiCallback _callback) throws ApiException { + UUID transactionId, + Boolean withImages, + HashMap headers, + final ApiCallback _callback) + throws ApiException { // verify the required parameter 'transactionId' is set if (transactionId == null) { throw new ApiException( "Missing the required parameter 'transactionId' when calling apiV2TransactionTransactionIdResultsGet(Async)"); } - return apiV2TransactionTransactionIdResultsGetCall(transactionId, withImages, _callback); + return apiV2TransactionTransactionIdResultsGetCall( + transactionId, withImages, headers, _callback); } /** @@ -992,9 +1056,9 @@ private okhttp3.Call apiV2TransactionTransactionIdResultsGetValidateBeforeCall( * */ public TransactionProcessResponse apiV2TransactionTransactionIdResultsGet( - UUID transactionId, Boolean withImages) throws ApiException { + UUID transactionId, Boolean withImages, HashMap headers) throws ApiException { ApiResponse localVarResp = - apiV2TransactionTransactionIdResultsGetWithHttpInfo(transactionId, withImages); + apiV2TransactionTransactionIdResultsGetWithHttpInfo(transactionId, withImages, headers); return localVarResp.getData(); } @@ -1016,10 +1080,12 @@ public TransactionProcessResponse apiV2TransactionTransactionIdResultsGet( * */ public ApiResponse - apiV2TransactionTransactionIdResultsGetWithHttpInfo(UUID transactionId, Boolean withImages) + apiV2TransactionTransactionIdResultsGetWithHttpInfo( + UUID transactionId, Boolean withImages, HashMap headers) throws ApiException { okhttp3.Call localVarCall = - apiV2TransactionTransactionIdResultsGetValidateBeforeCall(transactionId, withImages, null); + apiV2TransactionTransactionIdResultsGetValidateBeforeCall( + transactionId, withImages, headers, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -1044,12 +1110,13 @@ public TransactionProcessResponse apiV2TransactionTransactionIdResultsGet( public okhttp3.Call apiV2TransactionTransactionIdResultsGetAsync( UUID transactionId, Boolean withImages, + HashMap headers, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = apiV2TransactionTransactionIdResultsGetValidateBeforeCall( - transactionId, withImages, _callback); + transactionId, withImages, headers, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java index 5bba0be0..41afbf2c 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java +++ b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java @@ -62,11 +62,11 @@ private static ApiClient getApiClient(String basePath, boolean debugging, boolea * response body */ public Healthcheck ping() throws ApiException { - return defaultApi.healthz(""); + return defaultApi.healthz("", null); } - public Healthcheck ping(String xRequestID) throws ApiException { - return defaultApi.healthz(xRequestID); + public Healthcheck ping(String xRequestID, HashMap headers) throws ApiException { + return defaultApi.healthz(xRequestID, headers); } /** @@ -79,13 +79,14 @@ public Healthcheck ping(String xRequestID) throws ApiException { */ public RecognitionResponse process(ProcessRequest processRequest) { processRequest.getSystemInfo().setLicense(this.license); - ProcessResponse response = processApi.apiProcess(processRequest, ""); + ProcessResponse response = processApi.apiProcess(processRequest, "", null); return new RecognitionResponse(response); } - public RecognitionResponse process(ProcessRequest processRequest, String xRequestID) { + public RecognitionResponse process( + ProcessRequest processRequest, String xRequestID, HashMap headers) { processRequest.getSystemInfo().setLicense(this.license); - ProcessResponse response = processApi.apiProcess(processRequest, xRequestID); + ProcessResponse response = processApi.apiProcess(processRequest, xRequestID, headers); return new RecognitionResponse(response); } From a65800766ae781d761d5a0b54aaff88352f20f14 Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Mon, 17 Mar 2025 17:42:35 +0300 Subject: [PATCH 10/19] Remove headers from ping --- .../documentreader/webclient/api/DocumentReaderApi.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java index 41afbf2c..686536e4 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java +++ b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java @@ -65,8 +65,8 @@ public Healthcheck ping() throws ApiException { return defaultApi.healthz("", null); } - public Healthcheck ping(String xRequestID, HashMap headers) throws ApiException { - return defaultApi.healthz(xRequestID, headers); + public Healthcheck ping(String xRequestID) throws ApiException { + return defaultApi.healthz(xRequestID, null); } /** From 4bb1d93679668551b6e98380dc300498b5737d03 Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Tue, 18 Mar 2025 10:36:15 +0300 Subject: [PATCH 11/19] Update models --- .../webclient/model/AuthParams.java | 33 +++++++++++++++-- .../webclient/model/CheckDiagnose.java | 2 ++ .../webclient/model/LivenessParams.java | 35 +++++++++++++++++-- 3 files changed, 66 insertions(+), 4 deletions(-) diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java index 37709bb7..2ebf5429 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java @@ -123,6 +123,12 @@ public class AuthParams { @javax.annotation.Nullable private Boolean checkLetterScreen; + public static final String SERIALIZED_NAME_CHECK_SECURITY_TEXT = "checkSecurityText"; + + @SerializedName(SERIALIZED_NAME_CHECK_SECURITY_TEXT) + @javax.annotation.Nullable + private Boolean checkSecurityText; + public AuthParams() {} public AuthParams checkLiveness(@javax.annotation.Nullable Boolean checkLiveness) { @@ -412,6 +418,25 @@ public void setCheckLetterScreen(@javax.annotation.Nullable Boolean checkLetterS this.checkLetterScreen = checkLetterScreen; } + public AuthParams checkSecurityText(@javax.annotation.Nullable Boolean checkSecurityText) { + this.checkSecurityText = checkSecurityText; + return this; + } + + /** + * This parameter is used to enable Security text check + * + * @return checkSecurityText + */ + @javax.annotation.Nullable + public Boolean getCheckSecurityText() { + return checkSecurityText; + } + + public void setCheckSecurityText(@javax.annotation.Nullable Boolean checkSecurityText) { + this.checkSecurityText = checkSecurityText; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -435,7 +460,8 @@ public boolean equals(Object o) { && Objects.equals(this.checkIPI, authParams.checkIPI) && Objects.equals(this.checkPhotoEmbedding, authParams.checkPhotoEmbedding) && Objects.equals(this.checkPhotoComparison, authParams.checkPhotoComparison) - && Objects.equals(this.checkLetterScreen, authParams.checkLetterScreen); + && Objects.equals(this.checkLetterScreen, authParams.checkLetterScreen) + && Objects.equals(this.checkSecurityText, authParams.checkSecurityText); } @Override @@ -455,7 +481,8 @@ public int hashCode() { checkIPI, checkPhotoEmbedding, checkPhotoComparison, - checkLetterScreen); + checkLetterScreen, + checkSecurityText); } @Override @@ -483,6 +510,7 @@ public String toString() { .append(toIndentedString(checkPhotoComparison)) .append("\n"); sb.append(" checkLetterScreen: ").append(toIndentedString(checkLetterScreen)).append("\n"); + sb.append(" checkSecurityText: ").append(toIndentedString(checkSecurityText)).append("\n"); sb.append("}"); return sb.toString(); } @@ -518,6 +546,7 @@ private String toIndentedString(Object o) { openapiFields.add("checkPhotoEmbedding"); openapiFields.add("checkPhotoComparison"); openapiFields.add("checkLetterScreen"); + openapiFields.add("checkSecurityText"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java b/client/src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java index 1271bc17..cee26160 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java @@ -254,6 +254,8 @@ public enum CheckDiagnose { LASINK_INVALID_LINES_FREQUENCY(230), + DOC_LIVENESS_DOCUMENT_NOT_LIVE(238), + DOC_LIVENESS_BLACK_AND_WHITE_COPY_DETECTED(239), DOC_LIVENESS_ELECTRONIC_DEVICE_DETECTED(240), diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java index 60131ce7..6d212068 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java @@ -57,6 +57,12 @@ public class LivenessParams { @javax.annotation.Nullable private Boolean checkED; + public static final String SERIALIZED_NAME_CHECK_BLACK_AND_WHITE_COPY = "checkBlackAndWhiteCopy"; + + @SerializedName(SERIALIZED_NAME_CHECK_BLACK_AND_WHITE_COPY) + @javax.annotation.Nullable + private Boolean checkBlackAndWhiteCopy; + public LivenessParams() {} public LivenessParams checkOVI(@javax.annotation.Nullable Boolean checkOVI) { @@ -135,6 +141,26 @@ public void setCheckED(@javax.annotation.Nullable Boolean checkED) { this.checkED = checkED; } + public LivenessParams checkBlackAndWhiteCopy( + @javax.annotation.Nullable Boolean checkBlackAndWhiteCopy) { + this.checkBlackAndWhiteCopy = checkBlackAndWhiteCopy; + return this; + } + + /** + * This parameter is used to enable Black and white copy check + * + * @return checkBlackAndWhiteCopy + */ + @javax.annotation.Nullable + public Boolean getCheckBlackAndWhiteCopy() { + return checkBlackAndWhiteCopy; + } + + public void setCheckBlackAndWhiteCopy(@javax.annotation.Nullable Boolean checkBlackAndWhiteCopy) { + this.checkBlackAndWhiteCopy = checkBlackAndWhiteCopy; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -147,12 +173,13 @@ public boolean equals(Object o) { return Objects.equals(this.checkOVI, livenessParams.checkOVI) && Objects.equals(this.checkMLI, livenessParams.checkMLI) && Objects.equals(this.checkHolo, livenessParams.checkHolo) - && Objects.equals(this.checkED, livenessParams.checkED); + && Objects.equals(this.checkED, livenessParams.checkED) + && Objects.equals(this.checkBlackAndWhiteCopy, livenessParams.checkBlackAndWhiteCopy); } @Override public int hashCode() { - return Objects.hash(checkOVI, checkMLI, checkHolo, checkED); + return Objects.hash(checkOVI, checkMLI, checkHolo, checkED, checkBlackAndWhiteCopy); } @Override @@ -163,6 +190,9 @@ public String toString() { sb.append(" checkMLI: ").append(toIndentedString(checkMLI)).append("\n"); sb.append(" checkHolo: ").append(toIndentedString(checkHolo)).append("\n"); sb.append(" checkED: ").append(toIndentedString(checkED)).append("\n"); + sb.append(" checkBlackAndWhiteCopy: ") + .append(toIndentedString(checkBlackAndWhiteCopy)) + .append("\n"); sb.append("}"); return sb.toString(); } @@ -187,6 +217,7 @@ private String toIndentedString(Object o) { openapiFields.add("checkMLI"); openapiFields.add("checkHolo"); openapiFields.add("checkED"); + openapiFields.add("checkBlackAndWhiteCopy"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); From 75127f82938d0c995266257dc2a04dcc0849b0bf Mon Sep 17 00:00:00 2001 From: Maris Skvorcovs Date: Tue, 18 Mar 2025 10:21:21 +0200 Subject: [PATCH 12/19] Update Main.java -removed unnecessary thread from client -code formatting --- .../webclient/example/Main.java | 170 +++++++++--------- 1 file changed, 84 insertions(+), 86 deletions(-) diff --git a/example/src/main/java/com/regula/documentreader/webclient/example/Main.java b/example/src/main/java/com/regula/documentreader/webclient/example/Main.java index 147064af..0ae266f0 100755 --- a/example/src/main/java/com/regula/documentreader/webclient/example/Main.java +++ b/example/src/main/java/com/regula/documentreader/webclient/example/Main.java @@ -45,106 +45,104 @@ public static void main(String[] args) throws IOException, ApiException { var whitePageRequestImage = new ProcessRequestImage(whitePage0, Light.WHITE, 0); var requestParams = new ProcessParams() - .scenario(Scenario.FULL_PROCESS) - .resultTypeOutput( - Arrays.asList( - // actual results - Result.STATUS, Result.TEXT, Result.IMAGES, - Result.DOCUMENT_TYPE, Result.DOCUMENT_TYPE_CANDIDATES, Result.IMAGE_QUALITY, - Result.DOCUMENT_POSITION, - // legacy results - Result.MRZ_TEXT, Result.VISUAL_TEXT, Result.BARCODE_TEXT, Result.RFID_TEXT, - Result.VISUAL_GRAPHICS, Result.BARCODE_GRAPHICS, Result.RFID_GRAPHICS, - Result.LEXICAL_ANALYSIS + .scenario(Scenario.FULL_PROCESS) + .resultTypeOutput( + Arrays.asList( + // actual results + Result.STATUS, Result.TEXT, Result.IMAGES, + Result.DOCUMENT_TYPE, Result.DOCUMENT_TYPE_CANDIDATES, Result.IMAGE_QUALITY, + Result.DOCUMENT_POSITION, + // legacy results + Result.MRZ_TEXT, Result.VISUAL_TEXT, Result.BARCODE_TEXT, Result.RFID_TEXT, + Result.VISUAL_GRAPHICS, Result.BARCODE_GRAPHICS, Result.RFID_GRAPHICS, + Result.LEXICAL_ANALYSIS + ) ) - ) - .alreadyCropped(true); + .alreadyCropped(true); RecognitionRequest request = new RecognitionRequest(requestParams, List.of(whitePageRequestImage)); String finalApiBaseUrl = apiBaseUrl; - new Thread(() -> { - var api = new DocumentReaderApi(finalApiBaseUrl); + var api = new DocumentReaderApi(finalApiBaseUrl); - // Uncomment one of the lines below if you want to transfer the license with each request + // Uncomment one of the lines below if you want to transfer the license with each request // if (licenseFromEnv != null) api.setLicense(licenseFromEnv); // if (licenseFromFile != null) api.setLicense(licenseFromFile); - var info = api.ping(); - System.out.println(); - System.out.format( - "-----------------------------------------------------------------" + "\n" - + "Web API version: " + info.getVersion() + "\n" - + "-----------------------------------------------------------------"); - RecognitionResponse response = api.process(request); - var requestJson = request.json(); - var responseJson = response.json(); - - // to send raw request(ex encrypted one) with overriding processing params here use next api - // RecognitionResponse response = api.process(request, requestParams); - - var status = response.status(); - var docOverallStatus = status.getOverallStatus() == CheckResult.OK ? "valid" : "not valid"; - var docOpticalTextStatus = status.getDetailsOptical().getText(); - - var docType = response.documentType() == null ? "Unknown" : response.documentType().getDocumentName(); - - var docNumberField = response.text().getField(DOCUMENT_NUMBER); - var docNumberFieldByName = response.text().getField("Document Number"); - - var docNumberVisual = docNumberField.getValue(Source.VISUAL); - var docNumberMrz = docNumberField.getValue(Source.MRZ); - var docNumberVisualValidity = docNumberField.sourceValidity(Source.VISUAL); - var docNumberMrzValidity = docNumberField.sourceValidity(Source.MRZ); - var docNumberMrzVisualMatching = docNumberField.crossSourceComparison(Source.MRZ, Source.VISUAL); - - System.out.println(); - System.out.format("-----------------------------------------------------------------" + "\n" - + "Document Type: " + docType + "\n" - + "Document Overall Status: " + docOverallStatus + "\n" - + "Document Number Visual: " + docNumberVisual + "\n" - + "Document Number MRZ: " + docNumberMrz + "\n" - + "Validity Of Document Number Visual: " + docNumberVisualValidity + "\n" - + "Validity Of Document Number MRZ: " + docNumberMrzValidity + "\n" - + "MRZ-Visual values comparison: " + docNumberMrzVisualMatching + "\n" - + "-----------------------------------------------------------------"); - System.out.println(); - - if (response.text() != null) { - for (TextField field : response.text().getFieldList()) { - System.out.format( - "Field: " + " " - + field.getFieldName() + " " - + "Value: " + " " - + field.getValueList().get(0).getValue() + " " - + "Source: " + field.getValueList().get(0).getSource() - + "\n"); - } - System.out.format("---------------------------------------------------------------"); - } else { - System.out.format(" NO TEXT DATA"); - System.out.format("---------------------------------------------------------------"); + var info = api.ping(); + System.out.println(); + System.out.format( + "-----------------------------------------------------------------" + "\n" + + "Web API version: " + info.getVersion() + "\n" + + "-----------------------------------------------------------------"); + RecognitionResponse response = api.process(request); + var requestJson = request.json(); + var responseJson = response.json(); + + // to send raw request(ex encrypted one) with overriding processing params here use next api + // RecognitionResponse response = api.process(request, requestParams); + + var status = response.status(); + var docOverallStatus = status.getOverallStatus() == CheckResult.OK ? "valid" : "not valid"; + var docOpticalTextStatus = status.getDetailsOptical().getText(); + + var docType = response.documentType() == null ? "Unknown" : response.documentType().getDocumentName(); + + var docNumberField = response.text().getField(DOCUMENT_NUMBER); + var docNumberFieldByName = response.text().getField("Document Number"); + + var docNumberVisual = docNumberField.getValue(Source.VISUAL); + var docNumberMrz = docNumberField.getValue(Source.MRZ); + var docNumberVisualValidity = docNumberField.sourceValidity(Source.VISUAL); + var docNumberMrzValidity = docNumberField.sourceValidity(Source.MRZ); + var docNumberMrzVisualMatching = docNumberField.crossSourceComparison(Source.MRZ, Source.VISUAL); + + System.out.println(); + System.out.format("-----------------------------------------------------------------" + "\n" + + "Document Type: " + docType + "\n" + + "Document Overall Status: " + docOverallStatus + "\n" + + "Document Number Visual: " + docNumberVisual + "\n" + + "Document Number MRZ: " + docNumberMrz + "\n" + + "Validity Of Document Number Visual: " + docNumberVisualValidity + "\n" + + "Validity Of Document Number MRZ: " + docNumberMrzValidity + "\n" + + "MRZ-Visual values comparison: " + docNumberMrzVisualMatching + "\n" + + "-----------------------------------------------------------------"); + System.out.println(); + + if (response.text() != null) { + for (TextField field : response.text().getFieldList()) { + System.out.format( + "Field: " + " " + + field.getFieldName() + " " + + "Value: " + " " + + field.getValueList().get(0).getValue() + " " + + "Source: " + field.getValueList().get(0).getSource() + + "\n"); } + System.out.format("---------------------------------------------------------------"); + } else { + System.out.format(" NO TEXT DATA"); + System.out.format("---------------------------------------------------------------"); + } - var documentImage = response.images().getField(GraphicFieldType.DOCUMENT_FRONT).getValue(); - var portraitField = response.images().getField(GraphicFieldType.PORTRAIT); - var portraitFromVisual = portraitField.getValue(Source.VISUAL); + var documentImage = response.images().getField(GraphicFieldType.DOCUMENT_FRONT).getValue(); + var portraitField = response.images().getField(GraphicFieldType.PORTRAIT); + var portraitFromVisual = portraitField.getValue(Source.VISUAL); - try { - saveFile("document-image.jpg", documentImage); - } catch (IOException e) { - throw new RuntimeException(e); - } - try { - saveFile("portrait.jpg", portraitFromVisual); - } catch (IOException e) { - throw new RuntimeException(e); - } + try { + saveFile("document-image.jpg", documentImage); + } catch (IOException e) { + throw new RuntimeException(e); + } + try { + saveFile("portrait.jpg", portraitFromVisual); + } catch (IOException e) { + throw new RuntimeException(e); + } - // how to get low lvl individual results - LexicalAnalysisResult lexResult = response.resultByType(Result.LEXICAL_ANALYSIS); - }).start(); + // how to get low lvl individual results + LexicalAnalysisResult lexResult = response.resultByType(Result.LEXICAL_ANALYSIS); System.exit(0); } From 8fb58209a1fe95a39e8335a084fdb3d74963f95d Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Tue, 18 Mar 2025 13:55:14 +0300 Subject: [PATCH 13/19] Update models, settings --- .../model/DocVisualExtendedFieldRect.java | 228 ------------- .../model/DocVisualExtendedFieldRectItem.java | 198 ----------- .../model/DocVisualExtendedFieldRfid.java | 320 ------------------ .../model/DocVisualExtendedFieldRfidItem.java | 300 ---------------- ...ocVisualExtendedInfoPArrayFieldsInner.java | 281 --------------- .../webclient/model/GraphicFieldRect.java | 209 ------------ .../webclient/model/GraphicFieldRectItem.java | 202 ----------- .../webclient/model/GraphicFieldRfid.java | 303 ----------------- .../webclient/model/GraphicFieldRfidItem.java | 295 ---------------- .../GraphicFieldsListPArrayFieldsInner.java | 267 --------------- java-generator-config.json | 4 +- 11 files changed, 1 insertion(+), 2606 deletions(-) delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRectItem.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfidItem.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRectItem.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfidItem.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java deleted file mode 100644 index b31ef7ab..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRect.java +++ /dev/null @@ -1,228 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** - * Structure and serves for storing information from one text data field. Variant with field logical - * type and field rectangular area coordinates on the image. - */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class DocVisualExtendedFieldRect extends DocVisualExtendedField { - public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; - - @SerializedName(SERIALIZED_NAME_FIELD_RECT) - @javax.annotation.Nullable - private RectangleCoordinates fieldRect; - - public DocVisualExtendedFieldRect() {} - - public DocVisualExtendedFieldRect fieldRect( - @javax.annotation.Nullable RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; - return this; - } - - /** - * Get fieldRect - * - * @return fieldRect - */ - @javax.annotation.Nullable - public RectangleCoordinates getFieldRect() { - return fieldRect; - } - - public void setFieldRect(@javax.annotation.Nullable RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - DocVisualExtendedFieldRect docVisualExtendedFieldRect = (DocVisualExtendedFieldRect) o; - return Objects.equals(this.fieldRect, docVisualExtendedFieldRect.fieldRect) && super.equals(o); - } - - @Override - public int hashCode() { - return Objects.hash(fieldRect, super.hashCode()); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class DocVisualExtendedFieldRect {\n"); - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("FieldType"); - openapiFields.add("wFieldType"); - openapiFields.add("FieldName"); - openapiFields.add("StringsCount"); - openapiFields.add("StringsResult"); - openapiFields.add("Buf_Length"); - openapiFields.add("Buf_Text"); - openapiFields.add("FieldMask"); - openapiFields.add("Validity"); - openapiFields.add("InComparison"); - openapiFields.add("wLCID"); - openapiFields.add("Reserved2"); - openapiFields.add("Reserved3"); - openapiFields.add("FieldRect"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("FieldType"); - openapiRequiredFields.add("wFieldType"); - openapiRequiredFields.add("FieldName"); - openapiRequiredFields.add("StringsCount"); - openapiRequiredFields.add("StringsResult"); - openapiRequiredFields.add("Buf_Length"); - openapiRequiredFields.add("Buf_Text"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to DocVisualExtendedFieldRect - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!DocVisualExtendedFieldRect.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in DocVisualExtendedFieldRect is not found in the empty JSON string", - DocVisualExtendedFieldRect.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!DocVisualExtendedFieldRect.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the `DocVisualExtendedFieldRect` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : DocVisualExtendedFieldRect.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - // validate the optional field `FieldRect` - if (jsonObj.get("FieldRect") != null && !jsonObj.get("FieldRect").isJsonNull()) { - RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!DocVisualExtendedFieldRect.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'DocVisualExtendedFieldRect' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldRect.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, DocVisualExtendedFieldRect value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public DocVisualExtendedFieldRect read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of DocVisualExtendedFieldRect given an JSON string - * - * @param jsonString JSON string - * @return An instance of DocVisualExtendedFieldRect - * @throws IOException if the JSON string is invalid with respect to DocVisualExtendedFieldRect - */ - public static DocVisualExtendedFieldRect fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, DocVisualExtendedFieldRect.class); - } - - /** - * Convert an instance of DocVisualExtendedFieldRect to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRectItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRectItem.java deleted file mode 100644 index 4c0cefad..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRectItem.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** DocVisualExtendedFieldRectItem */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class DocVisualExtendedFieldRectItem { - public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; - - @SerializedName(SERIALIZED_NAME_FIELD_RECT) - @javax.annotation.Nullable - private RectangleCoordinates fieldRect; - - public DocVisualExtendedFieldRectItem() {} - - public DocVisualExtendedFieldRectItem fieldRect( - @javax.annotation.Nullable RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; - return this; - } - - /** - * Get fieldRect - * - * @return fieldRect - */ - @javax.annotation.Nullable - public RectangleCoordinates getFieldRect() { - return fieldRect; - } - - public void setFieldRect(@javax.annotation.Nullable RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - DocVisualExtendedFieldRectItem docVisualExtendedFieldRectItem = - (DocVisualExtendedFieldRectItem) o; - return Objects.equals(this.fieldRect, docVisualExtendedFieldRectItem.fieldRect); - } - - @Override - public int hashCode() { - return Objects.hash(fieldRect); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class DocVisualExtendedFieldRectItem {\n"); - sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("FieldRect"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to - * DocVisualExtendedFieldRectItem - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!DocVisualExtendedFieldRectItem.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in DocVisualExtendedFieldRectItem is not found in the empty JSON string", - DocVisualExtendedFieldRectItem.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!DocVisualExtendedFieldRectItem.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the `DocVisualExtendedFieldRectItem` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - // validate the optional field `FieldRect` - if (jsonObj.get("FieldRect") != null && !jsonObj.get("FieldRect").isJsonNull()) { - RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); - } - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!DocVisualExtendedFieldRectItem.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'DocVisualExtendedFieldRectItem' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldRectItem.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, DocVisualExtendedFieldRectItem value) - throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public DocVisualExtendedFieldRectItem read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of DocVisualExtendedFieldRectItem given an JSON string - * - * @param jsonString JSON string - * @return An instance of DocVisualExtendedFieldRectItem - * @throws IOException if the JSON string is invalid with respect to - * DocVisualExtendedFieldRectItem - */ - public static DocVisualExtendedFieldRectItem fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, DocVisualExtendedFieldRectItem.class); - } - - /** - * Convert an instance of DocVisualExtendedFieldRectItem to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java deleted file mode 100644 index ec14dd05..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfid.java +++ /dev/null @@ -1,320 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.math.BigDecimal; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** - * Structure and serves for storing information from one text data field. Variant with field logical - * type and RFID data. - */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class DocVisualExtendedFieldRfid extends DocVisualExtendedField { - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G = "RFID_OriginDG"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G) - @javax.annotation.Nonnull - private RfidDataGroupTypeTag rfIDOriginDG; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG = "RFID_OriginDGTag"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG) - @javax.annotation.Nullable - private Integer rfIDOriginDGTag; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY = "RFID_OriginTagEntry"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY) - @javax.annotation.Nonnull - private BigDecimal rfIDOriginTagEntry; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW = "RFID_OriginEntryView"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW) - @javax.annotation.Nullable - private Integer rfIDOriginEntryView; - - public DocVisualExtendedFieldRfid() {} - - public DocVisualExtendedFieldRfid rfIDOriginDG( - @javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; - return this; - } - - /** - * Get rfIDOriginDG - * - * @return rfIDOriginDG - */ - @javax.annotation.Nonnull - public RfidDataGroupTypeTag getRfIDOriginDG() { - return rfIDOriginDG; - } - - public void setRfIDOriginDG(@javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; - } - - public DocVisualExtendedFieldRfid rfIDOriginDGTag( - @javax.annotation.Nullable Integer rfIDOriginDGTag) { - this.rfIDOriginDGTag = rfIDOriginDGTag; - return this; - } - - /** - * Get rfIDOriginDGTag - * - * @return rfIDOriginDGTag - */ - @javax.annotation.Nullable - public Integer getRfIDOriginDGTag() { - return rfIDOriginDGTag; - } - - public void setRfIDOriginDGTag(@javax.annotation.Nullable Integer rfIDOriginDGTag) { - this.rfIDOriginDGTag = rfIDOriginDGTag; - } - - public DocVisualExtendedFieldRfid rfIDOriginTagEntry( - @javax.annotation.Nonnull BigDecimal rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; - return this; - } - - /** - * Record index of the text field source in the data group - * - * @return rfIDOriginTagEntry - */ - @javax.annotation.Nonnull - public BigDecimal getRfIDOriginTagEntry() { - return rfIDOriginTagEntry; - } - - public void setRfIDOriginTagEntry(@javax.annotation.Nonnull BigDecimal rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; - } - - public DocVisualExtendedFieldRfid rfIDOriginEntryView( - @javax.annotation.Nullable Integer rfIDOriginEntryView) { - this.rfIDOriginEntryView = rfIDOriginEntryView; - return this; - } - - /** - * Get rfIDOriginEntryView - * - * @return rfIDOriginEntryView - */ - @javax.annotation.Nullable - public Integer getRfIDOriginEntryView() { - return rfIDOriginEntryView; - } - - public void setRfIDOriginEntryView(@javax.annotation.Nullable Integer rfIDOriginEntryView) { - this.rfIDOriginEntryView = rfIDOriginEntryView; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - DocVisualExtendedFieldRfid docVisualExtendedFieldRfid = (DocVisualExtendedFieldRfid) o; - return Objects.equals(this.rfIDOriginDG, docVisualExtendedFieldRfid.rfIDOriginDG) - && Objects.equals(this.rfIDOriginDGTag, docVisualExtendedFieldRfid.rfIDOriginDGTag) - && Objects.equals(this.rfIDOriginTagEntry, docVisualExtendedFieldRfid.rfIDOriginTagEntry) - && Objects.equals(this.rfIDOriginEntryView, docVisualExtendedFieldRfid.rfIDOriginEntryView) - && super.equals(o); - } - - @Override - public int hashCode() { - return Objects.hash( - rfIDOriginDG, rfIDOriginDGTag, rfIDOriginTagEntry, rfIDOriginEntryView, super.hashCode()); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class DocVisualExtendedFieldRfid {\n"); - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - sb.append(" rfIDOriginDG: ").append(toIndentedString(rfIDOriginDG)).append("\n"); - sb.append(" rfIDOriginDGTag: ").append(toIndentedString(rfIDOriginDGTag)).append("\n"); - sb.append(" rfIDOriginTagEntry: ").append(toIndentedString(rfIDOriginTagEntry)).append("\n"); - sb.append(" rfIDOriginEntryView: ") - .append(toIndentedString(rfIDOriginEntryView)) - .append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("FieldType"); - openapiFields.add("wFieldType"); - openapiFields.add("FieldName"); - openapiFields.add("StringsCount"); - openapiFields.add("StringsResult"); - openapiFields.add("Buf_Length"); - openapiFields.add("Buf_Text"); - openapiFields.add("FieldMask"); - openapiFields.add("Validity"); - openapiFields.add("InComparison"); - openapiFields.add("wLCID"); - openapiFields.add("Reserved2"); - openapiFields.add("Reserved3"); - openapiFields.add("RFID_OriginDG"); - openapiFields.add("RFID_OriginDGTag"); - openapiFields.add("RFID_OriginTagEntry"); - openapiFields.add("RFID_OriginEntryView"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("RFID_OriginDG"); - openapiRequiredFields.add("RFID_OriginTagEntry"); - openapiRequiredFields.add("FieldType"); - openapiRequiredFields.add("wFieldType"); - openapiRequiredFields.add("FieldName"); - openapiRequiredFields.add("StringsCount"); - openapiRequiredFields.add("StringsResult"); - openapiRequiredFields.add("Buf_Length"); - openapiRequiredFields.add("Buf_Text"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to DocVisualExtendedFieldRfid - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!DocVisualExtendedFieldRfid.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in DocVisualExtendedFieldRfid is not found in the empty JSON string", - DocVisualExtendedFieldRfid.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!DocVisualExtendedFieldRfid.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the `DocVisualExtendedFieldRfid` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : DocVisualExtendedFieldRfid.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - // validate the required field `RFID_OriginDG` - RfidDataGroupTypeTag.validateJsonElement(jsonObj.get("RFID_OriginDG")); - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!DocVisualExtendedFieldRfid.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'DocVisualExtendedFieldRfid' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldRfid.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, DocVisualExtendedFieldRfid value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public DocVisualExtendedFieldRfid read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of DocVisualExtendedFieldRfid given an JSON string - * - * @param jsonString JSON string - * @return An instance of DocVisualExtendedFieldRfid - * @throws IOException if the JSON string is invalid with respect to DocVisualExtendedFieldRfid - */ - public static DocVisualExtendedFieldRfid fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, DocVisualExtendedFieldRfid.class); - } - - /** - * Convert an instance of DocVisualExtendedFieldRfid to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfidItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfidItem.java deleted file mode 100644 index 8b39b17a..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldRfidItem.java +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.math.BigDecimal; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** DocVisualExtendedFieldRfidItem */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class DocVisualExtendedFieldRfidItem { - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G = "RFID_OriginDG"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G) - @javax.annotation.Nonnull - private RfidDataGroupTypeTag rfIDOriginDG; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG = "RFID_OriginDGTag"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG) - @javax.annotation.Nullable - private Integer rfIDOriginDGTag; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY = "RFID_OriginTagEntry"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY) - @javax.annotation.Nonnull - private BigDecimal rfIDOriginTagEntry; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW = "RFID_OriginEntryView"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW) - @javax.annotation.Nullable - private Integer rfIDOriginEntryView; - - public DocVisualExtendedFieldRfidItem() {} - - public DocVisualExtendedFieldRfidItem rfIDOriginDG( - @javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; - return this; - } - - /** - * Get rfIDOriginDG - * - * @return rfIDOriginDG - */ - @javax.annotation.Nonnull - public RfidDataGroupTypeTag getRfIDOriginDG() { - return rfIDOriginDG; - } - - public void setRfIDOriginDG(@javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; - } - - public DocVisualExtendedFieldRfidItem rfIDOriginDGTag( - @javax.annotation.Nullable Integer rfIDOriginDGTag) { - this.rfIDOriginDGTag = rfIDOriginDGTag; - return this; - } - - /** - * Get rfIDOriginDGTag - * - * @return rfIDOriginDGTag - */ - @javax.annotation.Nullable - public Integer getRfIDOriginDGTag() { - return rfIDOriginDGTag; - } - - public void setRfIDOriginDGTag(@javax.annotation.Nullable Integer rfIDOriginDGTag) { - this.rfIDOriginDGTag = rfIDOriginDGTag; - } - - public DocVisualExtendedFieldRfidItem rfIDOriginTagEntry( - @javax.annotation.Nonnull BigDecimal rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; - return this; - } - - /** - * Record index of the text field source in the data group - * - * @return rfIDOriginTagEntry - */ - @javax.annotation.Nonnull - public BigDecimal getRfIDOriginTagEntry() { - return rfIDOriginTagEntry; - } - - public void setRfIDOriginTagEntry(@javax.annotation.Nonnull BigDecimal rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; - } - - public DocVisualExtendedFieldRfidItem rfIDOriginEntryView( - @javax.annotation.Nullable Integer rfIDOriginEntryView) { - this.rfIDOriginEntryView = rfIDOriginEntryView; - return this; - } - - /** - * Get rfIDOriginEntryView - * - * @return rfIDOriginEntryView - */ - @javax.annotation.Nullable - public Integer getRfIDOriginEntryView() { - return rfIDOriginEntryView; - } - - public void setRfIDOriginEntryView(@javax.annotation.Nullable Integer rfIDOriginEntryView) { - this.rfIDOriginEntryView = rfIDOriginEntryView; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - DocVisualExtendedFieldRfidItem docVisualExtendedFieldRfidItem = - (DocVisualExtendedFieldRfidItem) o; - return Objects.equals(this.rfIDOriginDG, docVisualExtendedFieldRfidItem.rfIDOriginDG) - && Objects.equals(this.rfIDOriginDGTag, docVisualExtendedFieldRfidItem.rfIDOriginDGTag) - && Objects.equals( - this.rfIDOriginTagEntry, docVisualExtendedFieldRfidItem.rfIDOriginTagEntry) - && Objects.equals( - this.rfIDOriginEntryView, docVisualExtendedFieldRfidItem.rfIDOriginEntryView); - } - - @Override - public int hashCode() { - return Objects.hash(rfIDOriginDG, rfIDOriginDGTag, rfIDOriginTagEntry, rfIDOriginEntryView); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class DocVisualExtendedFieldRfidItem {\n"); - sb.append(" rfIDOriginDG: ").append(toIndentedString(rfIDOriginDG)).append("\n"); - sb.append(" rfIDOriginDGTag: ").append(toIndentedString(rfIDOriginDGTag)).append("\n"); - sb.append(" rfIDOriginTagEntry: ").append(toIndentedString(rfIDOriginTagEntry)).append("\n"); - sb.append(" rfIDOriginEntryView: ") - .append(toIndentedString(rfIDOriginEntryView)) - .append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("RFID_OriginDG"); - openapiFields.add("RFID_OriginDGTag"); - openapiFields.add("RFID_OriginTagEntry"); - openapiFields.add("RFID_OriginEntryView"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("RFID_OriginDG"); - openapiRequiredFields.add("RFID_OriginTagEntry"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to - * DocVisualExtendedFieldRfidItem - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!DocVisualExtendedFieldRfidItem.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in DocVisualExtendedFieldRfidItem is not found in the empty JSON string", - DocVisualExtendedFieldRfidItem.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!DocVisualExtendedFieldRfidItem.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the `DocVisualExtendedFieldRfidItem` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : DocVisualExtendedFieldRfidItem.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - // validate the required field `RFID_OriginDG` - RfidDataGroupTypeTag.validateJsonElement(jsonObj.get("RFID_OriginDG")); - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!DocVisualExtendedFieldRfidItem.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'DocVisualExtendedFieldRfidItem' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldRfidItem.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, DocVisualExtendedFieldRfidItem value) - throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public DocVisualExtendedFieldRfidItem read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of DocVisualExtendedFieldRfidItem given an JSON string - * - * @param jsonString JSON string - * @return An instance of DocVisualExtendedFieldRfidItem - * @throws IOException if the JSON string is invalid with respect to - * DocVisualExtendedFieldRfidItem - */ - public static DocVisualExtendedFieldRfidItem fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, DocVisualExtendedFieldRfidItem.class); - } - - /** - * Convert an instance of DocVisualExtendedFieldRfidItem to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java deleted file mode 100644 index b2380d32..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoPArrayFieldsInner.java +++ /dev/null @@ -1,281 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; - -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class DocVisualExtendedInfoPArrayFieldsInner extends AbstractOpenApiSchema { - private static final Logger log = - Logger.getLogger(DocVisualExtendedInfoPArrayFieldsInner.class.getName()); - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!DocVisualExtendedInfoPArrayFieldsInner.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'DocVisualExtendedInfoPArrayFieldsInner' and its - // subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter adapterDocVisualExtendedFieldRect = - gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldRect.class)); - final TypeAdapter adapterDocVisualExtendedFieldRfid = - gson.getDelegateAdapter(this, TypeToken.get(DocVisualExtendedFieldRfid.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, DocVisualExtendedInfoPArrayFieldsInner value) - throws IOException { - if (value == null || value.getActualInstance() == null) { - elementAdapter.write(out, null); - return; - } - - // check if the actual instance is of the type `DocVisualExtendedFieldRect` - if (value.getActualInstance() instanceof DocVisualExtendedFieldRect) { - JsonElement element = - adapterDocVisualExtendedFieldRect.toJsonTree( - (DocVisualExtendedFieldRect) value.getActualInstance()); - elementAdapter.write(out, element); - return; - } - // check if the actual instance is of the type `DocVisualExtendedFieldRfid` - if (value.getActualInstance() instanceof DocVisualExtendedFieldRfid) { - JsonElement element = - adapterDocVisualExtendedFieldRfid.toJsonTree( - (DocVisualExtendedFieldRfid) value.getActualInstance()); - elementAdapter.write(out, element); - return; - } - throw new IOException( - "Failed to serialize as the type doesn't match oneOf schemas: DocVisualExtendedFieldRect, DocVisualExtendedFieldRfid"); - } - - @Override - public DocVisualExtendedInfoPArrayFieldsInner read(JsonReader in) throws IOException { - Object deserialized = null; - JsonElement jsonElement = elementAdapter.read(in); - - int match = 0; - ArrayList errorMessages = new ArrayList<>(); - TypeAdapter actualAdapter = elementAdapter; - - // deserialize DocVisualExtendedFieldRect - try { - // validate the JSON object to see if any exception is thrown - DocVisualExtendedFieldRect.validateJsonElement(jsonElement); - actualAdapter = adapterDocVisualExtendedFieldRect; - match++; - log.log(Level.FINER, "Input data matches schema 'DocVisualExtendedFieldRect'"); - } catch (Exception e) { - // deserialization failed, continue - errorMessages.add( - String.format( - "Deserialization for DocVisualExtendedFieldRect failed with `%s`.", - e.getMessage())); - log.log( - Level.FINER, - "Input data does not match schema 'DocVisualExtendedFieldRect'", - e); - } - // deserialize DocVisualExtendedFieldRfid - try { - // validate the JSON object to see if any exception is thrown - DocVisualExtendedFieldRfid.validateJsonElement(jsonElement); - actualAdapter = adapterDocVisualExtendedFieldRfid; - match++; - log.log(Level.FINER, "Input data matches schema 'DocVisualExtendedFieldRfid'"); - } catch (Exception e) { - // deserialization failed, continue - errorMessages.add( - String.format( - "Deserialization for DocVisualExtendedFieldRfid failed with `%s`.", - e.getMessage())); - log.log( - Level.FINER, - "Input data does not match schema 'DocVisualExtendedFieldRfid'", - e); - } - - if (match == 1) { - DocVisualExtendedInfoPArrayFieldsInner ret = - new DocVisualExtendedInfoPArrayFieldsInner(); - ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); - return ret; - } - - throw new IOException( - String.format( - "Failed deserialization for DocVisualExtendedInfoPArrayFieldsInner: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", - match, errorMessages, jsonElement.toString())); - } - }.nullSafe(); - } - } - - // store a list of schema names defined in oneOf - public static final Map> schemas = new HashMap>(); - - public DocVisualExtendedInfoPArrayFieldsInner() { - super("oneOf", Boolean.FALSE); - } - - public DocVisualExtendedInfoPArrayFieldsInner(Object o) { - super("oneOf", Boolean.FALSE); - setActualInstance(o); - } - - static { - schemas.put("DocVisualExtendedFieldRect", DocVisualExtendedFieldRect.class); - schemas.put("DocVisualExtendedFieldRfid", DocVisualExtendedFieldRfid.class); - } - - @Override - public Map> getSchemas() { - return DocVisualExtendedInfoPArrayFieldsInner.schemas; - } - - /** - * Set the instance that matches the oneOf child schema, check the instance parameter is valid - * against the oneOf child schemas: DocVisualExtendedFieldRect, DocVisualExtendedFieldRfid - * - *

It could be an instance of the 'oneOf' schemas. - */ - @Override - public void setActualInstance(Object instance) { - if (instance instanceof DocVisualExtendedFieldRect) { - super.setActualInstance(instance); - return; - } - - if (instance instanceof DocVisualExtendedFieldRfid) { - super.setActualInstance(instance); - return; - } - - throw new RuntimeException( - "Invalid instance type. Must be DocVisualExtendedFieldRect, DocVisualExtendedFieldRfid"); - } - - /** - * Get the actual instance, which can be the following: DocVisualExtendedFieldRect, - * DocVisualExtendedFieldRfid - * - * @return The actual instance (DocVisualExtendedFieldRect, DocVisualExtendedFieldRfid) - */ - @SuppressWarnings("unchecked") - @Override - public Object getActualInstance() { - return super.getActualInstance(); - } - - /** - * Get the actual instance of `DocVisualExtendedFieldRect`. If the actual instance is not - * `DocVisualExtendedFieldRect`, the ClassCastException will be thrown. - * - * @return The actual instance of `DocVisualExtendedFieldRect` - * @throws ClassCastException if the instance is not `DocVisualExtendedFieldRect` - */ - public DocVisualExtendedFieldRect getDocVisualExtendedFieldRect() throws ClassCastException { - return (DocVisualExtendedFieldRect) super.getActualInstance(); - } - - /** - * Get the actual instance of `DocVisualExtendedFieldRfid`. If the actual instance is not - * `DocVisualExtendedFieldRfid`, the ClassCastException will be thrown. - * - * @return The actual instance of `DocVisualExtendedFieldRfid` - * @throws ClassCastException if the instance is not `DocVisualExtendedFieldRfid` - */ - public DocVisualExtendedFieldRfid getDocVisualExtendedFieldRfid() throws ClassCastException { - return (DocVisualExtendedFieldRfid) super.getActualInstance(); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to - * DocVisualExtendedInfoPArrayFieldsInner - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - // validate oneOf schemas one by one - int validCount = 0; - ArrayList errorMessages = new ArrayList<>(); - // validate the json string with DocVisualExtendedFieldRect - try { - DocVisualExtendedFieldRect.validateJsonElement(jsonElement); - validCount++; - } catch (Exception e) { - errorMessages.add( - String.format( - "Deserialization for DocVisualExtendedFieldRect failed with `%s`.", e.getMessage())); - // continue to the next one - } - // validate the json string with DocVisualExtendedFieldRfid - try { - DocVisualExtendedFieldRfid.validateJsonElement(jsonElement); - validCount++; - } catch (Exception e) { - errorMessages.add( - String.format( - "Deserialization for DocVisualExtendedFieldRfid failed with `%s`.", e.getMessage())); - // continue to the next one - } - if (validCount != 1) { - throw new IOException( - String.format( - "The JSON string is invalid for DocVisualExtendedInfoPArrayFieldsInner with oneOf schemas: DocVisualExtendedFieldRect, DocVisualExtendedFieldRfid. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", - validCount, errorMessages, jsonElement.toString())); - } - } - - /** - * Create an instance of DocVisualExtendedInfoPArrayFieldsInner given an JSON string - * - * @param jsonString JSON string - * @return An instance of DocVisualExtendedInfoPArrayFieldsInner - * @throws IOException if the JSON string is invalid with respect to - * DocVisualExtendedInfoPArrayFieldsInner - */ - public static DocVisualExtendedInfoPArrayFieldsInner fromJson(String jsonString) - throws IOException { - return JSON.getGson().fromJson(jsonString, DocVisualExtendedInfoPArrayFieldsInner.class); - } - - /** - * Convert an instance of DocVisualExtendedInfoPArrayFieldsInner to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java deleted file mode 100644 index 0c295660..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRect.java +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** Information about one graphic field, which is a rectangle */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class GraphicFieldRect extends GraphicField { - public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; - - @SerializedName(SERIALIZED_NAME_FIELD_RECT) - @javax.annotation.Nonnull - private RectangleCoordinates fieldRect; - - public GraphicFieldRect() {} - - public GraphicFieldRect fieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; - return this; - } - - /** - * Get fieldRect - * - * @return fieldRect - */ - @javax.annotation.Nonnull - public RectangleCoordinates getFieldRect() { - return fieldRect; - } - - public void setFieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GraphicFieldRect graphicFieldRect = (GraphicFieldRect) o; - return Objects.equals(this.fieldRect, graphicFieldRect.fieldRect) && super.equals(o); - } - - @Override - public int hashCode() { - return Objects.hash(fieldRect, super.hashCode()); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GraphicFieldRect {\n"); - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("FieldType"); - openapiFields.add("FieldName"); - openapiFields.add("image"); - openapiFields.add("FieldRect"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("FieldRect"); - openapiRequiredFields.add("FieldType"); - openapiRequiredFields.add("FieldName"); - openapiRequiredFields.add("image"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to GraphicFieldRect - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!GraphicFieldRect.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in GraphicFieldRect is not found in the empty JSON string", - GraphicFieldRect.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!GraphicFieldRect.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the `GraphicFieldRect` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : GraphicFieldRect.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - // validate the required field `FieldRect` - RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!GraphicFieldRect.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'GraphicFieldRect' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldRect.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, GraphicFieldRect value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public GraphicFieldRect read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of GraphicFieldRect given an JSON string - * - * @param jsonString JSON string - * @return An instance of GraphicFieldRect - * @throws IOException if the JSON string is invalid with respect to GraphicFieldRect - */ - public static GraphicFieldRect fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, GraphicFieldRect.class); - } - - /** - * Convert an instance of GraphicFieldRect to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRectItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRectItem.java deleted file mode 100644 index ab9ae092..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRectItem.java +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** GraphicFieldRectItem */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class GraphicFieldRectItem { - public static final String SERIALIZED_NAME_FIELD_RECT = "FieldRect"; - - @SerializedName(SERIALIZED_NAME_FIELD_RECT) - @javax.annotation.Nonnull - private RectangleCoordinates fieldRect; - - public GraphicFieldRectItem() {} - - public GraphicFieldRectItem fieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; - return this; - } - - /** - * Get fieldRect - * - * @return fieldRect - */ - @javax.annotation.Nonnull - public RectangleCoordinates getFieldRect() { - return fieldRect; - } - - public void setFieldRect(@javax.annotation.Nonnull RectangleCoordinates fieldRect) { - this.fieldRect = fieldRect; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GraphicFieldRectItem graphicFieldRectItem = (GraphicFieldRectItem) o; - return Objects.equals(this.fieldRect, graphicFieldRectItem.fieldRect); - } - - @Override - public int hashCode() { - return Objects.hash(fieldRect); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GraphicFieldRectItem {\n"); - sb.append(" fieldRect: ").append(toIndentedString(fieldRect)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("FieldRect"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("FieldRect"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to GraphicFieldRectItem - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!GraphicFieldRectItem.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in GraphicFieldRectItem is not found in the empty JSON string", - GraphicFieldRectItem.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!GraphicFieldRectItem.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the `GraphicFieldRectItem` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : GraphicFieldRectItem.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - // validate the required field `FieldRect` - RectangleCoordinates.validateJsonElement(jsonObj.get("FieldRect")); - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!GraphicFieldRectItem.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'GraphicFieldRectItem' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldRectItem.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, GraphicFieldRectItem value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public GraphicFieldRectItem read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of GraphicFieldRectItem given an JSON string - * - * @param jsonString JSON string - * @return An instance of GraphicFieldRectItem - * @throws IOException if the JSON string is invalid with respect to GraphicFieldRectItem - */ - public static GraphicFieldRectItem fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, GraphicFieldRectItem.class); - } - - /** - * Convert an instance of GraphicFieldRectItem to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java deleted file mode 100644 index ce7702e5..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfid.java +++ /dev/null @@ -1,303 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** Information about one graphic field, which is a RFID */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class GraphicFieldRfid extends GraphicField { - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G = "RFID_OriginDG"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G) - @javax.annotation.Nonnull - private RfidDataGroupTypeTag rfIDOriginDG; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG = "RFID_OriginDGTag"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG) - @javax.annotation.Nonnull - private Integer rfIDOriginDGTag; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY = "RFID_OriginTagEntry"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY) - @javax.annotation.Nonnull - private Integer rfIDOriginTagEntry; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW = "RFID_OriginEntryView"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW) - @javax.annotation.Nonnull - private Integer rfIDOriginEntryView; - - public GraphicFieldRfid() {} - - public GraphicFieldRfid rfIDOriginDG( - @javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; - return this; - } - - /** - * Get rfIDOriginDG - * - * @return rfIDOriginDG - */ - @javax.annotation.Nonnull - public RfidDataGroupTypeTag getRfIDOriginDG() { - return rfIDOriginDG; - } - - public void setRfIDOriginDG(@javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; - } - - public GraphicFieldRfid rfIDOriginDGTag(@javax.annotation.Nonnull Integer rfIDOriginDGTag) { - this.rfIDOriginDGTag = rfIDOriginDGTag; - return this; - } - - /** - * Index of the source record of the image with biometric information in the information data - * group. Only for Result.RFID_GRAPHICS result. - * - * @return rfIDOriginDGTag - */ - @javax.annotation.Nonnull - public Integer getRfIDOriginDGTag() { - return rfIDOriginDGTag; - } - - public void setRfIDOriginDGTag(@javax.annotation.Nonnull Integer rfIDOriginDGTag) { - this.rfIDOriginDGTag = rfIDOriginDGTag; - } - - public GraphicFieldRfid rfIDOriginTagEntry(@javax.annotation.Nonnull Integer rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; - return this; - } - - /** - * Index of the template in the record with biometric data. Only for Result.RFID_GRAPHICS result. - * - * @return rfIDOriginTagEntry - */ - @javax.annotation.Nonnull - public Integer getRfIDOriginTagEntry() { - return rfIDOriginTagEntry; - } - - public void setRfIDOriginTagEntry(@javax.annotation.Nonnull Integer rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; - } - - public GraphicFieldRfid rfIDOriginEntryView( - @javax.annotation.Nonnull Integer rfIDOriginEntryView) { - this.rfIDOriginEntryView = rfIDOriginEntryView; - return this; - } - - /** - * Index of the variant of the biometric data template. Only for Result.RFID_GRAPHICS result. - * - * @return rfIDOriginEntryView - */ - @javax.annotation.Nonnull - public Integer getRfIDOriginEntryView() { - return rfIDOriginEntryView; - } - - public void setRfIDOriginEntryView(@javax.annotation.Nonnull Integer rfIDOriginEntryView) { - this.rfIDOriginEntryView = rfIDOriginEntryView; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GraphicFieldRfid graphicFieldRfid = (GraphicFieldRfid) o; - return Objects.equals(this.rfIDOriginDG, graphicFieldRfid.rfIDOriginDG) - && Objects.equals(this.rfIDOriginDGTag, graphicFieldRfid.rfIDOriginDGTag) - && Objects.equals(this.rfIDOriginTagEntry, graphicFieldRfid.rfIDOriginTagEntry) - && Objects.equals(this.rfIDOriginEntryView, graphicFieldRfid.rfIDOriginEntryView) - && super.equals(o); - } - - @Override - public int hashCode() { - return Objects.hash( - rfIDOriginDG, rfIDOriginDGTag, rfIDOriginTagEntry, rfIDOriginEntryView, super.hashCode()); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GraphicFieldRfid {\n"); - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - sb.append(" rfIDOriginDG: ").append(toIndentedString(rfIDOriginDG)).append("\n"); - sb.append(" rfIDOriginDGTag: ").append(toIndentedString(rfIDOriginDGTag)).append("\n"); - sb.append(" rfIDOriginTagEntry: ").append(toIndentedString(rfIDOriginTagEntry)).append("\n"); - sb.append(" rfIDOriginEntryView: ") - .append(toIndentedString(rfIDOriginEntryView)) - .append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("FieldType"); - openapiFields.add("FieldName"); - openapiFields.add("image"); - openapiFields.add("RFID_OriginDG"); - openapiFields.add("RFID_OriginDGTag"); - openapiFields.add("RFID_OriginTagEntry"); - openapiFields.add("RFID_OriginEntryView"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("RFID_OriginDG"); - openapiRequiredFields.add("RFID_OriginDGTag"); - openapiRequiredFields.add("RFID_OriginTagEntry"); - openapiRequiredFields.add("RFID_OriginEntryView"); - openapiRequiredFields.add("FieldType"); - openapiRequiredFields.add("FieldName"); - openapiRequiredFields.add("image"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to GraphicFieldRfid - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!GraphicFieldRfid.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in GraphicFieldRfid is not found in the empty JSON string", - GraphicFieldRfid.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!GraphicFieldRfid.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the `GraphicFieldRfid` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : GraphicFieldRfid.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - // validate the required field `RFID_OriginDG` - RfidDataGroupTypeTag.validateJsonElement(jsonObj.get("RFID_OriginDG")); - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!GraphicFieldRfid.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'GraphicFieldRfid' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldRfid.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, GraphicFieldRfid value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public GraphicFieldRfid read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of GraphicFieldRfid given an JSON string - * - * @param jsonString JSON string - * @return An instance of GraphicFieldRfid - * @throws IOException if the JSON string is invalid with respect to GraphicFieldRfid - */ - public static GraphicFieldRfid fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, GraphicFieldRfid.class); - } - - /** - * Convert an instance of GraphicFieldRfid to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfidItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfidItem.java deleted file mode 100644 index 8c1a07a1..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldRfidItem.java +++ /dev/null @@ -1,295 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** GraphicFieldRfidItem */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class GraphicFieldRfidItem { - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G = "RFID_OriginDG"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G) - @javax.annotation.Nonnull - private RfidDataGroupTypeTag rfIDOriginDG; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG = "RFID_OriginDGTag"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_D_G_TAG) - @javax.annotation.Nonnull - private Integer rfIDOriginDGTag; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY = "RFID_OriginTagEntry"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_TAG_ENTRY) - @javax.annotation.Nonnull - private Integer rfIDOriginTagEntry; - - public static final String SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW = "RFID_OriginEntryView"; - - @SerializedName(SERIALIZED_NAME_RF_I_D_ORIGIN_ENTRY_VIEW) - @javax.annotation.Nonnull - private Integer rfIDOriginEntryView; - - public GraphicFieldRfidItem() {} - - public GraphicFieldRfidItem rfIDOriginDG( - @javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; - return this; - } - - /** - * Get rfIDOriginDG - * - * @return rfIDOriginDG - */ - @javax.annotation.Nonnull - public RfidDataGroupTypeTag getRfIDOriginDG() { - return rfIDOriginDG; - } - - public void setRfIDOriginDG(@javax.annotation.Nonnull RfidDataGroupTypeTag rfIDOriginDG) { - this.rfIDOriginDG = rfIDOriginDG; - } - - public GraphicFieldRfidItem rfIDOriginDGTag(@javax.annotation.Nonnull Integer rfIDOriginDGTag) { - this.rfIDOriginDGTag = rfIDOriginDGTag; - return this; - } - - /** - * Index of the source record of the image with biometric information in the information data - * group. Only for Result.RFID_GRAPHICS result. - * - * @return rfIDOriginDGTag - */ - @javax.annotation.Nonnull - public Integer getRfIDOriginDGTag() { - return rfIDOriginDGTag; - } - - public void setRfIDOriginDGTag(@javax.annotation.Nonnull Integer rfIDOriginDGTag) { - this.rfIDOriginDGTag = rfIDOriginDGTag; - } - - public GraphicFieldRfidItem rfIDOriginTagEntry( - @javax.annotation.Nonnull Integer rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; - return this; - } - - /** - * Index of the template in the record with biometric data. Only for Result.RFID_GRAPHICS result. - * - * @return rfIDOriginTagEntry - */ - @javax.annotation.Nonnull - public Integer getRfIDOriginTagEntry() { - return rfIDOriginTagEntry; - } - - public void setRfIDOriginTagEntry(@javax.annotation.Nonnull Integer rfIDOriginTagEntry) { - this.rfIDOriginTagEntry = rfIDOriginTagEntry; - } - - public GraphicFieldRfidItem rfIDOriginEntryView( - @javax.annotation.Nonnull Integer rfIDOriginEntryView) { - this.rfIDOriginEntryView = rfIDOriginEntryView; - return this; - } - - /** - * Index of the variant of the biometric data template. Only for Result.RFID_GRAPHICS result. - * - * @return rfIDOriginEntryView - */ - @javax.annotation.Nonnull - public Integer getRfIDOriginEntryView() { - return rfIDOriginEntryView; - } - - public void setRfIDOriginEntryView(@javax.annotation.Nonnull Integer rfIDOriginEntryView) { - this.rfIDOriginEntryView = rfIDOriginEntryView; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GraphicFieldRfidItem graphicFieldRfidItem = (GraphicFieldRfidItem) o; - return Objects.equals(this.rfIDOriginDG, graphicFieldRfidItem.rfIDOriginDG) - && Objects.equals(this.rfIDOriginDGTag, graphicFieldRfidItem.rfIDOriginDGTag) - && Objects.equals(this.rfIDOriginTagEntry, graphicFieldRfidItem.rfIDOriginTagEntry) - && Objects.equals(this.rfIDOriginEntryView, graphicFieldRfidItem.rfIDOriginEntryView); - } - - @Override - public int hashCode() { - return Objects.hash(rfIDOriginDG, rfIDOriginDGTag, rfIDOriginTagEntry, rfIDOriginEntryView); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GraphicFieldRfidItem {\n"); - sb.append(" rfIDOriginDG: ").append(toIndentedString(rfIDOriginDG)).append("\n"); - sb.append(" rfIDOriginDGTag: ").append(toIndentedString(rfIDOriginDGTag)).append("\n"); - sb.append(" rfIDOriginTagEntry: ").append(toIndentedString(rfIDOriginTagEntry)).append("\n"); - sb.append(" rfIDOriginEntryView: ") - .append(toIndentedString(rfIDOriginEntryView)) - .append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("RFID_OriginDG"); - openapiFields.add("RFID_OriginDGTag"); - openapiFields.add("RFID_OriginTagEntry"); - openapiFields.add("RFID_OriginEntryView"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("RFID_OriginDG"); - openapiRequiredFields.add("RFID_OriginDGTag"); - openapiRequiredFields.add("RFID_OriginTagEntry"); - openapiRequiredFields.add("RFID_OriginEntryView"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to GraphicFieldRfidItem - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!GraphicFieldRfidItem.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in GraphicFieldRfidItem is not found in the empty JSON string", - GraphicFieldRfidItem.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!GraphicFieldRfidItem.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the `GraphicFieldRfidItem` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : GraphicFieldRfidItem.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - // validate the required field `RFID_OriginDG` - RfidDataGroupTypeTag.validateJsonElement(jsonObj.get("RFID_OriginDG")); - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!GraphicFieldRfidItem.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'GraphicFieldRfidItem' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldRfidItem.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, GraphicFieldRfidItem value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public GraphicFieldRfidItem read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of GraphicFieldRfidItem given an JSON string - * - * @param jsonString JSON string - * @return An instance of GraphicFieldRfidItem - * @throws IOException if the JSON string is invalid with respect to GraphicFieldRfidItem - */ - public static GraphicFieldRfidItem fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, GraphicFieldRfidItem.class); - } - - /** - * Convert an instance of GraphicFieldRfidItem to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java deleted file mode 100644 index 223103cf..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsListPArrayFieldsInner.java +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; - -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class GraphicFieldsListPArrayFieldsInner extends AbstractOpenApiSchema { - private static final Logger log = - Logger.getLogger(GraphicFieldsListPArrayFieldsInner.class.getName()); - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!GraphicFieldsListPArrayFieldsInner.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'GraphicFieldsListPArrayFieldsInner' and its - // subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter adapterGraphicFieldRect = - gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldRect.class)); - final TypeAdapter adapterGraphicFieldRfid = - gson.getDelegateAdapter(this, TypeToken.get(GraphicFieldRfid.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, GraphicFieldsListPArrayFieldsInner value) - throws IOException { - if (value == null || value.getActualInstance() == null) { - elementAdapter.write(out, null); - return; - } - - // check if the actual instance is of the type `GraphicFieldRect` - if (value.getActualInstance() instanceof GraphicFieldRect) { - JsonElement element = - adapterGraphicFieldRect.toJsonTree( - (GraphicFieldRect) value.getActualInstance()); - elementAdapter.write(out, element); - return; - } - // check if the actual instance is of the type `GraphicFieldRfid` - if (value.getActualInstance() instanceof GraphicFieldRfid) { - JsonElement element = - adapterGraphicFieldRfid.toJsonTree( - (GraphicFieldRfid) value.getActualInstance()); - elementAdapter.write(out, element); - return; - } - throw new IOException( - "Failed to serialize as the type doesn't match oneOf schemas: GraphicFieldRect, GraphicFieldRfid"); - } - - @Override - public GraphicFieldsListPArrayFieldsInner read(JsonReader in) throws IOException { - Object deserialized = null; - JsonElement jsonElement = elementAdapter.read(in); - - int match = 0; - ArrayList errorMessages = new ArrayList<>(); - TypeAdapter actualAdapter = elementAdapter; - - // deserialize GraphicFieldRect - try { - // validate the JSON object to see if any exception is thrown - GraphicFieldRect.validateJsonElement(jsonElement); - actualAdapter = adapterGraphicFieldRect; - match++; - log.log(Level.FINER, "Input data matches schema 'GraphicFieldRect'"); - } catch (Exception e) { - // deserialization failed, continue - errorMessages.add( - String.format( - "Deserialization for GraphicFieldRect failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'GraphicFieldRect'", e); - } - // deserialize GraphicFieldRfid - try { - // validate the JSON object to see if any exception is thrown - GraphicFieldRfid.validateJsonElement(jsonElement); - actualAdapter = adapterGraphicFieldRfid; - match++; - log.log(Level.FINER, "Input data matches schema 'GraphicFieldRfid'"); - } catch (Exception e) { - // deserialization failed, continue - errorMessages.add( - String.format( - "Deserialization for GraphicFieldRfid failed with `%s`.", e.getMessage())); - log.log(Level.FINER, "Input data does not match schema 'GraphicFieldRfid'", e); - } - - if (match == 1) { - GraphicFieldsListPArrayFieldsInner ret = new GraphicFieldsListPArrayFieldsInner(); - ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); - return ret; - } - - throw new IOException( - String.format( - "Failed deserialization for GraphicFieldsListPArrayFieldsInner: %d classes match result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", - match, errorMessages, jsonElement.toString())); - } - }.nullSafe(); - } - } - - // store a list of schema names defined in oneOf - public static final Map> schemas = new HashMap>(); - - public GraphicFieldsListPArrayFieldsInner() { - super("oneOf", Boolean.FALSE); - } - - public GraphicFieldsListPArrayFieldsInner(Object o) { - super("oneOf", Boolean.FALSE); - setActualInstance(o); - } - - static { - schemas.put("GraphicFieldRect", GraphicFieldRect.class); - schemas.put("GraphicFieldRfid", GraphicFieldRfid.class); - } - - @Override - public Map> getSchemas() { - return GraphicFieldsListPArrayFieldsInner.schemas; - } - - /** - * Set the instance that matches the oneOf child schema, check the instance parameter is valid - * against the oneOf child schemas: GraphicFieldRect, GraphicFieldRfid - * - *

It could be an instance of the 'oneOf' schemas. - */ - @Override - public void setActualInstance(Object instance) { - if (instance instanceof GraphicFieldRect) { - super.setActualInstance(instance); - return; - } - - if (instance instanceof GraphicFieldRfid) { - super.setActualInstance(instance); - return; - } - - throw new RuntimeException("Invalid instance type. Must be GraphicFieldRect, GraphicFieldRfid"); - } - - /** - * Get the actual instance, which can be the following: GraphicFieldRect, GraphicFieldRfid - * - * @return The actual instance (GraphicFieldRect, GraphicFieldRfid) - */ - @SuppressWarnings("unchecked") - @Override - public Object getActualInstance() { - return super.getActualInstance(); - } - - /** - * Get the actual instance of `GraphicFieldRect`. If the actual instance is not - * `GraphicFieldRect`, the ClassCastException will be thrown. - * - * @return The actual instance of `GraphicFieldRect` - * @throws ClassCastException if the instance is not `GraphicFieldRect` - */ - public GraphicFieldRect getGraphicFieldRect() throws ClassCastException { - return (GraphicFieldRect) super.getActualInstance(); - } - - /** - * Get the actual instance of `GraphicFieldRfid`. If the actual instance is not - * `GraphicFieldRfid`, the ClassCastException will be thrown. - * - * @return The actual instance of `GraphicFieldRfid` - * @throws ClassCastException if the instance is not `GraphicFieldRfid` - */ - public GraphicFieldRfid getGraphicFieldRfid() throws ClassCastException { - return (GraphicFieldRfid) super.getActualInstance(); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to - * GraphicFieldsListPArrayFieldsInner - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - // validate oneOf schemas one by one - int validCount = 0; - ArrayList errorMessages = new ArrayList<>(); - // validate the json string with GraphicFieldRect - try { - GraphicFieldRect.validateJsonElement(jsonElement); - validCount++; - } catch (Exception e) { - errorMessages.add( - String.format("Deserialization for GraphicFieldRect failed with `%s`.", e.getMessage())); - // continue to the next one - } - // validate the json string with GraphicFieldRfid - try { - GraphicFieldRfid.validateJsonElement(jsonElement); - validCount++; - } catch (Exception e) { - errorMessages.add( - String.format("Deserialization for GraphicFieldRfid failed with `%s`.", e.getMessage())); - // continue to the next one - } - if (validCount != 1) { - throw new IOException( - String.format( - "The JSON string is invalid for GraphicFieldsListPArrayFieldsInner with oneOf schemas: GraphicFieldRect, GraphicFieldRfid. %d class(es) match the result, expected 1. Detailed failure message for oneOf schemas: %s. JSON: %s", - validCount, errorMessages, jsonElement.toString())); - } - } - - /** - * Create an instance of GraphicFieldsListPArrayFieldsInner given an JSON string - * - * @param jsonString JSON string - * @return An instance of GraphicFieldsListPArrayFieldsInner - * @throws IOException if the JSON string is invalid with respect to - * GraphicFieldsListPArrayFieldsInner - */ - public static GraphicFieldsListPArrayFieldsInner fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, GraphicFieldsListPArrayFieldsInner.class); - } - - /** - * Convert an instance of GraphicFieldsListPArrayFieldsInner to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/java-generator-config.json b/java-generator-config.json index 7b3dc3ea..3133f7b6 100755 --- a/java-generator-config.json +++ b/java-generator-config.json @@ -12,9 +12,7 @@ "legacyDiscriminatorBehavior": false, "typeMappings" : { "ContainerListListInner": "ResultItem", - "AuthenticityCheckResultListInner": "AuthenticityCheckResultItem", - "DocVisualExtendedInfoPArrayFieldsInner": "DocVisualExtendedField", - "GraphicFieldsListPArrayFieldsInner": "GraphicField" + "AuthenticityCheckResultListInner": "AuthenticityCheckResultItem" }, "nameMappings": { "List": "list" From dcfc88354108865d9132b8d0147f4ee4a1a265e3 Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Wed, 19 Mar 2025 13:27:18 +0300 Subject: [PATCH 14/19] Update models --- .../webclient/model/FaceApi.java | 2 +- .../webclient/model/LivenessParams.java | 33 +++++++++++++++++-- .../webclient/model/TextFieldType.java | 8 ++++- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java index 08674c3b..f1077d88 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java @@ -260,7 +260,7 @@ public FaceApi childAgeThreshold(@javax.annotation.Nullable Integer childAgeThre } /** - * Minimum age of a child, at which portrait comparison result will be effective. Default: 13. + * The age threshold for the portrait comparison. Default: 13. * * @return childAgeThreshold */ diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java index 6d212068..b3dc790c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java @@ -63,6 +63,12 @@ public class LivenessParams { @javax.annotation.Nullable private Boolean checkBlackAndWhiteCopy; + public static final String SERIALIZED_NAME_CHECK_DYNAPRINT = "checkDynaprint"; + + @SerializedName(SERIALIZED_NAME_CHECK_DYNAPRINT) + @javax.annotation.Nullable + private Boolean checkDynaprint; + public LivenessParams() {} public LivenessParams checkOVI(@javax.annotation.Nullable Boolean checkOVI) { @@ -161,6 +167,25 @@ public void setCheckBlackAndWhiteCopy(@javax.annotation.Nullable Boolean checkBl this.checkBlackAndWhiteCopy = checkBlackAndWhiteCopy; } + public LivenessParams checkDynaprint(@javax.annotation.Nullable Boolean checkDynaprint) { + this.checkDynaprint = checkDynaprint; + return this; + } + + /** + * This parameter is used to enable Dynaprint check + * + * @return checkDynaprint + */ + @javax.annotation.Nullable + public Boolean getCheckDynaprint() { + return checkDynaprint; + } + + public void setCheckDynaprint(@javax.annotation.Nullable Boolean checkDynaprint) { + this.checkDynaprint = checkDynaprint; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -174,12 +199,14 @@ public boolean equals(Object o) { && Objects.equals(this.checkMLI, livenessParams.checkMLI) && Objects.equals(this.checkHolo, livenessParams.checkHolo) && Objects.equals(this.checkED, livenessParams.checkED) - && Objects.equals(this.checkBlackAndWhiteCopy, livenessParams.checkBlackAndWhiteCopy); + && Objects.equals(this.checkBlackAndWhiteCopy, livenessParams.checkBlackAndWhiteCopy) + && Objects.equals(this.checkDynaprint, livenessParams.checkDynaprint); } @Override public int hashCode() { - return Objects.hash(checkOVI, checkMLI, checkHolo, checkED, checkBlackAndWhiteCopy); + return Objects.hash( + checkOVI, checkMLI, checkHolo, checkED, checkBlackAndWhiteCopy, checkDynaprint); } @Override @@ -193,6 +220,7 @@ public String toString() { sb.append(" checkBlackAndWhiteCopy: ") .append(toIndentedString(checkBlackAndWhiteCopy)) .append("\n"); + sb.append(" checkDynaprint: ").append(toIndentedString(checkDynaprint)).append("\n"); sb.append("}"); return sb.toString(); } @@ -218,6 +246,7 @@ private String toIndentedString(Object o) { openapiFields.add("checkHolo"); openapiFields.add("checkED"); openapiFields.add("checkBlackAndWhiteCopy"); + openapiFields.add("checkDynaprint"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java index 50917444..26d98b3b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java @@ -1947,7 +1947,13 @@ public enum TextFieldType { FT_DATE_OF_FIRST_POSITIVE_TEST_RESULT(691), /** EF.CardAccess */ - EF_CARD_ACCESS(692); + EF_CARD_ACCESS(692), + + /** Short flight number */ + SHORT_FLIGHT_NUMBER(693), + + /** Airline code */ + AIRLINE_CODE(694); private Integer value; From a3cf17f96af133688a95d3d5ad8cbf2419315773 Mon Sep 17 00:00:00 2001 From: Maris Skvorcovs Date: Fri, 21 Mar 2025 12:38:07 +0200 Subject: [PATCH 15/19] Update DocumentReaderApi.java -additional override --- .../documentreader/webclient/api/DocumentReaderApi.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java index 686536e4..04879494 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java +++ b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java @@ -90,6 +90,13 @@ public RecognitionResponse process( return new RecognitionResponse(response); } + public RecognitionResponse process( + ProcessRequest processRequest, HashMap headers) { + processRequest.getSystemInfo().setLicense(this.license); + ProcessResponse response = processApi.apiProcess(processRequest, "", headers); + return new RecognitionResponse(response); + } + public RecognitionResponse process(byte[] processRequest, ProcessParams processParams) { if (processParams != null) { Gson converter = processApi.getApiClient().getJSON().getGson(); From e1c63467261112ff330118998c9e58d44c54398b Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Fri, 21 Mar 2025 18:03:20 +0300 Subject: [PATCH 16/19] Update models --- client/.openapi-generator/FILES | 2 - .../regula/documentreader/webclient/JSON.java | 8 +-- .../webclient/api/TransactionApi.java | 22 ++++--- .../model/HealthcheckDocumentsDatabase.java | 16 ++++-- .../webclient/model/ProcessResponse.java | 57 +++++++++++++++++++ .../webclient/api/DocumentReaderApi.java | 2 +- 6 files changed, 81 insertions(+), 26 deletions(-) diff --git a/client/.openapi-generator/FILES b/client/.openapi-generator/FILES index a4dffa8c..11fed2d1 100755 --- a/client/.openapi-generator/FILES +++ b/client/.openapi-generator/FILES @@ -237,8 +237,6 @@ src/main/generated/com/regula/documentreader/webclient/model/TransactionImage.ja src/main/generated/com/regula/documentreader/webclient/model/TransactionInfo.java src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessGetResponse.java src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java -src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponse.java -src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponseItem.java src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResult.java src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java diff --git a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java index 44a81d71..b14f29f9 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java @@ -1225,6 +1225,8 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ProcessRequestImage .CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory( + new com.regula.documentreader.webclient.model.ProcessResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.ProcessSystemInfo.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( @@ -1367,12 +1369,6 @@ private static Class getClassByDiscriminator( gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.TransactionProcessRequest .CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.TransactionProcessResponse - .CustomTypeAdapterFactory()); - gsonBuilder.registerTypeAdapterFactory( - new com.regula.documentreader.webclient.model.TransactionProcessResponseItem - .CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory( new com.regula.documentreader.webclient.model.TransactionProcessResult .CustomTypeAdapterFactory()); diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java index a70a389c..aa1dc26f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java @@ -20,9 +20,9 @@ import com.regula.documentreader.webclient.Configuration; import com.regula.documentreader.webclient.Pair; import com.regula.documentreader.webclient.model.ListTransactionsByTagResponse; +import com.regula.documentreader.webclient.model.ProcessResponse; import com.regula.documentreader.webclient.model.TransactionProcessGetResponse; import com.regula.documentreader.webclient.model.TransactionProcessRequest; -import com.regula.documentreader.webclient.model.TransactionProcessResponse; import com.regula.documentreader.webclient.model.TransactionProcessResult; import java.io.File; import java.lang.reflect.Type; @@ -1043,7 +1043,7 @@ private okhttp3.Call apiV2TransactionTransactionIdResultsGetValidateBeforeCall( * * @param transactionId Transaction id (required) * @param withImages With base64 images or url (optional) - * @return TransactionProcessResponse + * @return ProcessResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details @@ -1055,9 +1055,9 @@ private okhttp3.Call apiV2TransactionTransactionIdResultsGetValidateBeforeCall( * 403 Bad license. Either server or request does not contain valid license. - * */ - public TransactionProcessResponse apiV2TransactionTransactionIdResultsGet( + public ProcessResponse apiV2TransactionTransactionIdResultsGet( UUID transactionId, Boolean withImages, HashMap headers) throws ApiException { - ApiResponse localVarResp = + ApiResponse localVarResp = apiV2TransactionTransactionIdResultsGetWithHttpInfo(transactionId, withImages, headers); return localVarResp.getData(); } @@ -1067,7 +1067,7 @@ public TransactionProcessResponse apiV2TransactionTransactionIdResultsGet( * * @param transactionId Transaction id (required) * @param withImages With base64 images or url (optional) - * @return ApiResponse<TransactionProcessResponse> + * @return ApiResponse<ProcessResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body * @http.response.details @@ -1079,14 +1079,12 @@ public TransactionProcessResponse apiV2TransactionTransactionIdResultsGet( * 403 Bad license. Either server or request does not contain valid license. - * */ - public ApiResponse - apiV2TransactionTransactionIdResultsGetWithHttpInfo( - UUID transactionId, Boolean withImages, HashMap headers) - throws ApiException { + public ApiResponse apiV2TransactionTransactionIdResultsGetWithHttpInfo( + UUID transactionId, Boolean withImages, HashMap headers) throws ApiException { okhttp3.Call localVarCall = apiV2TransactionTransactionIdResultsGetValidateBeforeCall( transactionId, withImages, headers, null); - Type localVarReturnType = new TypeToken() {}.getType(); + Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -1111,13 +1109,13 @@ public okhttp3.Call apiV2TransactionTransactionIdResultsGetAsync( UUID transactionId, Boolean withImages, HashMap headers, - final ApiCallback _callback) + final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = apiV2TransactionTransactionIdResultsGetValidateBeforeCall( transactionId, withImages, headers, _callback); - Type localVarReturnType = new TypeToken() {}.getType(); + Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java b/client/src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java index dc0b8e27..5f2ee877 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java @@ -23,7 +23,6 @@ import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; import java.io.IOException; -import java.time.LocalDate; import java.util.HashSet; import java.util.Map; import java.util.Objects; @@ -50,7 +49,7 @@ public class HealthcheckDocumentsDatabase { @SerializedName(SERIALIZED_NAME_EXPORT_DATE) @javax.annotation.Nullable - private LocalDate exportDate; + private String exportDate; public static final String SERIALIZED_NAME_DESCRIPTION = "description"; @@ -98,7 +97,7 @@ public void setVersion(@javax.annotation.Nullable String version) { this.version = version; } - public HealthcheckDocumentsDatabase exportDate(@javax.annotation.Nullable LocalDate exportDate) { + public HealthcheckDocumentsDatabase exportDate(@javax.annotation.Nullable String exportDate) { this.exportDate = exportDate; return this; } @@ -109,11 +108,11 @@ public HealthcheckDocumentsDatabase exportDate(@javax.annotation.Nullable LocalD * @return exportDate */ @javax.annotation.Nullable - public LocalDate getExportDate() { + public String getExportDate() { return exportDate; } - public void setExportDate(@javax.annotation.Nullable LocalDate exportDate) { + public void setExportDate(@javax.annotation.Nullable String exportDate) { this.exportDate = exportDate; } @@ -249,6 +248,13 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti "Expected the field `version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("version").toString())); } + if ((jsonObj.get("exportDate") != null && !jsonObj.get("exportDate").isJsonNull()) + && !jsonObj.get("exportDate").isJsonPrimitive()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `exportDate` to be a primitive type in the JSON string but got `%s`", + jsonObj.get("exportDate").toString())); + } if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException( diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java index 1940a9d6..2464c7ee 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java @@ -12,15 +12,22 @@ package com.regula.documentreader.webclient.model; +import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; import com.regula.documentreader.webclient.JSON; import java.io.IOException; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Objects; +import java.util.Set; /** ProcessResponse */ @javax.annotation.Generated( @@ -405,6 +412,27 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti ProcessResponse.openapiRequiredFields.toString())); } } + + Set> entries = jsonElement.getAsJsonObject().entrySet(); + // check to see if the JSON string contains additional fields + for (Map.Entry entry : entries) { + if (!ProcessResponse.openapiFields.contains(entry.getKey())) { + throw new IllegalArgumentException( + String.format( + "The field `%s` in the JSON string is not defined in the `ProcessResponse` properties. JSON: %s", + entry.getKey(), jsonElement.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ProcessResponse.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException( + String.format( + "The required field `%s` is not found in the JSON string: %s", + requiredField, jsonElement.toString())); + } + } JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `ChipPage` RfidLocation.validateJsonElement(jsonObj.get("ChipPage")); @@ -423,6 +451,35 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ProcessResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ProcessResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter = + gson.getDelegateAdapter(this, TypeToken.get(ProcessResponse.class)); + + return (TypeAdapter) + new TypeAdapter() { + @Override + public void write(JsonWriter out, ProcessResponse value) throws IOException { + JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); + elementAdapter.write(out, obj); + } + + @Override + public ProcessResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + return thisAdapter.fromJsonTree(jsonElement); + } + }.nullSafe(); + } + } + /** * Create an instance of ProcessResponse given an JSON string * diff --git a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java index 04879494..12594982 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java +++ b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java @@ -91,7 +91,7 @@ public RecognitionResponse process( } public RecognitionResponse process( - ProcessRequest processRequest, HashMap headers) { + ProcessRequest processRequest, HashMap headers) { processRequest.getSystemInfo().setLicense(this.license); ProcessResponse response = processApi.apiProcess(processRequest, "", headers); return new RecognitionResponse(response); From 83e146462017aae8d18e84e9a70c493dae8ad250 Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Tue, 25 Mar 2025 10:51:36 +0300 Subject: [PATCH 17/19] Add health() --- .../documentreader/webclient/ApiCallback.java | 2 +- .../regula/documentreader/webclient/ApiClient.java | 4 ++-- .../documentreader/webclient/ApiException.java | 2 +- .../documentreader/webclient/ApiResponse.java | 2 +- .../documentreader/webclient/Configuration.java | 4 ++-- .../webclient/GzipRequestInterceptor.java | 2 +- .../com/regula/documentreader/webclient/JSON.java | 2 +- .../com/regula/documentreader/webclient/Pair.java | 2 +- .../webclient/ProgressRequestBody.java | 2 +- .../webclient/ProgressResponseBody.java | 2 +- .../webclient/ServerConfiguration.java | 2 +- .../documentreader/webclient/ServerVariable.java | 2 +- .../regula/documentreader/webclient/StringUtil.java | 2 +- .../webclient/api/HealthcheckApi.java | 2 +- .../documentreader/webclient/api/ProcessApi.java | 2 +- .../webclient/api/TransactionApi.java | 2 +- .../documentreader/webclient/auth/ApiKeyAuth.java | 2 +- .../webclient/auth/Authentication.java | 2 +- .../webclient/auth/HttpBasicAuth.java | 2 +- .../webclient/auth/HttpBearerAuth.java | 2 +- .../webclient/model/AbstractOpenApiSchema.java | 2 +- .../documentreader/webclient/model/AreaArray.java | 2 +- .../webclient/model/AreaContainer.java | 2 +- .../documentreader/webclient/model/AuthParams.java | 2 +- .../webclient/model/AuthenticityCheckList.java | 2 +- .../webclient/model/AuthenticityCheckListItem.java | 2 +- .../webclient/model/AuthenticityCheckResult.java | 2 +- .../model/AuthenticityCheckResultItem.java | 2 +- .../model/AuthenticityCheckResultListInner.java | 2 +- .../webclient/model/AuthenticityResult.java | 2 +- .../webclient/model/AuthenticityResultType.java | 2 +- .../webclient/model/BarCodeModuleType.java | 2 +- .../documentreader/webclient/model/BarcodeType.java | 2 +- .../webclient/model/BcPDF417INFO.java | 2 +- .../documentreader/webclient/model/BcROIDETECT.java | 2 +- .../documentreader/webclient/model/BinaryData.java | 2 +- .../webclient/model/ByteArrayItem.java | 2 +- .../webclient/model/ByteArrayResult.java | 2 +- .../webclient/model/CandidatesListItem.java | 2 +- .../webclient/model/CertificateData.java | 2 +- .../webclient/model/CheckDiagnose.java | 2 +- .../documentreader/webclient/model/CheckResult.java | 2 +- .../webclient/model/ChosenDocumentType.java | 2 +- .../webclient/model/ChosenDocumentTypeResult.java | 2 +- .../webclient/model/ContainerList.java | 2 +- .../webclient/model/ContainerListListInner.java | 2 +- .../documentreader/webclient/model/Critical.java | 2 +- .../webclient/model/CrossSourceValueComparison.java | 2 +- .../documentreader/webclient/model/DataModule.java | 2 +- .../webclient/model/DetailsOptical.java | 2 +- .../documentreader/webclient/model/DetailsRFID.java | 2 +- .../documentreader/webclient/model/DeviceInfo.java | 2 +- .../webclient/model/DocBarCodeInfo.java | 2 +- .../webclient/model/DocBarCodeInfoFieldsList.java | 2 +- .../webclient/model/DocBarCodeInfoItem.java | 2 +- .../webclient/model/DocGraphicsInfoItem.java | 2 +- .../webclient/model/DocVisualExtendedField.java | 2 +- .../webclient/model/DocVisualExtendedFieldItem.java | 2 +- .../webclient/model/DocVisualExtendedInfo.java | 2 +- .../webclient/model/DocVisualExtendedInfoItem.java | 2 +- .../webclient/model/DocumentBinaryInfoResult.java | 2 +- .../webclient/model/DocumentFormat.java | 2 +- .../webclient/model/DocumentImage.java | 2 +- .../webclient/model/DocumentImageResult.java | 2 +- .../webclient/model/DocumentPosition.java | 2 +- .../webclient/model/DocumentPositionItem.java | 2 +- .../webclient/model/DocumentPositionResult.java | 2 +- .../webclient/model/DocumentType.java | 2 +- .../model/DocumentTypeRecognitionResult.java | 2 +- .../webclient/model/DocumentTypesCandidates.java | 2 +- .../model/DocumentTypesCandidatesList.java | 2 +- .../model/DocumentTypesCandidatesResult.java | 2 +- .../webclient/model/DocumentsDatabase.java | 2 +- .../webclient/model/EncryptedRCLItem.java | 2 +- .../webclient/model/EncryptedRCLResult.java | 2 +- .../webclient/model/ErrorCoordinates.java | 2 +- .../documentreader/webclient/model/FDSIDList.java | 2 +- .../documentreader/webclient/model/FaceApi.java | 2 +- .../webclient/model/FaceApiSearch.java | 2 +- .../webclient/model/FaceDetection.java | 2 +- .../webclient/model/FaceDetectionItem.java | 2 +- .../webclient/model/FaceDetectionResult.java | 2 +- .../documentreader/webclient/model/FaceItem.java | 2 +- .../documentreader/webclient/model/FiberItem.java | 2 +- .../documentreader/webclient/model/FiberResult.java | 2 +- .../documentreader/webclient/model/FieldItem.java | 2 +- .../documentreader/webclient/model/FileImage.java | 2 +- .../model/GetTransactionsByTagResponse.java | 2 +- .../documentreader/webclient/model/GraphData.java | 2 +- .../webclient/model/GraphicField.java | 2 +- .../webclient/model/GraphicFieldType.java | 2 +- .../webclient/model/GraphicFieldsList.java | 2 +- .../webclient/model/GraphicsResult.java | 2 +- .../documentreader/webclient/model/Healthcheck.java | 2 +- .../model/HealthcheckDocumentsDatabase.java | 2 +- .../documentreader/webclient/model/IdentItem.java | 2 +- .../documentreader/webclient/model/IdentResult.java | 2 +- .../documentreader/webclient/model/ImageData.java | 2 +- .../documentreader/webclient/model/ImageQA.java | 2 +- .../webclient/model/ImageQualityCheck.java | 2 +- .../webclient/model/ImageQualityCheckList.java | 2 +- .../webclient/model/ImageQualityCheckListItem.java | 2 +- .../webclient/model/ImageQualityCheckType.java | 7 +++++-- .../webclient/model/ImageQualityResult.java | 2 +- .../webclient/model/ImageTransactionData.java | 2 +- .../documentreader/webclient/model/Images.java | 2 +- .../webclient/model/ImagesAvailableSource.java | 2 +- .../documentreader/webclient/model/ImagesField.java | 2 +- .../webclient/model/ImagesFieldValue.java | 2 +- .../documentreader/webclient/model/ImagesItem.java | 2 +- .../webclient/model/ImagesResult.java | 2 +- .../documentreader/webclient/model/InData.java | 2 +- .../model/InDataTransactionImagesFieldValue.java | 2 +- .../documentreader/webclient/model/InDataVideo.java | 2 +- .../webclient/model/InputBarcodeType.java | 2 +- .../webclient/model/InputImageQualityChecks.java | 7 +++++-- .../regula/documentreader/webclient/model/LCID.java | 2 +- .../webclient/model/LexicalAnalysisResult.java | 2 +- .../documentreader/webclient/model/LicenseItem.java | 2 +- .../webclient/model/LicenseResult.java | 2 +- .../documentreader/webclient/model/Light.java | 2 +- .../model/ListTransactionsByTagResponse.java | 2 +- .../webclient/model/ListVerifiedFields.java | 2 +- .../webclient/model/ListVerifiedFieldsItem.java | 2 +- .../webclient/model/LivenessParams.java | 2 +- .../documentreader/webclient/model/LogLevel.java | 2 +- .../webclient/model/MRZDetectorResult.java | 2 +- .../documentreader/webclient/model/MRZFormat.java | 2 +- .../webclient/model/MRZPositionResult.java | 2 +- .../documentreader/webclient/model/MRZRowsItem.java | 2 +- .../webclient/model/MRZTestQuality.java | 2 +- .../webclient/model/MRZTestQualityItem.java | 2 +- .../webclient/model/MRZTestQualityResult.java | 2 +- .../webclient/model/MeasureSystem.java | 2 +- .../webclient/model/MrzDetectModeEnum.java | 2 +- .../documentreader/webclient/model/MrzPosition.java | 2 +- .../webclient/model/MrzPositionItem.java | 2 +- .../webclient/model/OCRSecurityTextItem.java | 2 +- .../webclient/model/OCRSecurityTextResult.java | 2 +- .../webclient/model/OneCandidate.java | 2 +- .../webclient/model/OneCandidateItem.java | 2 +- .../webclient/model/OriginalSymbol.java | 2 +- .../documentreader/webclient/model/OutData.java | 2 +- .../model/OutDataTransactionImagesFieldValue.java | 2 +- .../documentreader/webclient/model/PArrayField.java | 2 +- .../documentreader/webclient/model/ParsedData.java | 2 +- .../webclient/model/ParsingNotificationCodes.java | 2 +- .../webclient/model/PerDocumentConfig.java | 2 +- .../webclient/model/PhotoIdentItem.java | 2 +- .../webclient/model/PhotoIdentResult.java | 2 +- .../documentreader/webclient/model/Point.java | 2 +- .../documentreader/webclient/model/PointArray.java | 2 +- .../webclient/model/PointsContainer.java | 2 +- .../webclient/model/ProcessParams.java | 2 +- .../webclient/model/ProcessParamsRfid.java | 2 +- .../webclient/model/ProcessRequest.java | 2 +- .../webclient/model/ProcessRequestImage.java | 2 +- .../webclient/model/ProcessResponse.java | 2 +- .../webclient/model/ProcessSystemInfo.java | 2 +- .../webclient/model/ProcessingStatus.java | 2 +- .../webclient/model/RFIDDocVisualExtendedField.java | 2 +- .../model/RFIDDocVisualExtendedFieldItem.java | 2 +- .../webclient/model/RFIDDocVisualExtendedInfo.java | 2 +- .../model/RFIDDocVisualExtendedInfoItem.java | 2 +- .../webclient/model/RFIDErrorCodes.java | 2 +- .../webclient/model/RFIDGraphicsInfoResult.java | 2 +- .../webclient/model/RFIDPKDResourceType.java | 2 +- .../webclient/model/RFIDTextDataResult.java | 2 +- .../webclient/model/RawImageContainerItem.java | 2 +- .../webclient/model/RawImageContainerList.java | 2 +- .../webclient/model/RectangleCoordinates.java | 2 +- .../documentreader/webclient/model/Result.java | 2 +- .../documentreader/webclient/model/ResultItem.java | 2 +- .../webclient/model/ResultMRZDetector.java | 2 +- .../webclient/model/ResultMRZDetectorItem.java | 2 +- .../documentreader/webclient/model/RfidAChip.java | 2 +- .../webclient/model/RfidAccessControlInfo.java | 2 +- .../model/RfidAccessControlProcedureType.java | 2 +- .../webclient/model/RfidAccessKey.java | 2 +- .../webclient/model/RfidApplication.java | 2 +- .../webclient/model/RfidApplicationType.java | 2 +- .../webclient/model/RfidAttributeData.java | 2 +- .../webclient/model/RfidAttributeName.java | 2 +- .../model/RfidAuthenticationProcedureType.java | 2 +- .../webclient/model/RfidBaudRate.java | 2 +- .../webclient/model/RfidCardPropertiesExt.java | 2 +- .../webclient/model/RfidCertificateEx.java | 2 +- .../webclient/model/RfidCertificateOrigin.java | 2 +- .../webclient/model/RfidCertificateType.java | 2 +- .../documentreader/webclient/model/RfidDG1.java | 2 +- .../webclient/model/RfidDataFile.java | 2 +- .../webclient/model/RfidDataFileType.java | 2 +- .../webclient/model/RfidDataGroupTypeTag.java | 2 +- .../webclient/model/RfidDistinguishedName.java | 2 +- .../webclient/model/RfidLocation.java | 2 +- .../documentreader/webclient/model/RfidOrigin.java | 2 +- .../webclient/model/RfidPasswordType.java | 2 +- .../webclient/model/RfidPkiExtension.java | 2 +- .../documentreader/webclient/model/RfidRawData.java | 2 +- .../webclient/model/RfidSecurityObject.java | 2 +- .../webclient/model/RfidSessionData.java | 2 +- .../webclient/model/RfidSignerInfoEx.java | 2 +- .../webclient/model/RfidTerminal.java | 2 +- .../webclient/model/RfidTerminalType.java | 2 +- .../documentreader/webclient/model/RfidType.java | 2 +- .../webclient/model/RfidValidity.java | 2 +- .../documentreader/webclient/model/Scenario.java | 2 +- .../webclient/model/SecurityFeatureItem.java | 2 +- .../webclient/model/SecurityFeatureResult.java | 2 +- .../webclient/model/SecurityFeatureType.java | 2 +- .../webclient/model/SecurityObjectCertificates.java | 2 +- .../documentreader/webclient/model/Source.java | 2 +- .../webclient/model/SourceValidity.java | 2 +- .../documentreader/webclient/model/Status.java | 2 +- .../documentreader/webclient/model/StatusItem.java | 2 +- .../webclient/model/StatusResult.java | 2 +- .../documentreader/webclient/model/StringItem.java | 2 +- .../webclient/model/StringRecognitionResult.java | 2 +- .../documentreader/webclient/model/Symbol.java | 2 +- .../webclient/model/SymbolCandidate.java | 2 +- .../webclient/model/SymbolEstimationItem.java | 2 +- .../webclient/model/SymbolRecognitionResult.java | 2 +- .../webclient/model/TDocBinaryInfo.java | 2 +- .../webclient/model/TDocBinaryInfoItem.java | 2 +- .../webclient/model/TOriginalRFIDGraphicsInfo.java | 2 +- .../model/TOriginalRFIDGraphicsInfoItem.java | 2 +- .../regula/documentreader/webclient/model/Text.java | 2 +- .../webclient/model/TextAvailableSource.java | 2 +- .../webclient/model/TextDataResult.java | 2 +- .../documentreader/webclient/model/TextField.java | 2 +- .../webclient/model/TextFieldType.java | 2 +- .../webclient/model/TextFieldValue.java | 2 +- .../documentreader/webclient/model/TextItem.java | 2 +- .../webclient/model/TextPostProcessing.java | 2 +- .../documentreader/webclient/model/TextResult.java | 2 +- .../webclient/model/TransactionImage.java | 2 +- .../webclient/model/TransactionInfo.java | 2 +- .../model/TransactionProcessGetResponse.java | 2 +- .../webclient/model/TransactionProcessRequest.java | 2 +- .../webclient/model/TransactionProcessResult.java | 2 +- .../documentreader/webclient/model/TrfFtBytes.java | 2 +- .../documentreader/webclient/model/TrfFtString.java | 2 +- .../webclient/model/VerificationResult.java | 2 +- .../webclient/model/VerifiedFieldMap.java | 2 +- .../documentreader/webclient/model/Visibility.java | 2 +- .../webclient/model/VisualExtendedFieldItem.java | 2 +- .../webclient/api/DocumentReaderApi.java | 13 +++++++++++-- .../webclient/encryptedRCL/Example.java | 2 +- .../documentreader/webclient/example/Main.java | 2 +- 249 files changed, 269 insertions(+), 254 deletions(-) diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ApiCallback.java b/client/src/main/generated/com/regula/documentreader/webclient/ApiCallback.java index 66e45cbc..1ee73447 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ApiCallback.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ApiCallback.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ApiClient.java b/client/src/main/generated/com/regula/documentreader/webclient/ApiClient.java index da8210c8..6ed4a1ad 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ApiClient.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ApiClient.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -137,7 +137,7 @@ private void init() { json = new JSON(); // Set default User-Agent. - setUserAgent("OpenAPI-Generator/7.4.0/java"); + setUserAgent("OpenAPI-Generator/7.6.0/java"); authentications = new HashMap(); } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ApiException.java b/client/src/main/generated/com/regula/documentreader/webclient/ApiException.java index 39f5e3f9..362ae9ca 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ApiException.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ApiException.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ApiResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/ApiResponse.java index ded5227b..51cac5b5 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ApiResponse.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ApiResponse.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/Configuration.java b/client/src/main/generated/com/regula/documentreader/webclient/Configuration.java index 4e245dd9..2cfd0edb 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/Configuration.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/Configuration.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -16,7 +16,7 @@ value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0") public class Configuration { - public static final String VERSION = "7.4.0"; + public static final String VERSION = "7.6.0"; private static volatile ApiClient defaultApiClient = new ApiClient(); diff --git a/client/src/main/generated/com/regula/documentreader/webclient/GzipRequestInterceptor.java b/client/src/main/generated/com/regula/documentreader/webclient/GzipRequestInterceptor.java index 72d610eb..01d77744 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/GzipRequestInterceptor.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/GzipRequestInterceptor.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java index b14f29f9..431f6ab6 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/JSON.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/JSON.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/Pair.java b/client/src/main/generated/com/regula/documentreader/webclient/Pair.java index 410e40ee..074d5381 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/Pair.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/Pair.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ProgressRequestBody.java b/client/src/main/generated/com/regula/documentreader/webclient/ProgressRequestBody.java index 4f1a057d..1aea9d7b 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ProgressRequestBody.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ProgressRequestBody.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ProgressResponseBody.java b/client/src/main/generated/com/regula/documentreader/webclient/ProgressResponseBody.java index f09fd254..f1df7305 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ProgressResponseBody.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ProgressResponseBody.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ServerConfiguration.java b/client/src/main/generated/com/regula/documentreader/webclient/ServerConfiguration.java index 28a9365b..cdae58ff 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ServerConfiguration.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ServerConfiguration.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/ServerVariable.java b/client/src/main/generated/com/regula/documentreader/webclient/ServerVariable.java index aa049e33..787d0be1 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/ServerVariable.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/ServerVariable.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/StringUtil.java b/client/src/main/generated/com/regula/documentreader/webclient/StringUtil.java index 3df726ea..ad09949b 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/StringUtil.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/StringUtil.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java index cdd15601..0ecb4007 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java index 57ad4f3c..e6def438 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java index aa1dc26f..69de1647 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/auth/ApiKeyAuth.java b/client/src/main/generated/com/regula/documentreader/webclient/auth/ApiKeyAuth.java index 8e0d5b3f..e8f70350 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/auth/ApiKeyAuth.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/auth/ApiKeyAuth.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/auth/Authentication.java b/client/src/main/generated/com/regula/documentreader/webclient/auth/Authentication.java index 383013af..6cf792ea 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/auth/Authentication.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/auth/Authentication.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBasicAuth.java b/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBasicAuth.java index d6307c9a..c99d2aa0 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBasicAuth.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBasicAuth.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBearerAuth.java b/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBearerAuth.java index ebb7ee1d..391438d9 100755 --- a/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBearerAuth.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBearerAuth.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AbstractOpenApiSchema.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AbstractOpenApiSchema.java index 32cd39b0..0b93a0c6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AbstractOpenApiSchema.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AbstractOpenApiSchema.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AreaArray.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AreaArray.java index 8db0fd07..5c8f1bd9 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AreaArray.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AreaArray.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AreaContainer.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AreaContainer.java index a1de6812..124287a8 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AreaContainer.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AreaContainer.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java index 2ebf5429..de28a4cf 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthParams.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java index af7137fc..18582ff6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckList.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckListItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckListItem.java index 59fa5555..34748c25 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckListItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckListItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java index e79f73fe..8f4c6fb8 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java index b85855e9..95ba432a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultListInner.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultListInner.java index c208771b..6bfa37f1 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultListInner.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultListInner.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java index 90db5d69..8e5b9852 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResultType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResultType.java index 99585b4b..f3edd94c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResultType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityResultType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/BarCodeModuleType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/BarCodeModuleType.java index f2985689..e72051e5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/BarCodeModuleType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/BarCodeModuleType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/BarcodeType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/BarcodeType.java index 58fbac64..5cabc9b7 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/BarcodeType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/BarcodeType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/BcPDF417INFO.java b/client/src/main/generated/com/regula/documentreader/webclient/model/BcPDF417INFO.java index 3f0f62f5..dd4ef865 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/BcPDF417INFO.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/BcPDF417INFO.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/BcROIDETECT.java b/client/src/main/generated/com/regula/documentreader/webclient/model/BcROIDETECT.java index 44dc85bf..ff34caed 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/BcROIDETECT.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/BcROIDETECT.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/BinaryData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/BinaryData.java index 94165cca..76602abb 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/BinaryData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/BinaryData.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayItem.java index 05f4c03e..04b61f97 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayResult.java index 2bc99a47..5d3eebdf 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ByteArrayResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/CandidatesListItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/CandidatesListItem.java index 2ec71104..cae7ce9f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/CandidatesListItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/CandidatesListItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/CertificateData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/CertificateData.java index 4c799a00..b857a4dd 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/CertificateData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/CertificateData.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java b/client/src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java index cee26160..5271f6a9 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/CheckDiagnose.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java index 9d8a1848..1ba2ba58 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/CheckResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentType.java index 68fe935e..c050f66d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentTypeResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentTypeResult.java index 619253ab..0c92becc 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentTypeResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ChosenDocumentTypeResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerList.java index c7c778b4..57c661e9 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerList.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java index 4fc8b657..b6d39561 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ContainerListListInner.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Critical.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Critical.java index 589d4b4f..00328f05 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Critical.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Critical.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/CrossSourceValueComparison.java b/client/src/main/generated/com/regula/documentreader/webclient/model/CrossSourceValueComparison.java index e4527c75..13d2513a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/CrossSourceValueComparison.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/CrossSourceValueComparison.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DataModule.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DataModule.java index 732dfa35..7ce1409d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DataModule.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DataModule.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsOptical.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsOptical.java index 5ee5cf43..9dbe09b6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsOptical.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsOptical.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsRFID.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsRFID.java index 45a23785..b5721ea7 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsRFID.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DetailsRFID.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DeviceInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DeviceInfo.java index 512092d9..e41191ef 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DeviceInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DeviceInfo.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfo.java index d775f05b..a0e107bf 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfo.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoFieldsList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoFieldsList.java index b3f0f2b2..d9d20c69 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoFieldsList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoFieldsList.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoItem.java index 316202cf..57ac889b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocBarCodeInfoItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocGraphicsInfoItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocGraphicsInfoItem.java index 95fd3168..3b386bea 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocGraphicsInfoItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocGraphicsInfoItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java index f0d76d52..957de6d0 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedField.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldItem.java index bfcae273..f58cecca 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedFieldItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java index 1b457553..a711d2a6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfo.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoItem.java index 00edc749..d0bc82a5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocVisualExtendedInfoItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java index 19771507..a01f68c1 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentBinaryInfoResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java index 90bed646..a8a08dfb 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentFormat.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImage.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImage.java index c0f6840d..3cc120a6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImage.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImage.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImageResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImageResult.java index 4782b668..d81725a5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImageResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentImageResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPosition.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPosition.java index efc82ca1..b10a3f1c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPosition.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPosition.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionItem.java index 9f6dbf05..5b6886f2 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionResult.java index 65057dd4..fb34bc88 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentPositionResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentType.java index 8ad5c9b2..01bb8964 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypeRecognitionResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypeRecognitionResult.java index bdfb643d..446ec762 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypeRecognitionResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypeRecognitionResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidates.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidates.java index 59bee11b..1f063d95 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidates.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidates.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesList.java index be28a956..11968fbd 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesList.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesResult.java index c3c9ae05..ef6c58fc 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentTypesCandidatesResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentsDatabase.java b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentsDatabase.java index c63d5015..458c5eb1 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentsDatabase.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/DocumentsDatabase.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLItem.java index bf4d95fb..52d95710 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java index 9b19e753..bc6cd3e3 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/EncryptedRCLResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java index c28b90eb..9535f3e2 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ErrorCoordinates.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FDSIDList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FDSIDList.java index 4f468f0a..de932b86 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FDSIDList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FDSIDList.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java index f1077d88..2502e9e4 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApi.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApiSearch.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApiSearch.java index 855c6bfe..b9fe1500 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApiSearch.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceApiSearch.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetection.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetection.java index 15da19fa..d5b82e67 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetection.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetection.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionItem.java index af4abf96..c159870c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionResult.java index 3759e40d..cb95f8a5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceDetectionResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceItem.java index 55bc087f..205b87ef 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FaceItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FaceItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FiberItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FiberItem.java index 5541779a..cb556759 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FiberItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FiberItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java index acdbf528..4b037671 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FiberResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FieldItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FieldItem.java index 84f10a71..7eaf339a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FieldItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FieldItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/FileImage.java b/client/src/main/generated/com/regula/documentreader/webclient/model/FileImage.java index 8a58326c..677390a9 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/FileImage.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/FileImage.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GetTransactionsByTagResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GetTransactionsByTagResponse.java index 35659669..2a7bd2ed 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GetTransactionsByTagResponse.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GetTransactionsByTagResponse.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphData.java index 119c4e1e..bda5c53c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphData.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java index 174d3505..6ba08eee 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicField.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java index 80a91fdb..5396e318 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java index 704f890f..7abdccc1 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicFieldsList.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java index 6c0f9ca7..ce1a8232 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/GraphicsResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Healthcheck.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Healthcheck.java index 72dfa406..572b0c15 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Healthcheck.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Healthcheck.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java b/client/src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java index 5f2ee877..b5918cef 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/HealthcheckDocumentsDatabase.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/IdentItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/IdentItem.java index b4addde3..86e57000 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/IdentItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/IdentItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/IdentResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/IdentResult.java index b6194313..d6fe0591 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/IdentResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/IdentResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageData.java index 17e10dfe..a4bfdae0 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageData.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQA.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQA.java index d0ee5405..f481730b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQA.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQA.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheck.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheck.java index 2e9d5ad0..fce65388 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheck.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheck.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckList.java index 6fec9ea0..5862fcf1 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckList.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckListItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckListItem.java index 75d4bf0f..9019fe98 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckListItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckListItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckType.java index 63ab33c9..bcde3d5b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityCheckType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -45,7 +45,10 @@ public enum ImageQualityCheckType { Portrait(7), /** Signals if the document image is bright enough */ - Brightness(9); + Brightness(9), + + /** Signals if the document image has occlusion */ + Occlusion(10); private Integer value; diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityResult.java index 7442ab28..678d2083 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageQualityResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageTransactionData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageTransactionData.java index a37a5dd9..e3add3b8 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImageTransactionData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImageTransactionData.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Images.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Images.java index 2e0d582d..709d5c73 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Images.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Images.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesAvailableSource.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesAvailableSource.java index 91e02d6d..9b253ff4 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesAvailableSource.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesAvailableSource.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesField.java index 3a8beb56..f6a565ae 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesField.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesFieldValue.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesFieldValue.java index 81c96ec6..ecad65a4 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesFieldValue.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesFieldValue.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesItem.java index 4fe9e5fe..e60d8e51 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java index dbdb4774..791b7cf3 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ImagesResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InData.java index 49f7a22a..681801cf 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/InData.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InDataTransactionImagesFieldValue.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InDataTransactionImagesFieldValue.java index ea91d502..26a39496 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InDataTransactionImagesFieldValue.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/InDataTransactionImagesFieldValue.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InDataVideo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InDataVideo.java index c398d558..ac298562 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InDataVideo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/InDataVideo.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InputBarcodeType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InputBarcodeType.java index 8eeddc36..afcb50e0 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InputBarcodeType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/InputBarcodeType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/InputImageQualityChecks.java b/client/src/main/generated/com/regula/documentreader/webclient/model/InputImageQualityChecks.java index 2dc7f30e..32ff649a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/InputImageQualityChecks.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/InputImageQualityChecks.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -45,7 +45,10 @@ public enum InputImageQualityChecks { Portrait("portraitCheck"), /** Signals if the document image is bright enough */ - Brightness("brightnessCheck"); + Brightness("brightnessCheck"), + + /** Signals if the document image has occlusion */ + Occlusion("occlusionCheck"); private String value; diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LCID.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LCID.java index 3f0b52a2..beb9ab1b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LCID.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LCID.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LexicalAnalysisResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LexicalAnalysisResult.java index a2688165..1f224d8b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LexicalAnalysisResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LexicalAnalysisResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseItem.java index 9865955d..77a2011d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java index 2026609c..1a99bdaf 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LicenseResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Light.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Light.java index 273ea48f..5db7a8a1 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Light.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Light.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ListTransactionsByTagResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ListTransactionsByTagResponse.java index c8b5a5c5..c92f81e5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ListTransactionsByTagResponse.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ListTransactionsByTagResponse.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFields.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFields.java index bf901d87..80ef9dc5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFields.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFields.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFieldsItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFieldsItem.java index d3243067..a3c51b03 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFieldsItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ListVerifiedFieldsItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java index b3dc790c..703a83c8 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LivenessParams.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/LogLevel.java b/client/src/main/generated/com/regula/documentreader/webclient/model/LogLevel.java index f81acdd9..f40c5111 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/LogLevel.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/LogLevel.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZDetectorResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZDetectorResult.java index 2f980e7e..44de1724 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZDetectorResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZDetectorResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZFormat.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZFormat.java index fe4540fe..f9377013 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZFormat.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZFormat.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZPositionResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZPositionResult.java index 66a3fe89..509b3b1c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZPositionResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZPositionResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZRowsItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZRowsItem.java index 2039bd88..1bc61357 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZRowsItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZRowsItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQuality.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQuality.java index 217fc127..c687a73c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQuality.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQuality.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityItem.java index 7c8bfacc..69947680 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityResult.java index 130917a6..09ec6159 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MRZTestQualityResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MeasureSystem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MeasureSystem.java index 7db20591..8daa6951 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MeasureSystem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MeasureSystem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MrzDetectModeEnum.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzDetectModeEnum.java index daa42045..04b480cd 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MrzDetectModeEnum.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzDetectModeEnum.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPosition.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPosition.java index 868a622a..16fe8cc3 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPosition.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPosition.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPositionItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPositionItem.java index 7dd31fb9..1002d5d9 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPositionItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/MrzPositionItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextItem.java index 15ffe794..25d28365 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextResult.java index e237e7ac..587f9d24 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OCRSecurityTextResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java index fd6bb35c..cf34374d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidate.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidateItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidateItem.java index 3d293a41..4bdd0fa2 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidateItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OneCandidateItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OriginalSymbol.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OriginalSymbol.java index 9511444b..c7d285ac 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/OriginalSymbol.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OriginalSymbol.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OutData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OutData.java index 8def95e0..9f25fb84 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/OutData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OutData.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/OutDataTransactionImagesFieldValue.java b/client/src/main/generated/com/regula/documentreader/webclient/model/OutDataTransactionImagesFieldValue.java index d20a2d1a..7f9808b5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/OutDataTransactionImagesFieldValue.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/OutDataTransactionImagesFieldValue.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/PArrayField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/PArrayField.java index 2240267f..8bedd227 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/PArrayField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/PArrayField.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java index 60ad5754..1a649f20 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsedData.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingNotificationCodes.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingNotificationCodes.java index 5ce72517..59b5664e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingNotificationCodes.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ParsingNotificationCodes.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/PerDocumentConfig.java b/client/src/main/generated/com/regula/documentreader/webclient/model/PerDocumentConfig.java index eb17547a..4a133792 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/PerDocumentConfig.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/PerDocumentConfig.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentItem.java index bdd575c4..2d36c235 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentResult.java index e4ad42be..2a043cf8 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/PhotoIdentResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Point.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Point.java index ebe035d8..954a64e9 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Point.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Point.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/PointArray.java b/client/src/main/generated/com/regula/documentreader/webclient/model/PointArray.java index 6c868edd..e712579c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/PointArray.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/PointArray.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/PointsContainer.java b/client/src/main/generated/com/regula/documentreader/webclient/model/PointsContainer.java index f59f57ee..57b4c4cc 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/PointsContainer.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/PointsContainer.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java index 899f8862..0f3e7847 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParamsRfid.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParamsRfid.java index 243ffc23..01dec619 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParamsRfid.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParamsRfid.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java index ae735361..80f12745 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequestImage.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequestImage.java index 5ea5f5ee..adbf52e2 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequestImage.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequestImage.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java index 2464c7ee..685b040a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessResponse.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessSystemInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessSystemInfo.java index 0ddc496f..f056386f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessSystemInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessSystemInfo.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.java index 3108cd51..53c98518 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessingStatus.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedField.java index 65db1427..470b5df7 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedField.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedFieldItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedFieldItem.java index e45dd043..6d50db74 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedFieldItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedFieldItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfo.java index 76f4f90c..d97ee304 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfo.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfoItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfoItem.java index 1c168600..0465a669 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfoItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDDocVisualExtendedInfoItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDErrorCodes.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDErrorCodes.java index 1d6517da..fed35ae6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDErrorCodes.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDErrorCodes.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDGraphicsInfoResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDGraphicsInfoResult.java index 1f970d36..b1f6abdb 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDGraphicsInfoResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDGraphicsInfoResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDPKDResourceType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDPKDResourceType.java index 293c70ec..287f9a5d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDPKDResourceType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDPKDResourceType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDTextDataResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDTextDataResult.java index ee185dc5..869c5936 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDTextDataResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RFIDTextDataResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerItem.java index f297ddb4..f4c74611 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerList.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerList.java index 926707d4..2a0c839e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerList.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RawImageContainerList.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java index e9ea9a4a..03780127 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RectangleCoordinates.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Result.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Result.java index 39ed9889..c32c7f97 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Result.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Result.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java index 973968d5..f17fad19 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java index 119aaa2d..a25cdac3 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetector.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetectorItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetectorItem.java index fb878896..553c430f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetectorItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultMRZDetectorItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAChip.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAChip.java index 71e9e143..04a8f8f6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAChip.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAChip.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java index dc98ff0e..9cf829f4 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlInfo.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlProcedureType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlProcedureType.java index 15cabe73..b10c1de3 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlProcedureType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessControlProcedureType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessKey.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessKey.java index e36fbb91..c861941b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessKey.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAccessKey.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplication.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplication.java index bbca9625..a3df2e77 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplication.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplication.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplicationType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplicationType.java index 17503826..efcae29a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplicationType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidApplicationType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeData.java index e86dc2a6..06bf0f92 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeData.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeName.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeName.java index 0d19d189..6a84d51e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeName.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAttributeName.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAuthenticationProcedureType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAuthenticationProcedureType.java index 8e50b804..eb7ad075 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAuthenticationProcedureType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidAuthenticationProcedureType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidBaudRate.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidBaudRate.java index 50a9103c..3dc8f516 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidBaudRate.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidBaudRate.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCardPropertiesExt.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCardPropertiesExt.java index ba02a537..7ab87fe4 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCardPropertiesExt.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCardPropertiesExt.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java index 8a07e60d..bba031bd 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateEx.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateOrigin.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateOrigin.java index dfca3df9..11048abb 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateOrigin.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateOrigin.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateType.java index 0806a411..094498c3 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidCertificateType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDG1.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDG1.java index 00d1058e..5c1e3741 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDG1.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDG1.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java index f82b35f6..4863f094 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFile.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFileType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFileType.java index e4c51d97..0fb50ec7 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFileType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataFileType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java index b353172f..1c6d6082 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDataGroupTypeTag.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDistinguishedName.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDistinguishedName.java index 520a1819..f53442e5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDistinguishedName.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidDistinguishedName.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidLocation.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidLocation.java index 6121ff58..eef2c746 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidLocation.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidLocation.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidOrigin.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidOrigin.java index 93b6983e..76fd46a7 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidOrigin.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidOrigin.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPasswordType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPasswordType.java index 66deddbc..ee1d4347 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPasswordType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPasswordType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPkiExtension.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPkiExtension.java index 75cc13ee..567620c4 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPkiExtension.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidPkiExtension.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidRawData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidRawData.java index b1ab3cc9..aac3419e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidRawData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidRawData.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java index 116c286a..c50ed63c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSecurityObject.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java index 0d35a2ea..d848a85e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSessionData.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java index 502b306d..ddaa976d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidSignerInfoEx.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminal.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminal.java index b534560d..4a926bc8 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminal.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminal.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminalType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminalType.java index 8cf1d437..813b8c0d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminalType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidTerminalType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidType.java index 2f45c973..61e51c26 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidValidity.java b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidValidity.java index c5840bcd..4595f8ed 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/RfidValidity.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/RfidValidity.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Scenario.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Scenario.java index fe8904fa..dd88b91a 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Scenario.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Scenario.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureItem.java index 7e10a8e0..487c8fc0 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureResult.java index 5deca51e..f5f0bfcb 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureType.java index ef9b802e..71f02a10 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityFeatureType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityObjectCertificates.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityObjectCertificates.java index 4ee1873d..7b6d2ed0 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityObjectCertificates.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SecurityObjectCertificates.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Source.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Source.java index 8d4903ed..9aeabab5 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Source.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Source.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SourceValidity.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SourceValidity.java index 263b0197..18af6014 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SourceValidity.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SourceValidity.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Status.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Status.java index d24168da..44fa2cf6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Status.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Status.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/StatusItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/StatusItem.java index 0f4a4a59..c827c052 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/StatusItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/StatusItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/StatusResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/StatusResult.java index 279fb4f7..6e7e9b0d 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/StatusResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/StatusResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/StringItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/StringItem.java index 7b098fae..934ea9df 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/StringItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/StringItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/StringRecognitionResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/StringRecognitionResult.java index 78da9705..25b22f8e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/StringRecognitionResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/StringRecognitionResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Symbol.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Symbol.java index 3ebc7f8d..ef8bd6d2 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Symbol.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Symbol.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolCandidate.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolCandidate.java index 0bb2a18b..67bab7a6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolCandidate.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolCandidate.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java index 2e39303c..57763ba1 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolEstimationItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolRecognitionResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolRecognitionResult.java index 4dcf64ea..6a162095 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolRecognitionResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/SymbolRecognitionResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java index c20d7037..6a868362 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfo.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfoItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfoItem.java index 655e0426..b56f0b5b 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfoItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TDocBinaryInfoItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfo.java index 6be339d8..d6fc9369 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfo.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfoItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfoItem.java index 92ddf162..0d266264 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfoItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TOriginalRFIDGraphicsInfoItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Text.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Text.java index d9e6ed3c..dbd2e3f6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Text.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Text.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextAvailableSource.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextAvailableSource.java index e5f0d600..62caeac3 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextAvailableSource.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextAvailableSource.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java index 0d540dbb..f52a2c29 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextDataResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextField.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextField.java index a8caf326..ab3b8820 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextField.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextField.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java index 26d98b3b..a2c06b53 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldType.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldValue.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldValue.java index 2c801ad5..1ed6013f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldValue.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextFieldValue.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextItem.java index 4d2a574f..e72616a8 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextPostProcessing.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextPostProcessing.java index f13dc814..ed172cde 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextPostProcessing.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextPostProcessing.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java index c7d8eac5..260ec890 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TextResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionImage.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionImage.java index 3f940d02..7b9aaaa4 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionImage.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionImage.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionInfo.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionInfo.java index af9286b2..b2b93c0f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionInfo.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionInfo.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessGetResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessGetResponse.java index 20707a9b..0dd13568 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessGetResponse.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessGetResponse.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java index d9a57bce..261c0ca1 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessRequest.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResult.java index 4112397e..2a1df41f 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java index 60b0240a..117893ce 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtBytes.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java index 0420d343..ce139a05 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/TrfFtString.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java b/client/src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java index 1a7fa949..eddc38e7 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/VerificationResult.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java b/client/src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java index cc7f9393..bbfc7603 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/VerifiedFieldMap.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/Visibility.java b/client/src/main/generated/com/regula/documentreader/webclient/model/Visibility.java index 4f1fc55a..f5ce3673 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/Visibility.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/Visibility.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/VisualExtendedFieldItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/VisualExtendedFieldItem.java index 0c57dcc9..31d7a8ec 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/VisualExtendedFieldItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/VisualExtendedFieldItem.java @@ -2,7 +2,7 @@ * Regula Document Reader Web API * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core * - * The version of the OpenAPI document: 7.4.0 + * The version of the OpenAPI document: 7.6.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java index 12594982..40f98a4f 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java +++ b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java @@ -8,6 +8,7 @@ import com.regula.documentreader.webclient.ApiException; import com.regula.documentreader.webclient.Configuration; import com.regula.documentreader.webclient.Pair; +import com.regula.documentreader.webclient.model.DeviceInfo; import com.regula.documentreader.webclient.model.Healthcheck; import com.regula.documentreader.webclient.model.ProcessParams; import com.regula.documentreader.webclient.model.ProcessRequest; @@ -61,11 +62,19 @@ private static ApiClient getApiClient(String basePath, boolean debugging, boolea * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the * response body */ - public Healthcheck ping() throws ApiException { + public DeviceInfo ping() throws ApiException { + return defaultApi.ping("", null); + } + + public DeviceInfo ping(String xRequestID) throws ApiException { + return defaultApi.ping(xRequestID, null); + } + + public Healthcheck health() throws ApiException { return defaultApi.healthz("", null); } - public Healthcheck ping(String xRequestID) throws ApiException { + public Healthcheck health(String xRequestID) throws ApiException { return defaultApi.healthz(xRequestID, null); } diff --git a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java index 9df7bc55..d9186756 100644 --- a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java +++ b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java @@ -51,7 +51,7 @@ public static void main(String[] args) throws IOException { if (licenseFromEnv != null) api.setLicense(licenseFromEnv); if (licenseFromFile != null) api.setLicense(licenseFromFile); - var info = api.ping(); + var info = api.health(); System.out.println("-----------------------------------------------------------------"); System.out.format("Web API version %s%n", info.getVersion()); diff --git a/example/src/main/java/com/regula/documentreader/webclient/example/Main.java b/example/src/main/java/com/regula/documentreader/webclient/example/Main.java index 0ae266f0..fd779190 100755 --- a/example/src/main/java/com/regula/documentreader/webclient/example/Main.java +++ b/example/src/main/java/com/regula/documentreader/webclient/example/Main.java @@ -70,7 +70,7 @@ public static void main(String[] args) throws IOException, ApiException { // if (licenseFromEnv != null) api.setLicense(licenseFromEnv); // if (licenseFromFile != null) api.setLicense(licenseFromFile); - var info = api.ping(); + var info = api.health(); System.out.println(); System.out.format( "-----------------------------------------------------------------" + "\n" From f4e247e4ec97a5e9b92de88510b99c3ee47e3413 Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Fri, 28 Mar 2025 14:00:37 +0300 Subject: [PATCH 18/19] Update models --- client/generator-templates/api.mustache | 612 ------------------ client/generator-templates/pojo.mustache | 7 - .../webclient/api/HealthcheckApi.java | 83 +-- .../webclient/api/ProcessApi.java | 33 +- .../webclient/api/TransactionApi.java | 188 ++---- .../webclient/auth/ApiKeyAuth.java | 0 .../webclient/auth/Authentication.java | 0 .../webclient/auth/HttpBasicAuth.java | 0 .../webclient/auth/HttpBearerAuth.java | 0 .../model/AuthenticityCheckResultItem.java | 11 +- .../webclient/model/ProcessParams.java | 54 +- .../webclient/model/ProcessRequest.java | 96 +-- .../webclient/model/ResultItem.java | 10 +- .../model/TransactionProcessResponse.java | 218 ------- .../model/TransactionProcessResponseItem.java | 205 ------ .../webclient/api/DocumentReaderApi.java | 22 +- .../model/ext/EncryptedRCLRequest.java | 2 +- .../model/ext/ProcessRequestLicense.java | 2 +- .../model/ext/RecognitionParams.java | 3 +- .../model/ext/RecognitionResponse.java | 8 +- dev.md | 33 +- .../webclient/encryptedRCL/Example.java | 10 +- .../webclient/example/Main.java | 10 +- 23 files changed, 251 insertions(+), 1356 deletions(-) delete mode 100644 client/generator-templates/api.mustache mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/auth/ApiKeyAuth.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/auth/Authentication.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBasicAuth.java mode change 100755 => 100644 client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBearerAuth.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponse.java delete mode 100644 client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponseItem.java diff --git a/client/generator-templates/api.mustache b/client/generator-templates/api.mustache deleted file mode 100644 index 32ef0564..00000000 --- a/client/generator-templates/api.mustache +++ /dev/null @@ -1,612 +0,0 @@ -{{>licenseInfo}} - -package {{package}}; - -import {{invokerPackage}}.ApiCallback; -import {{invokerPackage}}.ApiClient; -import {{invokerPackage}}.ApiException; -{{#dynamicOperations}} - import {{invokerPackage}}.ApiOperation; -{{/dynamicOperations}} -import {{invokerPackage}}.ApiResponse; -import {{invokerPackage}}.Configuration; -import {{invokerPackage}}.Pair; -import {{invokerPackage}}.ProgressRequestBody; -import {{invokerPackage}}.ProgressResponseBody; -{{#performBeanValidation}} - import {{invokerPackage}}.BeanValidationException; -{{/performBeanValidation}} - -import com.google.gson.reflect.TypeToken; -{{#dynamicOperations}} - import io.swagger.v3.oas.models.Operation; - import io.swagger.v3.oas.models.parameters.Parameter; -{{/dynamicOperations}} - -import java.io.IOException; - -{{#useBeanValidation}} - import {{javaxPackage}}.validation.constraints.*; - import {{javaxPackage}}.validation.Valid; -{{/useBeanValidation}} -{{#performBeanValidation}} - import {{javaxPackage}}.validation.ConstraintViolation; - import {{javaxPackage}}.validation.Validation; - import {{javaxPackage}}.validation.ValidatorFactory; - import {{javaxPackage}}.validation.executable.ExecutableValidator; - import java.util.Set; - import java.lang.reflect.Method; - import java.lang.reflect.Type; -{{/performBeanValidation}} - -{{#imports}}import {{import}}; -{{/imports}} - -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -{{#supportStreaming}} - import java.io.InputStream; -{{/supportStreaming}} - -{{#operations}} - public class {{classname}} { - private ApiClient localVarApiClient; - private int localHostIndex; - private String localCustomBaseUrl; - - public {{classname}}() { - this(Configuration.getDefaultApiClient()); - } - - public {{classname}}(ApiClient apiClient) { - this.localVarApiClient = apiClient; - } - - public ApiClient getApiClient() { - return localVarApiClient; - } - - public void setApiClient(ApiClient apiClient) { - this.localVarApiClient = apiClient; - } - - public int getHostIndex() { - return localHostIndex; - } - - public void setHostIndex(int hostIndex) { - this.localHostIndex = hostIndex; - } - - public String getCustomBaseUrl() { - return localCustomBaseUrl; - } - - public void setCustomBaseUrl(String customBaseUrl) { - this.localCustomBaseUrl = customBaseUrl; - } - - {{#operation}} - {{^vendorExtensions.x-group-parameters}}/** - * Build call for {{operationId}}{{#allParams}} - * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}}{{/allParams}} - * @param _callback Callback for upload/download progress - * @return Call to execute - * @throws ApiException If fail to serialize the request body object - {{#responses.0}} - * @http.response.details - - - - {{#responses}} - - {{/responses}} -
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
- {{/responses.0}} - {{#isDeprecated}} - * @deprecated - {{/isDeprecated}} - {{#externalDocs}} - * {{description}} - * @see {{summary}} Documentation - {{/externalDocs}} - */ - {{#isDeprecated}} - @Deprecated - {{/isDeprecated}} - public{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}private{{/vendorExtensions.x-group-parameters}} okhttp3.Call {{operationId}}Call({{#allParams}}{{{dataType}}} {{paramName}}, {{/allParams}}HashMap headers, final ApiCallback _callback) throws ApiException { - String basePath = null; - // Operation Servers - String[] localBasePaths = new String[] { {{#servers}}"{{{url}}}"{{^-last}}, {{/-last}}{{/servers}} }; - - // Determine Base Path to Use - if (localCustomBaseUrl != null){ - basePath = localCustomBaseUrl; - } else if ( localBasePaths.length > 0 ) { - basePath = localBasePaths[localHostIndex]; - } else { - basePath = null; - } - - Object localVarPostBody = {{#bodyParam}}{{paramName}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}}; - - // create path and map variables - {{^dynamicOperations}} - String localVarPath = "{{{path}}}"{{#pathParams}} - .replace("{" + "{{baseName}}" + "}", localVarApiClient.escapeString({{#collectionFormat}}localVarApiClient.collectionPathParameterToString("{{{collectionFormat}}}", {{{paramName}}}){{/collectionFormat}}{{^collectionFormat}}{{{paramName}}}.toString(){{/collectionFormat}})){{/pathParams}}; - {{/dynamicOperations}} - {{#dynamicOperations}} - ApiOperation apiOperation = localVarApiClient.getOperationLookupMap().get("{{{operationId}}}"); - if (apiOperation == null) { - throw new ApiException("Operation not found in OAS"); - } - Operation operation = apiOperation.getOperation(); - String localVarPath = apiOperation.getPath(); - Map paramMap = new HashMap<>(); - {{#allParams}} - {{^isFormParam}} - {{^isBodyParam}} - paramMap.put("{{baseName}}", {{paramName}}); - {{/isBodyParam}} - {{/isFormParam}} - {{/allParams}} - {{/dynamicOperations}} - - List localVarQueryParams = new ArrayList(); - List localVarCollectionQueryParams = new ArrayList(); - Map localVarHeaderParams = new HashMap(); - Map localVarCookieParams = new HashMap(); - Map localVarFormParams = new HashMap(); - - {{#formParams}} - if ({{paramName}} != null) { - localVarFormParams.put("{{baseName}}", {{paramName}}); - } - - {{/formParams}} - {{^dynamicOperations}} - {{#queryParams}} - if ({{paramName}} != null) { - {{#isFreeFormObject}}localVarQueryParams.addAll(localVarApiClient.freeFormParameterToPairs({{paramName}}));{{/isFreeFormObject}}{{^isFreeFormObject}}{{#collectionFormat}}localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("{{{.}}}", {{/collectionFormat}}{{^collectionFormat}}localVarQueryParams.addAll(localVarApiClient.parameterToPair({{/collectionFormat}}"{{baseName}}", {{paramName}}));{{/isFreeFormObject}} - } - - {{/queryParams}} - {{#constantParams}} - {{#isQueryParam}} - // Set client side default value of Query Param "{{baseName}}". - localVarCollectionQueryParams.add(new Pair("{{baseName}}", {{#_enum}}"{{{.}}}"{{/_enum}})); - - {{/isQueryParam}} - {{/constantParams}} - {{#constantParams}} - {{#isHeaderParam}} - // Set client side default value of Header Param "{{baseName}}". - localVarHeaderParams.put("{{baseName}}", {{#_enum}}"{{{.}}}"{{/_enum}}); - - {{/isHeaderParam}} - {{/constantParams}} - {{#cookieParams}} - if ({{paramName}} != null) { - localVarCookieParams.put("{{baseName}}", localVarApiClient.parameterToString({{paramName}})); - } - - {{/cookieParams}} - {{#constantParams}} - {{#isCookieParam}} - // Set client side default value of Cookie Param "{{baseName}}". - localVarCookieParams.put("{{baseName}}", {{#_enum}}"{{{.}}}"{{/_enum}}); - - {{/isCookieParam}} - {{/constantParams}} - {{/dynamicOperations}} - {{#dynamicOperations}} - localVarPath = localVarApiClient.fillParametersFromOperation(operation, paramMap, localVarPath, localVarQueryParams, localVarCollectionQueryParams, localVarHeaderParams, localVarCookieParams); - - {{/dynamicOperations}} - final String[] localVarAccepts = { - {{#produces}} - "{{{mediaType}}}"{{^-last}},{{/-last}} - {{/produces}} - }; - final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); - if (localVarAccept != null) { - localVarHeaderParams.put("Accept", localVarAccept); - } - - final String[] localVarContentTypes = { - {{#consumes}} - "{{{mediaType}}}"{{^-last}},{{/-last}} - {{/consumes}} - }; - final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); - if (localVarContentType != null) { - localVarHeaderParams.put("Content-Type", localVarContentType); - } - {{^dynamicOperations}} - {{#headerParams}} - - if ({{paramName}} != null) { - localVarHeaderParams.put("{{baseName}}", localVarApiClient.parameterToString({{paramName}})); - } - - {{/headerParams}} - {{/dynamicOperations}} - if(headers != null){ - for(String key : headers.keySet()){ - localVarHeaderParams.put(key, headers.get(key)); - } - } - String[] localVarAuthNames = new String[] { {{#withAWSV4Signature}}"AWS4Auth"{{/withAWSV4Signature}}{{#authMethods}}{{#-first}}{{#withAWSV4Signature}}, {{/withAWSV4Signature}}{{/-first}}"{{name}}"{{^-last}}, {{/-last}}{{/authMethods}} }; - return localVarApiClient.buildCall(basePath, localVarPath, {{^dynamicOperations}}"{{httpMethod}}"{{/dynamicOperations}}{{#dynamicOperations}}apiOperation.getMethod(){{/dynamicOperations}}, localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); - } - - {{#isDeprecated}} - @Deprecated - {{/isDeprecated}} - @SuppressWarnings("rawtypes") - private okhttp3.Call {{operationId}}ValidateBeforeCall({{#allParams}}{{{dataType}}} {{paramName}}, {{/allParams}}HashMap headers, final ApiCallback _callback) throws ApiException { - {{^performBeanValidation}} - {{#allParams}} - {{#required}} - // verify the required parameter '{{paramName}}' is set - if ({{paramName}} == null) { - throw new ApiException("Missing the required parameter '{{paramName}}' when calling {{operationId}}(Async)"); - } - - {{/required}} - {{/allParams}} - return {{operationId}}Call({{#allParams}}{{paramName}}, {{/allParams}}headers, _callback); - - {{/performBeanValidation}} - {{#performBeanValidation}} - try { - ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); - ExecutableValidator executableValidator = factory.getValidator().forExecutables(); - - Object[] parameterValues = { {{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}} }; - Method method = this.getClass().getMethod("{{operationId}}WithHttpInfo"{{#allParams}}, {{#isArray}}java.util.List{{/isArray}}{{#isMap}}java.util.Map{{/isMap}}{{^isArray}}{{^isMap}}{{{dataType}}}{{/isMap}}{{/isArray}}.class{{/allParams}}); - Set> violations = executableValidator.validateParameters(this, method, - parameterValues); - - if (violations.size() == 0) { - return {{operationId}}Call({{#allParams}}{{paramName}}, {{/allParams}}_callback); - } else { - throw new BeanValidationException((Set) violations); - } - } catch (NoSuchMethodException e) { - e.printStackTrace(); - throw new ApiException(e.getMessage()); - } catch (SecurityException e) { - e.printStackTrace(); - throw new ApiException(e.getMessage()); - } - {{/performBeanValidation}} - } - - {{^vendorExtensions.x-group-parameters}} - /** - * {{summary}} - * {{notes}}{{#allParams}} - * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}}{{/allParams}}{{#returnType}} - * @return {{.}}{{/returnType}} - * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body - {{#responses.0}} - * @http.response.details - - - - {{#responses}} - - {{/responses}} -
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
- {{/responses.0}} - {{#isDeprecated}} - * @deprecated - {{/isDeprecated}} - {{#externalDocs}} - * {{description}} - * @see {{summary}} Documentation - {{/externalDocs}} - */ - {{#isDeprecated}} - @Deprecated - {{/isDeprecated}} - {{#vendorExtensions.x-streaming}} - public {{#returnType}}InputStream {{/returnType}}{{^returnType}}void {{/returnType}}{{operationId}}({{#allParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException { - {{#returnType}}InputStream localVarResp = {{/returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}});{{#returnType}} - return localVarResp;{{/returnType}} - } - {{/vendorExtensions.x-streaming}} - {{^vendorExtensions.x-streaming}} - public {{#returnType}}{{{.}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{operationId}}({{#allParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}, HashMap headers) throws ApiException { - {{#returnType}}ApiResponse<{{{.}}}> localVarResp = {{/returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}, headers);{{#returnType}} - return localVarResp.getData();{{/returnType}} - } - {{/vendorExtensions.x-streaming}} - {{/vendorExtensions.x-group-parameters}} - - {{^vendorExtensions.x-group-parameters}}/** - * {{summary}} - * {{notes}}{{#allParams}} - * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}}{{/allParams}} - * @return ApiResponse<{{returnType}}{{^returnType}}Void{{/returnType}}> - * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body - {{#responses.0}} - * @http.response.details - - - - {{#responses}} - - {{/responses}} -
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
- {{/responses.0}} - {{#isDeprecated}} - * @deprecated - {{/isDeprecated}} - {{#externalDocs}} - * {{description}} - * @see {{summary}} Documentation - {{/externalDocs}} - */ - {{#isDeprecated}} - @Deprecated - {{/isDeprecated}} - public{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}private{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-streaming}} InputStream {{operationId}}WithHttpInfo({{#allParams}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException { - okhttp3.Call localVarCall = {{operationId}}ValidateBeforeCall({{#allParams}}{{paramName}}, {{/allParams}}null); - {{#returnType}} - {{#errorObjectType}} - try { - Type localVarReturnType = new TypeToken<{{{returnType}}}>(){}.getType(); - return localVarApiClient.executeStream(localVarCall, localVarReturnType); - } catch (ApiException e) { - e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<{{{errorObjectType}}}>(){}.getType())); - throw e; - } - {{/errorObjectType}} - {{^errorObjectType}} - Type localVarReturnType = new TypeToken<{{{returnType}}}>(){}.getType(); - return localVarApiClient.executeStream(localVarCall, localVarReturnType); - {{/errorObjectType}} - {{/returnType}} - } - {{/vendorExtensions.x-streaming}}{{^vendorExtensions.x-streaming}} ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{operationId}}WithHttpInfo({{#allParams}}{{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}, HashMap headers) throws ApiException { - okhttp3.Call localVarCall = {{operationId}}ValidateBeforeCall({{#allParams}}{{paramName}}, {{/allParams}}headers, null); - {{^returnType}} - return localVarApiClient.execute(localVarCall); - {{/returnType}} - {{#returnType}} - {{#errorObjectType}} - try { - Type localVarReturnType = new TypeToken<{{{returnType}}}>(){}.getType(); - return localVarApiClient.execute(localVarCall, localVarReturnType); - } catch (ApiException e) { - e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<{{{errorObjectType}}}>(){}.getType())); - throw e; - } - {{/errorObjectType}} - {{^errorObjectType}} - Type localVarReturnType = new TypeToken<{{{returnType}}}>(){}.getType(); - return localVarApiClient.execute(localVarCall, localVarReturnType); - {{/errorObjectType}} - {{/returnType}} - } - {{/vendorExtensions.x-streaming}} - - {{^vendorExtensions.x-group-parameters}}/** - * {{summary}} (asynchronously) - * {{notes}}{{#allParams}} - * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}}{{/allParams}} - * @param _callback The callback to be executed when the API call finishes - * @return The request call - * @throws ApiException If fail to process the API call, e.g. serializing the request body object - {{#responses.0}} - * @http.response.details - - - - {{#responses}} - - {{/responses}} -
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
- {{/responses.0}} - {{#isDeprecated}} - * @deprecated - {{/isDeprecated}} - {{#externalDocs}} - * {{description}} - * @see {{summary}} Documentation - {{/externalDocs}} - */ - {{#isDeprecated}} - @Deprecated - {{/isDeprecated}} - public{{/vendorExtensions.x-group-parameters}}{{#vendorExtensions.x-group-parameters}}private{{/vendorExtensions.x-group-parameters}} okhttp3.Call {{operationId}}Async({{#allParams}}{{{dataType}}} {{paramName}}, {{/allParams}}HashMap headers, final ApiCallback<{{{returnType}}}{{^returnType}}Void{{/returnType}}> _callback) throws ApiException { - - okhttp3.Call localVarCall = {{operationId}}ValidateBeforeCall({{#allParams}}{{paramName}}, {{/allParams}}headers, _callback); - {{#returnType}}Type localVarReturnType = new TypeToken<{{{returnType}}}>(){}.getType(); - localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);{{/returnType}}{{^returnType}}localVarApiClient.executeAsync(localVarCall, _callback);{{/returnType}} - return localVarCall; - } - {{#vendorExtensions.x-group-parameters}} - - public class API{{operationId}}Request { - {{#requiredParams}} - private final {{{dataType}}} {{paramName}}; - {{/requiredParams}} - {{#optionalParams}} - private {{{dataType}}} {{paramName}}; - {{/optionalParams}} - - private API{{operationId}}Request({{#requiredParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/requiredParams}}) { - {{#requiredParams}} - this.{{paramName}} = {{paramName}}; - {{/requiredParams}} - } - - {{#optionalParams}} - /** - * Set {{paramName}} - * @param {{paramName}} {{description}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}) - * @return API{{operationId}}Request - */ - public API{{operationId}}Request {{paramName}}({{{dataType}}} {{paramName}}) { - this.{{paramName}} = {{paramName}}; - return this; - } - - {{/optionalParams}} - /** - * Build call for {{operationId}} - * @param _callback ApiCallback API callback - * @return Call to execute - * @throws ApiException If fail to serialize the request body object - {{#responses.0}} - * @http.response.details - - - - {{#responses}} - - {{/responses}} -
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
- {{/responses.0}} - {{#isDeprecated}} - * @deprecated - {{/isDeprecated}} - */ - {{#isDeprecated}} - @Deprecated - {{/isDeprecated}} - public okhttp3.Call buildCall(final ApiCallback _callback) throws ApiException { - return {{operationId}}Call({{#allParams}}{{paramName}}, {{/allParams}}_callback); - } - - /** - * Execute {{operationId}} request{{#returnType}} - * @return {{.}}{{/returnType}} - * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body - {{#responses.0}} - * @http.response.details - - - - {{#responses}} - - {{/responses}} -
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
- {{/responses.0}} - {{#isDeprecated}} - * @deprecated - {{/isDeprecated}} - */ - {{#isDeprecated}} - @Deprecated - {{/isDeprecated}} - {{^vendorExtensions.x-streaming}} - public {{{returnType}}}{{^returnType}}void{{/returnType}} execute() throws ApiException { - {{#returnType}}ApiResponse<{{{.}}}> localVarResp = {{/returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}});{{#returnType}} - return localVarResp.getData();{{/returnType}} - } - {{/vendorExtensions.x-streaming}} - {{#vendorExtensions.x-streaming}} - public InputStream execute() throws ApiException { - return {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); - } - {{/vendorExtensions.x-streaming}} - - /** - * Execute {{operationId}} request with HTTP info returned - * @return ApiResponse<{{returnType}}{{^returnType}}Void{{/returnType}}> - * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body - {{#responses.0}} - * @http.response.details - - - - {{#responses}} - - {{/responses}} -
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
- {{/responses.0}} - {{#isDeprecated}} - * @deprecated - {{/isDeprecated}} - */ - {{#isDeprecated}} - @Deprecated - {{/isDeprecated}} - {{^vendorExtensions.x-streaming}} - public ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}> executeWithHttpInfo() throws ApiException { - return {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); - } - {{/vendorExtensions.x-streaming}} - {{#vendorExtensions.x-streaming}} - public InputStream executeWithHttpInfo() throws ApiException { - return {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); - } - {{/vendorExtensions.x-streaming}} - - /** - * Execute {{operationId}} request (asynchronously) - * @param _callback The callback to be executed when the API call finishes - * @return The request call - * @throws ApiException If fail to process the API call, e.g. serializing the request body object - {{#responses.0}} - * @http.response.details - - - - {{#responses}} - - {{/responses}} -
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
- {{/responses.0}} - {{#isDeprecated}} - * @deprecated - {{/isDeprecated}} - */ - {{#isDeprecated}} - @Deprecated - {{/isDeprecated}} - public okhttp3.Call executeAsync(final ApiCallback<{{{returnType}}}{{^returnType}}Void{{/returnType}}> _callback) throws ApiException { - return {{operationId}}Async({{#allParams}}{{paramName}}, {{/allParams}}_callback); - } - } - - /** - * {{summary}} - * {{notes}}{{#requiredParams}} - * @param {{paramName}} {{description}} (required){{/requiredParams}} - * @return API{{operationId}}Request - {{#responses.0}} - * @http.response.details - - - - {{#responses}} - - {{/responses}} -
Response Details
Status Code Description Response Headers
{{code}} {{message}} {{#headers}} * {{baseName}} - {{description}}
{{/headers}}{{^headers.0}} - {{/headers.0}}
- {{/responses.0}} - {{#isDeprecated}} - * @deprecated - {{/isDeprecated}} - {{#externalDocs}} - * {{description}} - * @see {{summary}} Documentation - {{/externalDocs}} - */ - {{#isDeprecated}} - @Deprecated - {{/isDeprecated}} - public API{{operationId}}Request {{operationId}}({{#requiredParams}}{{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/requiredParams}}) { - return new API{{operationId}}Request({{#requiredParams}}{{paramName}}{{^-last}}, {{/-last}}{{/requiredParams}}); - } - {{/vendorExtensions.x-group-parameters}} - {{/operation}} - } -{{/operations}} \ No newline at end of file diff --git a/client/generator-templates/pojo.mustache b/client/generator-templates/pojo.mustache index 850d7ea4..fbfed6f9 100644 --- a/client/generator-templates/pojo.mustache +++ b/client/generator-templates/pojo.mustache @@ -80,13 +80,6 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens super(); {{/parcelableModel}} {{/parent}} - {{#discriminator}} - {{#discriminator.isEnum}} -{{#readWriteVars}}{{#isDiscriminator}}{{#defaultValue}} - this.{{name}} = {{defaultValue}}; -{{/defaultValue}}{{/isDiscriminator}}{{/readWriteVars}} - {{/discriminator.isEnum}} - {{/discriminator}} } {{#vendorExtensions.x-has-readonly-properties}} {{^withXml}} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java index 0ecb4007..d5543f2e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/HealthcheckApi.java @@ -78,8 +78,7 @@ public void setCustomBaseUrl(String customBaseUrl) { * 200 Device info. - * */ - public okhttp3.Call healthzCall( - String xRequestID, HashMap headers, final ApiCallback _callback) + public okhttp3.Call healthzCall(String xRequestID, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -122,11 +121,6 @@ public okhttp3.Call healthzCall( localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); } - if (headers != null) { - for (String key : headers.keySet()) { - localVarHeaderParams.put(key, headers.get(key)); - } - } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -143,10 +137,9 @@ public okhttp3.Call healthzCall( } @SuppressWarnings("rawtypes") - private okhttp3.Call healthzValidateBeforeCall( - String xRequestID, HashMap headers, final ApiCallback _callback) + private okhttp3.Call healthzValidateBeforeCall(String xRequestID, final ApiCallback _callback) throws ApiException { - return healthzCall(xRequestID, headers, _callback); + return healthzCall(xRequestID, _callback); } /** @@ -163,9 +156,8 @@ private okhttp3.Call healthzValidateBeforeCall( * 200 Device info. - * */ - public Healthcheck healthz(String xRequestID, HashMap headers) - throws ApiException { - ApiResponse localVarResp = healthzWithHttpInfo(xRequestID, headers); + public Healthcheck healthz(String xRequestID) throws ApiException { + ApiResponse localVarResp = healthzWithHttpInfo(xRequestID); return localVarResp.getData(); } @@ -183,9 +175,8 @@ public Healthcheck healthz(String xRequestID, HashMap headers) * 200 Device info. - * */ - public ApiResponse healthzWithHttpInfo( - String xRequestID, HashMap headers) throws ApiException { - okhttp3.Call localVarCall = healthzValidateBeforeCall(xRequestID, headers, null); + public ApiResponse healthzWithHttpInfo(String xRequestID) throws ApiException { + okhttp3.Call localVarCall = healthzValidateBeforeCall(xRequestID, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -204,11 +195,10 @@ public ApiResponse healthzWithHttpInfo( * 200 Device info. - * */ - public okhttp3.Call healthzAsync( - String xRequestID, HashMap headers, final ApiCallback _callback) + public okhttp3.Call healthzAsync(String xRequestID, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = healthzValidateBeforeCall(xRequestID, headers, _callback); + okhttp3.Call localVarCall = healthzValidateBeforeCall(xRequestID, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -230,9 +220,7 @@ public okhttp3.Call healthzAsync( * @deprecated */ @Deprecated - public okhttp3.Call pingCall( - String xRequestID, HashMap headers, final ApiCallback _callback) - throws ApiException { + public okhttp3.Call pingCall(String xRequestID, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] {}; @@ -274,11 +262,6 @@ public okhttp3.Call pingCall( localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); } - if (headers != null) { - for (String key : headers.keySet()) { - localVarHeaderParams.put(key, headers.get(key)); - } - } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -296,10 +279,9 @@ public okhttp3.Call pingCall( @Deprecated @SuppressWarnings("rawtypes") - private okhttp3.Call pingValidateBeforeCall( - String xRequestID, HashMap headers, final ApiCallback _callback) + private okhttp3.Call pingValidateBeforeCall(String xRequestID, final ApiCallback _callback) throws ApiException { - return pingCall(xRequestID, headers, _callback); + return pingCall(xRequestID, _callback); } /** @@ -319,8 +301,8 @@ private okhttp3.Call pingValidateBeforeCall( * @deprecated */ @Deprecated - public DeviceInfo ping(String xRequestID, HashMap headers) throws ApiException { - ApiResponse localVarResp = pingWithHttpInfo(xRequestID, headers); + public DeviceInfo ping(String xRequestID) throws ApiException { + ApiResponse localVarResp = pingWithHttpInfo(xRequestID); return localVarResp.getData(); } @@ -341,9 +323,8 @@ public DeviceInfo ping(String xRequestID, HashMap headers) throw * @deprecated */ @Deprecated - public ApiResponse pingWithHttpInfo( - String xRequestID, HashMap headers) throws ApiException { - okhttp3.Call localVarCall = pingValidateBeforeCall(xRequestID, headers, null); + public ApiResponse pingWithHttpInfo(String xRequestID) throws ApiException { + okhttp3.Call localVarCall = pingValidateBeforeCall(xRequestID, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -365,11 +346,10 @@ public ApiResponse pingWithHttpInfo( * @deprecated */ @Deprecated - public okhttp3.Call pingAsync( - String xRequestID, HashMap headers, final ApiCallback _callback) + public okhttp3.Call pingAsync(String xRequestID, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = pingValidateBeforeCall(xRequestID, headers, _callback); + okhttp3.Call localVarCall = pingValidateBeforeCall(xRequestID, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -389,8 +369,7 @@ public okhttp3.Call pingAsync( * 400 The license is not valid. - * */ - public okhttp3.Call readyzCall( - String xRequestID, HashMap headers, final ApiCallback _callback) + public okhttp3.Call readyzCall(String xRequestID, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -433,11 +412,6 @@ public okhttp3.Call readyzCall( localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); } - if (headers != null) { - for (String key : headers.keySet()) { - localVarHeaderParams.put(key, headers.get(key)); - } - } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -454,10 +428,9 @@ public okhttp3.Call readyzCall( } @SuppressWarnings("rawtypes") - private okhttp3.Call readyzValidateBeforeCall( - String xRequestID, HashMap headers, final ApiCallback _callback) + private okhttp3.Call readyzValidateBeforeCall(String xRequestID, final ApiCallback _callback) throws ApiException { - return readyzCall(xRequestID, headers, _callback); + return readyzCall(xRequestID, _callback); } /** @@ -474,8 +447,8 @@ private okhttp3.Call readyzValidateBeforeCall( * 400 The license is not valid. - * */ - public void readyz(String xRequestID, HashMap headers) throws ApiException { - readyzWithHttpInfo(xRequestID, headers); + public void readyz(String xRequestID) throws ApiException { + readyzWithHttpInfo(xRequestID); } /** @@ -493,9 +466,8 @@ public void readyz(String xRequestID, HashMap headers) throws Ap * 400 The license is not valid. - * */ - public ApiResponse readyzWithHttpInfo(String xRequestID, HashMap headers) - throws ApiException { - okhttp3.Call localVarCall = readyzValidateBeforeCall(xRequestID, headers, null); + public ApiResponse readyzWithHttpInfo(String xRequestID) throws ApiException { + okhttp3.Call localVarCall = readyzValidateBeforeCall(xRequestID, null); return localVarApiClient.execute(localVarCall); } @@ -514,11 +486,10 @@ public ApiResponse readyzWithHttpInfo(String xRequestID, HashMap 400 The license is not valid. - * */ - public okhttp3.Call readyzAsync( - String xRequestID, HashMap headers, final ApiCallback _callback) + public okhttp3.Call readyzAsync(String xRequestID, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = readyzValidateBeforeCall(xRequestID, headers, _callback); + okhttp3.Call localVarCall = readyzValidateBeforeCall(xRequestID, _callback); localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java index e6def438..ac68c861 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/ProcessApi.java @@ -82,10 +82,7 @@ public void setCustomBaseUrl(String customBaseUrl) { * */ public okhttp3.Call apiProcessCall( - ProcessRequest processRequest, - String xRequestID, - HashMap headers, - final ApiCallback _callback) + ProcessRequest processRequest, String xRequestID, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -128,11 +125,6 @@ public okhttp3.Call apiProcessCall( localVarHeaderParams.put("X-RequestID", localVarApiClient.parameterToString(xRequestID)); } - if (headers != null) { - for (String key : headers.keySet()) { - localVarHeaderParams.put(key, headers.get(key)); - } - } String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -150,10 +142,7 @@ public okhttp3.Call apiProcessCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiProcessValidateBeforeCall( - ProcessRequest processRequest, - String xRequestID, - HashMap headers, - final ApiCallback _callback) + ProcessRequest processRequest, String xRequestID, final ApiCallback _callback) throws ApiException { // verify the required parameter 'processRequest' is set if (processRequest == null) { @@ -161,7 +150,7 @@ private okhttp3.Call apiProcessValidateBeforeCall( "Missing the required parameter 'processRequest' when calling apiProcess(Async)"); } - return apiProcessCall(processRequest, xRequestID, headers, _callback); + return apiProcessCall(processRequest, xRequestID, _callback); } /** @@ -181,11 +170,9 @@ private okhttp3.Call apiProcessValidateBeforeCall( * 403 Bad license. Either server or request does not contain valid license. - * */ - public ProcessResponse apiProcess( - ProcessRequest processRequest, String xRequestID, HashMap headers) + public ProcessResponse apiProcess(ProcessRequest processRequest, String xRequestID) throws ApiException { - ApiResponse localVarResp = - apiProcessWithHttpInfo(processRequest, xRequestID, headers); + ApiResponse localVarResp = apiProcessWithHttpInfo(processRequest, xRequestID); return localVarResp.getData(); } @@ -207,10 +194,8 @@ public ProcessResponse apiProcess( * */ public ApiResponse apiProcessWithHttpInfo( - ProcessRequest processRequest, String xRequestID, HashMap headers) - throws ApiException { - okhttp3.Call localVarCall = - apiProcessValidateBeforeCall(processRequest, xRequestID, headers, null); + ProcessRequest processRequest, String xRequestID) throws ApiException { + okhttp3.Call localVarCall = apiProcessValidateBeforeCall(processRequest, xRequestID, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -235,12 +220,10 @@ public ApiResponse apiProcessWithHttpInfo( public okhttp3.Call apiProcessAsync( ProcessRequest processRequest, String xRequestID, - HashMap headers, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = - apiProcessValidateBeforeCall(processRequest, xRequestID, headers, _callback); + okhttp3.Call localVarCall = apiProcessValidateBeforeCall(processRequest, xRequestID, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java b/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java index 69de1647..28190d3c 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/api/TransactionApi.java @@ -85,8 +85,7 @@ public void setCustomBaseUrl(String customBaseUrl) { * 403 Bad license. Either server or request does not contain valid license. - * */ - public okhttp3.Call apiV2TagTagIdDeleteCall( - UUID tagId, HashMap headers, final ApiCallback _callback) + public okhttp3.Call apiV2TagTagIdDeleteCall(UUID tagId, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -126,11 +125,7 @@ public okhttp3.Call apiV2TagTagIdDeleteCall( if (localVarContentType != null) { localVarHeaderParams.put("Content-Type", localVarContentType); } - if (headers != null) { - for (String key : headers.keySet()) { - localVarHeaderParams.put(key, headers.get(key)); - } - } + String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -148,15 +143,14 @@ public okhttp3.Call apiV2TagTagIdDeleteCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TagTagIdDeleteValidateBeforeCall( - UUID tagId, HashMap headers, final ApiCallback _callback) - throws ApiException { + UUID tagId, final ApiCallback _callback) throws ApiException { // verify the required parameter 'tagId' is set if (tagId == null) { throw new ApiException( "Missing the required parameter 'tagId' when calling apiV2TagTagIdDelete(Async)"); } - return apiV2TagTagIdDeleteCall(tagId, headers, _callback); + return apiV2TagTagIdDeleteCall(tagId, _callback); } /** @@ -175,9 +169,8 @@ private okhttp3.Call apiV2TagTagIdDeleteValidateBeforeCall( * 403 Bad license. Either server or request does not contain valid license. - * */ - public Object apiV2TagTagIdDelete(UUID tagId, HashMap headers) - throws ApiException { - ApiResponse localVarResp = apiV2TagTagIdDeleteWithHttpInfo(tagId, headers); + public Object apiV2TagTagIdDelete(UUID tagId) throws ApiException { + ApiResponse localVarResp = apiV2TagTagIdDeleteWithHttpInfo(tagId); return localVarResp.getData(); } @@ -197,9 +190,8 @@ public Object apiV2TagTagIdDelete(UUID tagId, HashMap headers) * 403 Bad license. Either server or request does not contain valid license. - * */ - public ApiResponse apiV2TagTagIdDeleteWithHttpInfo( - UUID tagId, HashMap headers) throws ApiException { - okhttp3.Call localVarCall = apiV2TagTagIdDeleteValidateBeforeCall(tagId, headers, null); + public ApiResponse apiV2TagTagIdDeleteWithHttpInfo(UUID tagId) throws ApiException { + okhttp3.Call localVarCall = apiV2TagTagIdDeleteValidateBeforeCall(tagId, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -220,11 +212,10 @@ public ApiResponse apiV2TagTagIdDeleteWithHttpInfo( * 403 Bad license. Either server or request does not contain valid license. - * */ - public okhttp3.Call apiV2TagTagIdDeleteAsync( - UUID tagId, HashMap headers, final ApiCallback _callback) + public okhttp3.Call apiV2TagTagIdDeleteAsync(UUID tagId, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = apiV2TagTagIdDeleteValidateBeforeCall(tagId, headers, _callback); + okhttp3.Call localVarCall = apiV2TagTagIdDeleteValidateBeforeCall(tagId, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -245,8 +236,7 @@ public okhttp3.Call apiV2TagTagIdDeleteAsync( * 403 Bad license. Either server or request does not contain valid license. - * */ - public okhttp3.Call apiV2TagTagIdTransactionsGetCall( - String tagId, HashMap headers, final ApiCallback _callback) + public okhttp3.Call apiV2TagTagIdTransactionsGetCall(String tagId, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers @@ -286,11 +276,7 @@ public okhttp3.Call apiV2TagTagIdTransactionsGetCall( if (localVarContentType != null) { localVarHeaderParams.put("Content-Type", localVarContentType); } - if (headers != null) { - for (String key : headers.keySet()) { - localVarHeaderParams.put(key, headers.get(key)); - } - } + String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -308,15 +294,14 @@ public okhttp3.Call apiV2TagTagIdTransactionsGetCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TagTagIdTransactionsGetValidateBeforeCall( - String tagId, HashMap headers, final ApiCallback _callback) - throws ApiException { + String tagId, final ApiCallback _callback) throws ApiException { // verify the required parameter 'tagId' is set if (tagId == null) { throw new ApiException( "Missing the required parameter 'tagId' when calling apiV2TagTagIdTransactionsGet(Async)"); } - return apiV2TagTagIdTransactionsGetCall(tagId, headers, _callback); + return apiV2TagTagIdTransactionsGetCall(tagId, _callback); } /** @@ -335,10 +320,10 @@ private okhttp3.Call apiV2TagTagIdTransactionsGetValidateBeforeCall( * 403 Bad license. Either server or request does not contain valid license. - * */ - public ListTransactionsByTagResponse apiV2TagTagIdTransactionsGet( - String tagId, HashMap headers) throws ApiException { + public ListTransactionsByTagResponse apiV2TagTagIdTransactionsGet(String tagId) + throws ApiException { ApiResponse localVarResp = - apiV2TagTagIdTransactionsGetWithHttpInfo(tagId, headers); + apiV2TagTagIdTransactionsGetWithHttpInfo(tagId); return localVarResp.getData(); } @@ -359,9 +344,8 @@ public ListTransactionsByTagResponse apiV2TagTagIdTransactionsGet( * */ public ApiResponse apiV2TagTagIdTransactionsGetWithHttpInfo( - String tagId, HashMap headers) throws ApiException { - okhttp3.Call localVarCall = - apiV2TagTagIdTransactionsGetValidateBeforeCall(tagId, headers, null); + String tagId) throws ApiException { + okhttp3.Call localVarCall = apiV2TagTagIdTransactionsGetValidateBeforeCall(tagId, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -383,13 +367,10 @@ public ApiResponse apiV2TagTagIdTransactionsGetWi * */ public okhttp3.Call apiV2TagTagIdTransactionsGetAsync( - String tagId, - HashMap headers, - final ApiCallback _callback) + String tagId, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = - apiV2TagTagIdTransactionsGetValidateBeforeCall(tagId, headers, _callback); + okhttp3.Call localVarCall = apiV2TagTagIdTransactionsGetValidateBeforeCall(tagId, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -411,8 +392,7 @@ public okhttp3.Call apiV2TagTagIdTransactionsGetAsync( * */ public okhttp3.Call apiV2TransactionTransactionIdFileGetCall( - UUID transactionId, String name, HashMap headers, final ApiCallback _callback) - throws ApiException { + UUID transactionId, String name, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] {}; @@ -457,11 +437,7 @@ public okhttp3.Call apiV2TransactionTransactionIdFileGetCall( if (localVarContentType != null) { localVarHeaderParams.put("Content-Type", localVarContentType); } - if (headers != null) { - for (String key : headers.keySet()) { - localVarHeaderParams.put(key, headers.get(key)); - } - } + String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -479,8 +455,7 @@ public okhttp3.Call apiV2TransactionTransactionIdFileGetCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TransactionTransactionIdFileGetValidateBeforeCall( - UUID transactionId, String name, HashMap headers, final ApiCallback _callback) - throws ApiException { + UUID transactionId, String name, final ApiCallback _callback) throws ApiException { // verify the required parameter 'transactionId' is set if (transactionId == null) { throw new ApiException( @@ -493,7 +468,7 @@ private okhttp3.Call apiV2TransactionTransactionIdFileGetValidateBeforeCall( "Missing the required parameter 'name' when calling apiV2TransactionTransactionIdFileGet(Async)"); } - return apiV2TransactionTransactionIdFileGetCall(transactionId, name, headers, _callback); + return apiV2TransactionTransactionIdFileGetCall(transactionId, name, _callback); } /** @@ -512,10 +487,10 @@ private okhttp3.Call apiV2TransactionTransactionIdFileGetValidateBeforeCall( * 404 File not found - * */ - public File apiV2TransactionTransactionIdFileGet( - UUID transactionId, String name, HashMap headers) throws ApiException { + public File apiV2TransactionTransactionIdFileGet(UUID transactionId, String name) + throws ApiException { ApiResponse localVarResp = - apiV2TransactionTransactionIdFileGetWithHttpInfo(transactionId, name, headers); + apiV2TransactionTransactionIdFileGetWithHttpInfo(transactionId, name); return localVarResp.getData(); } @@ -536,9 +511,9 @@ public File apiV2TransactionTransactionIdFileGet( * */ public ApiResponse apiV2TransactionTransactionIdFileGetWithHttpInfo( - UUID transactionId, String name, HashMap headers) throws ApiException { + UUID transactionId, String name) throws ApiException { okhttp3.Call localVarCall = - apiV2TransactionTransactionIdFileGetValidateBeforeCall(transactionId, name, headers, null); + apiV2TransactionTransactionIdFileGetValidateBeforeCall(transactionId, name, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -560,15 +535,10 @@ public ApiResponse apiV2TransactionTransactionIdFileGetWithHttpInfo( * */ public okhttp3.Call apiV2TransactionTransactionIdFileGetAsync( - UUID transactionId, - String name, - HashMap headers, - final ApiCallback _callback) - throws ApiException { + UUID transactionId, String name, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = - apiV2TransactionTransactionIdFileGetValidateBeforeCall( - transactionId, name, headers, _callback); + apiV2TransactionTransactionIdFileGetValidateBeforeCall(transactionId, name, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -590,8 +560,7 @@ public okhttp3.Call apiV2TransactionTransactionIdFileGetAsync( * */ public okhttp3.Call apiV2TransactionTransactionIdGetCall( - UUID transactionId, HashMap headers, final ApiCallback _callback) - throws ApiException { + UUID transactionId, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] {}; @@ -632,11 +601,7 @@ public okhttp3.Call apiV2TransactionTransactionIdGetCall( if (localVarContentType != null) { localVarHeaderParams.put("Content-Type", localVarContentType); } - if (headers != null) { - for (String key : headers.keySet()) { - localVarHeaderParams.put(key, headers.get(key)); - } - } + String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -654,15 +619,14 @@ public okhttp3.Call apiV2TransactionTransactionIdGetCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TransactionTransactionIdGetValidateBeforeCall( - UUID transactionId, HashMap headers, final ApiCallback _callback) - throws ApiException { + UUID transactionId, final ApiCallback _callback) throws ApiException { // verify the required parameter 'transactionId' is set if (transactionId == null) { throw new ApiException( "Missing the required parameter 'transactionId' when calling apiV2TransactionTransactionIdGet(Async)"); } - return apiV2TransactionTransactionIdGetCall(transactionId, headers, _callback); + return apiV2TransactionTransactionIdGetCall(transactionId, _callback); } /** @@ -681,10 +645,10 @@ private okhttp3.Call apiV2TransactionTransactionIdGetValidateBeforeCall( * 403 Bad license. Either server or request does not contain valid license. - * */ - public TransactionProcessGetResponse apiV2TransactionTransactionIdGet( - UUID transactionId, HashMap headers) throws ApiException { + public TransactionProcessGetResponse apiV2TransactionTransactionIdGet(UUID transactionId) + throws ApiException { ApiResponse localVarResp = - apiV2TransactionTransactionIdGetWithHttpInfo(transactionId, headers); + apiV2TransactionTransactionIdGetWithHttpInfo(transactionId); return localVarResp.getData(); } @@ -705,9 +669,9 @@ public TransactionProcessGetResponse apiV2TransactionTransactionIdGet( * */ public ApiResponse apiV2TransactionTransactionIdGetWithHttpInfo( - UUID transactionId, HashMap headers) throws ApiException { + UUID transactionId) throws ApiException { okhttp3.Call localVarCall = - apiV2TransactionTransactionIdGetValidateBeforeCall(transactionId, headers, null); + apiV2TransactionTransactionIdGetValidateBeforeCall(transactionId, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -729,13 +693,11 @@ public ApiResponse apiV2TransactionTransactionIdG * */ public okhttp3.Call apiV2TransactionTransactionIdGetAsync( - UUID transactionId, - HashMap headers, - final ApiCallback _callback) + UUID transactionId, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = - apiV2TransactionTransactionIdGetValidateBeforeCall(transactionId, headers, _callback); + apiV2TransactionTransactionIdGetValidateBeforeCall(transactionId, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -760,7 +722,6 @@ public okhttp3.Call apiV2TransactionTransactionIdGetAsync( public okhttp3.Call apiV2TransactionTransactionIdProcessPostCall( UUID transactionId, TransactionProcessRequest transactionProcessRequest, - HashMap headers, final ApiCallback _callback) throws ApiException { String basePath = null; @@ -803,11 +764,7 @@ public okhttp3.Call apiV2TransactionTransactionIdProcessPostCall( if (localVarContentType != null) { localVarHeaderParams.put("Content-Type", localVarContentType); } - if (headers != null) { - for (String key : headers.keySet()) { - localVarHeaderParams.put(key, headers.get(key)); - } - } + String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -827,7 +784,6 @@ public okhttp3.Call apiV2TransactionTransactionIdProcessPostCall( private okhttp3.Call apiV2TransactionTransactionIdProcessPostValidateBeforeCall( UUID transactionId, TransactionProcessRequest transactionProcessRequest, - HashMap headers, final ApiCallback _callback) throws ApiException { // verify the required parameter 'transactionId' is set @@ -843,7 +799,7 @@ private okhttp3.Call apiV2TransactionTransactionIdProcessPostValidateBeforeCall( } return apiV2TransactionTransactionIdProcessPostCall( - transactionId, transactionProcessRequest, headers, _callback); + transactionId, transactionProcessRequest, _callback); } /** @@ -864,13 +820,10 @@ private okhttp3.Call apiV2TransactionTransactionIdProcessPostValidateBeforeCall( * */ public TransactionProcessResult apiV2TransactionTransactionIdProcessPost( - UUID transactionId, - TransactionProcessRequest transactionProcessRequest, - HashMap headers) - throws ApiException { + UUID transactionId, TransactionProcessRequest transactionProcessRequest) throws ApiException { ApiResponse localVarResp = apiV2TransactionTransactionIdProcessPostWithHttpInfo( - transactionId, transactionProcessRequest, headers); + transactionId, transactionProcessRequest); return localVarResp.getData(); } @@ -892,13 +845,10 @@ public TransactionProcessResult apiV2TransactionTransactionIdProcessPost( * */ public ApiResponse apiV2TransactionTransactionIdProcessPostWithHttpInfo( - UUID transactionId, - TransactionProcessRequest transactionProcessRequest, - HashMap headers) - throws ApiException { + UUID transactionId, TransactionProcessRequest transactionProcessRequest) throws ApiException { okhttp3.Call localVarCall = apiV2TransactionTransactionIdProcessPostValidateBeforeCall( - transactionId, transactionProcessRequest, headers, null); + transactionId, transactionProcessRequest, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -923,13 +873,12 @@ public ApiResponse apiV2TransactionTransactionIdProces public okhttp3.Call apiV2TransactionTransactionIdProcessPostAsync( UUID transactionId, TransactionProcessRequest transactionProcessRequest, - HashMap headers, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = apiV2TransactionTransactionIdProcessPostValidateBeforeCall( - transactionId, transactionProcessRequest, headers, _callback); + transactionId, transactionProcessRequest, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -952,11 +901,7 @@ public okhttp3.Call apiV2TransactionTransactionIdProcessPostAsync( * */ public okhttp3.Call apiV2TransactionTransactionIdResultsGetCall( - UUID transactionId, - Boolean withImages, - HashMap headers, - final ApiCallback _callback) - throws ApiException { + UUID transactionId, Boolean withImages, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] {}; @@ -1001,11 +946,7 @@ public okhttp3.Call apiV2TransactionTransactionIdResultsGetCall( if (localVarContentType != null) { localVarHeaderParams.put("Content-Type", localVarContentType); } - if (headers != null) { - for (String key : headers.keySet()) { - localVarHeaderParams.put(key, headers.get(key)); - } - } + String[] localVarAuthNames = new String[] {}; return localVarApiClient.buildCall( basePath, @@ -1023,19 +964,14 @@ public okhttp3.Call apiV2TransactionTransactionIdResultsGetCall( @SuppressWarnings("rawtypes") private okhttp3.Call apiV2TransactionTransactionIdResultsGetValidateBeforeCall( - UUID transactionId, - Boolean withImages, - HashMap headers, - final ApiCallback _callback) - throws ApiException { + UUID transactionId, Boolean withImages, final ApiCallback _callback) throws ApiException { // verify the required parameter 'transactionId' is set if (transactionId == null) { throw new ApiException( "Missing the required parameter 'transactionId' when calling apiV2TransactionTransactionIdResultsGet(Async)"); } - return apiV2TransactionTransactionIdResultsGetCall( - transactionId, withImages, headers, _callback); + return apiV2TransactionTransactionIdResultsGetCall(transactionId, withImages, _callback); } /** @@ -1056,9 +992,9 @@ private okhttp3.Call apiV2TransactionTransactionIdResultsGetValidateBeforeCall( * */ public ProcessResponse apiV2TransactionTransactionIdResultsGet( - UUID transactionId, Boolean withImages, HashMap headers) throws ApiException { + UUID transactionId, Boolean withImages) throws ApiException { ApiResponse localVarResp = - apiV2TransactionTransactionIdResultsGetWithHttpInfo(transactionId, withImages, headers); + apiV2TransactionTransactionIdResultsGetWithHttpInfo(transactionId, withImages); return localVarResp.getData(); } @@ -1080,10 +1016,9 @@ public ProcessResponse apiV2TransactionTransactionIdResultsGet( * */ public ApiResponse apiV2TransactionTransactionIdResultsGetWithHttpInfo( - UUID transactionId, Boolean withImages, HashMap headers) throws ApiException { + UUID transactionId, Boolean withImages) throws ApiException { okhttp3.Call localVarCall = - apiV2TransactionTransactionIdResultsGetValidateBeforeCall( - transactionId, withImages, headers, null); + apiV2TransactionTransactionIdResultsGetValidateBeforeCall(transactionId, withImages, null); Type localVarReturnType = new TypeToken() {}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -1106,15 +1041,12 @@ public ApiResponse apiV2TransactionTransactionIdResultsGetWithH * */ public okhttp3.Call apiV2TransactionTransactionIdResultsGetAsync( - UUID transactionId, - Boolean withImages, - HashMap headers, - final ApiCallback _callback) + UUID transactionId, Boolean withImages, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = apiV2TransactionTransactionIdResultsGetValidateBeforeCall( - transactionId, withImages, headers, _callback); + transactionId, withImages, _callback); Type localVarReturnType = new TypeToken() {}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/client/src/main/generated/com/regula/documentreader/webclient/auth/ApiKeyAuth.java b/client/src/main/generated/com/regula/documentreader/webclient/auth/ApiKeyAuth.java old mode 100755 new mode 100644 diff --git a/client/src/main/generated/com/regula/documentreader/webclient/auth/Authentication.java b/client/src/main/generated/com/regula/documentreader/webclient/auth/Authentication.java old mode 100755 new mode 100644 diff --git a/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBasicAuth.java b/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBasicAuth.java old mode 100755 new mode 100644 diff --git a/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBearerAuth.java b/client/src/main/generated/com/regula/documentreader/webclient/auth/HttpBearerAuth.java old mode 100755 new mode 100644 diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java index 95ba432a..bbd463e6 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/AuthenticityCheckResultItem.java @@ -28,7 +28,7 @@ public class AuthenticityCheckResultItem { @SerializedName(SERIALIZED_NAME_TYPE) @javax.annotation.Nonnull - protected Integer type = 0; + protected AuthenticityResultType type; public static final String SERIALIZED_NAME_ELEMENT_RESULT = "ElementResult"; @@ -50,23 +50,22 @@ public class AuthenticityCheckResultItem { public AuthenticityCheckResultItem() {} - public AuthenticityCheckResultItem type(@javax.annotation.Nonnull Integer type) { + public AuthenticityCheckResultItem type(@javax.annotation.Nonnull AuthenticityResultType type) { this.type = type; return this; } /** - * Same as authenticity result type, but used for safe parsing of not-described values: - * https://docs.regulaforensics.com/develop/doc-reader-sdk/web-service/development/enums/authenticity-result-type/ + * Get type * * @return type */ @javax.annotation.Nonnull - public Integer getType() { + public AuthenticityResultType getType() { return type; } - public void setType(@javax.annotation.Nonnull Integer type) { + public void setType(@javax.annotation.Nonnull AuthenticityResultType type) { this.type = type; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java index 0f3e7847..188441d0 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessParams.java @@ -323,7 +323,7 @@ public class ProcessParams { @SerializedName(SERIALIZED_NAME_PROCESS_AUTH) @javax.annotation.Nullable - private Long processAuth; + private AuthenticityResultType processAuth; public static final String SERIALIZED_NAME_DEVICE_ID = "deviceId"; @@ -405,6 +405,12 @@ public class ProcessParams { @javax.annotation.Nullable private List doBarcodes; + public static final String SERIALIZED_NAME_STRICT_D_L_CATEGORY_EXPIRY = "strictDLCategoryExpiry"; + + @SerializedName(SERIALIZED_NAME_STRICT_D_L_CATEGORY_EXPIRY) + @javax.annotation.Nullable + private Boolean strictDLCategoryExpiry; + public ProcessParams() {} public ProcessParams generateDTCVC(@javax.annotation.Nullable Boolean generateDTCVC) { @@ -1417,24 +1423,22 @@ public void setDocumentGroupFilter( this.documentGroupFilter = documentGroupFilter; } - public ProcessParams processAuth(@javax.annotation.Nullable Long processAuth) { + public ProcessParams processAuth(@javax.annotation.Nullable AuthenticityResultType processAuth) { this.processAuth = processAuth; return this; } /** - * Authenticity checks that should be performed regardless of the document type. The available - * checks are listed in the eRPRM_Authenticity enum. Note that only supported by your license - * checks can be added. + * Get processAuth * * @return processAuth */ @javax.annotation.Nullable - public Long getProcessAuth() { + public AuthenticityResultType getProcessAuth() { return processAuth; } - public void setProcessAuth(@javax.annotation.Nullable Long processAuth) { + public void setProcessAuth(@javax.annotation.Nullable AuthenticityResultType processAuth) { this.processAuth = processAuth; } @@ -1714,6 +1718,28 @@ public void setDoBarcodes(@javax.annotation.Nullable List doBa this.doBarcodes = doBarcodes; } + public ProcessParams strictDLCategoryExpiry( + @javax.annotation.Nullable Boolean strictDLCategoryExpiry) { + this.strictDLCategoryExpiry = strictDLCategoryExpiry; + return this; + } + + /** + * Set to force DL categories expiry date to affect the overall status or not. As documents + * usually have their own date of expiry, which might be less or greater than category expiry + * date, this might be handy for specific cases. + * + * @return strictDLCategoryExpiry + */ + @javax.annotation.Nullable + public Boolean getStrictDLCategoryExpiry() { + return strictDLCategoryExpiry; + } + + public void setStrictDLCategoryExpiry(@javax.annotation.Nullable Boolean strictDLCategoryExpiry) { + this.strictDLCategoryExpiry = strictDLCategoryExpiry; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -1785,7 +1811,8 @@ public boolean equals(Object o) { this.strictBarcodeDigitalSignatureCheck, processParams.strictBarcodeDigitalSignatureCheck) && Objects.equals(this.selectLongestNames, processParams.selectLongestNames) - && Objects.equals(this.doBarcodes, processParams.doBarcodes); + && Objects.equals(this.doBarcodes, processParams.doBarcodes) + && Objects.equals(this.strictDLCategoryExpiry, processParams.strictDLCategoryExpiry); } @Override @@ -1850,7 +1877,8 @@ public int hashCode() { generateNumericCodes, strictBarcodeDigitalSignatureCheck, selectLongestNames, - doBarcodes); + doBarcodes, + strictDLCategoryExpiry); } @Override @@ -1947,6 +1975,9 @@ public String toString() { .append("\n"); sb.append(" selectLongestNames: ").append(toIndentedString(selectLongestNames)).append("\n"); sb.append(" doBarcodes: ").append(toIndentedString(doBarcodes)).append("\n"); + sb.append(" strictDLCategoryExpiry: ") + .append(toIndentedString(strictDLCategoryExpiry)) + .append("\n"); sb.append("}"); return sb.toString(); } @@ -2027,6 +2058,7 @@ private String toIndentedString(Object o) { openapiFields.add("strictBarcodeDigitalSignatureCheck"); openapiFields.add("selectLongestNames"); openapiFields.add("doBarcodes"); + openapiFields.add("strictDLCategoryExpiry"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -2176,6 +2208,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti "Expected the field `documentGroupFilter` to be an array in the JSON string but got `%s`", jsonObj.get("documentGroupFilter").toString())); } + // validate the optional field `processAuth` + if (jsonObj.get("processAuth") != null && !jsonObj.get("processAuth").isJsonNull()) { + AuthenticityResultType.validateJsonElement(jsonObj.get("processAuth")); + } if ((jsonObj.get("deviceTypeHex") != null && !jsonObj.get("deviceTypeHex").isJsonNull()) && !jsonObj.get("deviceTypeHex").isJsonPrimitive()) { throw new IllegalArgumentException( diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java index 80f12745..c401289e 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ProcessRequest.java @@ -37,12 +37,6 @@ value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.12.0") public class ProcessRequest { - public static final String SERIALIZED_NAME_LCID_FILTER = "lcidFilter"; - - @SerializedName(SERIALIZED_NAME_LCID_FILTER) - @javax.annotation.Nullable - private List lcidFilter; - public static final String SERIALIZED_NAME_PROCESS_PARAM = "processParam"; @SerializedName(SERIALIZED_NAME_PROCESS_PARAM) @@ -115,35 +109,13 @@ public class ProcessRequest { @javax.annotation.Nullable private List imageUrls; - public ProcessRequest() {} - - public ProcessRequest lcidFilter(@javax.annotation.Nullable List lcidFilter) { - this.lcidFilter = lcidFilter; - return this; - } - - public ProcessRequest addLcidFilterItem(LCID lcidFilterItem) { - if (this.lcidFilter == null) { - this.lcidFilter = new ArrayList<>(); - } - this.lcidFilter.add(lcidFilterItem); - return this; - } + public static final String SERIALIZED_NAME_LCID_FILTER = "lcidFilter"; - /** - * The list of LCID types to recognize. If empty, values with all LCID types will be extracted. - * Empty by default. - * - * @return lcidFilter - */ + @SerializedName(SERIALIZED_NAME_LCID_FILTER) @javax.annotation.Nullable - public List getLcidFilter() { - return lcidFilter; - } + private List lcidFilter; - public void setLcidFilter(@javax.annotation.Nullable List lcidFilter) { - this.lcidFilter = lcidFilter; - } + public ProcessRequest() {} public ProcessRequest processParam(@javax.annotation.Nonnull ProcessParams processParam) { this.processParam = processParam; @@ -399,6 +371,34 @@ public void setImageUrls(@javax.annotation.Nullable List imageUrls) { this.imageUrls = imageUrls; } + public ProcessRequest lcidFilter(@javax.annotation.Nullable List lcidFilter) { + this.lcidFilter = lcidFilter; + return this; + } + + public ProcessRequest addLcidFilterItem(LCID lcidFilterItem) { + if (this.lcidFilter == null) { + this.lcidFilter = new ArrayList<>(); + } + this.lcidFilter.add(lcidFilterItem); + return this; + } + + /** + * The list of LCID types to recognize. If empty, values with all LCID types will be extracted. + * Empty by default. + * + * @return lcidFilter + */ + @javax.annotation.Nullable + public List getLcidFilter() { + return lcidFilter; + } + + public void setLcidFilter(@javax.annotation.Nullable List lcidFilter) { + this.lcidFilter = lcidFilter; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -408,8 +408,7 @@ public boolean equals(Object o) { return false; } ProcessRequest processRequest = (ProcessRequest) o; - return Objects.equals(this.lcidFilter, processRequest.lcidFilter) - && Objects.equals(this.processParam, processRequest.processParam) + return Objects.equals(this.processParam, processRequest.processParam) && Objects.equals(this.list, processRequest.list) && Objects.equals(this.tag, processRequest.tag) && Objects.equals(this.tenant, processRequest.tenant) @@ -420,13 +419,13 @@ public boolean equals(Object o) { && Objects.equals(this.systemInfo, processRequest.systemInfo) && Objects.equals(this.passBackObject, processRequest.passBackObject) && Objects.equals(this.dtc, processRequest.dtc) - && Objects.equals(this.imageUrls, processRequest.imageUrls); + && Objects.equals(this.imageUrls, processRequest.imageUrls) + && Objects.equals(this.lcidFilter, processRequest.lcidFilter); } @Override public int hashCode() { return Objects.hash( - lcidFilter, processParam, list, tag, @@ -438,14 +437,14 @@ public int hashCode() { systemInfo, passBackObject, dtc, - imageUrls); + imageUrls, + lcidFilter); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ProcessRequest {\n"); - sb.append(" lcidFilter: ").append(toIndentedString(lcidFilter)).append("\n"); sb.append(" processParam: ").append(toIndentedString(processParam)).append("\n"); sb.append(" list: ").append(toIndentedString(list)).append("\n"); sb.append(" tag: ").append(toIndentedString(tag)).append("\n"); @@ -458,6 +457,7 @@ public String toString() { sb.append(" passBackObject: ").append(toIndentedString(passBackObject)).append("\n"); sb.append(" dtc: ").append(toIndentedString(dtc)).append("\n"); sb.append(" imageUrls: ").append(toIndentedString(imageUrls)).append("\n"); + sb.append(" lcidFilter: ").append(toIndentedString(lcidFilter)).append("\n"); sb.append("}"); return sb.toString(); } @@ -478,7 +478,6 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) openapiFields = new HashSet(); - openapiFields.add("lcidFilter"); openapiFields.add("processParam"); openapiFields.add("List"); openapiFields.add("tag"); @@ -491,6 +490,7 @@ private String toIndentedString(Object o) { openapiFields.add("passBackObject"); openapiFields.add("dtc"); openapiFields.add("ImageUrls"); + openapiFields.add("lcidFilter"); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(); @@ -535,15 +535,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti } } JsonObject jsonObj = jsonElement.getAsJsonObject(); - // ensure the optional json data is an array if present - if (jsonObj.get("lcidFilter") != null - && !jsonObj.get("lcidFilter").isJsonNull() - && !jsonObj.get("lcidFilter").isJsonArray()) { - throw new IllegalArgumentException( - String.format( - "Expected the field `lcidFilter` to be an array in the JSON string but got `%s`", - jsonObj.get("lcidFilter").toString())); - } // validate the required field `processParam` ProcessParams.validateJsonElement(jsonObj.get("processParam")); if (jsonObj.get("List") != null && !jsonObj.get("List").isJsonNull()) { @@ -623,6 +614,15 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti "Expected the field `ImageUrls` to be an array in the JSON string but got `%s`", jsonObj.get("ImageUrls").toString())); } + // ensure the optional json data is an array if present + if (jsonObj.get("lcidFilter") != null + && !jsonObj.get("lcidFilter").isJsonNull() + && !jsonObj.get("lcidFilter").isJsonArray()) { + throw new IllegalArgumentException( + String.format( + "Expected the field `lcidFilter` to be an array in the JSON string but got `%s`", + jsonObj.get("lcidFilter").toString())); + } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java index f17fad19..2b956457 100644 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java +++ b/client/src/main/generated/com/regula/documentreader/webclient/model/ResultItem.java @@ -52,7 +52,7 @@ public class ResultItem { @SerializedName(SERIALIZED_NAME_RESULT_TYPE) @javax.annotation.Nonnull - protected Integer resultType = 0; + protected Result resultType; public ResultItem() {} @@ -132,22 +132,22 @@ public void setPageIdx(@javax.annotation.Nullable Integer pageIdx) { this.pageIdx = pageIdx; } - public ResultItem resultType(@javax.annotation.Nonnull Integer resultType) { + public ResultItem resultType(@javax.annotation.Nonnull Result resultType) { this.resultType = resultType; return this; } /** - * Same as Result type, but used for safe parsing of not-described values. See Result type. + * Get resultType * * @return resultType */ @javax.annotation.Nonnull - public Integer getResultType() { + public Result getResultType() { return resultType; } - public void setResultType(@javax.annotation.Nonnull Integer resultType) { + public void setResultType(@javax.annotation.Nonnull Result resultType) { this.resultType = resultType; } diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponse.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponse.java deleted file mode 100644 index bbe4e0ca..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponse.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** TransactionProcessResponse */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class TransactionProcessResponse extends ProcessResponse { - public static final String SERIALIZED_NAME_CORE_LIB_RESULT_CODE = "CoreLibResultCode"; - - @SerializedName(SERIALIZED_NAME_CORE_LIB_RESULT_CODE) - @javax.annotation.Nonnull - private Integer coreLibResultCode; - - public TransactionProcessResponse() {} - - public TransactionProcessResponse coreLibResultCode( - @javax.annotation.Nonnull Integer coreLibResultCode) { - this.coreLibResultCode = coreLibResultCode; - return this; - } - - /** - * Get coreLibResultCode - * - * @return coreLibResultCode - */ - @javax.annotation.Nonnull - public Integer getCoreLibResultCode() { - return coreLibResultCode; - } - - public void setCoreLibResultCode(@javax.annotation.Nonnull Integer coreLibResultCode) { - this.coreLibResultCode = coreLibResultCode; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - TransactionProcessResponse transactionProcessResponse = (TransactionProcessResponse) o; - return Objects.equals(this.coreLibResultCode, transactionProcessResponse.coreLibResultCode) - && super.equals(o); - } - - @Override - public int hashCode() { - return Objects.hash(coreLibResultCode, super.hashCode()); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class TransactionProcessResponse {\n"); - sb.append(" ").append(toIndentedString(super.toString())).append("\n"); - sb.append(" coreLibResultCode: ").append(toIndentedString(coreLibResultCode)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("ChipPage"); - openapiFields.add("CoreLibResultCode"); - openapiFields.add("ProcessingFinished"); - openapiFields.add("ContainerList"); - openapiFields.add("TransactionInfo"); - openapiFields.add("log"); - openapiFields.add("passBackObject"); - openapiFields.add("morePagesAvailable"); - openapiFields.add("elapsedTime"); - openapiFields.add("metadata"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("CoreLibResultCode"); - openapiRequiredFields.add("ChipPage"); - openapiRequiredFields.add("ProcessingFinished"); - openapiRequiredFields.add("ContainerList"); - openapiRequiredFields.add("TransactionInfo"); - openapiRequiredFields.add("morePagesAvailable"); - openapiRequiredFields.add("elapsedTime"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to TransactionProcessResponse - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!TransactionProcessResponse.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in TransactionProcessResponse is not found in the empty JSON string", - TransactionProcessResponse.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!TransactionProcessResponse.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the `TransactionProcessResponse` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : TransactionProcessResponse.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!TransactionProcessResponse.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'TransactionProcessResponse' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(TransactionProcessResponse.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, TransactionProcessResponse value) throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public TransactionProcessResponse read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of TransactionProcessResponse given an JSON string - * - * @param jsonString JSON string - * @return An instance of TransactionProcessResponse - * @throws IOException if the JSON string is invalid with respect to TransactionProcessResponse - */ - public static TransactionProcessResponse fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, TransactionProcessResponse.class); - } - - /** - * Convert an instance of TransactionProcessResponse to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponseItem.java b/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponseItem.java deleted file mode 100644 index ec0ff6c9..00000000 --- a/client/src/main/generated/com/regula/documentreader/webclient/model/TransactionProcessResponseItem.java +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Regula Document Reader Web API - * Documents recognition as easy as reading two bytes. # Clients: * [JavaScript](https://github.com/regulaforensics/DocumentReader-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/DocumentReader-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/DocumentReader-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/DocumentReader-web-csharp-client) client for .NET & .NET Core - * - * The version of the OpenAPI document: 7.4.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -package com.regula.documentreader.webclient.model; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.TypeAdapter; -import com.google.gson.TypeAdapterFactory; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.regula.documentreader.webclient.JSON; -import java.io.IOException; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; - -/** TransactionProcessResponseItem */ -@javax.annotation.Generated( - value = "org.openapitools.codegen.languages.JavaClientCodegen", - comments = "Generator version: 7.12.0") -public class TransactionProcessResponseItem { - public static final String SERIALIZED_NAME_CORE_LIB_RESULT_CODE = "CoreLibResultCode"; - - @SerializedName(SERIALIZED_NAME_CORE_LIB_RESULT_CODE) - @javax.annotation.Nonnull - private Integer coreLibResultCode; - - public TransactionProcessResponseItem() {} - - public TransactionProcessResponseItem coreLibResultCode( - @javax.annotation.Nonnull Integer coreLibResultCode) { - this.coreLibResultCode = coreLibResultCode; - return this; - } - - /** - * Get coreLibResultCode - * - * @return coreLibResultCode - */ - @javax.annotation.Nonnull - public Integer getCoreLibResultCode() { - return coreLibResultCode; - } - - public void setCoreLibResultCode(@javax.annotation.Nonnull Integer coreLibResultCode) { - this.coreLibResultCode = coreLibResultCode; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - TransactionProcessResponseItem transactionProcessResponseItem = - (TransactionProcessResponseItem) o; - return Objects.equals(this.coreLibResultCode, transactionProcessResponseItem.coreLibResultCode); - } - - @Override - public int hashCode() { - return Objects.hash(coreLibResultCode); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class TransactionProcessResponseItem {\n"); - sb.append(" coreLibResultCode: ").append(toIndentedString(coreLibResultCode)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces (except the first line). - */ - private String toIndentedString(Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - - public static HashSet openapiFields; - public static HashSet openapiRequiredFields; - - static { - // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(); - openapiFields.add("CoreLibResultCode"); - - // a set of required properties/fields (JSON key names) - openapiRequiredFields = new HashSet(); - openapiRequiredFields.add("CoreLibResultCode"); - } - - /** - * Validates the JSON Element and throws an exception if issues found - * - * @param jsonElement JSON Element - * @throws IOException if the JSON Element is invalid with respect to - * TransactionProcessResponseItem - */ - public static void validateJsonElement(JsonElement jsonElement) throws IOException { - if (jsonElement == null) { - if (!TransactionProcessResponseItem.openapiRequiredFields - .isEmpty()) { // has required fields but JSON element is null - throw new IllegalArgumentException( - String.format( - "The required field(s) %s in TransactionProcessResponseItem is not found in the empty JSON string", - TransactionProcessResponseItem.openapiRequiredFields.toString())); - } - } - - Set> entries = jsonElement.getAsJsonObject().entrySet(); - // check to see if the JSON string contains additional fields - for (Map.Entry entry : entries) { - if (!TransactionProcessResponseItem.openapiFields.contains(entry.getKey())) { - throw new IllegalArgumentException( - String.format( - "The field `%s` in the JSON string is not defined in the `TransactionProcessResponseItem` properties. JSON: %s", - entry.getKey(), jsonElement.toString())); - } - } - - // check to make sure all required properties/fields are present in the JSON string - for (String requiredField : TransactionProcessResponseItem.openapiRequiredFields) { - if (jsonElement.getAsJsonObject().get(requiredField) == null) { - throw new IllegalArgumentException( - String.format( - "The required field `%s` is not found in the JSON string: %s", - requiredField, jsonElement.toString())); - } - } - JsonObject jsonObj = jsonElement.getAsJsonObject(); - } - - public static class CustomTypeAdapterFactory implements TypeAdapterFactory { - @SuppressWarnings("unchecked") - @Override - public TypeAdapter create(Gson gson, TypeToken type) { - if (!TransactionProcessResponseItem.class.isAssignableFrom(type.getRawType())) { - return null; // this class only serializes 'TransactionProcessResponseItem' and its subtypes - } - final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); - final TypeAdapter thisAdapter = - gson.getDelegateAdapter(this, TypeToken.get(TransactionProcessResponseItem.class)); - - return (TypeAdapter) - new TypeAdapter() { - @Override - public void write(JsonWriter out, TransactionProcessResponseItem value) - throws IOException { - JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject(); - elementAdapter.write(out, obj); - } - - @Override - public TransactionProcessResponseItem read(JsonReader in) throws IOException { - JsonElement jsonElement = elementAdapter.read(in); - validateJsonElement(jsonElement); - return thisAdapter.fromJsonTree(jsonElement); - } - }.nullSafe(); - } - } - - /** - * Create an instance of TransactionProcessResponseItem given an JSON string - * - * @param jsonString JSON string - * @return An instance of TransactionProcessResponseItem - * @throws IOException if the JSON string is invalid with respect to - * TransactionProcessResponseItem - */ - public static TransactionProcessResponseItem fromJson(String jsonString) throws IOException { - return JSON.getGson().fromJson(jsonString, TransactionProcessResponseItem.class); - } - - /** - * Convert an instance of TransactionProcessResponseItem to an JSON string - * - * @return JSON string - */ - public String toJson() { - return JSON.getGson().toJson(this); - } -} diff --git a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java index 40f98a4f..356e7b3f 100755 --- a/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java +++ b/client/src/main/java/com/regula/documentreader/webclient/api/DocumentReaderApi.java @@ -63,19 +63,19 @@ private static ApiClient getApiClient(String basePath, boolean debugging, boolea * response body */ public DeviceInfo ping() throws ApiException { - return defaultApi.ping("", null); + return defaultApi.ping(""); } public DeviceInfo ping(String xRequestID) throws ApiException { - return defaultApi.ping(xRequestID, null); + return defaultApi.ping(xRequestID); } public Healthcheck health() throws ApiException { - return defaultApi.healthz("", null); + return defaultApi.healthz(""); } public Healthcheck health(String xRequestID) throws ApiException { - return defaultApi.healthz(xRequestID, null); + return defaultApi.healthz(xRequestID); } /** @@ -88,21 +88,13 @@ public Healthcheck health(String xRequestID) throws ApiException { */ public RecognitionResponse process(ProcessRequest processRequest) { processRequest.getSystemInfo().setLicense(this.license); - ProcessResponse response = processApi.apiProcess(processRequest, "", null); + ProcessResponse response = processApi.apiProcess(processRequest, ""); return new RecognitionResponse(response); } - public RecognitionResponse process( - ProcessRequest processRequest, String xRequestID, HashMap headers) { + public RecognitionResponse process(ProcessRequest processRequest, String xRequestID) { processRequest.getSystemInfo().setLicense(this.license); - ProcessResponse response = processApi.apiProcess(processRequest, xRequestID, headers); - return new RecognitionResponse(response); - } - - public RecognitionResponse process( - ProcessRequest processRequest, HashMap headers) { - processRequest.getSystemInfo().setLicense(this.license); - ProcessResponse response = processApi.apiProcess(processRequest, "", headers); + ProcessResponse response = processApi.apiProcess(processRequest, xRequestID); return new RecognitionResponse(response); } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/EncryptedRCLRequest.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/EncryptedRCLRequest.java index 64027667..889c9b33 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/EncryptedRCLRequest.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/EncryptedRCLRequest.java @@ -12,7 +12,7 @@ public EncryptedRCLRequest(byte[] encryptedRCL, int light, int list_idx, int pag setListIdx(list_idx); setPageIdx(page_idx); setBufLength(encryptedRCL.length); - setResultType(Result.ENCRYPTED_RCL.getValue()); + setResultType(Result.ENCRYPTED_RCL); } public EncryptedRCLResult withEncryptedRCL(byte[] encryptedRCL) { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestLicense.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestLicense.java index 7027d05e..d84da8bb 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestLicense.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/ProcessRequestLicense.java @@ -11,7 +11,7 @@ public ProcessRequestLicense(byte[] license, int light, int list_idx, int page_i setListIdx(list_idx); setPageIdx(page_idx); setBufLength(license.length); - setResultType(Result.LICENSE.getValue()); + setResultType(Result.LICENSE); } public LicenseResult withLicense(byte[] license) { diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionParams.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionParams.java index 7168b6d1..e25bed46 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionParams.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionParams.java @@ -1,6 +1,7 @@ package com.regula.documentreader.webclient.model.ext; import com.regula.documentreader.webclient.model.AuthParams; +import com.regula.documentreader.webclient.model.AuthenticityResultType; import com.regula.documentreader.webclient.model.DocumentFormat; import com.regula.documentreader.webclient.model.DocumentType; import com.regula.documentreader.webclient.model.FaceApi; @@ -245,7 +246,7 @@ public RecognitionParams withDocumentGroupFilter(List documentGrou return this; } - public RecognitionParams withProcessAuth(Long processAuth) { + public RecognitionParams withProcessAuth(AuthenticityResultType processAuth) { this.setProcessAuth(processAuth); return this; } diff --git a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java index 3d29c7e1..d21152db 100644 --- a/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java +++ b/client/src/main/java/com/regula/documentreader/webclient/model/ext/RecognitionResponse.java @@ -110,7 +110,7 @@ public ImageQualityCheckList imageQualityChecks(int page_idx) { } public OneCandidate documentType() { - int defaultPageIdx = 1; + int defaultPageIdx = 0; return documentType(defaultPageIdx); } @@ -124,7 +124,7 @@ public OneCandidate documentType(int pageIdx) { public R resultByType(Result type) { for (ResultItem item : originalResponse.getContainerList().getList()) { - if (item.getResultType().equals(type.getValue())) { + if (item.getResultType() == type) { return (R) item; } } @@ -133,7 +133,7 @@ public R resultByType(Result type) { public R getResult(Result type, int page_idx) { for (ResultItem item : originalResponse.getContainerList().getList()) { - if (item.getResultType().equals(type.getValue()) && item.getPageIdx() == page_idx) { + if (item.getResultType() == type && item.getPageIdx() == page_idx) { return (R) item; } } @@ -143,7 +143,7 @@ public R getResult(Result type, int page_idx) { public List resultsByType(Result type) { List results = new ArrayList<>(); for (ResultItem item : originalResponse.getContainerList().getList()) { - if (item.getResultType().equals(type.getValue())) { + if (item.getResultType() == type) { results.add((R) item); } } diff --git a/dev.md b/dev.md index 127ac710..89b1a3a2 100755 --- a/dev.md +++ b/dev.md @@ -3,19 +3,32 @@ Java client is written using java7. Development environment requires java11+. Models generation based on [openapi spec](https://github.com/regulaforensics/DocumentReader-api-openapi). -## Enums -Instead of using enums, generator produces static constants. - -## 4-cycle generation -1. Generate enums as constants -2. Generate normal models with substituted by primitive values enums -3. Replace links to generated models by extend one -4. Replace links to generated models by extend one. For models, that was skipped from generation on step 3 - +## Generation To regenerate models from openapi definition, -clone [latest open api definitions](https://github.com/regulaforensics/DocumentReader-api-openapi) +clone [latest open api definitions](https://github.com/regulaforensics/DocumentReader-api-openapi) and use next command from the project root. ```bash ./update-models.sh ``` + +## Generator configuration Features + +1. When generating oneOf schemas, the generator creates its +own abstract class, which does not look like it would like. +The problem was solved by replacing the abstract generator +class with ours using typeMappings in the generator config. +2. The generator treats the discriminator value as a string, +but in our case it's numbers. To solve this problem, changes +have been made to the pojo.mustache template. +3. The generator replaces the list field with _list, solved +using nameMappings in the generator config. + +## Problem solving + +To solve new problems, use the generator +settings ([java](https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/java.md), +[common](https://github.com/OpenAPITools/openapi-generator/blob/master/docs/customization.md)) +and [templates](https://github.com/OpenAPITools/openapi-generator/tree/master/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson). + +**Do not edit the generated files! They will be overwritten after generation!** diff --git a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java index d9186756..45be09fd 100644 --- a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java +++ b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java @@ -1,5 +1,6 @@ package com.regula.documentreader.webclient.encryptedRCL; +import com.regula.documentreader.webclient.ApiClient; import com.regula.documentreader.webclient.api.DocumentReaderApi; import com.regula.documentreader.webclient.example.Main; import com.regula.documentreader.webclient.model.*; @@ -47,7 +48,13 @@ public static void main(String[] args) throws IOException { RecognitionRequest request = new RecognitionRequest( requestParams, containerList); - var api = new DocumentReaderApi(apiBaseUrl); + var apiClient = new ApiClient(); + apiClient.setBasePath(apiBaseUrl); + // Set headers +// apiClient.addDefaultHeader("Header", "value"); + + var api = new DocumentReaderApi(apiClient); + if (licenseFromEnv != null) api.setLicense(licenseFromEnv); if (licenseFromFile != null) api.setLicense(licenseFromFile); @@ -89,7 +96,6 @@ public static void main(String[] args) throws IOException { // how to get low lvl individual results LexicalAnalysisResult lexResult = response.resultByType(Result.LEXICAL_ANALYSIS); - System.exit(0); } @Nullable diff --git a/example/src/main/java/com/regula/documentreader/webclient/example/Main.java b/example/src/main/java/com/regula/documentreader/webclient/example/Main.java index fd779190..ad5945b9 100755 --- a/example/src/main/java/com/regula/documentreader/webclient/example/Main.java +++ b/example/src/main/java/com/regula/documentreader/webclient/example/Main.java @@ -3,6 +3,7 @@ import static com.regula.documentreader.webclient.model.TextFieldType.DOCUMENT_NUMBER; +import com.regula.documentreader.webclient.ApiClient; import com.regula.documentreader.webclient.ApiException; import com.regula.documentreader.webclient.api.DocumentReaderApi; import com.regula.documentreader.webclient.model.CheckResult; @@ -64,7 +65,12 @@ public static void main(String[] args) throws IOException, ApiException { String finalApiBaseUrl = apiBaseUrl; - var api = new DocumentReaderApi(finalApiBaseUrl); + var apiClient = new ApiClient(); + apiClient.setBasePath(finalApiBaseUrl); + // Set headers +// apiClient.addDefaultHeader("Header", "value"); + + var api = new DocumentReaderApi(apiClient); // Uncomment one of the lines below if you want to transfer the license with each request // if (licenseFromEnv != null) api.setLicense(licenseFromEnv); @@ -143,8 +149,6 @@ public static void main(String[] args) throws IOException, ApiException { // how to get low lvl individual results LexicalAnalysisResult lexResult = response.resultByType(Result.LEXICAL_ANALYSIS); - - System.exit(0); } @Nullable From 005f6f4ea5c9f614603905f2b113b6b03ec627df Mon Sep 17 00:00:00 2001 From: Artem Tsybulko Date: Fri, 28 Mar 2025 17:03:40 +0300 Subject: [PATCH 19/19] Remove encrypted example --- example/README.md | 27 +++-- .../webclient/encryptedRCL/Example.java | 113 ------------------ example/src/main/resources/encrypted-rcl.bin | Bin 453276 -> 0 bytes example/src/main/resources/license.bin | Bin 1372 -> 0 bytes 4 files changed, 19 insertions(+), 121 deletions(-) delete mode 100644 example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java delete mode 100644 example/src/main/resources/encrypted-rcl.bin delete mode 100644 example/src/main/resources/license.bin diff --git a/example/README.md b/example/README.md index 97f92d21..e9613ad2 100755 --- a/example/README.md +++ b/example/README.md @@ -45,17 +45,28 @@ API_BASE_PATH="http://127.0.0.1:8080" ./gradlew :example:run ``` ### Output + This sample generates the following text output: + ```text - --------------------------------------------------------------------------- - Document Overall Status: not valid - Document Number Visual: U0996738 - Document Number MRZ: U0996738 - Validity Of Document Number Visual: 1 - Validity Of Document Number MRZ: 1 - MRZ-Visual values comparison: 1 - --------------------------------------------------------------------------- +----------------------------------------------------------------- +Web API version: 7.5.308602.1848 +----------------------------------------------------------------- +----------------------------------------------------------------- +Document Type: Germany - ePassport (2017) Service +Document Overall Status: not valid +Document Number Visual: C01YPTNHM +Document Number MRZ: C01YPTNHM +Validity Of Document Number Visual: 2 +Validity Of Document Number MRZ: 1 +MRZ-Visual values comparison: 1 +----------------------------------------------------------------- +Field: Surname Value: MUSTERMANN Source: VISUAL +Field: Surname And Given Names Value: MUSTERMANN ERIKA Source: VISUAL + +... ``` + Also, it stores [portrait](portrait.jpg) and [document image](document-image.jpg) images in the current folder. You can modify [this example](../example/src/main/java/com/regula/documentreader/webclient/example/Main.java) and re-run it to get your own results. diff --git a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java b/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java deleted file mode 100644 index 45be09fd..00000000 --- a/example/src/main/java/com/regula/documentreader/webclient/encryptedRCL/Example.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.regula.documentreader.webclient.encryptedRCL; - -import com.regula.documentreader.webclient.ApiClient; -import com.regula.documentreader.webclient.api.DocumentReaderApi; -import com.regula.documentreader.webclient.example.Main; -import com.regula.documentreader.webclient.model.*; -import com.regula.documentreader.webclient.model.ext.*; - -import javax.annotation.Nullable; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; - -import static com.regula.documentreader.webclient.model.GraphicFieldType.DOCUMENT_FRONT; -import static com.regula.documentreader.webclient.model.GraphicFieldType.PORTRAIT; -import static com.regula.documentreader.webclient.model.TextFieldType.DOCUMENT_NUMBER; - -public class Example { - public static final String API_BASE_PATH = "API_BASE_PATH"; - public static final String TEST_LICENSE = "TEST_LICENSE"; - - public static void main(String[] args) throws IOException { - - var apiBaseUrl = System.getenv(API_BASE_PATH); - if (apiBaseUrl == null) { - apiBaseUrl = "https://api.regulaforensics.com"; - } - var licenseFromEnv = System.getenv(TEST_LICENSE); // optional, used here only for smoke test purposes - var licenseFromFile = readFile("regula.license"); - - byte[] licenseBase64 = readFile("license.bin"); - byte[] encryptedRCLBase64 = readFile("encrypted-rcl.bin"); - - var license = new ProcessRequestLicense(licenseBase64, 0, 0, 0); - var encryptedRCL = new EncryptedRCLRequest(encryptedRCLBase64, 0, 0, 0); - - var containerList = new ContainerList(); - containerList.setList(List.of(license, encryptedRCL)); - - var requestParams = new ProcessParams() - .scenario(Scenario.FULL_PROCESS) - .measureSystem(MeasureSystem.METRIC) - .dateFormat("M/d/yyyy") - .alreadyCropped(true); - - RecognitionRequest request = new RecognitionRequest( - requestParams, containerList); - - var apiClient = new ApiClient(); - apiClient.setBasePath(apiBaseUrl); - // Set headers -// apiClient.addDefaultHeader("Header", "value"); - - var api = new DocumentReaderApi(apiClient); - - if (licenseFromEnv != null) api.setLicense(licenseFromEnv); - if (licenseFromFile != null) api.setLicense(licenseFromFile); - - var info = api.health(); - System.out.println("-----------------------------------------------------------------"); - System.out.format("Web API version %s%n", info.getVersion()); - - RecognitionResponse response = api.process(request); - // to send raw request(ex encrypted one) with overriding processing params here use next api - // RecognitionResponse response = api.process(request, requestParams); - - var status = response.status(); - var docOverallStatus = status.getOverallStatus() == CheckResult.OK ? "valid" : "not valid"; - var docOpticalTextStatus = status.getDetailsOptical().getText(); - - var docNumberField = response.text().getField(DOCUMENT_NUMBER); - var docNumberFieldByName = response.text().getField("Document Number"); - - var docNumberVisual = docNumberField.getValue(Source.VISUAL); - var docNumberMrz = docNumberField.getValue(Source.MRZ); - var docNumberVisualValidity = docNumberField.sourceValidity(Source.VISUAL); - var docNumberMrzValidity = docNumberField.sourceValidity(Source.MRZ); - var docNumberMrzVisualMatching = docNumberField.crossSourceComparison(Source.MRZ, Source.VISUAL); - - System.out.println("-----------------------------------------------------------------"); - System.out.format(" Document Overall Status: %s%n", docOverallStatus); - System.out.format(" Document Number Visual: %s%n", docNumberVisual); - System.out.format(" Document Number MRZ: %s%n", docNumberMrz); - System.out.format("Validity Of Document Number Visual: %s%n", docNumberVisualValidity); - System.out.format(" Validity Of Document Number MRZ: %s%n", docNumberMrzValidity); - System.out.format(" MRZ-Visual values comparison: %s%n", docNumberMrzVisualMatching); - System.out.format("-----------------------------------------------------------------"); - - var documentImage = response.images().getField(DOCUMENT_FRONT).getValue(); - var portraitField = response.images().getField(PORTRAIT); - var portraitFromVisual = portraitField.getValue(Source.VISUAL); - saveFile("document-image.jpg", documentImage); - saveFile("portrait.jpg", portraitFromVisual); - - // how to get low lvl individual results - LexicalAnalysisResult lexResult = response.resultByType(Result.LEXICAL_ANALYSIS); - } - - @Nullable - private static byte[] readFile(String filePath) throws IOException { - var inputStream = Main.class.getClassLoader().getResourceAsStream(filePath); - if (inputStream != null) { - return inputStream.readAllBytes(); - } - return null; - } - - private static void saveFile(String filePath, byte[] data) throws IOException { - Files.write(Path.of(filePath), data); - } -} diff --git a/example/src/main/resources/encrypted-rcl.bin b/example/src/main/resources/encrypted-rcl.bin deleted file mode 100644 index 574341854f4c4e9f0f7d7347bc468948d673fbb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453276 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 z z-@_iDWWp5*?CmpI7n?2;@PS|-|I<=|{mQmT2a1QpxO;$?`OJ>+&L-ENA>EQ=R({5w zSy9MA!xlfe;t`zIvR**}HdZQ7sV@uNwG8**^(v>YB2V+&I#X)$ z$!h}uXSEt%?G@bjp(nIDp|il}KAvxjM?@~7i4K+@FDUTb*%0^VgA z3+d=O=uj79B2#oT3kH=|Gb#O)O*v9D^ck<;@7_Y~adcMR5NdU|vRKvlS+6}<_Gs|? z(O_H#_OF|gQT=OlR2ICBpYOaZi%;6&#%us@3+34nt!Y4kQ6_A8&rbzIjGb8!UXPoE zW1j83_a(VqoCKIfM6{}GC8(OBblU!HyR5ehAhvu!qjUBe9~Y*v(?7@W2Ki!a{r4+o zjJNPnc?s(SL!RHPd{tBa8nKV)B3oi6B#AEHyBkN==T&+7PqLmu=>;=v)ilefGF5XI zv%#n~+To05Ot^ebMHbRU#`2|)&hzq*@8y@?LrqKNucN<*ji};7bl=qR(6C9;quCR#+kpnv}Ik)N(@UBA96|aL)U40Gb=PR ztK8>Qti2A5TH}cQ=I$5ZScc#}wH2WxuQ8xf#dc^F0l>k#B4KE&!|QyV9N)Qe>-co@ z<^d#^>2T!M-bWWsA*nz0NWD4(&R=PO%H2} z{etjfmCFcCh)C`&ETej9Fx)*(3)*S9N0zlEyy(DtqlcPxmFw?ZHOrZiv+XW7YagyZ zKRz{JNdDk#M3~F4uBel)1cu2?`QXJ&>E;0pVE$KVu@_Lnlx^WBR}~~`Ps+umx56*O zL&gXlidJxUYQzim7A2M{)9c9+?iv>!XKYv(cI-aZQUI01D?mv8X`d>AR+k;tIChT&W zb;9P0mNUU~kj9E|!mm0PamJRO*MO5;ThzXT;0a(xN zs9vJE%rKyV=iWU(F3>>g#wB9|FftfU^OCX;wE+^0r^pz+@1=ST`;OR$Dd}w!uMwYB zC(f-QLhKE)87&+o06c6@d<3@r%PH_D2)rABhPZFw~Q9=wz#Ce0k)!43$8qF!STZj^m{K3M`)=bEjt|NYB?& z7g-(4hNS#cd)==eRW1o@ahR7A73(uKAd0zZDuSM1&L5+p3#$Bi7c31Q*01^MYo$EK z1;?|Ha`I+g?Q7B5fX$`~D+}=R&o~R9l`zLyd>jDFp%xLFhgIXSYgP3LQ}pJAHf4vb z%DNV(6T#0(&XF(@lu`yD$o^4KWe&PvAisKfrem-6MhtaD~u50!J(ZB0BDq5xpBi?NqTq1VZ^^1h+f` zOhSs}cMfI;%T;)uv|g_zV$+~X;bpp7t!E(SylYkF)sbT{ancuyvNldV+QGZBw3eaZ z`Lr0mZrZxf(`9k_RK`}`1xr}?h-V%V#K)~lOdrxe&JNlG)sp}AeZC$*%xrid77q4P zGOgN3+seluNc21l{At_P)HC<>!EWc+Iz--70FR^X&{I`}CtgBeX+yMzgsJ?F7^Fe# zknZvG_dg62FVJgggPlq4&G`c17RA|WRZ>=8XSQ-lsk#_>;INe4(*kz(<@h%rC5WTn zeyUC}^@6jC%#Ylt#p;lAlXz^svqMhXCS9yVb$q=$3$B@Afw=a&jE-$-UA6_zXzX+z zgp*dB#uNF=5|qvyD>m||!X5nGu{Ddx#Q9@AYBG)@LGQS*mTe zMG7JPXzK{j0b*T9ZLcfz-vI$8ms5y;E?rQcBDunPShCMlXXrdMC+Ddx=h0mXsTQjL zT!nhmdsoQk#aZ`Zp~wNKC?JcaPZBIqPbQSa#ER!FHxTNjnDv%;c;ht%Ynp(tfesH) zO~Mdc!RrWxZCz0g9ux(^_Q@Hk7r>zB6`H@-T+WpmLdrVtSp1W4C{D3<)?*9C72Tf< z`Nw!2Uqy8{IKGk@95Vtkv*_8s{}cSB%%)-f=D1#1e?jDBM<9$G*}0%a zemFqpFV;m~r;%A#7n`;(KTd^b3#Zw>3C*H9nT_PiusNx$w&us94D;6N3_*+Cds}){ zhBj{k%k;8gp}DIpdGLT_>NA*lJM(Diiq%pD=5pT?_^hfqwU?g!?!j^Q^gK-2w@=j) zaiubg=UjI%GsNw&ZE5l}EMFw%*wgp5QL!xHbN@JH78Md;(6xMR5n~!V&AOl3bcQ?F zlj$L}#}lARcgW@Q=qR}UAtHgN{LL@dlgceR!+oYKL-B=)NL7(`0ePl|`kxZJdojn+ zc6L#1{cF^NLEa|k!(5j0;9)Xj z>KR1r^Ye%G`)Gce38g=m*}QSvQWyOf&+Y9|e5p8yuhs(D=hmi7D=|}QS#uT7p*0xT1ba&4bUK-Qm|UJtampTctc8 z{=OP{RQv$%f9b`Gq7J=lPe+j0pOV~48^l+iSB{$ASLfV2ZZ%!H`&6+$*~(z9g&Dwz zx+%i_@1_V$7us;19Ppjv_INVt&rF(ti^$eq=!i>htxrfASs5qv{~cI3B36w|(Q;?S zOuOW4joDSPZQT-EapLF!9)BL8lnDR)I$jMvFXdr(CK|Z|?UVpg>k3(D?oT?a=Lc~R zuja4eP_q~U6l^gRJT`GsUe`|6L56LQbB^_?X4C9R<{{L&$MWWc74RD zoLe4pbr$SpazhHVhiomqlKnJ6OJg&Uig3llR1V3YPe8aVlX55PV$K)pr`-jC2X@L< z8;iY-0ZF?P?DUBre*AlO-JjG3y+>>PY5Xx-nspGZms@s@7gy7@BtO3#G@AXFzg=Uv zZhZK=?_ZmybpfH$tp1T1PNHFB%#my7YNs)`_6Md^EZ}Z4jC$OWy!=Ps#t3-j+JM-> zCGfP$gU$mgNC~un3K|fZBLGE8%%sFaOOJ0pW@e;)a`?7g=WQBE!0Dqcm7dGFTV~+E zEXAy{g0;9iNT|iXpLXmv^96_ZJ&KKTWLz|9Oz6&Y&s9d7>are#;N}n?aPc@x^)>=W z2i8!1l)At7hrtb3G8RrpR;5GoG*1;qYKTZXr98+z3T}%?zjt4Fo~+eLrw zYz#8=yqmu0d|b1wVVs0VjhJ@*yyC{C$1g|#V20)C_1k2z&o$G9jiw!?+5F9&cAg4A zbM9t3%IwQ**&7bgKTa1H3msZA*-`{UwI?_+|DW^S^NN^%JHvbRY>iZEobB9e3%`mG z`KbzcE*CbozOGIu?dh$CzRcnJB;ux5P2qM;k<{3=b&lYGIxipFjf%QC56uqheap~5 zK9p|{L76KqKIQ@S$sr910^k1gFqS2V=g4b#b&y@Sivhj9#5H0!aT28S^6(kKCZUNL zb5#wgxuef}Hj0RISsC?YeMDe2FIvdC#Ad$~TwE^d&B8913Ax+lFr+%Z{C84~4^US6 zs9pQdl)27ae2bYGHrfx%#jG~|vULS7VvWf#bvccqw>`RD>8mPLSGJ00ohNmjFInf) z&g#o-9_sTS-R7N>;0m!z44Y#DZo;>SMIn@?$cu6Y#b;SI*5+LnHi3!H&O`%NEjl11 zr5=N9=3dj;P}?$FsdVN%>99fk0j&RfE=1VKiwCx#ozvzq??Z?}T%c6p15~Hrrv+S2 z35ZV|T}_phbjCWRaVU#b79*6vX9=tT7d&_YZD$0@kS#2*({O`P{TU)>P5buPZH-c& z9gn-)<>EZH<9=;Q-<74&9wD7UWRCWZ$@N5ytv+yCZ5e2HM#=TJe}d2xUNv#@#yQ^_yf z+t8NkrwY7SJ=iAWGK4bFeJa?rM8AJS*4#HZ^Qxmnry9hAT{hniMMl{VQx={b>vLlw zzdLb!6#2f1Qm2g~chM+{_4G_$8RFjf-GS+0MgNVZGw<4Yr8RCH`RBh4dChQ+jUY^% z__|;vhaC(P)8w8l?=nJFKHm#QJ$q@fDBGdUS)e-)HO<^0-liAa&!kYLeG^n? z6j=4s7*W`EXPzhs+&f!?#VQoFc_ClN20e+sfKS4F{+qX9N?N;Ge8cDN`xl@$57p-IW6vQ|ti8bHlQIyVx|}nF1%dCUb7eyRZJ6_XW6DE%QZLLW`uhm@kV~?rZiekQ z>@d4f81eGQ+cz(Bxo6y<)kcx_d*o`8AyOq(dq{#aqiJJbpZ^Z%LuXAntt=+3FMU0_*B(fk zJ~+0V^^4W!eC2r<;FL-4C5Gc;-{gG?Y4VSrE9t)YraF|AiP&5>tPmlq_beK(e+4yG z31_@*$o~4=fb_cAm~HO;>YYA=i~B}^>-Vi@Trr6x^egO~4JVz( z@6Xfa$T@i&JWuFlJNop7__Q=qEZw%+g(YFlPupGK4E^qU09TI>p3hafeCH(faooKs*!f;TBoPgrixS`|7Kc6D7AH5nJAzPo#2T z1ID42@yfN6jiOr@Z&y3vIAVOY199_TCIHU>1i|~l7d*W?Vb(Zk0-c4IAaGwod?)+r z_d$6*>%tU~-T29np+%7~?^2&^sQ(#%0_R^_opSwkZdexD?*e7-p};n$$+A0=MGW&n=nlb*Suo)Pa*+g0r(q$j|Bf#zO7h@ZnbMEP1!Jc0(3SgV zb~tWCejiN-gHKPXPEyyF;v|18{wP`Jt+nn}N=eU&hc_k6@6pTV!&(8=v*&O#Ffk`fT;smro5SY>rI3$3v}^SPUg?IXLFddp)`_ z)yd{)*8gH?_p}!L_SPKX606iFLaV+IZELsI9K+RI^PmX$9`%YAwnbQSJ1F)!)4^XE zSf7MLI{1oChQ>SWgI|g@VpzHlfPWm@V4g|LO>Q~cgSpsNdU`a@I7&qNs@8-~pE3}F zB!Q?bvbnv2Jw9YZ+g%P`>tko^Ae*5Y-|P$$wV%O((1ADS31Ritq_M%lt7q9z#(kTr zw58VzRi6!xKiFJydoYS`y`2r>XESo54D;jGedqY`_+`zf8k56SlJXEeFOiDf#FyVP zFuaf1nJ_Jqp=l$G4P|)!B5gb;m^3|EO3Ve@nQI35z`erv(;h%RlEqBFY8D^?sUYM( zzCA@-tlA5fOLYVYDrspzd@atuRJ!AIx$xe}nF*&*6(RZ=d=W_7RlMF^2)Lytp-Mg{ za0_}0V={w2m{MD=wVMDB+@$7*x7M0085 zKz5oFW%7ZG|UYB_Ws( z4m>DRcEcWgEeL&XAGHS6Y$ogvH_VSSdH()>_>af$aH@=&zYnML!TTsb?o*p}R!@yj z2lvXvcsv@(b0fryqc!Kh*}cq%LnfK<7I5I^2}6*LcUG}NOk}rIV3su zsRpI`g@t`0&PDa5%v38q$KYjBzBl%0vmZ2upXm8il zji$U0gk-{Z+~*e@&b6|Z)A3{ZE>x40*)pN02A}oQg*xnOePpETk9%W{tt{W2?^-oZ z+V~Q$CWZ6SW|%7x;&H=8AA4_?t0OJAIFmLESPaGQxWQu@oi8mV&*fFFx1jwS`RMj4Yblai}JDnMkXtZ!YT9j zwfjkParphMb2RR1wRJtOMv!?l(-Vuqw7_0yTZQ4cm2SRWFC7g6J^p_6`RC2siqtjn zNBd1VX~J?UG&j2e!Fj_GdLfJ=l|rk)&E));smcTecMD;^*`9Mjapouw(lv90sRgy0 zKAC1o)XJFvEFhG&^$Ozq_-g)LFN2AOmx*u{BE%*A1cU=+lyZBjMKj4J3#FC`*y4cA zNvHVF=5vRdjlUy*a8Oq=wb{CmR)_NLi#nXEePlVBNp~wXv1q;Xo6uEy@Hjk0s8I{< zc^4C`7Z+ zb1?$&SnN`<;VH5uiyX{WFo5Cpt<{DmJmP8B)zXtFM}8Q*Xnhqu5Jvj z2UB|RcHWz;=f-cxfjTrM*$)U0_>hr;rz%mbDeK`KMCME+)$w418NTOIvJvws`g_p> z7D_XFHK-vUpjlCZv|P-;DCMq}mYCW+*js5i@w958%u}yN^{d0yZ14k_{UImO#9|f^ z3@E;69l9wO9=wQSW)w>_xcEvf`f3B1Wz1YIyN8FYio#vRf$sAz8 z57tS@p7aLvJNpDDhS1iMX>F|uaX17;;4&4omShEputkbP2^*BH!1fea_`Z4?V%b4t^bfHpcNaV{$d=%+ce3=#! zu76-h7?2<=U*0&IO~L$aKM_^gL{{LcdJBq{ZrPncMT#NFUNlZJp7P?p@<@L@_Pms< zTFZ5nGwbhLwT)Bybf!<=tGl`}jJ6-&H0q-W46iG-+RTR>A9y4;7@REbJe@FYBV$GSA1l=}f=ecqwOU8}BU7 zEe?bl8!zP>ptbHV-)%vIh}r$5H=!2B3w^C0=~G4FT8C4i-hUGrHkI1pFZY>cHLR|7 zE^2z=q^O%3ML=oYo3CG7FC1MJ+xA|QNME>}iIwoR@a=~!JmiKT&0@ z3G-Iw`$B%fepZ=5bBc5GPywBH`;oy8q*Ke`h)1=ChdXdQIb} z$I<)oORF`SWrpj?-x`cty-lV7Xy3xUa1wK*JEs{`i%0X9ln9@yB$!fV2=6@+Ii_H@ zKC!;bW*N)@oHN#`lKbF$=hFYT>1#CHw~)q@DOyrc&<%!X^Cv(;RkJpHldrGZ-8ZSD zt6B_Tg-n5-Pck&yXbZe)o-}qxCg00k=m{5mH9mJYAMY#3*0Tojd zU(aTL+A2{R9{WvhmD2~~;D7x2Bii#6GX6OKcYW4Oi649Gv^ZzLKx4YYVo(G;idva7 z^TgjMCcrtDq!gdztracM$Fw8R3r?bXY8Afz3PzVj0=!wj!FiZ8)L_UUq4dHwSU-6* z8TOB2)$#n*KwsDMnw(gd;}*R7c4!QyUk7F5MS5AbTF41$DJ#{*R6n+L8zr02SVJDP zeHO?T7ndn1aKZ{Vf$g|mG=u*T{)rwK;VIwHEq>kFcY{_?{(CixVtP+zRxJ& z&#YN49U>@^sJKf=pl3zHwGy4TGobHcSMAmWI1#h35hO}!#rQr}#Xv-NyK}uF`i~p7 zCtb}T4PxV^Jf!p5_=mOH{7ii zhz2kaxVQV1xo9c}2ykHo>;lwY57GCkNL3M^&jl_=Fes>5gaql3=51`g(WA@aEl8jO z14vysvKzaZvJFg&20x9&IQsN3$n+H-844fEj*d|V(}qohRwSiqEYd#O+l3dr9$m}Q ziYD7cXT*5&BVdE_xNW{H!t^3P%`vR{HlId0+L1;sSuDf~ANT2qVX3BJEE(hGsp?h! zI>vQJ>sdGBM)%B6m4@Rl=QdZdz6p9b{(nbEw2nsY;oo@^%9-WlsKIyB@Qz#St@(yb z1sB69F0=2VeElJlKpO!JUi=3Kl}zIQ=>l4dFl{Qd+Z_n^&h?WkYdHQ5{zA3&^%79V6CmY}P|BX*Dsf`K6p1-{77R#g8S&E}r}Qp(RtT8g?B=tM zBu_i*rQ_cAWmQ?Ledc!d;x*e4B8nfxV)fA(9N$%ljd^3Z`m+{lYK7WI~}i{`qg`rShlT$vYl$lsaGq zokcvwUZN$IYs0t+W=}XmZA>$+$&7Y>9Lf@{y0<$J*<)t>CI{i=b|%HKj!@x^@?ILu za+!%WWfH{aXNYrYRq?8L_1fJ;li2lMY{8w#4sBXqaW!nYB{-FxYK#=z0*HwAv|?1z z%lD@yYwBsHY#p`Nh18l1{@o@1CyS&poXx-LYtE&-`xUhQFSsQBY>!xK_xT*&RRi>t z$=NJVHGZdM#`)m=KZa&-6#o|o@r1u!bnP33{}@gd9G=?(P*+pnNB>qAm+N{y zS>xcko>zkx{EK#&$?C%)f38fE^J8*IYc*B>aT^`REGMVgK%`VG;q^;qUO| zzV*y*{o{sBnbnIwOSi_s7*MFW_ILOMnqm_$iF@6mETBN(*TQ=b*<)Y#9o+K3*&8-s z|1%$mX1vvG!QxL8Z}=|0>A~3~bH3Jt#(L?LZ-?|ITW7AkOj^_RI=@%Xie9UKKCc+8 zWP#+A)t9nmKI~H_LSZ)bY!>kcu$g2b7e|rG=ZG^-OZ&T|fGS&6`$}jtu{Cxt5e~fZ zJ_GK*nifZ~TP%%Vavt}IV8?2mAdwM(CL?l_N~SY;5bH`hu!uc5 zhPFw`5KPRqyd$AeGM4FdoGd?Nf7|1;s+FJV*iwkZauI|&V|0EsHtY|1jiP5S zvT9hj|LWF70DRo~1~qt6P~?`9Y)F~a--R?-&*%Rp;QS8+6-f_&Ql*qg}Wqo%I)P zrB~LvTN|zGd9gbmj;Q+Mo7mIrKS4Z;^-EEI`)FeLm6BErh-u@#^VSIHPasJtC&RUp zb3c|aBe~@|Kr9Rtu{%9z4a=bJ$ohAb=DX3m$j@jBdg4Pqq*AF}Osdrb+fMk^Rg!ogb5^nvtBLHjPAqEO5gE;ru-fBX7HC*l;*RT0jfo<5e!ofQh}YrcxO}w$(Ti ziM@m|_=(=VujeeeO2Sba@7kQD7VzGFYOajvhv_G)(HT1Q)I8aTHOZGhqa1;I9;m4H z2XRbX<&?@Jcj7hOOn5!>xb5mzOc}oiO5sd|WmxxsJ*di!F7`9}EY-Q3cuyPd?QbSR zhV{zF+mZk~YTOG#l=VSf{FVL~X)M$-?j&2Y!rA5x4xkSXXYbE8%bRI!{B9!Y&l74j z>C^woU797+XZ;i=uO8zfs3qeq|H3@~^8cc4_+kdz?;0 z)c@ijx~@8M=dhy>2gB#X*mNqr(iVfq$$Q%os&V>i7_=Fqu1C`+d#!=gP{s$`_im(` z)YU_$hu+3nQMRUBRe65- z?KH6DSXsKWQ;1KD;PqexAx!0#+u>=;a0E?L$pGzyd$froHs^9VgosCSmuL*!g7Pp@ ztwO7V`JE!_^`i_*!&}Hsz186e_7<7rj}n{*7()#m;{k0aank-c=f|jAzBP)(QXW6 zLe^=r3!SiEey6)nln^?RBkGM%V;XYb)QK!l6`Qc)s%GY!{M_xko#_$t`04u0J{zxM zrFC1egX76y)~EF8EMvU;{|WF~4wWGWXLu}$JUtidkdkvHS3zK}i{Z3!u(OLT3?Jdd2O}Q*}Alv ze+Fawd~uW+u7>r4&(oZVyrKZ0@$vRUw%52}d3_NS7=azJpOH`XO> z+4N;6fvWDf8^2zP777%?St6udOE&TUQ%(H#>K-EpO=Yo=9$ zcA4%_+u-1MZ2M(BQ?)-70w1j2b=k>*-w)@@Ez*f*F|z}WbHP^L1=A(7Zw3_L+p1{} z44^%pgHF{l(iqC{+z?3RDrcdK%Y&;`7s-8M>~ZFSxz>E^wSNRG?rB;J*YJ3x{8ZL^ zq*2NCAV!xPYHmJyHsmH{%$bj>}_arjXt zL$4rD7`@3x)ijyAELcV-`OH%*=gciQElDPBL6n3G#(S#>Sqhu+A36$Gby( zzTq3QmlivoX6OseRG3Z`wRtpp8ZW?!I?b#;f4gz^=K{feJW9qEuSugmkE;zNE~EDE z`;v)iU|aJ9mMx7eB@h=bey@571T+yBC9q`j=b1pc3iB)R*Qly2W0fvfO1E;{jWf@6 z4qlx!RBkpu`K5s0|CQYsUH1Kjq1I%R9#m1LL|{-Iod6u;*yK?()7s?HFz(Sy6GWTT`0xSp={U}CQ56Hb}c^yA)9pDN+uT~pKK*uKp> zm=sv})Hrema2fq_LPGN$&Zem^rg=P#ykgNX2va8HrUDQi*e=xT@T;BkWiBBhiPWvR zq@5H&yk4BwfpYTobWceo8ngWX(+}(J0jcnhme0p~wz`aFKU%6O)y;3W5--cP;Dc^y zhv+SVO4qJMR>U1MDkIr19@F;)2S}#uE*ggm?QCe{S3q)(jPy?|QN~oyO$kf-ac=+h zD(vCqPM3Rq8H*%tS0sqlBv@a{zjm%-!*%x_loF$9?RcTyD}NV~@t@#7=i_>A=xZF* zk6u<2n1u>*Z)#c(c%IV)ON{cZgnhHfN{MYAPMp zmco72m@dV++aUBOVcfiDde6KfNdy11a_2by%S}2miO*&z*`O9yb=QGmQW(2f?fDfv zu7$r>0CEm4t=yx07YyHKwWr`LQ-G6wl90>$nz}iU1ldzP(yUQYj!jhECtMm$#ylD5 zU#nrbK(lb88Uv!$IGx{<+$$vR_pYK~?ve%TM4bB6xCO#S)_!KsAqN?FlNALjjsEP< zKZw^hlV73P-}6cPzz3jTn|YoJChr_@eY6GV=m?07sF1e9le+~PUCIc6QO_kM${^fF zkJ=rusIB~l#zO0PVX*rIO(E&lP2@843?@X#Lr}}&uQAgFCfoZ*_En{y(YH&Hx@g0C z(j>H$;FRHZq;y&vH50GqOUZHbNZz+KN6HqYdNHl~$zt%3Y0iNAhzRT#;jR8Lvja!L z)JGm5hi->h#mzU~M%NqtUu0F-G$MVCax|8H`t<1DxA7HC`%*R{Ll-N~%a5;8{{3l3 zX^ijQ(E6s3M*rPdn2PoFYSf2wma&Bn4#Mf*Z!JkDIfu?$157lY%!OGp7E{~d>8pCg zQZzUSSmZ&=AQA=jpz8{ZSdwZ6hezoJtKp7btLOrng;$x6;hhqtXAYGqtsl>O`ed;E z;h+7D+jm12Iaj3qgEASfo~O2l;};8Kj54U22k;ZaIjwh@lRdkTBG3V2jm~33dx(#fh?jhG#QQxf)XFkV`Iq%?n`w($3bK=gGQ3{z& zG?2R_9R3HH{`BTA*Gk4suARgt6~d))iNA4h&2q)fma-RvBH3M+@@HT4$3$s8p$AqL zUgmb3MU{vAnt3nk_2!^H9!fxD&>_FPpV!&(;P{KyzCiwC~t^{@YPPt5sR$YFwwUU<0FH~bzuk781jveuK<z0QLV#RfCs1 zLS!o4Emu{v{cG#5z_h%6l?SEnT>9&!sV)C(EGV1#tS0|Us21z-^$t>pLv3B6b>QHn z6;VSy~x(GSSy!6hGIF*7~!>J-lU-s_tTWWek0~ zaryGgVcB-(?DU?GloAtK^HDh0v7|r9xhS$YFavRCZ_n0Cf&k5e7Z#ccCUQsXU$a{$ zz?GRSPZLj;*^gC}D~=z$iGV})Iuw-y&+I3wowl zltQK^nore~vq~fGZrve>Kj+q!A@3I=1xPq0Tp?jCc)uPNWJiWAI%i9Z#}hwzka=o z&WgmEnXB1FcwSsF^XekM2VY^A_$bZtEuWpzF{wCCMb>(7`eOpkgJg!TuMt)^lzweI zAtvM3J+8T^x5h7rgg(2!n=Z!@=EC+H)kkwe`~F3nO}6D}eGau7h}wMPv?(hgUz%nn z@^i|aaufFKtD6(8(1Hx;YuOpY9BAHnz#+LPl#Y0JD>7qY#n&t6n%AYJ@i005{_aE% zoA;MHloO%ZkRk39PgMw!Y%T=n5KR)eMD%}oZGUhOAtHD_v$>Rxq~OiI=sXmm3RhKU z+>m!alDMPz+Xf~ZS>fVr<&0GsGZP4e4p_6tFZ-RHiro6@I9wA~F$@*b&S=qV_Zl{^ zaC5fG>s7>eX5IwvSGQO0D`j!LBQQkuJ# zyu(lnwc25hT||2gAz&36Vd*Y4EsOF84+=k4b+G1rMRxc*qFhlLHQs1+U8xTX+7wzQ zU(Nd!me_c~t=z|pAYp=6{3n_dq0^cClGGq|wKM_urZC9Az^MxfAg8c>hX#C^@TKa# zckai&z5}9R@jLN*j=XQ=?+v;Q0zl}RIEXZ9K)$=J=lp@sw%S$X!(q35Yfwv z;PrcRWG&ya`*tH$@~Ze^+DE|T!&-O0?ibs}h=(S#wsfxbTAO;dT4mF65HEfn4xr;n zfu9>Qg>27C;%O`kwOf0I+Gtk3Th1^Rc|*PZwIcawGVSH?7E5H!NRgcGXIZbqD?g-? zf$)xb{Zf97#w;=+L$+UJw^=2>9OFRuI9Gz9x&Q^I6(avL;RtXWEBGoTSkkU#IZ9jZ ze!KsZj^xth7<>?sV8HGPw6vC$S&? z%gblIF@K;)*{FbQUQ~59mN}gSb&E5Zf(t}aCb6FE3#p`Ow}9GsPBam%2%D5tOP_yQmNKZHAFGlTq9zs_c*AeN75ck4bpwiW5h-DglW0BzpD06 z8>Q8ATiOKDU5&p+Qe;C=K6T~T=nIva)hc_Jfy2?NUVbF5L^FOO4+LFWzYGktC_Cb+ z9l`zQ8A7*90#yMM)b1Rn;&AfdHAPP80-i zys%QP+R!jnnm&ItM^^o)GWpL2`}6g~bl@;~yrHESbe-)-EKdz!A2w2pzh(tzc3yO` zyAjI$j;X?0MxvGlwRnML5j7(QklSfum9@S4u%5=}xkCBHTBF&YxOQEcb>-}b3?~h42I*DD{_gx;Xx42a zy#J&$B1q=3EG(1JcxY7;2m!1mVBHHK(DrHBLeU4F?CL%HKs5N`JEJtbtJW$?eceH! z)$Ne!KkKl$0psuj_qvtM9^)qGQHqE!1H7g#ad#a83+I{XGa?cL8@`&4*MfurqCA;;3vvq z$TZL`mc-oNLxh21fxRGyDnY@qY^-_R!R{Jo*7b~5OzK}%x0aQ_Ie-I#*X&a!BviQ| zQLKK81KCLyHO;@f9@c{Dq9T~9hw>PkQ!8U00}9VBrP7oz?VB7M&m8PdPeM&+uaR+6 zdXTT}F|Fp}F#}sMZ7~|TB2QD}H7QrtW2IZ7XVdbdeEA9ldLSus#oZbY0Yef-lKmV# z<;9#e<0=*9{mX6zDPHER@szC)`|_GLEtN_kLx}xLmVL=7^mZB)8qbXrYF>CXFhyi zblj`;$>bTaw}9SdRIJ$HkjVg0qz56f zg|=BQee6tk)}qLkdK1A_Pdv5ER6q$x_wQ`LgHUSB7GHE}NF9?8-D<;*E}N8K3Swtm z7>d%`RNTjqDpaOyu5&z%VEjf8#@+dUad52%vHWf#?%JtGpfZ$mMR9^v%nXoFQ+pqk zD4ZiPfSbj|0H}irHEln;DOj=BxTn2|FgEQw;rq2LmEvp8FM#Be-BJzlh+u!en!yC% z`)mRH4KJ7}>JR}^p~wlvA$=ZXAQMXRrP55t5Rwh4AKV=?H~ZwB%Zr26OEPDa$5JbN zO*@!j1q{?|IN79rX)p4e{_L5f{VLFEd(XNp{;JcjbUQEn5?Q!LAC~k(rxW?GzZ9JA zDPhKS_whG?!bbH<;Z!THf_>J}6JdIh0tyr8AQzT_B4;aL_>NoYi6-D?PZy}FDS6<8 zLrlpJqEo6rTqR=MldJo^CVsWT>{;Y`Cn zC=)3%xyydj1aK*2&p*Nz4U;#8hU-w=8vB-M$?21O%IvGTQs=u2rqwD1pegoGJ5;<= zU&F(^eD!!688vI7@~J7sv`gZ%p z<|!?Bn_JBxvp(t1bp`8BuP0W>Yb`Dg%JEi#56&#Qd4BNGHO1)qEW7U>0;M3FiUs_+ zc)XTJs1ICjqGf8|C%L42j%D#>)?;7mL3p0ASuYA!^HClcszpb+9CRFDN4h$lBqygz z8&KX#@^ld2zIOkdjwX%B$2a)>@ZE%+KXj>=!OG+wA4>E>R>N26-0;CBKDA)U8eT#c z4ve<;wn|CdV~oscBdDoD~EN4_VUPQ!=l4$qr8>lVb6ci|kq#z8agC)t0JXSppiStv-J zNz!(3W17O=q_fn3Dp55eY97pw8xa5rYy*3Sb*%@PN_>vHc5GQBd9a=N_JcFiN+fTR zFkp+L(cPk2a8(61?@Zfce$KbsltJP4IfpO1^r!bfoFz^~3Ak)NxL}>3ULR4#OkS9n zeBjC-^8-)>Oqa^+*j6QW!|zAqx{Pk$%BJF7CEd^}akUcxO-~kaQI{Sb{>^;3cYJtf z-f2jPdTIqyZ5Oa?CxMwRw!){>X<4bhjCC8{t-YieIWh!vbSwO9m=S@E1}wCbfBv zh}{H|&?4x}E*WQWUMRq4kxTgrBB?@YpI!CA`D$D$U4DP-ydOs&X5SC-*5F_;nCO$$ zw39L3$-50>RJ(up93%CJB##=A?CJO4-5x+vt&Ev_tTQ=LZ!9Z)5KB;**Gz6sBGns{ zW|~TXm@R{67syYyhzlt6vpi3}BRG=bMzzv>=v;nQv&j`d-=9qtJ?-(9%nWtA{5}z3 zR@nPHS6b!+TJ`UktyDF;d9Q3@&CGXPc_eAx%65)2sK1%TKeiI!&d}<}wxg~{JtyA3 z-$V)~|74$eE^%;qu*O02Pj?)Nm_vn}6}!OPSTYK!l_&&IZl55rnLVlsYPiFeLl^}3 z_)Zn?2_$iF4KB+NxJ~1*CY1LhAJ;g@@+NB*h34=$m?0sII4XR*uqh0n-dUb!CF{$w z6?s9)O1A`*P8!c*Jg(VPv0pkLJ@E7C*H?dC{4aN@Cla%JXSnMR8k7l+>enP+sNi;F$i)L&HmF<0Z5)LJ1Cp6is@60`OCb9W; z96irog_fy#tGiFsmbkgNOp~!oGjKafImHzSMHht+^<{pqy3A?ZB0P1jaj1y@iLH+t!ZqJ7L@nAOXUunJQY_Og7+c6Wd zsD5(H+Y3^|%}{gPs%w?AED)+p1WYsG@v!?9pJ{@eH{ZDx#{M{AEfH098_EGPtd)4B zdnr4W{KMFs`zp^?{m;DDsE?U**PC%Ov9jZZ8dfYA1dx)GKr~w>@*wV7$yi`F5{I_8 zGHwRkq%nSX|1XX4V25`T{+!dd;9(%@-IMevTD{0PsLg$=b=4K9Z;Lz{wa3o(;Fxa* z${{k0<)VA76O2Kkm~+Lskg&v2fcFv6;p4@3sfQ*H4oV9{Ac$%?jJFHxDt6gD)3x?n z^E#cCo%tbaW*gVVY1f%d3=k`;fU(`N`vvR5av58>Qnopb5p498`KjVSADG8%$^P|& zhcP$075imP)J=_2JlCisSgpLLd`vW&wd#ak$}!=Na-hqqt$6UhF<$UU`dXUH7jly* zl;ibMyziKLckKyhJPQMXxrLf!Mj%;;f1B1ajsyc$NTkdody6}aM6Bug){Vgb~r@F;7)yD3;e*qItECX>kO z9v4Ti_2ERR7mkK_a`IN9jal=b`zejb&xcdpI20+eH5-UVthzJ%8U<xZX@`#A)z;;#}7k$pQ7JFWXqKlRfZXsUI8 zLug(6g^W9WvrOzmxgD=#KTq)p62QSo)$Z7-uDPiDm$tLUMlQDt``5Lx?XN;1U&J4H zoh>z}m@{DnOkp@rY;VrVP^RgRLDH!otg9}BQ-lp$uX7P-ps(DXPzE7*oMWSy3ode| znD#0Qow8Cep0*>Q~Msp}JmX-DDq|3*FK!9gy;iq3AoP5ia42s1~QE3r?PvyiOh zqN_Bt(`T9%-C-?zd4w0`#2PsZw- zpcC~-LR3b5JJv;)5`hG>%Pr(2jcvXiBlsVV^to5Gv?qL}Imo$AWEN>?rPzTbVj<#{ z!eun&+EF7;V~B%Me}oc!lDp(j?d`@Bn-gWOSXm%GUH#fbeWJwo974Ox4oszxc_d>J zChmP9N|_obJP@vL>bYb)L*2KtaK)57vw_UB3*0s`X0lx4wAVZ>yDT^w4n&{J;N9~G z`tsMt|~dV3en6tQ5WXbUt8$gr)qrC^}cG> zWU{PC%CaLuxzbt>&S@Dol0OHHa`Wb%nkRMF@gYj7q?!3h4baX>-hmZkXndS2co#p# z>6+^yH&t*UgBB3Nz^%9Mmor{6CG%XRhtiZ&Xi9u>5i{P{L9J0~Di2%1K%gF!YkqL` z@p|>GHjZ$_>ApiY)*MNfRAf-B)vh9dI!GtF;cYTH#>}>H+QwX&exK?oXX)?!ZlpTQ z)vC+29yAVsS4I?<7s0Da0})Ksm)dx8{A+)$GzZGy$Ms-9{?fI{WT24PYIa;dd6x0j zi2p{71pP$UsM6e#J~Bson2~anJACwGV`aiv#59h@K8ZWR4ics1&j6XQ=5b+k(D=)x zPVJqXy$$ZH2-&t0^c3<^EQMw}b&KSDs4e?9t!j?}bf0 zGi2y_$I&bMNL+@ImdlZ9OK^lu)62rbvWMA{OCY#oIt1xa9o=SDhHzJY7P<|t@`OBD z8%Uvq%&O5dzEK%7wbG(W+rM_+rZnL}{%Cm;bVr{8I-QEnF68t4b!61-@IJ0qeqMem zH8i7qUJSlmrg|o--OP z5riQGuqxrMLub;D&WH!dmIXx&*|I9#FE-yF_tW9FNM`otT@&Kh%?Q%TF-bj`B^ptE zW-US8VV<|>n4VI1GKWpfA{$u?s;5f!QDNP%`4ZX9i}s7slv<_tylO7_bcJUTHTBAU zwi5Ul+`T;<)Re=?e9|2#i|%v#dUUvco|2rLDbx1q?VMf=;$ME-TtiK1l&(H>rPz5s z!*=C~X?~A=eR*3EAFA3Og2o%1w_J!tw9EX-Ds63J;HftN0k8b^;+{OiOUvY5!*9s< zBwTpMiG2%Qeg2iEp0G7u+otgUWnVZQD#ij>G6|-5k1K^U zCZZ;;t1jt2c_N?$2o_I%5;Vq>54;C|J#H0$=gc?2k^6uMU*ATER81aNL!`XxWQLQI1YMwkW%aLRQ-iYD%U z4<-DaOwJin%isc7nL+7ia2lRxB-SXX_$ijfwHQ^f-&F61SzGEXhtpd*g?`C7V>-jZ ztAJEf@)rCwljMh?On;Ig|N3z=kyNuWI}51zoLOX52yixL{psaq>weUtAKo;$<>Hkz z8kI^%zkXPiVQZv(^U$-&fqp-D>66Q1w0?onnaLzRY}i$;_Hz7E6QmUIc41<)kci~~ zM>hHwBhm#>}F^*PcS)bw7? zQ###e!%(8P4XOb)@0s9#_RL{>3}XL1b-&jhM*cZVY_kw>rBdo60ANHcjpbGbT40v8 z630Id60VzJ4l1wlV1t8sLfY(e1xytl5_VHgf1^TwT7Gx0QAjwjgFp$mzxV`HoHjto3I>2fvy@sE2WlsfZrbZncI*?B%Y?&x^9P znXk#{R`^hjFjd?ab}z9P>n3Rkz?d}-qU?7>mRA+ct;RbvUG7yy;EQJ-e&Ap9+N;uf zmXO#~Qbyf>GC(_24_?MxiI(iRc%n_J?o8V!6&NOC1Pqv5TV zH@6B4UyIg+Fza29rpo=5q17HI$F?A%bJS$)IGzr==R<9Cz`I*+DPJ77_k_`(#}0{6 ze(oAm15@+*S0`i<7VSx4i|7>!qN9_I!w06SNV>?RyMwJH% z^<7(0074r1^0d-aYX{izAK&;oQ@f}o=@HnM{ILUT?C0e(>JJjR%*Lh($wR4sZ=bnq z!{pva+9M2A-XLWgyW`cqWjm1jFi^(s zMItsg%7;1Z+R9$a58_sb8<`^v|%Dd|d9gT^2_#wHrXpn? z-+w}BK=PL-^bhIope)RJs(1kNE@kinB-`&x@c9#f&FbI=yv%PS<5D$dX{2;$Q~2IN z%dI(mNjLM8&xX_Wu(14~9W%;W)(Kl2+*zVbZkX4kP65f@P(W7AZZXS3%KzT8S$=Fm zw_e|Z9rY8zvk5bMHzoSDS@ie#&E>1r{JL89bkIt@ywWDkNtM{QAD3u7D|v7F*z8Mn zHd;5b7)T3LU266Tz=QwNZ9P=F3CQ+Q)h&Zx*#fa1Yo{Ve5XOq zt?#U*9~<2qkvO&4RCCm4N1rxBuDuWYVC+8cINar6Ai5qZ$caDFX9@S+x4*{SvBkkR zdoX3+@ZLWic+2(TKHwV;`V>55I%b9XCsP$tM|%oI2H%%q}#u} zpF`Acie_}tqqqy8&bdo%8*N8vsc_Asz}kKWG$6_HunD4YlkhH)hl8ySW6OS=WAt*q zwh`K!f+HKB-iop&`$8uk>Kt6m@xQDC>_bRJvfcB`0KnGcUFF7mcH|%7vSSO{) z!#azJMQ1gT!MXd`6czED7Yb8fW7L+TAJ5+XFl&m#cJ6*2&I5^I9WyN*KSs_;=0Rr- zbl-z9%68$YZa=KUe#bWoZrRZE4qrh<76C>?x$Jl%=1~$up~yE7s%DyvC_=X z@jmVKjP_+_UWh5@S#NZFzew(+EQs~qX5oM$hq-C%KC&~94|hOCnJ*WzN!!U z+B&KCY2xhHU#`JanpXebd%~ArK*?BEF;$ka^QWusgHUKqyh;K0z3rE6Ie8~=+KI-W zDEkHMHIXwPfU}AtYCc4Fh<&j#>+vlP#2t_80-cZ_-dq5?hB(#JyP?I{^el;FLX{HJ za5TF^*RwLnEH>?tWCowgqJ#Y}eO75sFsWrkEe@7|G`|(Fw=ie9dss<2;(;~8?W#{V z5{FL9BhFI!AiT;=9xk7rvytG>e6@lEuNbf`4CB@Q;V@ysi>s4|q&Rlq_4` zN`M!V1g&MA`?IVqg}jwOY~uHc2o8&9kn*FcYwi@+mMdNQpT4ZXkQG%Qfgw|@y`d?nM72&X5Ptu zfLY5O^HDwL-uZl|ZMq7$_;cIKE;o{*Ph8aIg(7*0tu|KA`OY3nF43*rFyqG0Y?IHE zEMqgkO3}&^%A zbUFN@fGxtnmWxZwEH>UgJY^b9D*ooWI-By{_i$Xb5z#TEfok3k^+7ESRb#-C{gg{0 zg`M5x?Jeqw8>hswk`-;=q?Semt=;^KBb)+z% z6m7l#OP_(A`hpRaMUzTo4crMs&C{ko4lBOX4#sXC;@QfUIEp#woX@6`eKNn3SdFjO&Wdp; ziTbk9n(C@=EGlXZ2q28hpKkH1HCrKfG37oj_i|YJq5uP{+_4E>M%B_bz8xz*nMKOb z4}g>VB9@2P%giVb0)0#u=Lh~98&*!ubGwdFIA4M9k4$%efHt0WAC-0%BB>+q$5a@=w6SJV?qjQfa(@em(EC z#z;NXPAm-eu~$!MuXq0P38ryyNL?vV3>LiM6b~;d(tnwnP~6)z*1^^I`n$Vtsw5{p z^-p`=no9dDT?)mlvjBp7 zhm>eLK1OlUlEi2Cv@J!sbI?%+K?$K4OejdPB!KBb**g5y2!PKqBgTZ!bBQK>Sy1eA z*m3^thinVuiX|_Vo|9k`2+6bkgkXDgMe89#o|PHP4?>g=Ei1V5`i+0qQ=)!A!Hioa zGhN8wp@uE5?_E*MP!`lD&WKFC)q*NW!A~b|+?wdvyYT=H&C64IyvOPIUgHe+WeOxb zZ^%P^=B)POk-sIAGG*rU(GBEMyoMu-kHw6C?#B2g&`cEe=R)oF@@)9K`od zy~}b73cPLR0$1%=a$hTHg<4@ddm#kiQKtB9miM9=Y{Iz{rw-3;jx@67`b8lcKeDje z&L=sOPI-p=a#k-H>`gXR97n)n70|Q$m){qIDK+}^yC;zBTgtp?{?71zZ0f^iYk4%R znZ}9SA6n-5YsB?1oxzp&o`tLP+B@%brFmm8BYx2#TCla%kjyy??u(k zubQS1j)^$tG>PNpfx&*2T;z=`t(!{!wp5vV@b%pct@7ar10ggg0wRs`3g zJE2Xv;7o6dKGMGxD+oEy+UD-(DOrKpPd+5U`5a(sZuhFKL-p#hycIA@W%e@bO%B8U zO=p(yeE(}K>oJr%-A%>jo4(qRPFjA@Vm`WNu`e0z?0Faiy!Myduj~0^-u!&lczRkWIuxE7Y6|vJEL2#7SWneGwpvcKMGJ ztO`FQX>cj`BU92gX}iAchs$=gA(YAurSj3VIJgi^xg-53T&27rt+MB>E5^oInT1X6 z@*H``Vq@kZLO&@J&~dK_2!WeXX0sr0Ogm1tzS+@eL%uI&R^Oo3$)c+_dal_LDQ}6~ z(_*x(0)uWxsRv@@YG!rA2|eBC-1ZCGfu^%kx1SpPbll;g&zex(QZg?W3B?>$iaTb(o4+vdal5niG2~9O)MGR1dg9tn>LJRp zknYI9JKz@Ysl_6D3{z!Ya#>BGt>EVTY{ot94#H={#0y2d)DK3@R%6R{s(;)aH+z}( z-87^=Zb^%Ja+HnNC;m_=={|gmIu186zsh2kMiN%Ff-TGYIgPg#2cOpc5|nUn-hCez z=c`@VJ6=}Z@ZAr1Uu*au2Q5En$5xu3R2(VC`uvQSfnCnS60v02QZc(~OR;50*aIjJ zcAQC4Njd31bLSCuxsz!B^_V8;bapFLv0W@)91V7f0jLNXyiv0aC-JZLDwhc~SjT{H zp8Pmt5uE(J_|JG(NmI`xpPFOwAmNopBUX}vcqNY8**Z)pzs?WdrDq+k`}Kot2hNp# zSXcOzmW+GHuCZH_Z0SqRz$V_R+vFbCKDV83kbaUOGK?|c_pyhvuJ;=Ncg&nGPUpjFW_8F# zwW`qPqL!mKmnf6cqH5wLkMv*DfZk76-+3_De~jhIlk9fHz2acbeRx{Xxtly+ZWVlJ zhxKlnp<;AWa^@~=KIG+1cd;0a=uiId_rvi}`*bv^T7GbBad1AEWLwvoEo%;<#^al~ zq8rE6=Sfxr?!xx8UK_%<#87X%X>d=GmuPvZ8Udd_nbWxtW!DI3+Xha-Z?UPJhT4%rT6p)L>ltA_WEd2TeADxEDzym zVxM3#^eR(BTN)|U|F33#paVV~3{;v%k=&mY_QTexgDiRZ-}~VIIJl93{>~tHMJi?) z@ppbOEyRHXAzq%@QJ>kW?AZ?pXlAJb=V21xUA+&MQufQ=v}k< zc`LPFuHbg!L!&yK@q{h%s$QXFN5Rf(F+@mDvsLg+RiQ{9QhiXm{X^}tFDW|orcIH=8zL#8X(3mOyns${v zSQVeCh0nX)Ae4?P9Z&$q46|$;2MO}RS)dk=fPXU&M;XbB=QyC;NCL&Kdrz8^w#JTS zyi1>)`4|p}j%#xo?Lo}Vt=)Y7WSh0jl6Tl)Q_Of@W)}HaI~(^h`Z`z%Cy28j->*G` z!V>?nmnshqlfsZnru1S}zCzbZqs*LahL-RGwcn4d3*e>zHD2zc)6v&g6Lt87S&p;g z@vOa?W%2P*t<49$SL$%my%=cK%J}%w>t58VwaK@y^;yv`PLv|7=24_Wsdwr#sF1Dm ziDYd2$c%@M`1WSREF>KV)5uXMEUp8y(jq?}Kr;PN2sE*A`F^*EBX;sV307ONugACg|C;3p*|qj?w6fDHwJb}2_hzv(787V5hL)5E z7FRui)_KCri0~o5x^3Gk{oYf z>vn=qUs0J@Ik)Be;gDrBDF?q7%G@uQ=VozAc#1b%!^lJ?~7sP;-Kv<-yq2VpxoqMu$1j;-KXwE-OZ1?CnQ&aeV0i1x3rT zX?pitD;EtEVwGNh+^P4b(Ead^2Fb1V z59usr*sUMPGzQP(Pfm*JP7WP!w}>i7*1SOm(P_e;3dW-Lwh$r$$U*>o{7cZBRoKht zY2{(>Y}Z_5?rm)Sh5(JGU(=fN(ReO3qi0xIp76Zhc)xg>^y!VAFqJ5OJoyz!q!jDk zK#>?31OKR*Z*`kdN1BX#qk}cDxQN@=vfnLv`N#X`pBMe1dq?Vv^Qk?9 z^|X-?UaEDe8St&e^9gO$_vIjB7bV>C-GM9={70$<^@{zXBqBkCvibK}7F-{@;!o{^ zn@-&>eSC20ph>^4!`9hY<*f#p#LroAZj1_vmxuheDR6uuoR;BnJ|(=iI5^9mM(lS& zbe=K6i#$nPmw2RB@Gh5!zB@@MKB$91*E&eC`O*Ao{CkX^Z!w%v(&wYecy=5m&6j3> zGU1gg^{A*1$W-xypEUY+)vQs2*503N?bIuS?$J9jLlX7AvdhT{4UHU#7ioWlbv6hy z6q(Yb$E<4`ky|5!4arI=IAZKKT%&HXjsBw3_75%1-|p8^m&rwyWQLFS!{tf%?65R2 zk;5Cxw*+_Kjnb;WF1}BY1q#yttC`>Hpxa-|ZF;pe-lX59y)Zj-K92kGWz z(2NiM+HQ@0hYk7uVAUIcyg0ho*#7GJ8cpRdrrMv4U)h}J%Z7}tHsI)WD16`7nswVk z!LKrJeqowOSSm+tn*P4^5Kw3#V%5#~qIOyNpF8xt6PeecT6CgZ5 zed+zYpM)^7kf(v4~2L#6g{^$Q3BVy1wv$w)mh1@Lb!s@{;thtoa6lbHBuo2a{s_?>UILI|+^Pn!f-Pfr>XkLl#>ay`tklYFD=KX$hGssH2o>M1A z?>XU(6bgpx!d~QzV7RIXn1;uJ&2b7S@(z9TtvT_KHh24m@U^NemV1e4Pp!h1<2EYn zPcyz~XLqUVMdG;>cjK3KAh=AiS)1=FG%aqk%Yw{W9GqAjw0E#rN~bHdUH~)qm6rqJN1SGu46!@<>fWOp7)q(l!*FPSR+kt33(r%^Jm?oY_q=3E$@mZa-Tq^?H#jUxaHMpe@$K7T^5d7U zfrRDt{-0VwgNFf6aLe+3PT?%EdOHSX`i zrr5kvxs5I*r^#xfqu2S#c7^|Y9L_QteP_uoCdLyLp+0?Xc@ z6IRV`zjfbD;0|oMj`Q^LO=&hLAqlMCYe9<>x;B{AdT;tIVR=%#pZ625EDqN6>9BG4 zrqv(5p6S{P>1zyo<-5WAEIG?h#LHO??)oI7)#QCAufC!b-_+Kr3ZFRRHu4z*2X;%| z3+GJ`Oq7K1O~;IZSH7%Tqn)?60jXO6@k^?R_dm6ss)<=^NF6Q$x&8LzeO!;zs9EeE z3{|o^IoPR>yAi~ryNdRjdf+Q9C|^u1{!uH~@{m2JT-!om7fo4l^YC1)6$FFK2j2Jms@-y-5_GTXC?$MXy`DR^?4Q@RKs(Hc3a8{4krM`B6c(! zOy=u8OHft*H@#u-?bT#9gzSS^kME49&EG4l)Ks!{k8q12!ANEXqAqRk{+fF%T0tDr zSVRSKv7(;*CtF%V{eQj>{*x^&SQ;r--o1F`TRs2#zj3zm&wutEAJQlY^jv!dJz-CK zP>2|K{WBzK2OPiD&1l@i`uyPj@Jj)Fs-op6P}&Sf6?f(|Ushg_ymvw1)HYR7y15_gje+q?N}ix0QqjdBdYpT#}wO2LBx7Fa&!f^P7{MCCt9|kN+yc%>drMiBE2PY7Fa8^6Ki#4XRG@1FS1|mACq@R^Umwi7@X&wTgGMyT4zE#vQ_kKi&ub$(GvK-x|pS# z{6zB9Lg|eSdF$m%asVwVWA8!|@Ye(@E`%Qk$lF1uFKGK0^1Ss%?8j@09@FAa!LfU< zpoxq06%SyOfUjT(i0%7Z`-`Q+JlmgbPUK*JJG>iiiS|Yn@um&jhFUj2ql-RxfZL5J zT>Pequ$Fnqas9gO0+GQ+xqD{x2Ve0(bClllED9<21qvvW?CF*Nv(RnA%psoV{g>ln|8X$(>o1eb(Ys!0 zJRZz%hLeHuPv{={=lZHQe!PkGCnqG+dd!bGjq+|xTyt-AU~k?j&usMrQKF^R>H1HV zj;8oSaI43FcPywKF1&##t1#0q?UI8^NWfg;y^g7%G}E>c{H_iqn$4?E?K*Pnoz7&^ zEWz~rfDJriM&4vC`(37w13QRi|0Ay(#qs}Nt-wihIt!c7wvBAYjrS9zgm89wbRxn^YD3@a5NMWoU_UD=DOsk6>jfZ zDnhgCLA1Pg7%b}Hhc7m^acsyrb*U)8M&n)CCCJu{P3;no9iV;{(k5_)?e zj}u2Yi;j6cQ*$~h^RjDWCTPl0@aX5L!bcaDK^PK0hKAHMeI#`fyLuyM88<#+26!u9mF1H2P>J%_EI zL}Lmbo9w?tlLJ4;I5&gxcocOmj&m%t43B%WEateo1<6&v=!e|}J2=D!OP1L$17eC+ zkDBVRDYW0zCw=3%Kkd__*WbK$V>q6U{z8QMKf`DA>8#zIy;}&TQD^wt$ECb{@D-;y zxPSZg?Os)Cq?k9sp`hFFOgsd}{D20WM+r!$rjZRLf#ZZjRqUGrSU#%ceh~*JB zy`HT*F(-NuD`w@mKl|VN;J?|@l}1WI8&1|2r^NEdlQ(`-5pA~~!4`8^elRBhheQ-S zuln}#GG*gJ7!=8E2P8pqtX&NQa*5Bc%m;KW)-A$6i;T=av?Nx4W%)rfovdhZg_#zSn*KXe z6JS^QK{M(sE%$8W`LMX^q3UQS`!?T#mG!}D-$VzR&dKI%g@Z#-4S)P!B{!BdC2ndSo z2N4&K_ROM&l<%97+;5FE<}bBDOxWDU4Et!~gSjZ^=t07H)z4@jMp&}6 z%v)f}BfS$o$LN{jj&4&2cd=HkbIs-Di; z6a9ET8II`Hx*XOR)Dw5dQ<6SwXA|vqv^2lBpFfe3eDB}{`$J zxbKL$Gq6@7kw$Ha0U=wka+#p*(^-ye6>#>Hs__v$o4-V4MsxBJ6!UQgw^qKo>b}d=><9+boY$=o=Rd+Ik zDwh4{w|vNivg2KhVtSl+Q(zp17|eY=rx5iZS-6e@z*;H;rxgJ{D4}c~Ot?rqDKJ^H zY8)Gtd)vtS#lJ_XaW48g%VEZ~#4MjBKE+4lWyvS`D~V`(7qd9Hovv^e2d|Hhd>Kma zW`N3L3KT}-yz(-br@*5}*B+)>XXBCw5~D!>WiB9Vw{PD_t0dP)mr$R;NMMlA>jNd) zd98St2B&vgP7!IAe|e_D(_*8r08LF)*Dx~p=sRdA7x|E z9Q5AQ*}?qFKiSe>2YbumSndDy-k46H=yb}H%VBBWJJOH1QHGB<-lCxz{hq6~`y%r8 z*iEVw6Lqsd%1<_YD(l!EmY+i~zqUKgRx|RoEtSB%Og&u_e!7-tRWaUb{)8K|-fg?r z-+RDzG$1*PPou|8X!BcEssq(GCDc z2BFlAEOeAc_Wyey{5M;QlCwQ7V5ZQ}btMkvKa##>yMlk*JMq!1Y`YC49EY39fEvT# zvKfbp*^Q9I^L7N5Lu%}^dy1z;+u!F`y;`&-`ri`RDeN5G4LE%~ z+xUtY@{i>}8ON8(b9w;vN$ZlC4zpj!6Ov`OWyNs_ZJdIn&ALT{tR_^-YPlyG5+pyA zf4Vj&ZfHy-eN;s=cD%XpAh*7AYUUj{kj&d02@v{s4+0fd9nWM#E+drk4Mh1GEA=`s znHjA9+Tvh8GneKNB+pBy zO24p$`z+00C-bjU>Ofb!pYW&Qx*&d9ofQQDU_x-EE71 zzn+O4(mL}zp_s*w|NFf2Tt9*c77LaFB4 zVz1m!0Ku8FNzbK4`>pUKO#pWq#1-G}?ny?rAE-MaHug;5u}T<&M6fP9z3CcZBO+-s z<)}NA91nZYpZT-hXAmQr*_(MaFO^1l8EWO#n0k-{dqtgtE0umIDo{YNd^p}UTF?>S+Z9tO0)EZO%GVBNll2PsWZe#{NFFB26W!8I+fULxF57J8r z+r;EaOc6*|UCe$m0MLcnlr+~m&g$)KVAWpOK#&C;AF z1ttEkmpJJ*va4MrtK5W(#S{)lYw{kRib7m@uv$LO<^6h)p0%ZTk=$)pMjnAd2ZB2X9kax;A{9Pz80+OTtEL)*7n8P( zPaGvuSRPOWXz0uM+pLT;J10K#N$zfZv7mXUc&ED36Iv-@ZQ_dhb!nxM1dD@JdM-S& zAI{%sQ|WQ<8v?YKUY+Y_!Q~hqcdm%P&_ShFd2l^6bljEiSESafEnBExF>>JU=e+p* z$sAI7h=XG}hA5nfKH6aSvJC>spW|L?N;7fw%(Y}6fWYPx5dF|_5~aE=+F07a?k9GV z)UwsUB<~g86tny8)XrM{uPo$E;F)aHrM`=TwQhl-`t;(b8QNmBypz4jq~KWuWTsi- z?$(6H3<_(jru5OfrmNZQ^qXUzy;z2dEyebm2=x{W=fUarz7PeXyOW|su$A#B zg?5~C(t*AqJek-7`|H)7OKnvv*I8}SC@=ATY(8iN%o$z0W(A}*KFkidLH`X3Dnb03Kb4cF+>_*gqM(N7I91Flo8Zqqu*Gp`1Ftyr6vdT>W2TB~@1Tmj! zVEZ;gfy9H1Z=X_d=H#b!|3&S$WXcw0YBAjUj$@bz7P}rxZ)lk!(^oiO;hq{LsULsC zZ$`7S)b&F=I`9kLaF(YAauhmGZ-yQ#2`wH(=>)sYNhrDqZX7vGAz@e60?Rt`5+lM>6uid$<@~4t#w}H`G#N8m7iXaYrO% zTK3(UxU8tYjj#(})W`hC&!Y+i3<rcXdcU+3Doxj_156cqc{>EX%FWXCJQLXel zY&mkj*QK4% zybI7}&fyRIPko^fI^yA?#X)J6o7jo|lc{O(wzcA`#Y|4xSAd7_>?!;J~`&~7BZ?p9@AWK7Dy!k0OAE4H>KeEdACn4d=k zpVq~fUtmkNIY2|Xh#RokI;p8Xf>Y(^oM=TcX>lB)Htq#MHo;2n6zqk(k) z$T9qL>BoyttExNK>P-bIxgV}^oMjo*koNGw?>z|KE9e;{NEJ^pbtfcL0S{+!@Zb^D zG#$Jw8bzr#kIGNOqK1I$+3l?&>2L{f7LH}l4ODNB5B)bTw9IO`-OYJUgLQPCG75C( zIgjv2INzu(dauUQa`m;QG{^np4CufAy$SAQmZabP9*-P-nXhInynC6{rfl?bI(_0^ zV{CUKyz&C?YK~^Rd3#%bEdN4GAlJheLTKjBQBXhYB~z6KADS_fo&7z#zX)G>PbMsb(Rni4aTNV4o-;?h%o^%*sC9)j8!iLpsQ^hN+ zFWcMOk|L-BDgIeAzf(86vYn+uK30wR@<2Vv7P2_#S>+}I+BZf9 zk`HS%5sTvJQ)1szfgs1b{fLrt;Czf?s$Af#l((g*t=!jll#Mt*bC9E%r22}!u&L}z zXy8j9XDKw!NarLc1g_{bZt$M;?KO?zv6wrUK#h+I^MVk((M036nO_>s2x&LS20UC z9TQ*gVV2d^rPM5(5iC03K;qt|(gs03ELf@aF0?cPR6QqOhkR8@5+3q$>d6sXRH^BD z!nc|ecs(lv(<8#=#9Nf>Cgh5jAK|Fy37$KuF7LgTPhgGWcJZ7RNIkuE?LnDkIUj)c z;yWevo1jnQ?wjL0NgWl&PY(qjr&Hd@G9=6Mf^+gVj?PU=+G+9G+aKQVHEl4&KD}!7 zCnrsQ)N77M3+Iht8tK!Q^Te2~bRB0EDf;^HzeCz@(opp`oB8fExhgkH)O1fO@G1^v7Ag4@Y-p165;@_8Z&o=BXsHGuisd6|MGWYip^q0<^bDS7!JX7Qn-WFtP0TATRPL!;WEsj?U$NWK66$c)ah% z@7n_^%}&_oby$4TuotAHRbTnfB2uRGk^a2s=cH!n-beeI{a&_GUb!4QK{NHLf00{bdu@p zqR|Crul3U=b!5NZt*5m|3jFq@&5pK33E52|u zw&xFO5sC=vYK#==6f?3YJ)*e>m+Qs@rkP3h^R+zBUnsqNd&(CV%NR6xFQa;Cvh{I_ z4yNp!s846d;nTl%T;)#gcdY<6{-~K>$i7fHy7j>5U_TxsL$3d3?xC-v{;L+3X(eXgZtbLG>t_8RZWH>n`wsAtqT+SlufAO zx$)3_e0cZw$&Xo=i{&B#NR_sz2PH}kWlq!r=~I=$EXlq`R)h@Bu~^v%_44y zQc#!2^F(DA#RX`o1qRmLViOnfukxtOcvK0JJy7Np!58X`E}hSqmp5LSe}r*J?~;U? z&h_Jv^?w==!t%B3Ng&jZYtJz&EqKIzD%vd$_Lsdf64=c-4g(f|U}h$Lf3O>Y_l>|3 z)|ue^TaR|I+-nj=a6+{>h%QK5Bl*L9r3f&=&&sLfvs0-(frS0cHZiA}B(1@f-Vh~G zFSbvCsD^|#$L>fewiwfwonby}(@_#v55m8IsPQz;eGV+s8a#9|tvceLw)m&*bXg!5x{)-n%gdy>^{`wy?6cnKWgR& z;4GYQZ+`f$?u_%E!(Ur)Z5V<6oBC1`>XyDwgjc&ra=&-Gr+#iP&a!bJ+4eA+Qo+N5 zysOp(h?BR0Eu&!bGId5TrUGzHhM9+x{NLe#A;Ia>&v=gb5${%JR4oarl6#oWTHX&6 z0p8-^YlU$r;?`&AB%?XvsC$ja0B0f-uM>Q#8s~3_Z?PIwlV;AU{1o_7X5%VPtl5rh zTAxz0*|N+Y{i~5CSzX*gCN2j9cW9>9-T(#^#E8D!g-r}eYCmn)#WAE0hw)xqSN7;@ zoNeqdf*nF0%!xv8EZB$c#-8bZXvhO|-QH{1&xJgkHdZ?r2_~OUcoPeL@5aU;l2h=+ zr;qI3uPZmDG~o!`$MKnPiNw@ zIvTF(q7*Px{qx6JUvhr9bO?9NT{`K@g9fmD7U#F|}`~$|Zy`lN~iE@sNKzIpiY^R*QPtF?K?}5JY&eWKL23pPG5Vx~-$+zJYGVo=PA>ZUvA(roQ~kLCX*3 zSG(Pd*&YuS1s33}GeeemV)F~;3klKvYakDawgRw!C^I4O$VWp-@+9&~xe%9}t_E$7i3#Cq?9ihA|55c`jcKc0 z)3CbexZ8jYiJjt_-s2=fq8FhqR6ukv#`G%MU;iNc{+_+x1D|nV#HBSe>so6@JVEc> z!qX@mxC&YMyE(;Gr@4vlygo4v(`q)wJok_)o5P4eBdHOQAlU&87i>i+xCp5~BllE0$C$P=5 z6_&p}%jINm%gih5ZQjId;<{!=|IQMxdX3lJd3P{)jh@~uW0l7dEb7zDCvBh)BlFy{ zR#N zZBT9I8PCD0#MZOj`*#H?b(2xiQg`T@${PJ(SxIs@W(wf_J1 z%sDyAL3d-5Oau%H^|PqMfy{Wptckml#x@*|^`kzu9GshvTdUz+7sUMSnUkw= zUYP`(GSudR(E+uKic0)$%;tH+vNyLI`E_A=B(T-op}7Ig&`e(iHaKW&7>3@Dao`~5 zgiT{Q8o)1~&+-rbzI^x<5msjoqgD4aXa?hc>Asj0a!6G6glh%kc}Hz1vR~{kd&)q- zE??=5uFlFiFTadn8EiN8^HEUBLz*qD$rU$N6>Rx_Z~DEUfhVg|&WUMk(AGH(@-0+p zeYE1E4jAN2);6tBC^d}PV&~}ZH>+s$#O9LI2*K%AB12$Q80wuRe?A76(TS)itF-Fq z5oE1*7GB{QerYC7+$Ord?QIT{*{#&plfB~WR_1?+s8#91(jfol54vXBpet@Knw9qh zvzu6^T}&nSPP$qZiCH3iUMQwUAH=4}n_s2tb#SVnRo9_JoCO?4{;;aKW@l6G_@j3} zz~@hu(@MyWZvMZi2j4qhJt@m*=((exZ^_~0(^iAinLy)K;&a+%`ZNFT)NFg^90AX5JK&^9qKWU{%?YO<|GK{XpZl4RB}q6; zxwkV^|MYzFQj?hzT-cD8+y1< zITEnP2+zo2y_U;H1>F|Ejmp8kMD0qF*1uz73>CF~v26*mn)9AVg1|Mm{jjlEEc5rS z_mS9Ou1(GtIe>YVm&YshPIABO#n)OBPVh6BXL{iS=Bb6n@v~!;3J$sHNkUXpHq^G? z6(7&l3oDogvFptLc=HrWdn-OG#F~#=? z(nS%-%6Vuex0%UJ+$Qjiz}s9AoqT9n*QJ^mIt!2%Y?Y*rXMZzorJ9#A$pDGFWF?Up zMvFVAshRdHsA;n#c8vbxv2gf;B8AJ;u-8dRL^(iwO`of?+15d&%NG|f=;Z$rQAe|J zNcs4T8V+BOg~bL37i0D5)AB>!n5KdFRbr<0-9u?vE9Y)s9rbGE2mbs^2xRW(dwQM8 zhr+4A9(Wku?$kg&dE$Ez_l~0=O5eTx;r3y9nEFB!3;Ky)lpRdg2r%bX%V@P)l^Qpt z%EY=e;VQ{>;L|6l6`GW?8M%_o(X*#YN#a*082O9TO7^f*`oEo;ZO`0l!ej_K9dBoe zNuJp59skGmMz?i9I>|<`S2(?d&_~XY2^b_~9YDJ_tZXTZu6SmgLn*SMOd;^AL^#FRzyR zw4CJcU*{TyXa1IE261XVML-hp?-w@p`AWvv5optmCcGOsT&B44cDEF<)ZU{BZ#gq1 z=JE{R`Y{eDT#zCWY;R|j#zL!uU#}Nktako(_NpJx zYqLL>8{&D4m5#^w6N`upS+5S_-w_-$cGT^S2-(VdU#r?S+3SFy~Bc#S@V zL2&Q#O&m71kpqQ6*2a8cY=QP~ne{O32gM*0Q9l~dB&EZd~e`kqlY1f;} zZ~Yj9P=Gpgx9 zpMg70KyrKYo3j{mqhr43cjO)-D6s!)l!p<3z4!?T*+U?QO>ikY3$S-FA!a8W^6@sGH zc^M~P5ZGiVz;3O0S|2THv5}Ax#S=R{2p(#y2;s?D%wMjE)ID?E4MNnhcahFN4Kk*& zIs?A8GgNUZK#yYzbS!9cJUjKAT}cD5KlpJp?X&lj?J!=CHcR8ZrPB$_e0 z;`iL3BQNB|V3$_ebEm3l%%9Im3t!r`=US6ftW<3RbBfgF?M^l!H~swoc1w8~@A1~Jt^*z&7xV9t zR<4EA`BrwOcPcH`{=Y~R|3RNqgWCZWn{ekGT}v@g*7s%Zf#&!gaL8)IlZ1A2j8(@m zsjeI{3)2qSbVvs2-`7*q$CGNt4w#ms z6EegpVLYA^N8BJr+o!2$@qz}5lLQv9|I`-!5CJ|*lguaFx#8x+N%w)zHJ+))tk-Yc zb$Pz`a++LC%C2t?=fk2W1nkL zN3?)}wF6k1<8)8j)Qyz;L<=NHynP(-S}>eN97oqyU_}^=<bE&JxRlJyyGp;U*H^_C>+#OcKVZh>Mf+eEufB`7*LU z8x#?jU7eKbk&m=*nm6E;@$Q^8fDc-H9bnXDH>4e`?NkYp@^xO+#6Bd)aK?DMb9oVq z^Ez^AQ6KsDO1WP!7H5@6=vBuuv@LW*e=W2^AW(E#WF1W3oI9-ykk24$7zLKOOa^zP zxN3^e-Q+fpNe|%7$;9~Gp?Sl;8@O-^B)1iXaS{Y)Ml=^`arp2-7!e7QF)i|4cOGiAP#+-lJtq%sF z<*#jau!Tv;%1Pv3|BY?WoQVfhh%e%XiP@;UYKfgqV9K#kJpNRIHqqdXON0 z0CzHl`b6{v->2c z^BlMc1lCZYjLP~s<9sNI?6P|1nAOrWeHGN?bu7X?9t8uA&7(^ZsGP8vzh~j-=>*!bc=TE?TTTa7)j6v$&4zrI`u5}}5+(zPkA5oE`^UWC?B`&Yre&Ef%c9PkC`7+zHO)f8qSO^86z5nzIpl%Eb8@ouQn_|Z_iOR=EtM7Eg88%&VAWG({OKO9IBv7Ka{`?Z^ z&*vox-qf{Z8uNe$|6yNo0KgJpRtsSvhz|g$83$WN@l%nL3wKTNk#E`^{?`&3Y8ti= zy3smi<**=Vi%2YVF!>R5`UFG2=CYvMEh#HChkSW)?o?_*?%j)A1NfRRz;k82tVfrQ z72+pwCLiYIR?P~_3?!S*%o{s_vB1IsE#^3|Txa6TIU!PgQNQV=xTn4d4M9qMv(E4U ze0+N7%J9oxEa1*s`Cs^y_lI$=GY?`C?$;nkIKyL)2S=*&q?4?|OR+#203J}d^KNw08Tiq4lH-S3OR zw|^YY<*;I(f5-T3PWp7x;%5D7qx9N1h>g@ju=1hTt1K@PBXwB&6~{aY4w}aTFax;V zf{m%>0g5%?L`#D57ObezC%#Hj02<3MxLPrp{(z6}l{@hCjr`6r`U`uf`?@+9iKA~9YHx)^^D+Tft$y0GU> z=YvT8oYBP&aVN9|+It>Ni z3A~yOSasUlajjy41&Ea*;c;25hyRFI`bHbp7j`qeVytPG(3E7)q1Ps0BPhVNV}k6U zCI5gD3MUk1|D4tG9fq2w%Vs`m3v(!i8 zr)qz!eqOWF-1OC_XQwRdB3ckFjWK2E+D(=)!}($#z$I&4okP!JZ9ett?YzoWubsBU@2Nw>Z4PyE-7?#nQD9X$(z0PV);%81Q2lulbAi;hJeS6zo zk?bhoY{Q(jC4>#R1P3#UkOWMS6ei()RvlB2%)qRn+ul64#+f-uqqqX#PivIUB2lsF zJkwqtEZ67=x`m-BacR>a&kClm<~rmEvaz>h1;42_(RgozgVnm2db{4#qlK`STcp%4 za~ea?!^Gtxz3>O49&Q{LfAwf-IY^817KOE5s)@ijdU$OO_<`gSJ+4cEQK=JqZZ(YclEzZs*Job57rr>N!~Jz=X}& zEJQ;Nz4qBw85aKHan$+h(VF_H$n9PhLJ)@`E6Jye#jN1mgKm zuYduA-nm;6vu+CZ`8~EuA;Y8^#)j8fP1qgV=t1X(eUaNN60e#0J45B%;vkXNl<zX2(Hpv;QD9p~~dB0xI;(Kq5`SN|ffLC%Yqn}ir7JwQj z1h~U8<&cCF$7*Brb@%wWP6&C}4VQxoqOCEyl+Hd8jJ@=!F0<cicN)g@gUAm1IN zm&=Q=qr3F0jqau}-v4})4y5hquCG3wJgZDwouN7#B%WT(&ZiIK`fT|!IhvcVhufW+ zyYG(0!zewj{(9!9teon29qQ)ig9LERKQ9)hp=Mqwuj!$sAG8wl(|3PB(z>hy0V$7A zo4Vnh0ba)KukIhmpazLsmv}o!rrf}1CD3IMu%8AG*`v7RIsKq+r~JHBhKU> z`7f{UJEDsAF6>~fV+jkT2w;|T73hm_)f{G*zABarrM36z1aDS0IEc}l){A*xWrMOM zoD>4VjHsTf_qO+jmUEC3M^zP95Lc=-a>$RD=cRfbWN$s{BeF~8mUE0ni-P>CEoBNT zK=kioY%9H+?W_&ZapoB!ea2sa5m>7 zX}bCrs+1;2h72pwqk!$_Fy9Rk3{7#&&DIG4aS*I0fXgCw4EQBKy+o!*@eGOEL+_Ch z><+;v`k}xUw-G;_pQT#Zfpl-fJCc9E1p0wWbD$Lnk#a2}kX&GVS5}ctFdCx!SQ1e#kMkV)n!@sclTOlx!0b4K*S{ zx0-h{eWo$=IA6G@+9VxhZnL1+(<55xBq$(JU6fP1DKV?E0VXOcWqVfK7W0phuFS5Iw^mQ1JyRbHs(HNF}A>MYf?53<5%Z8A^}}DJOF~&(>g*g2cdQ_ z^!3rQ$gJ=<;aTOEmK)myhzMWP-+w;x$C~)nq>Au)KxcP^3F`8*d<-V4G6eYEy>j&>?YEsrmv?=W&Y1FUUfAYSgt2s z_D!#W)+ZIV->$t=UapJcQmMe>8fCp?it4<0>4Khhh9NQvA4vY;zN}|7nE-=@#a&SI z7oa&A7o~#YNM~qEN!Pirm-B!Zu`$OI=-Th4pcoZ~Pe*w+{W0WNVcfQti|3F@aG{rF zj~TG}Gy+NkBW}P?#z+E7Pf9xG=Dw>}~yKX##?*qXgBJ!+F|Jt$Pi`|78h+{~i6Z;+EOzqbTAeG%~6 zW*Zzd5&<`1;q5sm^A`u#;XfU>s?|H<$Y~Qx;{D^eH1RlHo>O`?nrhVWEk_CU@&V-=>sBd>dlgU`Yd zXm3Y5p2AY%=h=&yIqc^?JsU*^8;RF%bA`#MHG5@#hz$B6G@vP<{H)R0 z$B$3WX=7+hLqFSwS7Zcfp3HL9CE+8CusaqxcHhbgj8KWq*@$d7QVNTr7P@vq`pnG} zqPr20-mtIO-<_K9UtePJiSivNVK{T1a<58xM!NXr3P&lFfjP*{b*zpik?xEmOBaL2 zi|c`=f1tEg42{RUmFztdcpe`}+1$}}c1|IRB&-#nS|Zv9ZRd$t$rGvX#%eNlI@m_O z@#Xb}IpG!4^U3}cT02_qVsPPK7-Z>G``Ou!jL7H^rBtzF<*M-Ei)XI@9OSkhp2KPnX(o>e_S-#o43!P*P^Z$OL6$k2guO!SpH z9jn91fM~5=WVSw3`C;qXcreLZyQU=0E^cSQvd_u$Z@2C75E54PguJNoC7$mbf&II)q0cL6g3Z^W@|i^xmG_;~ zdO-st<|*fdMA?xnowCIe9`Al8kBg50J6*HOZZ*SZA8IlCi@UE!Yy*k%w@hg=bu56D z<_&vJWC^B0Pj&79Bk_+^ItrpaJ49V>Yh(Zqx@%KAwTlfDN=xivO)&JQ*!iL(|-{ zRB#o&3!WI839&n3dY=f*n8v`*z8_kn4zclUHgdAGXj@Tv6=A`T@yi1}A?G7* zK&czQkaTNaF4rnD&ziWeovu^n0Y7z-wJLu?akPfetxSjvpGK+)$`nEgbyBDTm zElxhgQHwdMjR(}n{s4N{3rdkyZ7wv%_r+Hm6s%2xjIvhT`z{d+p>Oc-KnEt)M*2ve z_0J?@EjTk}Oi?k%?NY={SW`~(jw45IzF|0=baQRBc-P@n0;d3g7lG0&2hAWx8Xu;t zp{MFuc3!1Hc1SM3WguKSv#g$E$d*_!eNC#kY?301QEO3T($iW2pSmcA<^HF1Hu z$(OV7V?!`UhW)GmK*CnrEilno929t~Rlp0+Z zvY6bwVws1QB-!exoA-!H4L+uzfDn`?io2NwbH9bY-T*!xZcSfX!|5?F2uATfkfyZ( zA(|zu^Qj{?OW7<6m_f}lu!*3=oS>H$zGRDdu4(`$IyI#^`-GY6 z>8{P-Hgw%@BDR$_gae-oAbC}@%tvK}tFP(YHp8egh|!-Xl;k$(VKyARIvM^@Bg4@8 z;{~-m(+QAokTb-!(Su!|S4kjC`3`f)?$^_qFd4WmUC!dXr%f(jq&WEnr_Q&x|NU_B z;{s6&^Wunl)q8qceM+S2Sajb72JE5eG;GtWmYF=Bd`*rGON?KY#Se+ z^UhErrT;^4$kUp#TSG#{H{x=ph7!lMZ;22jp>8=qg?N85`cJPQZ*kpH z8;%q)qy6WZRR5bDN}`d5+7)!=zF^NPxqEk|srwlMIQ@K3d# zj*{-VbIZbSBF7F;Cma1lRPCZDo!Y*OPqX8R`n~v&b|Hos-f29-c170k&N_ zBkr1fd{{wNvk$QB8=nrzZKmzFAH%heVm-0F=@{Cd#c)lAJw#!Wph0;RbxxpT`=T2} zQ})oJd6l|)wm%&9M;|;-i|*@1dmy%|LxQecWX_w5{;=4vHrtat_q5JFM&JDT@w%Uw zm~8qSiU`{|b5jWe5hHrM;R>n5czZv%4~5KQIG33s^ZuGbE(ceqR;$rm z*>i1(I~use94Vh%%v^kSR=l!<0%rw@Wfag`(VB?xS1UCiW+(0kNEZ42gZk*XK0dEE zR23}kx}dW9)*R~vFIbnkS4R7Rw-lo07|9z>F-D*5djwP zZEHebR_By~Lu9zLkEplzy)!BRq!;XTmXxkrc zaBw9{KZdPw+D?4&$yj+)y(N!X)xZ+I52T_%z!2JW7>D-&!)iTS?ImjK1jdM)lQUJI z8*dIPQvyzniXwQkAT3b&3_3N_prc2GYxDi^p~oIFR$&iPdc-eE?eb%`ZZHLYUy4Eb z1%YA5QJ78I-RWo$y|&+*6HdcCn_o}}Z8%bqg#83@;Cr9YmWv1!_8ua0I>w|D|I275 zgYbfIDRV5$`>CLp+0?pN-tCG-RfrADk3d9Uew@dpIdJL3>jnXH!r|5w>rIJMCwNPJ zDoM6JJLS!iKmc7n>$ob2LAh@E`ss~;uKwpywqx?3Z)U6`#r)yqbHq7VsY7|C1MTNb z7qH2{JnPFs6PLl~J_#o6ozjlwBvDZL0Mxl&Al<~2}%le3A<#i{?qE7nGvUmaI047FWV{4N zILGkkXgUcov1h3TbC({D4+y6)7KpooGhy_GQS#kbA2pw|4~1U&_TF(OmwUbW`PCR? zZa0jvo|0$dI)&+@4A4)PPZ>LQ&tRw>h45ys%e zzV4|f2MPfneQ_QaG4RuNrzW5Q_OthC>nss;`za0J%OL<*p#BY&gcP`nnh&3>BmWY* z`F{2#32*N-U#G0-I|NwPNrySju0HN#)qcJRKE5y~(`?+3K-9DEHm~diupq1(Js9E% zK6|qH+xk$sjtp_52cvSifVjRaGni-ds$G6b;tUW>y`d?9rV?=02!Y!^|73Sl>!_gb z4VwkWJF_oTK?<)DDi&T0A}+r@S$hT&DT1jUus%z?2J!J+WhqH^C9>~3%wtuxZ1f=8%+ACMCn~qj!)d`()D{|7{&e0)i}iYb_*H&- z>d2z{(2e3hraw2>7-wT|>AyIr)zeaTDKmF{Hf}??`lC}SV~@7ZQ^iwyZ~JC{tYwMC z#djnud_)u8(grlAXUql%%ZozB0=-Det;H_5_J)|#%GOb? z+$qihqEPci3)Kv6u7z>ldGhM4L3vMg67dnh4wQmp)evyH!NL7q(ixU>CkaK{X1fE? z5+!*`f80JJWcx%1F-nTKOo-azAheU%_fAL^%Ss_QNFBM;)Yfb0`E;KPq6_Cwgdp{9 zL#gJ#S)YQCk~AzUD_coLMUXShy3k{2ZjYUQ}#DLP;MAzcTh` zrTSWG-oDiykqf5KFRPs{lq!ED?2}F`%9=locDZaRuh#~D{?q3b&`#4xoJcTzBnur< z$ij5I<#gfx638~@ytK&1(Ox^!7z(~)M9@n4?%Aj8pmU{9TLo>L!Q;~pR(v~443~ZK zqGpAb4@ukE=dC|~Y+CL*_c1@ojp?8lcT%F@+*ic|dJ#g!z50kuvQuKgpPdE{Arg^J z2G`Hl-N}o}dc)1f!O*hr%zS@%n3X4?XX-LHwD%t(4fFNU>QYglc<_i-i7G?%Yq@B2 zNgEKK*~ot|NXCRnBnbM4g;|o_|M+#Zs3KAQM4T5j-n3DNUc+?~WnLX0`rSTWI#o`m zX%Ie2;U3){`*y-1#9W9S;vBN86_A6c0_G}K#Zjt6QrJ?yjnC-ehA}Q;Yr(Zb$ z^8O_IP;mB4M9z9W^BlZ$Z1GKC9xK`P?a%F=Xc1&5@OpDLLWmsO0ljSttV80zJ2mbN z4*K^|HZSnHl*2uoeSXD-0BIxtgS^K04c==SBBHF{j1NdR`xGy_(Yh?$3VLv6*!F&{ z+B%T0?(D7`*+1h({)Et#r_{{W7c-(M)Pg@NEoERY3rMl--g|+uNNS~J97|~pn0zbL z%|T>4cfbE8ArYWB+Qk`lva5B%6o2mg^JYzGP2juhsZQdpb~)I}=JgS(Gd}_=NywEq z#hfX;U+Y00U~F&fPEx2Oj=y1I?$;pBn|M7e5i6j`<}zG~$N@kfFy4p+QziHOwj-6z zLSc_1tG6s{{^>N`D)c($7ZQIM7V{!4h3iQA%_C{mN1~_Xw}fT|=!7piJJO|Rr8G8grEc|CEl0igS3Dw< z^Som{4nKPdzAz^JZutHs{YY6?W<;Bnu#k7KpV$);eM*=nxUJxwm?rHu@lxrf??pox8Vq3M^w!}ujq0;F8m1(y{C zDY4q5zs^g6wzKG($j$634-9MhvOOm@fChB^{Ds=c_JnhXnQO_c*b1z}9kr9cU*YqP zJ{KkqIsat01yvmnVV~`vw8j8nZv|3ZeWbD_g^+qsuKl6y8rsHu{S>Vid%)YtqomK? z{n(t1VJ{gxyQ8`6Gc>ncp}|#MmIEW-;jl;Y%|v(_w(V&O5=AYU?|^8ff&g_KolW+n z(bg<_M9|ZVpnzq_MXmixpvv7B!{#J0xc+`Ud>l_o#osTN;`+<9J8ZS){q&kT9PW8i zWGIoBhEyaLNXGGGNQmL_#=MVxgbXLf553uz9YWZzZ%-GRS zK6&$|{F5m#PZ#LVK`lA}=G=&}M=EJvB#ZgtDR=Wmf%$MWM(6XuwIRVJLj|TLLcs;-#b}G^8f5Mb zBZqofu-?YzkjekqdsOk>Tki~>%j#ls`hCOv?Hvm{s%J!HQ=B@-xe~NhZBRsPA0-r6 z$|9MoS4F6tZ`{6RYK4za#r~tw!lC5ThrVstwld9NmT95E53P2+R+ZmAJ6e}Q%m_Ya zW}GawgOr?wgY@Dp3HZk$Y5I7~m23R{s;xd&m{Z@fSt%#NwvY5;_PLXCiV>|#A4p#_ z0Q3N`(}mBD&!`(?9$A~O?SDRl;n^bQ-d7Onig8m#0;T|{w>P?JXDro$dUxU^H6|sQ zz0&>f-=0;x`#AiLRR^rCzRpEjgM2O2|7v_`JuEB3l~vQ^-piD`6b|CQfBufgqa z({Sm)N=1j!^9zZey1n2W0${Q(Lf4$bH`yqalKmeas_owKj{BE6kyJDq`|oaP);Hgr z=U7VveVPNUbb}i`7)6)coti`tmh@xZ)LOfJnrsdRWWHVoV|%GQ(ShbRjAbRJ-B$70 zm!n_qk+L9{JKq8e{cXQ(OvVKjiWOZww#>~!v(Tlw%1L;a%_kS`y)`7D{k2A)SF_5O zu7Tws9>q?jUrj#Vts%nbE5t530ZjxVjP&RCn>9$V)nnUJt>t(UkwmLBMVBw=IjdRixM@hmhEx-^&>5!XaZF8f8 zPuV$o(|C6_9#%JnaY=996l#=Q|AT{@!pI8O=|$)U-Dq-L(p(g_qpQ$y&M8t~(O_O; z##|oR;@}l$04KtMJU1dd!-stg6$WDe?v@HCoZ{Fo3W!`giq*~u3lpZOH#iAiQ!zMZ zs4x{Ri>|xTFfoWHFUhBnn~}vJ!dqjPZzKX{6dGx1(1#wsPMNyG)r>#N&tPm&)N@G1 zcp~2F-B?$>Ke6A)gO!TK-y8GM){pU#(KsN9>mcGMAhr=_*m8+LZDUX}Kc=n@7*NXN zZn$g-BK>$I(^u5?+-WU-KGhp|Kl!~1O6_;?e8U*RFV-0QP#S3)9Msza!akj{7-@p z+halKC~1CAO4Wo7d_!A3pED{}NIT83DxdEk7WdIe5Ic!VqJ3XWV^PMD`~j*xl39H_ zlDzI6r;Z!2u7~wL(>OmgN4etsl~!%9T-?*JJNfg;dSPAF#?$-HGNy3MUZj>yZ^#L8 zta$VB?S=kMf{4V@!6dbWcHeu~X^yaksF%IC2(JmJzlu)TA*LVOPSR=!hpym2C1Xr1 zOV1f>pN@_j8GGof2lk@J+u2LNtmQpSBFDr@78j!5A*S#or5A;mjr;KR?dDBc#lHAv ze{rxcM7)*sA$~~$)dj?^eJ9a@mftg+cof}@fBPY0rjpx682^idQH`HibFMJ8!NK@{ zc1v&0oj!gezHk-e-64=KMqtn2AFrWpes}Dyf=u_GKQ79vtW7#OkBe%Kd}mdW46Y5b zGb7w<6B<23JuWG0HgB`-AY&b*>vI4)+DEI! zICDVkhnVG=%M4hksDwE0f;h!_7bLwL2ZgqC$Grz7*lbY0>*{RF*_d^)>iOH{VNY2| z!)tav9^ESITtet?G?UK7)ofx;QmGRqBHH(o3LGJj%MiJa_^e>vHnew@Mvh!%QJFO_}mv91JdvnXtFP!NmW^)q8fQ&24Sl>U40&6q_VY zagDnjUn!R89RX?}B#=b0siuQyfBhBCweP*3_iN(eF~D=p<2=`z#ReGW2P604nL$rf zQTT2xwVA z7WFZjpNvDvuWs*TeJ`pOeLLSj9d*_0tpCsbT(O!L4NGV)1S&5hDE)0doy|b}h?qc@ z-JUf}_;xma>8ybe>ac7>PTamU;YFyI@;hsE91L3m5CrWlOFcql2eI_QT?+ogBWkUX z*zty}uw*%eP^?BcElIoO5M(NmUHi-n7d9dmCz(q#;AfKoV!`|EHayX?|7=l3C;dfo z&vwCT-Y;5mE#EmfDptdo34VwL=l;+ggZmw)JWv^grfm+J*|SVo^M0$46`hGpHm=2U z$Zna`@|v#u&%Nk>drPgDZ=G_B?7o+vuH02 zkvlI_m$QYRXq!{+CAv|pTOYCgEZ&oH$%j@EIL%NiS<&R+q)7H3iC(&yAMCFLp8O!1 z)hTZ@>pruq0bR5^(yu|9>Gls;tOP}LmjpIYLoBqjlUC3uvLx{=aA3ACM{H-n?EF;v z>1Ul;93lkOnOVS2Ceo=Q{^$>JM7CMFR4bQ%pSphVRfMNMSwOaF$SJbhEH?8q5uu*~ zrD`BO{01>n=CCCdbOGI|=O{l$yxH?jyn#IDO1eg-mB-Yob#%V;@;Ygm<|{4V7s7Tp ziVEA{1FusfMEE>zP(OR~J$DL(kZhr=v>rTWs2XyJ^a+deLmXJi!An=+iSR(QiLYg`6XAU{;Us<(#=F zaTpf2=LkN$HYTzm({{jMz_ZzD%$F&H6BA`5Uq#>`Ai~kNEcOyKFApxvHQsWZa71kFEQJU-i&8VA?=Q>LDv z@!bz5cZ2Kq!EQJ>+i@@x^VZ30R>y*xM%t$^HC;?bH4XxyFo?DCfSX;{P!+5$Ea2P$ zf>4}}+LnHA_U7!9#>Nn8WpLerJ-_yYplyGE?7e*E!`0RbKV><;$;O7MashGge#(sn z;RQ1I#n6NH{{e1(u<$PdYFjYA@7g5_SwK!`w%#K3p6`W z_K+k6QqXI8gGC!MlE2nR8bxNuW4zNe^=rXtj*A_(Pg9;W-_#DruVp4B)%x7v(MW0{ zk1xR!_BQUikg8_361B9eIx^E%0ThBFa|cOuTwv`Q6Cmk~9{mSWv=66kjvgK^6QXD|W-7yAb9w6(VzJC0vK0ASjn? z=Dmst6L2!S5S#iU-v*fKRUCFV0b*8)UA~p#f^(EgViRn--k(A#fBj%!l8Ea2#5}xm zU+o@R0+^sXgn8sZmowur4)CQl4l-M=L@9^K+XO_gdRrp2t|fj_x4i+BU2kI~O~BT= zP6qWkXWJ24%jTd$!YzDOr2vff`>^PS_wOlqq3Xn%y)GFLk zlC;Y0=6^QYHMvS7^?on?+*X+eV6dIL3VdfU-}=!5*c)Z6s0t#s>TQ#39W&`3Cjg=! z=S&TuI(YeY`tgHYMJlDs&xLXI!CP2P0B1;Tg9pRis+X$B)RtTG-4Bzb4>{P5{+h?U zRVe8APIy7RW~C{o*B^v@d$TYXfwDvapm=zci1u=vYzce@y;*!3*!Vu~_xDu&%Ed23 zV1B}y?9NCugi*WrWQOnd2roW$8=fyT4idxI7CcJsLF-Wu97v>G-%=Z?RoEhy(u=Ze z*edc+@W2xO@h7Rz)-W=OK(%e>o-^hHZ2Ln*7{|GFzkv(Map35IG_MX=#&NW3TxQF# z?MVhQ*Cm5ls-l_I3OSqKvN7E(8u=n8&DIkiulYet2iybRWi-8emNcLry+Su=QMtUs zb5AjtC;)+!O*`rlG9JzALN?3a9Yz`l*R{lC%D+#xc!XYqNui^e|2SCY`WLSmWRW$xoySZ)o)MD|QXamM zGIP(gkjvMKyQ`ZJ8(47;U@idMw}Od=nTzo3*i=Qxif!F*W$KtZp{8OJ2iT(~)#~}C z(9zd93x7=;a*fL6&d$dr)2akLPjaMrn_JD6h#*OgwyuGe_?GHkuRt`d+ zKN!WAzL7n8=oMLgfN83$Vkh5WZVlJ-c9qDDA6|4nm}dn*iy*=@Kti`Z?T zN$;Od0{V+_$e%rohYE*rFTG6c<*yFox&roI3lV)-;$CXvxi#z?s7eF8XEJD37qU7l z=wX%EQRzV(vcr%orh_cy#fCKj;mF4Jr>XEF>O!|VT>wOMn&m;vWXX-|+L=hRj2fgH z7@s$ofn5p{nezo`U!`zR^MlyL!}z9@CA7eknak8B)Q6peJR2;D=It!At}_o;zp@xf z_>u^t$sYcF9RuJ#Br*xIXbrU1?}L6Qz7exhIIcO(Kh^;6)sgoF$Yv_zOl6$YK>=W9ab0I?#=lpGgjerTWB6Zba}-;5dpRn1d>CeH$4%M!gp?w=vgg| zK0W*T`~~f~NP&r>b0x0RCH!$tD0FbuCRw%E$c2*+P@I*n^!)1}`0Lbk+^!&t@`Xh$ zm#7@yY9!b;zn}iywh!9XS!VXwEh(nYg^u7&|K1!NcM6?a`2uBL`EMBs*=OWDpKR%6 z%a|S&>h)W`DW|X6?FjvHv-|6UF7TP5_SYYYMyjm@JG~M=K*`*lJD!$Dv)h`4_a1y~ zWLUbr{)%l!y!i4T$CT~5EwKg7Ovi*1iY7LfgnwFdZ=qNsej2v=QS_UpovlGA7}dkM zAWzCTva?i5si1tMnxoywgm36^OUrB`;@%3h>4BaiGZH5ZpKu&-Clb?TD(HWsL*K3T zVn5>ZIUk@x9l%5(3%rHTtS+KV!j&JRf=qv*HZYh14rPe21m&lE7{T4HD2*OUm& zG(R}=#7K>UzB#p}yu}B9x`e)(7WUQO>s@|2>wOOK!S7?JVPDz@CjZt@VVpe#6V@%; zw$F>=unxGLlnFC>y9o1jgv-m?zK1p&OZK%P`TIXoyoss zjef34bgG@)7(%EgPdg9vhh{8YB@NUn*T`Pl5p~YyyN-h=)JdktTcocOr{DI8=heqZ zX#~*2Z$(zo8%u4WT)X}0akRi$troqN%1U8YN9l>wPqnL8;oFI!-mJ~gSA`=WX&E5v z28YLCC@|&n$xlT{f~`(KRr*Orl?}O{s+yAvk-G{PPd`&Vt^wR`?krVG2H)IISikVB zBYbgL$T9VTG50w_zV>=SU{DaG545at@akB<7)aev|5VSa-RnasBre82fE^zUEoEHK z4)gH7$7{74Vm=AhV&gfMA+eBS!xB`1Lp%s|L%<{`WZrc9ws3sjyc@j5MWm~ulUnu<0zp?;+>%1wlx`c z=?U9S?dFg57mIa~SeTyAMcaulX`rfUMxL7_pZkE)c@bN*Ww6Lj9L(^6tYGk20xjOL zGt25UH(?CCw#y>{$1F zEPD9j&lq7=FIwM%Qzq&@s$~cu`m%SHe&sJYo*z@S!qQXI_x6&JI;?~?=k0udTgr-# zs{Y&E9;J@vd`jQXbspZtW__IL44N5c`&-OZNM+V{1ss5Ms79k=*xYrtm$h0hdR{8) z?j!@CNF}&7=@tgp2L-jt6DRW|sNNZHsaC$ca(q};lp^!#5e;;1`(tIM**wWzc<$JQ zTutF(PeZQRVH3p{82)u;a>_3`BlRh}sf|D zzgSj$2&GOCXLZ{=MkS}yfjB*|nAv$5_;g%mt)JID2t^%mvFcW9 zbi$OH;pf3Y?lJ=SWK7}9S%qs;&vc}~=8TN zysDpQ9c}^GFhBx^y`7J$*sKIUK5zl{rY|TH(L7Otmb=!&&PYN1%01MpwQkd08G=u~ z8-`N}eVrZOakI)*U@W=EHAU)_Zrk^hR$*0BA72%j{#EJ-QRes0r|%t*AnSHYe9c>0 z?c9F0g$!fOBV0G=)B`Uwl4)Xni$dpoS^egxixtJa7GXjMS>)69p-FrYie_Hp=!z}DO8N+Qhqk)*jZ^t?2NJ!S@bw@ zIjd6xxc|=wb~S_si%}j-SGy6xnm=}G;D-w=nh5pCM3e-A_Uq3NQ49_cS8T`^%4+GM z?G35}8rKPAF0WvL;s)Yn_C6NBu@0Nz-%mo zTktA=ociDQ!3wd!COo9n2;dWCTUP1p#lc5QAX|9f<>xcy&GqprGvrdodbbxP&PW*3S^bFXnZs+p23l`hCygsr`<%Hzz*Ix;i z_xZFBN7B2?dMDIT+xdM6q@UtVu1Qx-bx74XIM2;0N6y_}-VDEpI?Oo1eoC{9N)+4J zPWtz9J65XZYO`+@MOhs;nt6DBy=mHSSIiS>gR54A-F`!iENYnaTCw66)2yLVJ|LH+ z-s-xu?3XG>ewTB(lq#YLY1J~%t@b$D%6VIH<*aZ=7}#d5fs|3Qecb^IS(w_jyTV=y z6n6oP2qCh-jX5RMo^gnDSIbv&VECzsGVKpas|M*l-z*IFsaNgaS!W@9uhox>Qa@=6 z%@2kju%ylph}$I;=TE{>tb%PuKhKih&@%RjSc33bWtM3U#^XYB_<8!NO%6Lt&qgBv zXHSzkCmcGtnLgWQsStUX!57^u!H>8QeBdw8$<&6_j}mj0#Dj`u%h~~h=uYg%%;@ow z@^42d+dZ(blY?2Mgyp=jc~7D+T*v3=60j99m`eVGXy)u6i^17|eBWJu5cv14&7I=X z+m`|J5~2<-18r;!w2dpSP8lwphNV=3Y!|h4uZMy7mxF@s{QtQZ9fqc{y=~-vpnHSa zvwh1Fhk&hC=zW)8dYh%gNguT0H`n)~WFd;b*Akz2y)Z-BshPx+hpgX)^Blx^Z;j_M z8ch?B1+4lsXr>9>@M`n-i7W)X8V6U3@Z4+V#sw-LDrAh-<0LiJl?ZA-&6z*GWJP3d zyZeEqr{sW6eX~%@$9R6x39?;`V{Y)Rc&CuBdmeKwWd=y?z)R(5^ZV{foz%pq8wq&3 zlQQN~wWLK(_xbJd#ZZ!X`dCJK;~N9Gl5(4ut`GHB8OopBb7Sec1W2=7j_Nexfb_XR zz94?}aWKkgn!oTWnxNB4VqqV zV?6n?K(7rwGyn zCDif(e$vS11{x+RSMby|a!1#dd!DOD@cn)8ao_BlyP52Qw)kX(%h+w_TFxWI9K&P^ zw(VFHTljZk&?$?lf-kY-UC&sE!WhrP-eHkUpn^3J!uO-;Ahz|LF$D_JM#S?~NUKF} zBAXWGH!Z5ev0N}XiRS};zzJKcFN}TuVQhZ5$FONm>b^k_P^gR1Cj}616umGkiMsNH zJ9@nerM!!r=>tDmj$);em= zUz@E|0Xf?F^kquVndJtBi2=KRPfG=6G3~Xkmdx!^4kXum#S=hEGPo?~OZz;a+EoGZ-GuuIx%#Fc5)T~iynl_e8hT>}z z3@#rNu>K_)MCKr*Tg5SKyuKHWtNgn6zvk7a#`#=Y0#grhD@6*Ko8>Rd%7>$OuAnXp zb2c>;&`wGbK7F6Z=>Hqfyxu0f*AjnF69XPIU4D;a^8@xxm-oX`NDIKWwHC>)FC;~O zfHNuST2A-r^5c}qv#nuF_sz#VCyxmoIlnyD#IjlN~gkZm-}(donS7p%b(D`~?pS1`+}F4p=rtktMm z@tgT#xlmpV(~>;9?of2Se0%G0EGfAnetb~IL0wC4{?EN={lQIUTGf51jB?zcm4#^l z|CuKfGy+Oa_@$W1fjld=8z|Dwj5`$+t=+@mtaY2&Uc_oQKmPePRh!7da^9TBv0^u# zqz-)m1#jAp*JBevk&DRN46H8x{4;1y zQ%m$NtyVhhES7et5(je010bHVdb0Y%tANY32c#_egE}36l!T59_!5XH!bz3}v2|~$ zbKP4yHZHR@E!Q>C1ky3Asx|7?;m|l(h3_>EWx~$4DJdHXJX@0t9^u_+OzZ7;0d2YNc=OI_oB;U>Gy1y3u z5nKr++md{dM(~$;O%xFm8{YiegCOq&DWn@{>3hb3aanwwajb&Ue>zmHQ8wJV_p_i{ z%fZ?Q41TX>2&q<@4CmdW#q~kBU*n0hQrADa&4d@#@#e#!BRnrbrHe;dsa(AQ%~@_% zmS^fs=Zm}WqG%_oLMp8fvvw8M!CyY!6<>Qp?&Cwd$bMR7J8C-5mI4|F?*k>!%nh=O z^&61X8NZaSf5L~Y(RfkX+)9ipAF7io5vr~ zfHQ!DM_w#N;ym^mpO8ata%$My9gIV|DjA%l4LdeMO9iLMpFgWmaJ2x}Lo)ZEQ7Q*f zI-fLi$H2PD&(88&s}-6^FNwf1yRIeP4o;&cOYW^l2$gxflv3lqSBV`N;wHMw??;J{ zx%gn(4uJ<}2~e?nFvM}7L-o~Xmmf?aWQar$U&E|8T z9y<(*%-riYCwTVnZufs;>(|mm)QbZfd<5XK0l@pdw^Uf~K{(i*K!V9OiY~eZ{kOvl z3N54yrf622C$nt8!*cWTN+df^xJ6J3!hX)*HeJy@?nOLjbYHr3kDuLr%D#GqENh0c zEiV|JTa3Dj>g_-??EO7ueUBt=dYp@RTCU`e?$Ac_M$50$Qs6J>^+Z>B<0`k+YQKJ~ ze<_Vi=il|mZ;A*_-~Av>46DJ!OzGC7+vWAN0}7SNXJc9FoGTq6n7)aBbhRr9rTp8% zzUE1?BsVh6?l9W=r0RyoQL$dX(M-Ps?xasA;PGy`w*Y1RT`P*Y2d6+6%QIKBNQvsqt29Gj0t|;g`KtE*V9* z?Fd=Sn!u$kFfBzjNgNB3agc;_+hrtVy&w{cY}0M} z6lU|ouHsrhv)OowfA1~*vF&B3DXi_yCFJ58zNXdJ z>Wg$6;AJA$Di!uiH*Hs{T|uTxV`x?-c$qYZ;xa{h+qajbC}HUdrLzH zpRyKy>ZTfe0P6Yq>exb^aK++s?6(~OF3Zky=D%F-`T4{PJZ*)69gwt}D{`9cSb&dd`<(YBKuDg9hxx%GU zATxZ7wIl=Ee+38qd)=qyFygIt&F8~0w|&XdddX1A$RiWHi8Et1=tBEVE2 z%nrCz!|9&=5JZ!%vjte{22g7zxV}fSsWA@7*4DkH*n4kj#MD6X?6V%sR$%aCe-YO> z7<4?K0qOxwEavFMF=6qKuUTa-q084RSbcldIJnaM;Kdy{7^PVGGCe))ZwJ}zZl&Ub zv69KUcet)4_OkPQz_y)=X@1bYwjMeX2qt$j1hDbGx0FIBskA#9j+d~-s7Rw}zLaRO z_<}RWjHir>*Toxl!p~1BW~I&w^S7A)+4>libEL3;IxPUy$FwAm=wHwBDMJCYn#`rA zlWmG3)<(=9$9AcwdXH;?ZcRU1ihuNmMhzmb55L9d(kS|H-;FFD(8y{fS%4{P`Bwir zUdeAm=xQV{>PLfZO;vuoa2$aW`Z_vGwE{GQ_>$<8&gu(I9I>4VrP~e_5+Y05h!mmuL65}; zjXn02Chm4sFyKRWwN&8MemJVX7{gvWWg?1{&Kr=C%>i_nm~*JelmQ}Ux5TrH@aFaT zG&zTQ0SD^}&MvydWY|m0gp#J8Z``AN6Ut>Ma8|TiU#4Nxwr!wzsge7D;yi~OV=hX0 z=n(X|JoYdxXG9<{G_89}Gov{R1~ZN&42JhkT=q)NVJN=+>e__HSNZwb4}aR}Tp$85_&F{?lNwC*=W z4!1*CHiKKq^}e=_SL5LJdgMM9NeT%Tck}X6z_V`8R|~}Eb$ckUE_VIqcsU11l@O3@ z*aSK)qSdD&IBS|L+e>b?@$mU5vB(srKQLY$Liyf2FfWwFLq9G2tVPq<(hUz}PBE== zwQ}j#mlY({6yM9mqgp9_2)tEakgC!nMrU4E^CgP9R(G*pb$+*a%@6u_PmAG89^7Ap zekt!AzKF9$wO{O1tfMb0ePOA%FH4fVx@%IaTKVYq&_OMgin#qG1L7~alN-y5H$7H% zqmWu>n+4&n+*g@rI;@#TYJc~Gg=v9eOduqr}O6DnlyJ4Bm;_)`Fg2RZ8R1^dqQX^_+O{1#0tike;WJAKoXjSqdCyGo^D zVzJiGt~x7Z8sI$RoId4?a4-z#Tv;HhDZ5XNiaUt>s1fOFy4R-&a#MuG(@TZ ziKt^b%)t~2rt(^@Yw3I`nHoJV_5P`Hu)C@uiJPWgFH5uoJW(-?%P%e0f$9p={OQEx`Y|_}G zn8pXia24wer4Il~&JI zt?FDku)NKZz^6vG)|cr=<6*1Xm2>|@%M~J{`nG-avC~H$Q>nl=eR`}KVLgZf*)c66LbIq%4e$^h;Be^EjM@F32#&A6XoL%P{cF1qsh zq#FQ-+yBOfd-Wqqz(I10#xa&9cuf+s5|(3bymqMr5neTo!-{?@mV-h|bNJ~`4kCzb zWH(4c8&eYGrUl3=31k8+*aA>w*Pez)Nl{ux($zIIUjU-fh@eRdI-OFm912>~3oMx= zp%F0kKuG}h6ahUbjrIRQL=Sw0HrEa zxNywDk^;>y@3r86M1}4go%N~*s>Z>{TuSM+cxH7&_rRoa(EfNocv+xi(YF)gJ6Sar za^YDX410I1Sd2z-Mqq>MT4!TS=O`E>Kim|0D0ma!GdcLUI1l-_ZU~flqkJ`C)x$Dz zR<4R>6BQTW1Rd0#Sfh?XUzK6O{kMrKVW#{H%@r{6)-Ar(CE$Ku7?mK)KL-!tQFRo(x|QAz?$Jhf zE)E>EsW0zt*ErpHAi?4?Zxx~(n@BE7zExam?PD$yx-~C_`eu-qF9u3mLo@C)?V`vT12)A^551zA+TlWIldV5_A0!4jsFul0866_^d? ze>pg;gUm?tgPI7O0CR9lw@6{dWh&C05;Jz}PJHue!H@5MpB13Ep0)VNLU#Z8kJXjJ z(YtLPIk*rk_%IJ=(*(M)qUe549S>G%jd7QusA zXo;lF(@CxF|=6-?GFe1JpBafNg+=m%^C)_8fc_77CPz(>SPGM+ON(YE3(uy z_T^f6pjkYlW;U?Ji zsP7sH(6gSP_e6`0)LJ9OvCSytNn{ELcaaB(A^bj`V#D@JU9SKLJ(@wk3g{Bhdj7`x z&OE_#8uJ2@UPnyUqj+#6WY_Fclz@ULq#1S~=^ad85<%*X4rRs;(XJp==qI4UVkVv! zk&p)+DtXLF8^c%LLq{~50(P7&%qF`wY#1NG$h?=@XE;k@NTQ1olpM?iI2}nxF2z^f zCfh-@RIZy&C5?jfAK#W ziNZoB?-~jC@1kM+5TEiO7u1{W&dz%NMkYAPnYV{&RO4Xe2av{a!k5?y;+kCwLmU*> zG{2^D`PX@vVb*K5X1-nP3mB~bN}W6inyoD+z6ZTlxMDiwG3P`lxuSN`xy@w3o$Ij| zj?*!#zaV69&OTb`N*+7>l0_#`E%*-^Y$6QMLjKNOD6i+nS5Wf(wX_ZwJkEvoZ?Nh4 z3R(5;Q0+LQ=IVd$MVBcbbR7xlhMuT>7EPPZ7njk#53iomGbok8S-*?Su4{>Rt$V%* zb{H(M^9*N(7X@@dnj%mCj3dx~cl*^v;k}!BE z>1)#x>Rn8GXY$>PWhf2z*9&6icXN4Esy#nAzJc=^JbAvA=*4vjC~Ke}R;T9V%Ol-Y zO1N~xaf^nfKP%DNV3nUe`i2=|fKQgD*Gn z`BzEkYaD#veO4&R9kNwQC6%K%pi*+V()gxoZ2Z%qlxmGe&2Z*b=mq}yFba;7x|n|_ z1^Ea032U(z8_}RH?jqo^VaqB2>&CtR(?~F-X(S5ZLVmzo3}h3V1#5sMoc2`$j_**0 z0GVYC>KAi>6?IlPhxl}y`G1$_CFgMizm2-Q;HMcrCui=fZ;00i&BNXc8J?IJBmPy*y7ZB|xZN(JQmwyPHee5&kQ=({FwV<=43Z+xq!f?b1- zRYB%#r|xG2Z|rBj=6}`^!ExW5mKy3q>%OBg&oH?gS){fxJuHpkyW{<7R~CJX?|0}z zzFl=nL0~4!`{irH$5pEmP?w)ydlkd^tT7Om*FWyT1`wE)V(5HbIMEPSqjJyMtk8v% zRTi&Q+&?Q4+CObkvr3sdb2!={Q(pT)A@jRQBjZ+Y&JW~+%s=>&X%%R=%;EWKeL=3m zN5?Ls2F;P_^0Bw7-gOzcI$*}5rtkA?OSR#_Np;WEx5Re}hQLx{t+QInKV?80O#jba zL0q>n&}5I-|F1?enG;zbx_!MGCg(W%_s(3y1jPM!e0?-x2}=7W?*tc9gRsf3i^=~0 zgMpv8JW0&C^Y{RgQ$a`BP1|6}(!X@8P)y<&p8hdW7M z2n>rxOE^U#hx32;wOIv-31cbvYw7R2+)`EJU>kXVb`P~E5L6A6R5`dDSCH|i7mb58 z>h{2+_b+7VfhlW#P~#vwjRz1pA(TGQLq-l4ZC%vE?%KvauP*8NFx?jY=wf#R@^eNY zE)_sCn%STI=CfR1pHe$}L~zC$%vM_PJ?tF)GA_9(vW8|>zuHRU0ZQR(%5CN!t}XzP zsmV8b<(GSF6O&irnkpH5d9?je2zNXT#G{&U0MLCy%B1 zx)8`aTOzyts|nRDS85suRrRqsnpVZLQ`d)jSsK2bKX8Hem1tIGN~c|#aY)Bn%T@ba z2pBAB$!O-Qu=xAzqmz79jMfuQ3C3HVQa(diN+z>){I=hC@oTI1k@#=$~X(@5yQ99-WOXdFb6zL-wSNFgmF zxxw9()%D-;^$~-A=??q^2)%C=^Vu2Q!M0^F$TQQo)UJ3*0HLv#7#HbKvt@#O0=ii0 zW6+=1B$?yJz z^1*CX6R}#%0j%p0&=B>|Yu~=34)c%C)Sj+|OTPE8nDEn*m zF)H<(OvR$3`;lFau5m9njxW2kTBr|f4-!1LwDd?^?l+~0RCsxqwW}q5|EAU@yZ3sv zQiE^L9R`b{f&OZJXMQCDs-}^K%8dNg%tn?n%2jS*a#?5eFLLeW>$x85mJ#Xg z)apedR#h$dYgg3CvI&?K)hy*&^r2AFJkZTgP1k`0Tenl|c{0_u5-FAPi-}B8MzuYv z)*74DQh$ury)WDV+FI{!7_3&LE9Z55N)2@fz7S7v6SK*lY5+tgOa~`|e)=J9MtXxww2xl}7=BseI1wlOLmF zz9>g^06ylY1Ri#W0^bD_ZmBWi*i8CYZIJEZjpC)*{-M{eTxApSfD)XusB2UA%-1(s7 zsv>iJ=7L_!BBoqC7G4w@7?p@xP39xbTk3k*s?I7?V{B4t7GE3dp|8jHx<(~8k)lVc zEP%cG8?Bc6(^|=(-b}M$O(Px2B?LHWQH^r>cJp|rU9U6-Hb5DR&oWJn-4- zf7iII@42L`(Hq=~B!|OpKsYho0r^#w2wx`k%WFi)4lukY?$2xyO16b9o)qiOn2nDq z`{4n#9Udqpz!Ff+j0Xy24`ccLLpBd%6N~x$wEz*pNG9ZMnYLmwJm-GL-^;MmmFW9} z(SJCYQfTmUsi(RUn{#VcTJwVebv*+I_WH18_`yE;p9xpx+Eza#1uBMvEnp z6?DljAJuV`Kv@R{&<+q2oKbLA9r$xQ!;NCU$k$zZAC#l?=Co3r?0os~dtAs*5vQds zONKzb>IeO+qL=uPt6{ORk>qSIyE@|eCqmKs^-}81&QX`hW@g4K+MWQiT;-Q)Ko)* zI&sPrz0p78)FNxzbpKc+<|F{LKuf@FHlF@&H zsQ+Cidm!Mvf7i!`kpHf?{_jY-5X$<0{;_(z%hA)Gx$<@p%&w@QZ<5HpJs2)h5|q|O z>0pVsZTk`iN@kg#EBg{%9Z*Rfb^vGf=EXE&oj`bIyj!rYvcf*12teVJXrghFaj4&o z%TNaJm|B2MC+msSdx`%4%fZ%-0bGc5jc{&qCS%wpd? zFfF3Q#jnMa7_l(^jf{uYIG7DONuG!031G+%bC8*lcV}Rb-YKMri38gD<;fNUC~4os zDE`^6$s--fx8$ldd^O49qf%&HLuJ_>kSMEKww(H6vG1nB(IM0M-W9QZXJ+-*%rFK% z!f*gJJPI-SnW1Dr$O?si-&yqvufq#V3m(AD6%c9Z-ikxnQ2L4YvZc!YLjwi*D|%Ee ziJWukr6de|Q*B3`|N)Kc@-+*4|^NcxKQE*8e1m2(gfi{@anWv>|d&x#+7gESJtH=_Ti zktYA;AR#3`C&7X>$U@FtBw;8lK3MTR|PhG1AeovLil=~xgNKh_fnCO)3Lwfi8ADlSdQysUjpwv2noKR+xYTr zl9*(4^DuzvH7WwdxQ^idow1-X&!77LbFhLeA*a#=pyfa@Fi-|DK7GV zCS1YDD8dLU5DJcx$E^{@`EX#e$dkfPuWg0l`#a;JE*cr?X?40C`=J+Sy@=0w!->Gx zGzC!EJUbx#mqx(bb9KZqB8lMt$Ju*-r>%Bd+Y&`|+zZBrBu?TM_t;Jk9n&Qc2qc6W zAWZK?64Jl^Np|*5_IdU*&iUS7Nk#^N#eJ>0bkDiuyX@nTFIfw~JB(EDmgjxBv3Q@Q zhrMijFpdNF+OT>~8j?pS?r`cER;{{Q+XvYfE`WvI&!blKCuc6tSW*QLyuy5JRT`Z3 zSSQ)(UHRds@%-$}rp=Lp&GUzDgF*QQ(@633fUn-?cDT+|;pT6xHQJJ!wW}uf>eHRR zGo4Ay>cfnIj%E#`IN~`*VQz)nMb0Qz=eGh~oc&~!k=lr@ZMx+$)~cp;9GSi0@}+dA zR4Gi@a^ZLjT}k+#V!Q^+YnbR^xBS>T9;p!>&Cl>^m|G z)DaZYTY;U8BtDtXqLuSW5+g33^ZAdn`%;-^L1_yxg@$%uN|kj2nAvihoXG^BuSRs~ z{cONaZPTDNbZ!-RTTs92+eE!N9Pvy@moUg0O99ZfLohmjVD_A`uuk-V2z>J&9E^2n z(_+czlV@{_T;mS5L{$%7v{XIFdYyvqkAy4CT-cM7;V_>p<447b#2KKS5a?yBE3-tz z0C>+9WxW!zf**pp+$QDlP|?t`MCxu}Cs}F`e%TQSlazV1k*@^IXYY+0s{9|^*@#EQ z(VouY?O`8wDQ~IMu7KgZwy1OM@>0I@1b9x$AZiXjVl^?`>+=zlbtPWX z86MNwg+JfDf|;2KRXKRk1^K7u`5IHDZ_zGSLOOj)Q2XbHMF&-Cty`LAdM75~4M;pZ2O1h5PpP!v@>-pq$%ej*<62FH_nm^1wN=-RcM*0@P^?{l%#yEPy^ z!2rNLF==?dbzcfi?kB~3*P3T|eZ+8TJJz0e=Pr(>wc0)|joXpoq`nonW43*H6Scq# z0ey66v!$S*Y4!T;A{F>6rb&w{^r<~kU@LH9#fkCXvjQrE>un)ZX8eVic_Kz#T)QtC zButw@%1re0^?USNdLDD0?xl2WFa*pKC78So+4BR;WAqnHBtlpfUk-B} zZCNZ>Rom1F1pb4A92mP(Kf1}Cd0MOM)~>zMbX?aLZm-f7*J&pHJK-u<>NA-jaT>R$ znKdVAP89Ckg1%A)3Pp1Pp@;&^6!MYfJXKN1_-COM48;mz{(Yk@pR+PJ(SUif~rys(xlPqk~PQ&;t%LW)|XhQM0bkK(l10XKmf%XY8Y zmIYI}eCM_}RNxnmZ>ap@)`&=QzqI7U=|kt8Hv2L%H}!JAQ5cD|jy}A6|7ye;6VfF- zrPT_x-)6tGMl}{ zK$uDh!qdsi*kdsfKfV{gjAx+;?8N*z3Q>EcmwN^CePD}G&!|AL5S~N8YQq0}R`BO6k%!LG zA7oGugSIsQ3TxidoOW?S%UJjq4t_tDbPdiJtzRIHWi5{^s|Wr?)x`C+EVw_MTuUW^ z9Gsd?%$-<49Oz1VFNlD^$x3H{5Y>7`Nm>(@sX+wvS zR>^|mYZDRUgo2gp$Rk(Bt6%rCxIIPLhg1B+Pxh34w4>tj`<#*aPy#DkZYS#D}w|Y6?NU-0c zV@e%@mdq>oe7-cwod2-O8p$6$3yCzbpIh#(53P>RuV_*au{~tMa_Q`R2$ElXa*hK< z#}fpiCl#VUNPIjq$-lYDbZPUgvKlEmM-$%xMc75qApvN)zXR1aOSABk|MwD4?% ze3Ug*M5DL@Ac6cT?Iiu#lCgeW3YEH!n8*~xn{V%o>bEK|KP*djtY4B~qAkdkDtU?6 z%fpg{G%PI#SiXn>m=Gwt4;Ly2nUL$f1IV2#SldemQ9~~XDTOji@{#2G0oJx1=UFn2 zeE%w)(4ZZy$B)>$3GKD}ewM?TIpYK`WQ#m!BVQHTU_Wi3p?HdVQJ1|#&n~T?rO~&aC znx9^Uu({xgSLO+1A4?oh%3~vqtA$t^lGjt0mg>UdHm8x6~3wTd3vIZ3+Dg2SNJ&0Ho_c z>6|wBCU=(PlGB}i-d8zT)&ISd>zRXU$G9`xOJ~JoFnAVUWCxzOtp;K?gM~=d}kflPS#0uoiq2H3Km>{mV4SbKljndk2cnl-u0U2NiNU=H5 z*v%iXKGta5Pn?7O*mzid=X1LoqbPpst)Gg?FnU8dB&l|N5< z^>9;!8J@|%YIS(2dh_-5DP2w>&F^TgK|GM0iPla1>|_5rfzf$R#>q|G7oDb3I15Eh zhRGK#vtQPgUTQ-R1*5=U95e@|av`Em0jq>_FJw$-zy8p+wSZr?7n9lgd^yG!znucn z`MA9;_b2HyVIykP?h+fsXao^-AMj=J7@8WnC1c7Zx)|tsv?~k3ec_MlGxrwIm)a6o?ZWUkIozbL$OBVoPTW>8#a{#z=AtyC&sp~VOpf`q> z3xt1i@UzOn9yV*&bhc}igYD;gGKetY^Pbo#p zydOL|3Xo$xje&6{2^1HY$(gCHuk39m7bcm+@EpN;%LUUQZ+jFk^F|*+rB^#-`=Xk~ zRrS=1RLdX4lh6R^V}Zl{EYW;}42n|eLjrs^Al1))`?y@Gy;du?odu=cN8myp)r^RzmiU!U2w z8NL)nE?}9ZZ%JAeydpdFFYh}$Y^OeAR6QutS!~uC7sek`rj;jvpVB`rXEgLMY#H+c zJ<`?rtH<*NI%WBN7s3sDS6w+=Xx^^vy1D{iuYSK{`O42u-jME$OxZDanfoG?i5lj5 zFP6*VNv=x~PAd_4@s43 z{#6Cu-NA6aVIqrm>cYQ*mMaC3@ zSB{z4un%@#q+ zli{n`H+;6&p?azrtiBCzN5D@B7G3{oK|2te*XW(6;`@jrVcVc(un z+n%6v)D3R;-w-R1Cz5_Q3@(;O>B(di+DX*E#34`EmwXkJhHnGo!3zhmb8&O4F-Zjz z$8jt$-p5x|d2)9qO$u3PY245IYo(ko=-b+3jQfNsJ zYY>(Xmg$7k9Y4DpgqXHDD*&El@C=i5gj7AKej1g6kX%mQgs@64TgE8^cI}bC9U7E}%zu|ta~Zv+9t6!yb1@is9`kISzA_ILrgCuZ+4 z>J=x}7Dj+&=iqV6tp4SS{B%{62Q3FO$F;aN1MOos-D|m9 z?$t#HmTxOLu1ChP?-|=$h8)4I?aS#HfqH#o0}=+tI=K~FFRi%sA!^m?*Z(~;pS;w@ zUp>+@2lt7{^Rr{G)+2=@y6s=Hf^T0yX%LX7U$*C(9@KVn=?{E#|83^tY4OZKSem6P zPs^ABpBsQTznzz)uB~SnM)cnao7Kvq_3>H-n!oOOG zmn%k$aXCFzIav2PwriMUub$d+|H=lBGj3Shk&zia`pf4=z%0ZNG7z}X`;6tHJvVMTP0S^k#EV=v_=Joz0hL$4KcUgw1Bf@g_@k zd>8PbydbQrhPN0uLk0Lvxq-dP_R&VRqj#!$5Hxv)QH1KgDd1C|(b@zN3byYk(=a-2 zY=7lM*kFp`Ggd@;ej~)ZZK(%}AbcJRIp!7F<;T^V3%8TzOBi#BfINrJX3QL@as)?T zp(jdbscOb7d!@OpmOW@+N=Oj6sH3j=b@YX z_mHA!{k)m*Np`8&54F)DRV7al%r`56`6ozpxGNX-jY11M*)%Q#DDot% zBnhk^qrUZQK~)cy#z$7^(I};Y|UM`W1b-ok5{g0XXOKoU9 zQv6qKs6CSU+I}ebZW_s-%+$|W3%KqEN$Cx)YQHG`ZWxHHq%v`nE3^}T)`KDCr^-R$ zeE_UAQiX0mAJq@`(&=R;w|Aw7t33=TW68zUaZ4%E3#u2RO~dAyp6hBs97*anUVH3MF=Ih^f3k#>f7^s^|52 zFNy~SHYd23H3N@WFeKxpneqX~yiX;NXDp)6NM5u8*=C${AM%2>!)PO)pHlF&QyJ?e zs#{jCS%FO{$mmc#K%|wy8SBkyEOp(Z|$90CxV~)*?qB76x2;@gC z8`tBCt(%``n`p69)9Wpr@)+!x{Q_MY*Tmt^>HR+1 zKlwNu@z<4>eV^#_5c`DI?m>TY^Dz@7Ak(jH%S=k*^m^U6zYXg!kY zS8b?0(nRH;L+g=FM0bUr1kANpVZAmpm-=Dl^|vp8rUzfv`9`ex?5W9Wo*K}3#E7AvIQ6d2+G*H2#Z&e17f}u!wGvs_0Jx7oJ%>qNjI#m8$xlrx6%F3!j+-#>oBx z+<;19SSQ zYQ2p-avZUHK~tTTQ+NO?#czp&_jX7uiPjI5is3`f+QTUco5YEmrE$`YVig`MaE`c9 z_W2sX!}iW=*x##GSHF&w@;B3{Ae6%SZd0~1cVf5B)rAKNZg*eB%1_nG$IGQv6TJNS zLpj$yRGRd!J5=AhCQ1DRW$`iEuS-{Q6R)Zqv^g4aaG(2e*5^h)r@H;9DzTUPL3xz`i~o`nMNSie~z0VKF#R^wvLH+_T*|5H_4T1_yWdwFprB3OH-Us7b$0cVmsK~`sB~D z)~M^=7sN1s9Gmb-)JPV!eEwdYd=eg_SX)_VdNaInbN0^NEgQ6aezwY?a*q=^4yTgs zL(9D=vvj?6TW5#d$Ij9(GtMoW$K33*r61`kVR~C_k9t*Fn~NSv*9S?dPQ>1-da!?^ z2y}hsIB_o@5q5&RJ{Lv$hO?7nlSuV^!aDJOD?6PT4n7oR9QigaReZIA`BIyigEqTP z8u_867)US2zh?!50si4vj}(vx>rS;t3ND7>`*)Lw_G9q{XeTrNGNA_vo@6!2_=kxzYpi8xX-xES|?mv?+JtO zrD5rc?^$(FE@yHsX)gfjl8~noz@%)+u75&|*c43b?{S^q--sFid4~#3f`ZDyC+}rm z<=~IDMNv8Ea=FZw1^t}CKEHm+p4G0}u8pq_lD|0^OhC)W=b$aqJcg)xFq^zcj_Xjs z;Sz~Rc2pqxAyW=J4Mlj$vV!=6i}!EefA0}^(6wuqVcMb$YatMxARc3ubod>4;t?{L zlsc$xf@(VVFF7YuR~Zc#)XBC!(E%@;OUngy{ZQ>>kKa}hQ2NO&<8|^u}Fk-``k6l`coIM zl}+grkuvyrDz%voIqzx~yDn;Xk+E5PC%L)dCG?vn-eBLp$gH5+UXP{kM1b6 z@J3V)&LNe9reptVbPz2_v>R3&>0_z@6%HOuz#EBF;)D$&@gnTQ!pUKQ=sa>3_DVqv z>@cySb0Cb>K|Ten`gNxjHk8Ns&AmdDFfoU_1*){aEdCsQhz@ks^32Roq3LaYC^MyR z&w6k~K-=fp%Ho_XjG(Nvn8u_dhtY#RV!BNiCUtGP!7zddN9IelbwS64wXY+N`d;!E zCLDlteX@go7w$F;#?1Xh<6yq6>cQ`)s{H3i41a!9uhNHnn`aY8@tebQnd%U=n=Z1L$lb;nEZ!W)I z(5R`#m`%!~ZjBk37E~|iE6&X;Thz`VAnD#F7PRCUYqjzH>)j z_IiYUv%KK-UQ<`UQh*%-QvrhEihe_KZ8i#eZz2!W0^70eO4MYFzgtckbjsj*+|Z$A zE3l6FL61PWge(ciY&nyK0RH_hG0{WqDhCmUQ}y8OuZ)F-%E9OCS)d@_KWDIO9K7t) z(Al#d6q2Dm(VIY34rXMPgF~8qq%HtQ7L?XKhaM~1S%h5AnR}%eDuhEl;|%{P zXOle;D30yRN~f1Ac7X`;{Y<*-mC0&-=aA?74|KcK()@$c^VJtw;A`S#jWL)nI!kiQ zUH!Cp%mgGA6X|LqjLma}-5Na}DhA8wX1?(9lhSp4;Ama-P`FlEb8o&v5mp!XeBu=H zTah%zMs!#~qpQ;upG<(U@wy>zN^WY|EQYcX*j0OKUaO6XpR6rk9Qw>`J#pDpnK#1M zm02);D*VC0zP9Kg5eO;v zVLFsA^s|3^YR3P1m$-vXjVcE_wf##~50YBOg3RPC2fG%Tsp-A?-`TT)kz_cNp7mh7 zQjpS7=ZVTeKdsx$d@2wl>i=%Ii+QQnq>;6;fcx zXt(NgyrPi>It%A3Rg%6NWGgN~AM;Ksic&p2IZw)xq@}Y)kId4WCvph>Z?ZbGN zQ@-`Or9umPc()}RkybShaDWMT&gbu^=kwuN`+n|NGO9q}DR6p|RXf$$+Li0bA@aq* z^)1EqA1e6;OGQ@rMG&4o&<-U7wy&Oj6FrgU>62p{)KrVV_Ti}9>Y9}zE0%f;w4eKi zW+Q~2tJf`MYGK*VApQYoi|dw2Q_&W3VUB42Zjg2?2LX+PYLA2`B(*lqXF>bZn>4^o z!{oK|tNL2VuX4~*e;oj8PXR}Lj7Lwz&B|Ei;NtJIE^NK~@#UwgG?jzT+t_lr?&ys2 z1xiX+0%w6$-4o!aMc9fLtU4!UjMmMGPxmQvjnf6v5wmLr5%zR@_JiG^sa$zD0KCh{ zo*^94P3>Bidl4}k&+PJE9$d-7y1DmX?-D~o?uW|3s{ZUm)q@R{ac5e<$h{F@<^}|% ze`n7!SI-&j+FVq537pj2?(T)|c_$Ydp_VB+@WHpLvAeoJ_xrfTuwo9$%boSPKvWd4 zxQQtR0%o7euFw)O?1Et78Y}A&{o_g0o1;(qNF_RVyxlWq7sWY|$yM?81*3AXM(Nd- z_@{Cn)gl&WZ=_0BxX&@61@Udw^qvW8&j(L(#>x9EEi_G?hipevLU^8+R;gXLg zxl6QaN8U|0TViX~y-y>h@|{be6Lv=R_Kl|AyIHSZYSMQ)nd!Y!W~{#d9F!|B&+iHQHJvD})=Batg*z1Vft+&Hc+PmjX>_84TQve!F+?Y=P6i6J0TrLN& zCpf_AAP(8VtOxcI|9+P^`(&`H9E59}ss}Z1DQhatAIv*U8$_}KY@PF}9&CXTm4o`{ z40cZC;7j0SMW=EQ6JB<5MHje^6jLBD@Jqzwdg$THN+>9XuCSM?ve8iUj zDui*%;`nSA!Fyi3Pns~BrGCb6!xE`G&QS+P<=C)RmZFO&c+puI$Ci|leV{@JWA9t# zB9y*4+VU?cA#rb8K8h<+aUPM9LuBH8O?{CEMW|dd3f!P_5ewufEkWg53}K1#YkQaM znz=-8A3(dtSmm3%GwDrJ#o2u=$0;A4I((yXy=HTDL4>a-TznP3thY;ioyK!AeWlF` zrd2NDSkw)zw@>Y`Kwo`i_cg;7|M^vIEWP3_VTS2f1`2i1yx*U)+;sL(FAh6bdHAVX zeK^~*CiCq|Bxqs_!@J1t22AV6ma*sHpb)R0RzN!^>r0|1kQFi^w~!-rk5#)JdLp%bZP{hu zWg}{#_$~SG98~q7ma)L79ON0}?56!Id)8|XEq-ONfB$SO}COfab2_}A;BV#(jMkYI{-I5rft_2%=Lg6ea^7==1=U%N}30NDW* z$RENO`b0<&XA@FFZd+*Ljmg8dfuG^+0JpQoG1Ry6P}PGpS#&Q}*jFrKKu7W8`Jn80 zw}cla5K8Zegnkx*w+;ia0Sp#RVFG0cf5$wu%z85U)I2J6IK@eK%}DLm^?IutQjf0< zU1z4se={=S3~gp!yzSmcEMgtlzpk_O-j#NTs&e>o-_lfQz3KL9FdKiYXh8w-dV7+S8~=tHAc!QQD>$M?stA#L_W96E|TjT-W(FNNnzig38NpRoqE7G28*e8X!n zy#!nvE36~4{FT_I)`r$2{hAfL|6^95>A_k2_{98CeJ!C}zD-K(tJIijq~`1}zqnqy zY4u!NsvNWzWDnj@&$@F}57M)g553u41O@NhT00PzHHd3}x0;Bu-ZR!bHKk`y4a??3 z><`dOVFNVnHXpK>5Lg$2(PUA0;LA(1-u%Ind{fGI>~PPi&sgY%Kq?I4X#Sp7uQDXE&>~ zY9)4ZUt`34$JfV_r^k;l{^Fy9sa^3(Jz`i?%iQc^=Z&rb%!ZPcS*o4Pq&2P% z9#VIp`VTDm9aTKyXLOI7u^l=%VQM z;v}T^TDR1?)AoA2o^ME`NkR>#un~f0!Hmft>Uf0}`oDN;_sE(9_lhwWhgQ@-aw|5u*Lm6fo>jt~#5z74K`3`2P%$p(w4J=UVCmLsdP ztO{P_@Bu9J-i)$sza8l^yX9~B&mp=_HiV-n+*X{;Hf~~WzTSDeb)?2?dXT=z4BuUw|xj-|@$^yf7^d&XD{DhKuRh4HX;*J7X8X;=$I zp|8za_AH#exX;MTX&`7>ntIl#V9!TQD}G8B&s;nSf7FH)v9hnNlYJ@b_)iWVOdcA( zB{Ru?;Q!#D%i{Ze)(!oIiONB(=U4S0ksUs6sV9Fla~32#oDRI+U6u%4-yCe3!wVkU3k(va;XgZ)_#W=?&H;5-5C z815&5aX515(&w>sxL7X}`ay&YZ8Bz;QzR+*4MA`cSP=Vp^7Py3mNLvXC!e9EJaT}( zsunOp&SqC=;ju$VI@t;-eD<5rAWY2l_V<+r(W9GdYrp2AvwF2$L}iCvyC=g=<5>v6 zY*Z4jtNqJ6+dVNe;H~e)a*MFwTxk>T5R*t3D?4XB0p|Bz`R<6c(kRfVqOKh`s`k|S z@3#!l{#LgD65Tfmi{fSDzBR4UVDFMP7^gRFc*4ytzq*c+3%*{xy`f^#z0q8o_w5UA zE_`U;wbTPORKF?ug!ZdZm)GMrXVNRY!RZQWJqO_Pk)j-olCZv6wZ;%Mo%6Ygja_$e zd?986|4|!%^hoXhe;iEz;^3mH>Op!M_v=4?1mjXh2G0;-QA0(h<3)m51Ju_%HTh>x z4OcY)u>|NT7T#xB4s`F4V8BE_I`xB$?lBVu0#O`JeT~|~OU!jK%bEa$wB;XjnB}j% zrT^-wp+WAhZWKEI;NY*o$$OQ9%Z$UtKWFaIJ9NgZyN=o2Pk(Sw&cKfkyHQHzpn6_K z29j>s-$@iu($@ zuvQ%D8B`od_L#Vf`dEg@7z85nhR%nRbR{Cqi$6!_AuKH7E=(o~^b)b7<2>@Ueo|n4 z*|OJ_*H?Bh)Lv|JE7>vkGp1!Kcj|f56IaB($<0!;y5`+_JtfNIxm&JRotL;S zv(Mgl-jmZ>-$LK$!TL*W6mE}SI~%n=G(UMe99FMLnV<8c+OQX3cq{?j|C1sGU<=a%J7mI7mHk?p=Snzv2Y76D5StL@H;c^{g>gR{_1f&Ds}&qDr( z|K210Js17Ia`5RF2X|$)=O63W3yaJ#HB4@0MD>fP=aUbj#X@8~#{Hb;sd0ofPmSds zq;tlDgS?6M#rL*z1Ymdd4(uEK&AknM1cElopqH>ZHkLSadiQQV8|Q#X(g=k^KcDxt z{WnjI^!qOHZw|g>&#HQ`6)))7=Q;l$*|Wgh@OuHlmbROclJ_T8RiQ!C{AJ7Mo}7>c zUk)}Wpv%0#GQ~HWb3(yHxGjuGU8Pq3M!pR*T)#L5#0mhvLk5p@>03f~G!$uSesxu; zP{);#u%K{i80u_J&AUjmw193XnQyEVdQ%+2uHMdL3(}PP4iTdRea8=FOr#$5CaooB zKA9c*f?vn=5@(xHPx`?3(^ppXiAxY~j*K}5O_kd%pujL9f7N|0sd9lA96^qeJWm~x zu3x9-2OUtX)y`eW6McZS4Lz|=QqB5R_mz~B`)uQ3QfH9MW`|s;hq z7xiq4rAK{E99rvL5?h&QOXN ztfnXf+Oz+~Q$trxXH5H_nS0Ey?Ag<%Iq;~w%=rh*qq!hHXGli=*hP{Y*W#6|lEQKq znFOP9@Z6?UN{(_MWiE+9TXj0?Zd~^F&$hno?>dBfy>fj+ zg~e-55#>sXXXoHW=UuN^E6MYR8r$t&#qg)9N%wZo6Uz;wxr3Wg*JD81p0Br^Jv3ZFi>%rL$xL4Pkz+f$)J1|sq>G-;v#0lf$ zT?z0n0c%nR18W#wM}c^$Momf7OG}&j%ScZ&x{pbm-ridt;S@ zdM!h8mhc;YFCh3}QaK2XlNEx`2!y-=tV!wYu;@oY66f^2yf|2_Jb2u>MVT+%Y)Yk) zd7cA{!?Lo^mOm)(!%SYr$@e@3Hm_g?<;z>Ex_5o!9!egckd@3?r9kSk?Px8sTy0of zPKh)K@A2hGS)pTdoK!oRL&202ZLkqCQ-)5kmS~UY(`+>?;;)rYy zb_KdWVEO#x`MeWaR2%S;9;8k?W;0uNCiN<_iE|N6&Qa6Ah5%tx?6rc!w0Tg@nsk*s#VZlu*1+M}2@QhwQ6ijQ;43in?#7GCC}^xt~W_;=CEk(rCCU#io3veISGg^T<-QGG)qlQCf;~XP*=a z2)j8tbjp;FyRpiG-~b<$P`fBq#-&T-i+fmX`(=j!4Ux<8NbUJw?QQYPA{da@KOy7F z2SLnv01vFh(uRCCU!L=infqX*Yx|gG%Q*G(%jh-|YjUhI_t^iemQ-rF2degh}Gj&cDK2MC@-ZhfQ)f#s1;ydDBl&1D|Y3$GH zgg|96^@p@)$6!-s-Ymb4jFNGK>ybxjopJBl1|;lD5e~#JfdypqX9eV6lbW z9&P=rw{(rZd)`o{WzYWBgD>7v>F1R}0#7q>EkhEVW6xR2E80%3<2Z&7y?A97SF&F| z{>*!mupzY?dgRPK9~y7j89V@4L7!K9uWF!51j>s&qdsmd1VD|3^s^J}** z%i}`RdN%{U|6oL9*=ShQ54snvTxnJxl_wvIMxp&`)~@pUyJPcW%o!o(_^prOEXq^; zfLzvw;6(B<|x7PCYoBXo|LGx)gI}Mc84mu zb*()+e(g`>Ch={r^gDX3-mf0_@eR|;__HP*r zZA|^>Ui2VcH(*-Eg37@cZ>g3&`@BIi9x?rcgNBPAqnN`l>et(J=2$llY-OrGDTG-b z*E48ySoNdxDm6N3=NiCrWxaloHJB8_cA?hBrcwa~vD}N$m2b}T=pe?IT&q%LS-i{+ z>-ExyjNvUKj&X7Qtl}S>k%MG|l(1!Vx!N~)KyS{_Jj|OyX1zn1=E1ehvB9S+fF|2l zC|@$LKxk|ll{IfEy;7p<9Gd<#*1~nUR&_kTJ+)ce_0d!F+`;m!6PW!{^zwbq&9=cA zGk^P}(CVkrnKj^VYjbzI)|)WeH%OL+rm<9`A&OxR)x&%ll2i^#%uu=M$$XQ~hxEJX zuwEP6KC?Xit)tk(ZMGfGnC#Q_jMJ?4&#%Jvw!DV_(IffbZ_oRV|91|GzwZ+Ns~#LB z@p~Z?V8;heRS)LWvo2^`K882u!Gf-8%!+d(So!P)^*IB3M}b~!(@A>5*7%9cr}dtt z?ji2Rl35Q$dF(+Uvn9rpD4X`{!$BwHZD+IV+Wz;fOPR!*rsd6Z~6@1#-DS><&5_nY)mKRtVc)PcNR?rS{u%90qvfmMB!J`CFyhQx$UE?Jk zhtKYxiXHQDx5umh!L{#d8(*sN=i1EN!Szbv9!pab)~R;69dKT4Y|VKlb==7rBqr}T zaCK##*9Gpl@yZ>O4Of{_J1ZN|#=|_hq^HU$&ra3DTu_+G!?D}itZ@_i;=$PBu4ub3 zABlCgHGSx0!<8o!8`P7jY5{425d?l^`^l;GGW%mzp!GHlScGR;DmeIw|*hSlDqg=bu32g=?(|OSKdV79S@#%L#N2$s{<-LSmM)NTH_#gs&a7Yji*NmWHtE>+Q<>X=%qDO zq%FNB69H7YG#fqSPN4>lL!7NlO1Vqhpct6E-!hzx@o=AB{W|LBJ`9JX2LO;_eWt^X zyA&nQ<5@_LSWyw4M+d;&&X}TvL4FH$6nb{4(jg(Z2yG$XStMo~rgFiva3139ghEn{ zo1@oTT~MfvSBxB)y;Tco!j0yf$U4|Bf>7v8!*{&FIJlEgk(vGcw0|Uz`67OE%ZRfp zLywzR0Fm1lKD5lGNp&<7?)9NX$6=n-s^goJ_mk&)GM5PW^x`cQ8IJJhZ@PCAP7Sv~7&yK+VGRf5xmZTgVZS}7xbqcO#c}4gS$`Za>MA} zDS&!u$KY^3t=cyj6d-NJuPbiIXMi`trrZi)hZhtW93@O^Hqe`_wDp`@9t81T19QlolF>|hm(PI6fvm$otqq^{%QHGA-Cw=7h*!*e0^{K_NwLIppL3{20 zW9&WK+D6;1ZOOe8LdReykc1AQPbMU|;%+3X+LmM$+cNIG$&&v1D?=tB*JR%3{yHCK z+lGr1n)Kr#4D}q+Dq=5_Vi|(EZuXUtUvv0LbO;ZY z<3Jq0h1;E;kDJqS$$tdbd55`fu?WT8#r+it-N4?absID6yeu$r-8#CMaYm-w&f#WOH}yTZ{dNL3 zv3bzVnE#R_l zTrj<%#LU?Bc;nO55E%6{h3dP!EcP5u)I!jo?hjYg-b-Fvx38;9oAEk7ql@Kq;V{|8 zO;tkAB+~_}x{#r8uU9cSu!ijSE|g;^q5V>P4yc)5rti?qxISz>O>a4gRo`(9aaOuG z`ZB);&y?1jb+NrCRgLTOV`x@|n({B^v|w=!zH1mqH4a+Kw_mb>7usFA^Vn zTg!9*4P&Dp^HKjXEBL>0Q0oW(JQqzo4a2MF)~kF*>j!tWw+=c^_9NWm*eGsKPih(A zho;8c&L9-yH*Dbc!Bz!uZ21Cd1{=hKHm7MbuXE|}Ex`DcHbe0O@$e8@I4Gb7nRmo= z7Dn$k;L)?R#=!_TKjJkbKQ%S4wWY7}yRSK5e9k^=OBZ0tK(#N4y#ANAbnsJC^O}P{ zJ@+=)$|xn5KE@|K%W7Eg7*G{auNzFLPTzDan$J)&6itS|`x!1XtYu846s zdNU-*MLm@dCy6Gq0TE8?0GsBX{3`?|02a;~(?IWZuOp$c$b7pMXuYn1`A1qmh)U#T z_R2qGxf1<}}5!MaIUSLVTIUQe1sH;(3!+TcIZ-ZfFpvj#8RKbgpy;Qs4Z(JML-UhMbh> zVroBghz@eI*gPMWK+gPt#zE6Z+ZDhlahr2LHKVj|qfktaDFt(A98CY8=Av!wtvm6b zMh0=*EW^Z@we06vJstwnWdm&VVS$uZF}d`UphHIV8}NqtDvd6$u|cEh95Xo{PtyyV zpdZ2SzqzmiZT4I<#^C#m&9MoYGO4r~On=z|=QmX5e`!mfJr;iDcmJcQDH#;`TJO|2 zNVkPo9t*!THLp4N({nF4)B2Qm#=-YVFvO56izbvjgKAkC6>_q|x}y6EGSSN+43xBf za0rh}edh^d0^|K!` zvmdj3*)Sa349YzB*})Y>{qdParwHxfaNpT23G=PTgF!8t!_&{od%iJns1uuMp5NVQ z6z%eP(!0VA3^VcDkyy;_iuGQtEVQ|Su#28Z%_vc>pfcBOT{c@iym-0t;iO^EqwxK{ zA=CYzy8?}QmdJj5!nD2p%s8Pg++5w`lca)b94yRUZq*Pa%`(T@x6z4>bH#Nfqj8Y? zXLtPnzaP|TZyo4p2WFt`4H>-_D_7J97I0lAPCI>%c|GFK>f`Orm9?VDozJXK4TIDw zlQ3@R*OWnema@y}ieB+8>y!Ba;Av7D-h%=mtYM~*M+ZzF<}rw6y?tTt-`di-$HK4t z?w^{PS@|lZH)tFbw0`iXrl$ByQ}ddGzdZNCL9-IYaOqL+E#&H3iQG!;CK3(T^Xof8 zp;`To5at z2sOB~G$=)%cX$#F?G-I0iTo9oLgg~1mxlhlrDwyy;oN2}%%cI@O)&gw`IK9S%A z#(gWB#rjYcC(aJXTWo9-D3&jd-mf>naHjZecf$8>+cjf$S{7VW9vz-24Rj(@zE0VB zZmDdM%b%^_x(rHXF>uNj^*2I`7C1w{I5r;DZlqyR7|wmwNb<5Z6pO{P3(pKKv%1{& z7rxfI>$b{jE;x8hyZ3&-E8x_aA3ZhzpS15KE9s7z@#AWwmt+gF#=*%JuqgU0#1K2q z%BjAi?Vpj)8Acih2miM_8SSl0;Ip_2o}~jDx5iXyZ16)3uM=m8XrBh$!6gIi_A`$a z(7wGE;y+Qn%`g~@y9+vMGoM^RIzAwpUURJ$qNXYCM`uOac_1^o2jg5@%IhSo6ek(T zK>bTw`ad2Ezc~0yQzQM<)Br60>X!H?2VZ&a@d_I8RuRrdXRFDt3>a=Y+kQS?XZK`=HXepcF0l>az$y|n zY{E^Y>%`qFG!r%@4s`BJXFrvnFm~|G>^@6}Bk=A~05a}{gsxC%^XD^T5@3Uf$D4s&oqTn*L*)hO1 zJL}km?SN*7(^3vM^!(s&cLf8jMw-p9?tSCP?1h8zeKen&MOXCwR3vfi8|0^2KWMlf z%x|_ApE;NUwSEx)Ki$c+wVGc>#|0^s)?Zu9Tpg4$1B3`bwp0f;M9`H)Sxs9IH5xe2 zm^bvGt(ez2HpD!bt{A<*gB;n60}?kPWG22@U?GnCKD{^#7i6NNWR4s+I|CJH}((h(MNa?z+hc*jZm^dwEIAgx)gIIby+T-#+6Y6 zIguwJDNZlzEzzzxoZr_0rO$>|V=9CR*6-7?AH`9r4c0EpWU)@vo_HPp;aJ`u6xm4s z@G3bjy66!r^@;-5Dr!~1d@jmPV4K8RKGYgHyYP9@yU`pHm4oBOVW1+LjW+qAbnS)(#9M?Fgf9VJ9 zlwUYlP+vHxb=nV=|G6dp4-V$Fn%`2G5XXR&22QIMOSy!Gc2Di-X5Qq|=gi2G-?dpv zIyVH5cgY?VEHjTc;Wl_P2nM9(xa~0WMH)SXjFA-=xY=}pZzpk3+Q@i(cpehs)#scV zCnNkJr$*yop|Ryanx^Hc!35KA^k~bX9A3Mc#7vRHtX$`CkWMgMy3V z>0(#t-FBl1_hM{{iU`l|{ zG`H@x$I<9o)cGL8HunP%L#Xa{2oIM9+~C-PblJ?nmw|#2w=ePl@)@i1ScVPLej*dm zL$>`OrMFWrIW>+yX==b%bJ3rgnhh(;m34uG5-7!sR_Uo|9QS61{e@Sz#6LOsGaV^C z3mpf*5|`AKnm#ZMJH*rzX>@-rfMU(r>lK;G>A`zbtHe|dHx`+kEzI7I!!iJBA3se) zSr?Ymwak)tKz*;-vNhsl#h^9mb*8hluW|51uTmaQA13*s9$#Ch7%}#U=)#zCM{xQ! z`Yn0A+$e`LrIX8IsfU(Y22o^%U`4#FepJw|SbSKVirwDzbGEy6<#=5~o0yGXbGh^t z+fo&lU6?9`?auiaQdz2XRxW_u>$*=Zk5+Cy8>qw$?fbV~iNEaC*s)f|^R@1I^Lo@O z3;cL~x%aZ!i8#RCy_>ik zNZHa>RPlzk4_#iw3?8oOEgRQChet-tE`KSQS%MgsJK}d6vN@2tKpdeVhKHsHcJvVf z7cv;I@NF(f`je*S{MB6ar>4d*>ZnF|THJPCHxOa&r|>k_mi|doGx?d0#HJ5?`KL*2 zOruVdm&R9pja-GhTO8|$*<4&)0VI`zrmZYpF4J;z>LA{-umS2n9!zuyZtg$~$Lf~u zT#!LrM|a++qQRZ#GDYfSX(!a}^@+eupOPhr#{EXZzW4P6qasx%V62N~vw-#b zjh-Hty0^K%wU@B}UcU#w^YLN}G z*M(uJdO6YvZ9Y1kc`AZ2sGNNWO^WYCRoo6w1y0~DmFsDf5{qN!K;+f=4OLN`-%vHF zR;hS$TP|~Za7$3(mKovMOUg7w(K;;MO0;9J6YT4LzbnX~J1OvGR)9{PIXL%!);O3^ zJn^)g@Y}Di@7ZBe(KtBC|IjWWokynrADWu~;b5BRrWYczcL4DLt1N7jqVPjgqhaD~ z$AtwWM)V+M-8eVB4SGD1Nz%FFcGSe+2CIA>a|AkXTq&L3@MdXeG9M9b+*)4p+BTym ze-iaN*Rs!kjQ@E<^`jsBsi~QBkX7Kw?Dtz@hroi_d46}k|0@*&V*Qr<7}E)DLm!X> zYI(98E5F05P=?+-#d7Lag9uYos@{Gi@8{_oYBASeo-&GZk>Px8^yFxKNc4tzI(ALh z21gk#yNSq!L886_+Kbsf!qDlwEJ>gTx(%Q> zyE0Gu^?`rPy;+&>j)gj#?TSKy<=$IRxxq`NF*M~#^{AorigVq>hQ(Sg7WH2_aN&}- z7)F9HD^AJ9{8tGi>Y{j4>hk2h3Rc9v^P_vU=M5;4z-mP9ZjT$i=b3q0;~?;;F)vfy zurspHnCQj)bFa=%U5$f%M|ReK+z<9rE5GKVuQ;gngXmz}wenva{P4U3T3JxiL}K4c zP53BvqSenoG&Shd0=&%^bkN4*O5oa()5Wcux!BH@+YO{vah)AKPYr~ARJU$iz@^{= zGA(4+r=^0Pe9miQ^nUXXZK;Nd*?-?g#lREXz9r_}}1bw1Edz|QlaIe(t(`TAtbfcU{rl?6KW#1u?d42U&t!idjG$i>GM zST0b&xyfu<02(bY0hYT^UpmMf3Lr7-u9zgy4WCgeK_Po9%Lg(sYxm!}us&=Xy+wk6 z2R4Kap#6l(GHN*e$rf%Z$3zyeBbQ&@CoJe7it#h4BtTM?iA^}#C5W!*$yf%LbS zFH%=vFMB<4oNYBZfBC%i5zC9c^7yu7ggI1#D*$UfbgwqWo(@0Wn`SsP#HQFr@%e@d zxUKk*`OLhgaqzq1pZTs!F7@@5}C&uMAmerTMHj9zKFKcct+7@-XZ>TTCzgZ<-+p5u{8VaNh3lbDtvX{p zUd$bz$@}e6wj-ZGU9N<|BSA92tf^N1Y{@BF$u5kYTwQ3rrCR`Ayj*;*{a{mgHMU1r za%iiS9kqCKq+j3lfxdjE3$Q2cVB~4nKX{t&j_n!;dkO#Iq4sS&`_BE+$%9D~MJlx;g*CQrT1|gNM89q> zD90qD#h&%7)24VkJ=*2g)yAok%z8_Z=7q%SzOV^&L89{J39eC)vX6aT<}ge)fY{FB$*-CvEAR zgWVL?swQdtl*k7pAa)?6oljc*TtL91%*SzxB~2SEOL}x;+xb}9c5H@RItG-Ix;3lE z8_d`;td&{q$BY{p>r@~2>1XJg)~ys^-*a9YWXS3@TII7kKhsBK{Qq%F{F}CvHKY#b zd2IrAY2AL|;EAa9gHllIQ=TjHmkE^=XV)gFN&cOGz^OX=vHv{_XX)UbJ?}RdNWnK^ zz->N=?a(ff7PD35ngqqV#z8J`a$J8L)18cD4`?61OP{yTB6X@)C@L8SGEIot=*emh zt8nHyzx&hX&X*nu7KdAyG=S`Y3m%N-fuXs3+X9o*(2>3&$VQ70T4DhH_H|8P15$GN zbfZ)>UzQu~SWl#bJogzqQ!S_}R8WyCIQHvSzg%{OJex|HE$h}!Sh|19wnlQ9O^ajl z?CEwKRXJe!Ozimj7p-ok+P^>d*ru>B2yB1hG48^wLIZ;X)j0UAwIDRgLbZQW3gN5` z$chYmarl11ian;H*ReC-{$v_h;o50*UL$?2_~gb2J@#wg2B6hQ)MRVEJGN;3;QHME z`F!XfN0g+5z1k0I{on-oryn$4B{IGL^jHWE_7aiIJOgwZ#ZS&|`)fr*gxW-$IvDmn zG3!3$0W_JH03#Q$mT-3(1I(2-t7{%K1cmrzi?t*qf(Ca81RkUMXd$o9Oc*$I_LA2| z8esEiD{l+?D#Yd9pL1${aqu^7=?t8e_4xhgd2Xq3^vpqi+j&yiNT;Vs`B#2-)Q_KE zo#h4rpK|B+$+Ja0MF&u&KvJp`$I&dUsx#*#45J8Hrz^;}#qmia4}vdK;+0_y4rX#lz{D5S72uHPd~Wr z%y%*TzdRP8UE}F#JBG(*y0>P*WZHZ(E)y+7kbvRQ*@F`!7`Gwp)32WT08bfA+ZAyL zOt!YsjD8c+8-UW}(dkq3`ZxAB?i7Lcd+o1*Ou8=lW`ohTLBYB-Tfh_=64SM zrY(IcZ~JBOm8NC}6YWxvu?-Sx=v97qdiF@q_g0AfsP%(yY#cHr#izCYPT#LIff3jw*L{S$j1fT zSIyKr-EjVJV&7=>GnM5uX7-L3+K>mGQi)UhkgWGvJCLox7eWf33aw_#S9Y-1v1U12 zm9EH8vGuuCD~a*_(@&FXsjZvr!%2bvoNbpMQsa`TRXn$zk6J@j9`8*!zP0~U%i+rT zU$d>oaKx7r8^w}oTdoY2o>Q`L6-};epxt7TvFq!iURQ7S z;&r}_O5`p7)gMLc($iVoHyba;`-8Z8{`Glg4wb)e5Qw@pzoBv#)O7mc)c5AG9UJGw zb>D;RH$KTxb)JLpy{Gkq6W!Z~>F*pgR(-+7e|aqQV%WE?-x(Y~Vqw7mwl4{g<#pLL z!tCuh9Q0G+ho&ZF4;{fyPe^;j;O6G$hRfu(+jEIJ;Pi4E2CqH^595A=tX~}KD_QVC zS(;-4_q%Y96eNt<+@0;@@z1x!KRNiDwsc|%P56KE+MYT1`BoRu3g&1qU3!(@&86tH z#zDOlXY7;YLvk5)PWiz7i)=nC14K$f zsoUg{!Ko+cS zzFT&ZjS_xxLmH5ao+?dxttML|&Fsf5x}_S2^M z4OOF^o(_6jgGKGzK(rc(R#WpEDk~{%dG5^txiE;Yn`bfUz2bW)%=2N(sny>&chi?msK_*F;oI%!%8+I<})upij z2*fyxh3B`z`$EbL#eyjVQ_uq(0+JI-mwB4!wMFeA9qKuY;il9wYr~#%OWjuGj~qPT z1}hD4`HN_P3R*w-^qgDzI=|c4-{c=3e$VfIexKuUIbnMf{To<{<|f3Bqp8O%VW{p? z$vR1=K4%=>N?sjJok2{%R>>Ak8}^qc$|wt#wzo4z6ZFmT77DhKP_w1ibEXngpr-RX z83sp35Q9t|S07ApLF^x_jwJg8{>U{&Lw)=K;TC%^l_Ed02kddcqw z{_elL&pGLFpLd1UJp}nsrEFa+jZc$k@asC1b*zz?zfiUAZEm7fzQnx0VRI@mML_S2 zR%Ko0#I_S>jZS2+XoqLXcTi_K$=fWzM~8owHy!U$6=H|R(JD17w8M=<$xxgcA-x}l zv!GS4AswCG+RxrMD~*A9=`WK&-}6E!Ny0E&Yu>X9Qlpd|s#k?FU)zm!*(`g#FHb7P zc0@jfnkC-aY6||=3)-w-qz0&R6WBCmXK%YTFg`n99dFf3*#Vm%>ms{IvDsy{NVI*W(@ljnEz1%TQwE7wEc>9^T zFY({k_srz?nfX7v<48A#GxHm&nV+$BV}5eq{Qd8_?s%$yi;vR#+^c)hKYA?KwfAqD zxLHu6;Y`UYl{mw=H8maKpoj9(2Gce3LsJvCEqzo)Cce29_3pSm84bXyg}O2OaIbN&@n;U!iV0FHAt>#y zk!=VX2U!d}dzIh4Qwdn-d2RpXmOkfqOF^8NBr&>_r22aW*N9-sJ7fr}F5ulwj6VH) z?Y+~Kp~fkF)?fOZ?Ul!KM@?VzrZV>>rVOEvSiKoE+J-R*JW3y^Reh$4e7EF7Q%4S! z!?S6-&=+>0Lq#UQFlV9Y8EkFJSha$B-VGknMsQ;Z^G{%V%HOI24@6ta8d`3x;SE!R z+Y-xL-nJURnEm|K?ri`mq5Q_G6xqvion4kVvpml&edW(je{Z2;S+suL@>-&Eh0(DH z&N=8WmzjmufIQ;=t`2i`o$9D|jrs4*DOu~I8!MYuv@v+txFNHx3n7M14JoYY9h%sW z>$GS*QAFV+0hi6DHz%b^PUrrY0ks zsUYFhZ90wRygR;T%sZ`{m2FZera=8_%0xt$6Z@ZVBP5cK%VSapbmn<&kTJLk;lqu` z`3%%+^kXL4(R}vj|F_3N!;leG16aA<0xSP`EL^$lRsrL|tOr&?vV(hDh9}S{w4a+%POW*bl*Wz^A2c-cgWTmJh$@#xS{{LP z)+mus>oUy7RHAh0Z<^p$?O~*9^PESN=S#(dYmT0s3#u?-4ejx~AH4P}9GBlZ6%Eee zD>EgI9onz1x!Cl^7#mNrqp~n2PwJNSQ87E5e(4YEO;kc^g^FcQby1a`4%^u?)|ysB zj`xR&W@oE$p)4d@lph)FnQ%dMku4xsJYV$oQ)puxzA?|eS-Sp*#4I`ArY;R-Zte|C~HH z<#ccukH%+t{UPx~Q&UP&47k3=Zh8e+b-PzF*Ajv1sgsQx;6V->U73hEXwNx30|wld zLcp80;W@7@i{oY}XtaYt1UOncR+3Cz_i*+nO^s-<4zBgktU=IB>8IBa@hZPt>XcKA z{^-XI)sIch>L>w+&WwXoC5pz8RbrIMpOH{*7 zPSGdxIKTWx&OYp@1(V+dlN^ybp*GTNH-MHbZAvDOA;LrK9!Gv7KJ`C%9y>O}3NG#>Z zRgR6>T4xt;X8m|0ryKE?R$yxNp_Lkh3tjlGiTa`Hu5sUOC0j+k9^i9Izah|d z!}R(xoKt)YcyzNw-dQ%@J7K;M*t{YA#044S<-#mD3+E4IqxNk;43@=np`gL0JU|09 zb+o+Hqp8BJU5?Hix#%P^Gf(J%_c}wEDml=^+oyDgv34iKG>2^L?k^FtvAu+qP1ptC z$33Gt2bnwUAl{+`SZfgQI{Gfdi~8c{MXz_R&nter6ib3rt}^St{Q2b{7iFCPsDT*f z{u`iIMyG6c>4+8kR~)K_>wGag%I@W_YSa@CE*pw`nbew^Otm=YAoRqSwEsY347gS9zT1OJ?9<&d1j7fv6;rfoD?OWV%#W+t1dnyntQ87^j!F|Oc!L_$#A@&yl8=%oVuMIUW>S&Yj zNEm{J20<+*ZD>J!_UHe1ZYc}C+{tLIw4@lQ`pp)V;WZA52H)W7CAT!AyGiJOx`56( zm~_tb+SYp7iv;GTQA;pnqSi=>pek>??^-eX@VHV=$u z_9{FqSYmdJ%E22(n-3;~iFG6y&V0+dkU+P?C`!l4=}PdEPl=$~hk`@HjB)Ng`9E3I+}roOo9^aIdPg=r)E zfK9u*z0YH7@s&TnTFycj8+%Tb(~S?W3t{<&#ng$>KPzr^FPk50P{m*jePxT4IHmW&5H{r4;9CC%S##4lrYPY!NF*Uii_Q#M*l zmvc-IbgrzopYO|qzF;JNQ`an9~}ifb@XxOy{InzSCwEg$JH@+?W` z1D<+THVH2N>JjsWVBcZ@%f{AnSdA!I_guz8Avwh!cb%xR7b1C)#7R#3eLzGM4>|Aw zWQT$22e<=G$YXr#BS)(_+IC1AgC`khw?fq;odmFG|Kd|JLK$1iWSgjgfXr|Sw4UvB zjYy4I_=_|^cYG`KXcCPLf9RsM5U!MZzQkVxqtI~rtD??)c<^a5Dl#T{ANI-5)1I+` z75FXnMz)JJP+}*}30AidBuhU)cYm+#aOHUj^$Jqs?rE;4HX5BlsIlwQO%<{w`WNAP z*RN}$G*Y#O4%}!+s#cu)X)CC4fUBh*P!*jl$ZnP$J?9<&($u`>;B@ODp<>SYoeX{u z$a~sRoZ;6MX7;QtRm-pRgMZZ2jIg(uR`XlB{(zCkE{*F}rBMW~e`snv6B5|Y7WBZH zdnH{lyA$p$cbfjVy5_NO#Fvx-Q#9JQZ#VRt;G%9Aq4iTJzb;+F1lcD+^~ntQ^c0q| zXTaIgmiku!G248b2$XOA($u`>;7?7>=cInU@ylbOR5fPhqG`g37_~PGSaj;EO^xLB z+*^GX)8OI#8_Ev=46ctp7pHrLbZ-*onFkY7FT~gM38c z)Dt2Xed+p{Un@@h#JIMW$vPMGMAVGdKHVMd`1A;ce6}>ujuW&`BRTz;*~p$igtwlb zp*pilG+ zy+=(-Er|(e9(Yu2FqkTu8xz)*Je#0Xp)^KSw&S?1%NDL^U0mC=l0>cW#onYCd))#g zc|%U?{?PoD)FkV}t@$mnaE^gQZLqhwY*$FWl-s>E(wRHHCQkWbH^BJgkEg$M$7!Y^ z$Kbi9W=H#Hn4~+-O&?by-6RuH9zzAyn}Ar2d4pV5eXXf6{&O!H3+rdTaiW`&q<=X0 zKRSB1;X42Dl6_|B-WmZ;GWdO{XNoffKO=!~V$tX|KQe`W!p`dx{Gmf%3~!_9Ohiv@ za>nIS>2V?IezRaAVkRgTL~)jJE)C{+ZMt+{qJL;h5yN66XA**_AsB2B!#`L#K={ZSe4ShCz#~Uje{E_~*5p|#7vTe_feosMsDqNS;i^f;C_>#9!;peG zt+jZ5IG-7K7n)JbuKEZcK(_Mh;tg`>)|&LH$v}s6)OR=qm6+u{x6Hs@TX=l|GC|)A zAX4ngg=T2x=(x(TA*n?EijV2o`zpe0jCD)j6lQF&i9@51RtY9PUf)3ibJzG|M&$q-vnYFdl>{u|c<8gQI>2}*XE0S$%^9kjmHW} z+)(>#kR$doTN9>23U2z!F8)J}77fwlP00sygr9%Xo6U#reYR}K_mzg+1_)gonkkScsiek(#VJuNFjx@tdGy zYqn_{_53FB&@h*@yYPsGy2tSS^|T)6dNlW&S^a z$~hU$GXlU=m zj&A16S6{M*ZF|H8=~7Ogxb2L`bGi&V^y<?F7j+6`1%{;% z=$jTcr1uPzUHG9b4UlLmkOAy#Tk3x1>EGJYIR}4gYW|0V0+(2sv8JO*)fnp(lM9>D zuT4#?l!_a=mRTWejp|l#t^KFc>sUdL5a_%z*QaB-l_g`4*FnrWf#;e&BkJ@a*_9j5 z9zPPv%H3z0nWd3V*o%|t?8s!zTy0tDx-Ps7nVSxPmAX0U;;+Nq-k35+u5Aj>SpldX zX(?KXEu5nV(sGN+oo6&Rqj;^D zHrMI2p`rBrEq)9Q$Zh_)9~}CDTGt8RDSV+;+TC1{L89JoZ{8NN8T-TBo8_1PMhwpt zH|+JfXY~(l>CUg+vBtp^GvCoil&$7z>&V2dEOZFMq z7xnhDTVr^hQ}Y-HJ388p~KTI1PTh#8{83x_OH=bZ2RUOvQVmD5&)dmy z5n$7^bmZ5jW;S5DF%{hnOA|xB=ZS=s3GCB-Vw@v?hBTr&8r0DiVTqsu#MZmJ6q26+ zo`n#~SzALf0_w+fpWb7>YTPnga{x$&SR2e&iUHl0?XP%7?&!C%-T<}@B{~r578Fu) zbw8-cldl|HjB|yU9Yzcs>$v{%cXrewE3u7a#&{OUo5UonaNERA)HP6yRMqRG8@&I# zrOdP4@3+^H@`TmB-{-{QH9G^?GV>r!I%xaz*0ji$vO7X&+PT(#yQ~g9-H?YBevo_r zMd(4_vKD;MGeFJi5Ns`AP?fLx{{oc^_j!Ko5x+ltf5klUT;VL{T9ul(*`nwsA^XtZ({dZ=B&Q~kNe!pZIZ z!mmxu*d=35og8$l7sT5pQ$Pj3E2u;8)Qe!SSIK0!Ci%C z?%%jSakNyBu0B!58H6`e1>W2ar_JDeAQ>fe*b1CA#_n2RwlcVXyQVbrjZ)zFmKXVR zW2&RD;Z9MSerq7vF3<3lOOhPdaI9Y%1$K_D@=RcL>i!3kWziPdkPO;mzD|E@;!##N zBKn^OOdVUzv-%lx|F?UOD?5nl2?UkR+c0OY68EW$E9Sja2SvL!@>Ct6{B(RkNd&rnfZnt@1+0Bdv>LuJ}x|GpUD$Mdbm#p>PdaJ!T^oVTf@70Hn(p{o&a}putch#A!#(i0mP`-E z!-a3t5uP>4M;0LToY$5x`N1FB(ll%i&GWk-NR-a}M}GHfP0ec#@;9k3h9^K$xrDLJ zCTZR9)uyKG3+7b}FlKV(0)*Fq+{%sah>*H@dUGdJs1r2NqVSwNOJt!G7@TiQMTE$O z>;|-3=Ca4Q>4QTZqS`|SJ+X@|v^N&nwmRk)F`W(|pfKwElgY+$zSsdovOBns~lh;9*TrX>L=n;$hU ztq1HAke#X@o{C(Zke^CApe#QO6DMtlNr+{zLDVr?$uZ!ZLn{DOZB%Z zF(&fsp(<#8G;3JkM(@=pE+h4{d2q|KKyF^?zq|e!3Pr`(u9h|K_#*!$B4d z9Eeuwsca0WGsFJcF_CzssTm+jl>U2XCp!vJ0o&J{Pj=+G-Eb}>7Xk`GIcQszG*#_1 z7%o^GF05c)-g~#|LP=9$*V*KGXT7(XFgX@7rRh@kg9?=ys&t(V_38x7Jq;>v*O%@6 zd~3|D9SJNjNoWge% z#H-B8hs}3ZxWUX;fL@Kd>k64^R{Od5oqF!7rS*fp(M>6o;ZUhi8MK`r+;_Q3)<*2^ zkx#-!ufdfdG8me?@}UyunwpMQBaMG(OXq%HYBap|#n0=G^N>>=GV2lbgH*yhl|=7nt1 zw21%x?8o?9e)q}tjKW(w{Qfr%ZaWWZNbFf#dLE1DN55@q6!Nn>Li()$8Vc&W1yVGD z#J&O-TJGpV&`aTKQ=SUSmZkBx9HSa@%Wpn zCz|n##Zz^ds~gz0+XBK}J{IcDHlw!M$Q!aX}~9tEMt~r#fpz{q3n+YaYw`Uh15adRLDiAQW+VuEL(} ztkgQ0yz(h7hetcHPDzaKoXLY~v6mos_IR;L^hmzuhqM|A`__6N;KdO#brvwe?m{_z z8~^t8%PB|qFs&cVRJgM&XIQ5iW=`QRriMWSY|zV(;pYUCfHuWHqSc- z_merKl*E%`)UnjtOl!$B&e*cxs^ z^It*V+-oTF^g9O$9+L*VS85c0=U`E^zU@3~OU(mm6vtn0Y942gAy02DYD>oa3K>L= znSA#>OqeH_Jt`d%(hx128#2tpRtp6vJRj*Na`&;n{XC}qz%N8np>7}tI>^E6_9L8p zgiA}#I*_@QkT#=GCgY5A@?U}q2vybzsL@>oIw$~xySC?W*>*Z7KnPl z4CPb<88h{8Q=s^k4a+|IuQihdV zMPha0$#>vx&}X*T1SIjoBG(dHXuYi)^Sf5#v>DY}ggvaDRh?|pf|pS1>9VbxtpZ<+ z0+74sTaIW$d*}u{#QeSGgBuifRVFF)-s0p+m4(mqSwXpxG_S=U+8^aMb%{(0V z-vm3c@qBljnZ0-{P-m~ahF;A@iOE*NS@H$BfyTj^R`aXR{`@~Z_sp{x_O0i~6LKmH z7gMJ6DUml9f!K*?g!13*!~9E54b3tpd3QmF`WAJo9l}w9KwSp5U*xr?3eTf9cimce zszhx>+%i1~`1Lrsg2E*V_6>gIwdn!dT0vu8Ac;gCFnhtK^@E`K@yqwD4$ju%sqT`8 zNNAs(knL;G#bw!p({-0DWM%yQjW2?om{mp$A!LLS?9sPc&95IPzLa#3@)pxNs?z6u zudzNzjmzK8nxgqutP8bLndVgPT>&rG4q-jfP zgj=HVp)@X_mFq32D1cd@)Gd?WRS2mTc2`#3Imy-_@cxGPW8cg@rf=>c>=t>~`WVjt z;2_Su@9`oNxIeP5QZOkKr_NM4z2E7km{KPlip;k2XHP!4F@C-!p6^qvp~;qKZ|+$w zCDxb5iPv63zviM!%8@ws1M^$rHNzF4)%@_>pZ}-#YzHIsZTAW@Od*d4@kws5)we6U z*~zIqU`2zC+QlQX zf4=>2&-534(<@PvA@P2gF<0&jQJQXi3dfhUv_sT#?coja&^Vx(@UM+_eOiEy-WKly z$>OZnEM?t;nY86NV;+)Ym0O#nTiBb%Luqh#cxb&GRA%>3`im4ixXRi9H7kLWnw+U! zR~D*dTV4-@yfN1mi^XpzZ@leFkFS4r<@C9U%`5vrv+xk0f3>-YPC;`6*BzyHwsQGO zlF_txVJr{V8o&z zGB~ZdU1_7Q?Z?S7g`hw*1?xBnSo90gGWAnl%_m^2ku?fd*QMAbivhC- z*ZsG4jhm@O*EsWF{gVQ7)xqx<+i#R0DbefKx#i^Ry>&K|MuSqd{HA3MXoY*Nd7cE! z{VQ8?{t&R=tZiaCX${@%4Ps@tc}+nSQgURlRH@u|)vOrD0ivyRu@^@!8xwrl^x%apirF+k^ zhMw(3d7Tf+vyA(0rt?7^2aU|V%Cqd*1H0eKPm-Y@_pA3onjdE=U-GT6R7YF45XMVop!1hv@5cI>0dwqP=&j~aX@UR z+phe2A!o^a{`j*~l9AA{b(XMLy3TN_7oa**zm9`NprnQ)--}8#=eP%#ya?R-Y_-8d z9lG9|gJWOtRi)bLRa6N%2|7}3uu{=bJKiJ@^UZ#Ae!cz2k2*iIE5E6|g0kfq7BbF? z7^@b)v_C9~`h6kB+DnDbdA&tx1u72gE_A|M{B@&_IH=i)^cA%@9h*NjE~lxAj_S9K zu1olHnIap-1MjBCMkq3OdfQt{zhEaZKt^aMV79D0HApV`L(-%I*-KPSCg|AlSqr<^ ziRo2wklB(SR@p3n6wvNVA5uF8ps=2o$nueYP6T+w8WuaCgwps0XLMV*EhZE3-b)h>?5XE zfNZlWWnbhL&LDmuklx@VQ>KN3mWiz z+639p3ha{q-COFo`36%fZ|OW61t-rvHHit`dl45=A#}a<_Scf;L%aKH)R1sQ9H`C* z#aOChp(urtJJ6lm+>>auE6L-~w-?*L3c_++-o9NbB8u|4QCX97Qy)OPefn^c8=yL- zEZ5YIkPle?nEl{QBY{ZVVwK)OubOWf)nMK!wK!Q2-Fqc^@lbl`oaQ=|Kv?6qXG;Mu zn%-O$IOL6Ha~3L6b3S=E=zSRr;|dTtDikKJBLeIfSmA8X2C8Z)e{|WM7QVtgb*fI4 zLLm3GgYU2vHQv91%EhMLDppKY@YwNPtgfVGeMJ7gsO!^?wA6q^S^ZkyphNF!LiEf#5SMu7>Q?D zL;vhWbt>|tlld!qwr1q>|C7Pa-!0;FwXy5KjrYNB+#Wwcepu^3KrJRW@hW_>>ZuW- z{fUfRj%59_jk`K0Bt(I8B}Zk?kz2q5O%immL^?@vWGtR)LbtU z49ISsKw|XVi*dpb%h7Gw(e-3#Y{-c(Xo6L@iFjaF|G8fuGMFNZnItOC;1<}jiJoT<2_qk!i1wOY!W50f_T7m-NBUQw|EtGO)Eg)yll?N zKNo^plwSHgo)k+KlQw`&gkYqDkJU=MFm|2SiNu3)-)&wDg+=|H*e{Lf_n&v5UeRn> zp1(I2)Qf3e38XvuLM4AeaEo?X)d_E{o$vhQJCz{$>(=LK3QMZ-+19LaC#|*`P*jf3 zC^i%vv_ZNuHPcNcfV9a7R=;pyeFu(P=E z^`+4&f8#f2;NaI?XKC;%+M1Je>pm;t=Ybb||LN`6$lQCj7o{{4D~+=j{;%xW?kb=E z?+kY9gCAFh2i_CQ>V0r$dvZtNMH^Nqz&JIqoZyc=HSw=Ga9Xgs#aPsw{GtEcv}vEr z;-%Pb(j$jgLBK$ z5Ke#*$H*To`*Tex8r}>b!34$o%Wo-uA;5G`k%MP{9KMMsP+^Qh`tV`pdqSM+z+`X^ z^sSXnEvIQ$x$tA$3L88-{ABJTXhVvdn^fqhjwz!q8zW2UQ_QJ?G^cstsbJ<`JL^iN zdVciA%hkFC`4k1|wtjCk>(dm&sWRMg+_fu9DRn(*=5eOl=+oLw`p8k|RW1MGqN}I} zT1(n5D}_O{{k97aNFiU^zbPr*<=;a3U9zsvb?djy3VxzmJDSSkEzNwuUIpsame?^D zdnoghZ1WBId~;)OK`Rjb_6Msf7pxB3FvfJWg{$ykL#Xz`sVguiw_Hw)TcW2{?c*dq z9u2`~S)EyT?BNxEQVq;QBNB=%bsT&M1cmYb+AS0ed6c+yZyBdnSwpjbGT8C|>LPje zJ{T*fTq%uV@DZWjt7hB4$m-0IK+x!^*_`~)F^vwp>Agu-^t3FNkmX=-1lldli8FoQM5`D;r2upqE$sv*EaGn*IKo34$ltes-Q6hbKB8?Cs@~ zy;xni6`%@ljW5OE+Xm^5iWoT(GLDu@SY<$bDGLjL%exABrGYo^*Y27& zmu*A|T)qB@Ygwjn#}=R(%K( z&-a6l`o#`I%=TS(U5X~=>3r}kaHh{lW@#$upfy(7*5*c?BUz zfqb9y0FJaAQ<<@hjh>o&`%apUSS)zNi4XRHDgz&w5{rY3&$CauNSC)wIcp`-h3*DD zm@h%aaS5O%4kVB_`r2|9=8fmcTk6BLJBD%EQE$LPn%RuS&dDrDU&``}QNNBRs5?jeh;ox+Cnn_aq;8IccjV!oOc6MhYB64&eXCeZ|o4^eFI{}NV zD$AoJ&4ph9iNt~ue#3|Fdeg9oY?)Yiaw#P={l;MmfyLXJZFfB{!%Q5~3*<+hx*(&A`@r{$IN+#sYVHfJ%68{c$2_!Ar z={lSu+7-}p|7Kq_MNDzLz&AUWjn=5Y{Bm-1mLI}Y#t8IJ_=;y%vFpVzEpUh|fWOZf_iKUK%y^K57+vhjS{!nX7 zzKV>~Nvq*49r)I6kN~mD8k+x;!A|{`miXEGpnlicQioX%Qq0pu@xb+~gKyv%Vq=V+ z8VpZyGR&;oH1$5=+AqhGLFnMbJn%ps3%GxWlls^bw1&n!9Ytd9b%ud=>uZTJK&<-O zHfA(*{Nybq7=}r0CX9>)UoOBPqZc`QL})MOEWkQXb~pb^xyeGo7S+iFyy>Js)#i+ZIuq`;kK4+>w4QzJ?UB!VXY~R>?K2FpP4S zFQ-4UR%RHsZR{o1e9y8vCH-tvd-~a!ree&o-^kw(-N+RmoFtaE584Hfn zXZ_tUGGeB%PNn~yvCwSNzwN=tl%`3DuBYfWS5>=a4d9|wTJGC3XBUIld! z-FhX;NDN#bYl0LW%bO=@GDmb#Zm;}^g9;X>1KnESB#N=lZGnL272Bs%9VUc4>o~4( z(X%ohi5H~hzJ8|chspa~2rqpy6Ri#^KXiwjeFy%~UFk)?<)+NfoEjdn9MFr;&S^*^ zrOs&j664yh*6uX`1yABf%eo=dOe3>+-!yLoMu^I_{6n|$VWU%m$;3^m-E4oMlyaXo zeRwk$YduTj3>B({ccKn$Vl)4+A$}vjrV67GuDN(sKm3KZiDQ4gJlbhPyh4++~>g{+L-XV@nxPXUD-ax%-$kB>kPi{@}7e-sRwRcaU9 zv5`zepPy-HOcO4xBmf~ygffoJO=*_3%@Ok+?xLz0@4U+fPxre2aSvck_kNP@7|7eKuo97%>VY5s`UhDet`CvWZ_z3V1uVf^ZQE>QTw_LM2x(SMZoYRaujGWnTp`G(GX+so9!$nm?* z2(J&m+veoV*+h%cPPZiNOurITTfg`8k*7{QNVerVsm=Cx7vHT^3o`qTh6((0&xUz1 z1cyZzhrV9C!m&D4vb{o zW-OS-w(jHhgRhzLACA4LX+dW8ATUG7@J6YSa`Urw_m=n0;+KNtPE&TJ2gItc?K>>P z+LN~w%yI}D!ix#azhH=Up~FX}DOjK?%X7Ss_M~=v>3-O%;1gsSqjsj! z{d$L}-i@8EwGDa_R@uzQC7mN7Zmz;ud(P3c=7|@2eah>y6F~Qqd{5n>-(J4nq!h6P znLaDR>}AL5?5l849s%O7tNjh05&trl<5_gb}w=wN}s=RQH30GY4o)ni7u`7%O!YUf@puls|=cUq9^4(K*#x68SdZ z2>yJ5tSqjLt&<4)a3K`n9juj?Gp%p!wb62j*0fK2s|%RhZMIrxejjbL&1wPJe47cj z53@<87>t%5j2xShP?pOh5e}Im zZm&1wLZ^)DN}?bMwiNix{vMtsfbAOOxcYqA7kz%10oR}fY6ViQD4;1uUmM26b?kfe zmWtFUh=VhqSI0rZ^6&ocwuPlHY@a7O_p3f>s9G)1vA9kjS!+OGnZG-~FQm4hsyXk` zQem(DZ`Q}xP-srF*eKZb5pk5~9j@u24gi$+<)bLYj%C_Z#`$P4#hnL`P<)S&jlJkn zTcf)OCZjL*J}INT96Y^Rt%ee)CIJt{X!xvV3#K&@p0YIGTY_|Nn6qr$es~usNcG(> z);X!IEwxF6^Uvj7^)-6DSnxAT#R7n!Xze5jaQ157?xisPA+qyhaYxY=8$L)Q6s)F@ zj$5A?1L6RUF-^xBt(dB;aW?Yh09HT!B-W6Ztv0-YDfb0UwZ(r-ZFQx*@4}mG!(OoW z{W20>&%WUvR)1<>OxePaRGbyFI$UpoV)hh494a)-mxfrsI!OhmjqMK{UNgW55 z;!kBMYf>7BAa`>PM?vC94dWA!u7MkcT_w$TLfU>z665t>S@^L(OU(+<%<$BZFal%~ z7H?PH4InfX&x9dgX~(gbx2LlX&kQ=k71e=wDKeQWmQrHqA>{E}BA_BUTw7VvtQDiH zzP9xTS)Z{Vy`@+J)7b=WKFM+xHT$pr?){ujrNwVeTLdjWX{dBQ__YECKNoG&LdA^t zW*Kq&^kCpCB_(>EVM0fKK%T@8-S%6KjR=!V7eCE{`uv>X!vj%Vej}WFONy`i%wn50 z_M)sfCU)Qc>T#TTzU~H*_8Op70!y^OSC(JM^|=1uo*FnbsHFcWRema8Z*E?$GtGYg z<@fYd!g75%h%DrGyytv)RYv8-EWF0e1ln}31JJ^iKnCJiO;k^JLume>nOCS3oqM1d z#}H4@AV3bzO^gND%yk06>P7fygBr^Cz~O9)oTa(wB@{MF4sr+VZ3ARlAbVTPnR8z| zLb)h`pFFSqxn?Qq`QEiQFW>|@y@$tzso7art6;U97XB^?oceWy)=VbwlO4ip-3RLJ z^+ITVQ;DX3MCex(4==C$>}XURy_i0vz!%H3#r*IpvT1lrM-i)zgOolaxneVYMk?uN zst4gNxOnC*t)^YM1vR-^JnQ5#_M+3f!1mWiT`qXJ7xPxA zsZo1TFg!Ki?AttV!hA`J9<$Cgle91g2a(%-tIZQ|kPfuFoAdx)h_|@02`p}(Q|>(| z>^Wn3@D)tD$W`LRM`vWhTP{C5c}u;tWt`3+C&9mP@L7NNo@bt_<{_iMn|jnx>3mQ< z@E_F)b*4P^)KvGu?Z0|z7FpE)ZHI}?59kFfMi4Bw<3lJ~;H0JHZVg{biO*e8Kth)F zUzNNV*~x7%J(6GX!PQvx@z^q6aGy~ApS-*N$F$<{p- zX@9HR`<*UctG_eC8|^9;$Q7CE_l76^&L4jt3YHBGRU_!qy42*CJ|ju`+0bVsr+zlL zq;|J--(3Dq&a#X67aa%n8R<^P!GFA^@iAT5S>*2n=4YK;1`a||Ei0~cxzkkGQ>2EU z7S?d7wDQ!XH+aVqB(ZPi53UFif>AtZLyxjR>CVU}_LkPSQ;-w|Y|syrt61}aqBmv+ zkhj{1&RJsb?BGH%`r5)E+C`tdrKDxSK!BFv{=&g${oQRcz^nVyg3(+0q@gN~G5fe; zgXXn6$5T(ubUFiHnHHmMK9b^3Vy;SWozx4Y^s1-k?N=0C%Z)pe>>4}Kq@%>pSV2`z5` zy_Ia$K%cvOhyTJHv>zt)`5F60x-)seSsS2`QlRW;K{VAbPL6c?k1?gBO|5WXv)$9# zCDPIq((u$Qgv$O)s+kinI_*laXmh>)ywrrc{MFhLbR2Y40v)9&4{{{=$JAd{g$ShM zAoeF^!|O%Vv+Y2orj&PlH?y2QTDYesUckROe&YwS%Q&5H?=JG)z$SmMpN+TXKacgZ zAx@xI#@lhMo7&8djf{mSKKRUATGkA`Xx7?#*2!hyAX`pvWge5nGW0Ctn%~$`^Rns0 z@YLWW=m5=#r|SY!Ovr@#L!Q0Q0Um0ayisp*4v)7ITMo-EX-f6?n@LwhbI}1PLTCiP z<7YTX$*-;Y+Wg}rHGA@w(s4`1bj_Qlf8k&#hp>DTp2S)t2x>O6P}<+blqU_9&Ib>C z*6>_`uIb{P`%Te?mCD&EtY)^{7Yx{+Br=GWW{9_0_kxv)KR>?fCNL2}VXl$2t!lPy@Q@iTC`{+$|Qn6kvZP7jvT9w6soQ=W8tNh&%PUE2$J5(R(1d}C^r zfe>+ek;2Uv7Ga)1uy*SJ{j4wv$1qm&-N>z+)m*So%cYC(iB5RMnkjj!RPsNSj;OU% zsW?_n+E;-#rj!%cr5vh$rEGk|bl~0CTi~rhQoqa-_%CEC^m9wO?O*6P*uYlaQrX4i z$thRvbMS}PYiJd|BTii@rt@vebhMGc+%G8$>#F1BhiQCU38qxuQC=s`|ord{Ks4RK4r_Dru(JFvraAp2Tzi*=-^S8 zOY4}jT`ZJ#oK;UMTs1v`-Hs9UsEE^)b*O}oF*94a37fE@9geBuKM&O2*cpZc3j#d7ie(l zC)rBcLjUjyVkDAqhai+WP4V&=0M^G9Sze6!4Q9%-zr6x4=JH}pKl~4rN^0S1j0$S9 z^Qw+Zp|LYDJurq7ej_=~vCNd<$Sz?vcLaOyW2B&enBD88G*6vkPW>0O@0&k7h)cd6 zB+)W%QkKRZDKBQZbBD$2H)GWb&NSODQ$dLlrJEPqdkaF5P5alm2=z;K68&zkP-v9D z>0^Ap+%pd@hptM;uC~gO^y}o!R=%Q!O7A|UYIzb6j2x==!-nv)O=t8WknKAsqK<=d zpX=e9s}E&MXkH+Px0)>+!@cJK4h+vwSNO?OLr)Tp6U6AJu~b8l$AboTT**AK zQO&2U@l4c&g>3E-BO@<9tdf^jeQjhHdh(VMUd_j&s?PnMaF7I&C_ua4FCn}N$I#EH zRw|Hz!jpz7|HaA`8UWUx?V+Y=NPcL5QRN5$u7^qINWFuigWI4|?BPB6w(mwsj~ zA6;0Pwb+luG5nQvc^i0>m_-1fZx5y?cr}7k^XYW$o*j^uk5`}GVPjG2lL!azx@PTp zgqync54go*5mKL@1Giu*C7e08NihFvcd=!s<}$GBMA?qDC#w5utHAG5-xiK+ei*5a zT>~R~mTLnu>f5b*zXf8A;^&v`3i4a&zyVU_ED7}@?&y zY4M}~Y_f<)@zN@PV^cOfHD~aj`iw*eCJ>vMJGCMBB}lJ-KIr>AJ}Lcu(`u3ICTN?m|HEBTGD2m8(sv zYms_0&@?S29S4bH-+ivRY}+(!Nu0N*j1a_j%&*rd?!LdiR_S7PZ6*|R_vlg>xR}!- z3NQK*>cLDqUM1LaGyorOzvikcKwq4|qeS5YiSxr@VhrP?R)KutiE0 z+wS(p!i+Zh+dqtuOx0RhRrm;}*F(GR$7fW+6}Zs77h#eE%9E>$w{Dj!+_`wW4-*y55vK?phzbhO+Z{ zpMt1)nuDKZ4KaWDj_(7}6%JO?hySFlKJ%7ZFL|Te{oqq-7CwLM&qg?s#-6;Ti*tw0+Q6&56%INAypDr`l;wnb@|ON6 zo3&>d3;*QvUz^kOnR&dc;~+lTmE6m0$a9u-A_Fg&Tt@uIu6L6F8^H(rFPB}yv5b>` z03p~)1g2jtNO>7ZI4u#BMs#Q+Wam1fk$zL3*m{XoxZg@$E|Lpzo>JGC_>wS}mpVz; zWc9;HHcxuc<(d_hg?s7(HIcakuQaRogif?1oHjn(<>MwYbOGY6UP5w??4g zn{V3gM7yl!va9#O*A!RlC%+v#z6(_~Mx5TDxIQDHO|6n^a)Btk{2DGmD%W>Dpv|S1 z%a>{HTk6+gp|a$vrx#L{KbO_+RA_P82=$GGr#1}=Y+j9mvH6?KVDJzTKNvYw-Dg=t z^}l_`dF~Mh8L9t|hxb`e&A4E6yDzet{8<24b#mqR{Eyv~al4_*T@I7ceZ}a)wt$ls zoM2k;L?5Gu=$&&pXLmN9JT=TBE_^=GwrLPhU70;Ex()!If!SHEkWOHG%OfVkmYiFF zrn1ACp7R#q$MF(G&?j#xXc=WQmT8K7#K9!4B$UgKFe5mme0Rkr~}jf ze9y1r;O5%sv9E18N{-nj_^JZNHija%M+$5-72Z_zi^!a#g12Ty=YtaCf1n*VuQ&C< zkQ3i9k~GW6aWYP@v3@r9dvp_J_Qu@KaVfXZ4vB)Nkh5FCkMUlK6@O%K8Oh-HiyC1u zx#P&obvW4Qi?aWa1V&@95C^b$Z2D9#A&M_u{%ku*6cedb0R z;HZWb9|WzRJX>5Do)^y0#iB$SmcVIQ?QRq=NTlBxVr3l%wL<4hp$$m%&y&A|K)XyO z{}M020aZmp*(OuB_Nk#<*WSq#o3^PPRc=^sPc}$1Q6KzrwkjE< zx?t?S8f+Q=v(wJg#INs{=lOBgKm4&3E8HJM<=Njl^B4bQ?gchm%SRl1`;c%&77!bp zXT{L7?Ae=!(d|yLjR!*~V{~%)zGzR~l-rZLsnIa%DVfK;C46%K_?|p97duX`LVL3o%hasxKzp=1ekXy>{AAA&oMo|;BM8T~T~iY-0a5go5nqo@ zw@|PD(Oc?37@hkiGx&UkgRIFBw`BW&7Qn!hw-hWipJgmO%jZ9?TdASyi)f}`NJmfW z3J0el7qiSxcdGs~yDiwmBL37jA-r5bq>>{9_|N0F@dPba(+EG!{?7HnaZbmrSoOgTlyso?Y5OxvG2QWmS1ClEYjBxbSSh@rTJ`{?&JOD*fyMcwd={EzQX1-@s~0H~Jl12>Gu)ywP`9 zj%O3B23xA9Zj8_9gL5!L3}= z?>R09!R2EoSL*nwn{vubd^)CV=gkWv$MwEJr>hlH)bxJ&JwsTSgMA8{^G}|djGHe~ zU`hskGTF}T@3~$j7>AWCQxOI5BVIU~I*a-NK&Al;lY@c<0ULd~bA+KMZz;v;*o4s+ zH!BHldfoHqN*(9W7qu?VB=H2tuoIeYjDhXRJ zkP8xLo4>ZiS}qjZaWCSOeYvWhp;%!AQtM$uOPp|;D*{8fWof(%zCzyASTH(!`8}=4 z_V7R!hZV8yo4TEGMZYUZ5*?s5SNdtRt{^$@qXx8Y@i09VE*3*>?=MpQ@=s;(IAK99(p?MY;It z(Btu!^3eF`^1)jE3X4rm#q#=J0rFQAS7CF58@b&qI2ux=fB)^na*e>cy!4hR3(aql z6yq0#Hoq_Zv>!zZl_@{Eo)gUugB656`7?{WFN{WfW9wY37Cwn;cPX|IIhVtO?{jVp zifw)!r6#S{0lqePmNoPb4vxtM$r$<1__M5`f3j!Oi@MS6zBr&;3zA-SavcU=Ja$v= zI5Lya=2jJ)X*cN~Kn=i_<)oRe!6z}^qFM-OToTdrlcxq*W?VJnG+4k(hoWxNA&Z0j z0b9#gDG-JH5Rn$37qoM4MCZ)8&m4fwK|5$+p1h?PFasfEnX)|MVA$}Mau|zOp1h?U zX4HJvTly@YKQJjG>it#lg=dtEBFZBU-VNdb^c(>k0U3}=n{Xx!HgGAKM2)X24yfWI_GFG~`9JbT|L_8ydTJDAVE6Zw3gS5%OV(iie`zf%@< z9GtiG8OhKRH!f1!dz~^&m6A7wa$dmIZY0uyTOrDdzR23+xmp8d+7_J;+LyWN+mrVj zHjt>xR~G%Qb2XRFyJq)Z8mSkAp_A!Urnh*z2kdhrYb5Y2vpV)HYv^wrEY^1x+|s|v zJj5~K96o#7)o=cP-i{yjqVogbwi*cWt4^*=AA9Piyaj`Ej{;pCRlwj?!8R?G&F+q7 z7I4T1CNY!c0}llFCr{1QWq-S9*$Ky!8mJ{bTNaO(KrI`^uR)%_k3tdeD{~;4K!^G? z5<@m7KkgZDe&EFekKR%*mZe~I)v|5iV2ZG37>9gU0HROcQmj&W)?4~4pMSFQ)MP+x z7z~={zO@w&YIj!TA+fgMxic*o)?`j{zXPz}6=B4k4U}s;5V}`pg-z$_+uoEA#|aDH zII!?NZ=#TVfw+CziXYx!g! zpj&$#i`Lx}DAh`VQEX>1*rw+);&of@Q3tz*m(nTHOod@;k7acVI=Ze!8Rjy>nvmen ztowsf=}4vIOR9_TBSrW}a3zM)Ktfi>J>rV%m~s1Dw3Zad=s4p@9?^e+8W0d!zE6B}k{;j$xDk#6L> zq_C=^Lo^0O$9wyadMtn~O{d)GFHcRtoqd)y^fwNU4%R+dj6M3lcjkX*u;0gx{qsbA z9TK3?>GC%dYul68bY?L0K`Ar1d*%f`Q5dVGenoyrmYx zd!AsB(f$et8QZOngCQKaGCg@q2YGn>the-^eE!19Q#0^si9qTs69iW{n2rh$TU;JOG)1@EA}<83?_d91V{((-t(TE5W9`JHV8?{!ge64((0D(|`rQ_>z!0f6 zhs>|HCqEk8tT=l0Jw2CC(IHzYmt+%JbTO6+Cg(;;>b@u3f1c_?k>>pHYbsXNFd9Ec z^wGF4&m#cNhCDb8QgMe3#0NIR%%Xq5UbOo5=F{i=FpJ6SI9(n?O@|t5!JIxL=^wD6 zX?daXrBd+UU*hdTnI*sN*y}aLqLGQBps-R)Kk9RxS_ zU(d7k9523cYPqIW=L9~HZQiRo4(ha29C3Z(foYMi<-CZHKaY`5kMDygxd!}+BPQNT zT8ly{efpvX#RnY+|JQHzh=VioG{wcrDf(YK^S`r(lFMILIu4H0X!*+y!!P&gyD<}e z?55P`t%1(1mRM|@w;r}?AiemSIy%ck(}3~SG0^cG1#(0L*!KoS>6`)cgatwnq?Ao; zZ8Kp+z&B@LzLd0kGXV?X)%yM_&s0rlNKyS``h}xp<-1yocum;p>4a^ELMWYhi{--5q>D2yB6hwEs#_9 zD{7t}HNP#~qmEd?bw1eCXC%Hg%A-GzeV+X^?x_ybYzyC)?miTtewD;fxw@cvedZr9nXP*6oIPGIl(pf7ouFxXj3D9?xqI17U z)}_-a!&Ae84t#fEnlTo;*^8rhl+HA1?{tNOu$^Og$QkVatFO(pVf3|C?l$lL$>-OM zEd;3qt)Bd|)R*4D+B?8X4);TE;I=#?2qxmA`RM)~hpr)^ZiJA;9gGG2CdOsrgTHCd zCl^Zyp+jfbKS$VmZ&pA2bO1aX*>@9jdE$Rh0^-Q&T&g+IdG*P%%*)8`rK9Cvy12!C z1QhPk-QFkJ+0ZdB?16z4DEvvSk)SE*F&_fV+=BSrf(88*u`<3$u4Asqzn2Iln$pSC zbxCY3-eY+nSo(D`JIoIwjpDBpt(d=1nsB9{<{!rDJ3pe?a!M(1UQ)YhQ+_#OO62DD zo-Ixm`&U2o8Ohcm)mXDz%%xOY0t|Jzju>&)*&+IKK}uEmW^3Eg7MjKWy3PlMpU4R9 zD?0Vix@!u)gVwub=(gX*at_rdW5ZJi2tUN5*c4*9uK)0V{Z@bB;9vdS&v)kk4+jmM z%;fQXFt&(W{z_1Bon~fc9aB6y4l2q%iWr`n8bZn@0NumzR8>HB9d7MtJMM}oce%Zg zJE@Z;$m4PELmUm7CswOxM$tPa|Jo73z`Lk5ez^1KsWI;vT4D)QJ*YY4W$58FilPznXDw9fj_mw((D|(xFv8$OD#=M0SpTJok_gckw-CKN0p(e{ zPb_#Z_Bl=`91A~IKPOwg#s+skjS$S{@dgQ^4U_4nFp_>NRAi*Wd1Ye0DO@&`k}5Z=5U_X0-<`l*{dEd~cU=g|w+hVt%z~{bN{Z+YW{bXO0 zYTbG84bkR0hPPBRs-i2R5n5FkRrLQPbE(~4!wROV2>-GDu~12K*q09#I7pWQuCgac zQN`5J_J4FYtZ?wJ{_bb_{Qn;Zbv}4?)yK7zBYw5VJWo)`oao%Ds^j1ooj28$r)Fk& zYL=48JK{1McmT*)vaY*H)?K-Sk`m*sMLj+UiGZ%HKW$(^xf6GkA8sluz?TRMhki+q zo|@&Ip(WlO^>rMinI|nV_K1T)M#n*uB_cfUYir>N9S6zDH`DWc{=-=z>j1C!Cb5Yx zx~4HvXp&}UH^H;PB0j0a*6^N4Zx1mkG_kC2S7ZqQiLK)$%bt5>uG|%Ja|_{!zZ%il zLKJ~9#yTB&Y6>v+>$OAD+@0k%7%it?zUa(96qk5Kv%)#YAtW}aUlCwgEdK@i*o0}d#&lDZ@Tegz>1v@c) zMq-qM)YtZhQN9e!ZC#auFpuLb{WG5 zH+HE_+T*Mc%>91x=BFZd1oYO3R|yVuq|~87VJ7!T2J0@ zb{4sM>8oA8#nzf+FWKS;Z4N~QbaQ)|vS#0fC*#?FbT>TW;8TD1vwZ&l#KDY(c}QhK z(^ME5?*p6p;M{oO)iH(Bxs`ROk{7!k{oZH*R}K`yaihC|upCe!2*_-Ew#O+ebOrc= z_Vma)KR8Hcw2DN-cIAA}8C$ID!=Gf*1a>EYkVbVQxL2?NE|W+NXS9xkJB!0dEitaG zaFFylvy^!w`tx6XZHEP;ukB0vhxJ)L|J=|LPg5E*_TA|?7=o6}D_F~LFS@~CEN;E_ zeq<~Qqn1bt%+Cm>Lt;G85A*QU99rv%vUvTtHeBnn;&1xst)Y{FzgxIK=oi~tETtJR ziOpa1?0t5CR(EQj|=4(4{c?j=b=lJ$TgzwbT(Pq9Q{-%t6E2AQJt`(NATkTP?@+D=0T4l9Z zNuJ~@9N232B27a>rC!9r0o4`svq81gCEQu4XoIO#Y4LG)n6RC&hp*CoHEHv(^!Lo3*PZb&mJOm{aYN$+cifXgG%iT) z(5%zcdi2yBsfL!A%AV^u_|o#EC1zGQXb*>U9E?zw(eu8xLP^I#1sER{pXKvkFn~`> zO2#&R>pBE@mAHr>Tn+mzFbZA<`~xSadJ}vH#`VKbxOM_KkJar0H4?0C)P~L&fg?QdhY`m~qgPaVDcDUTVK-cq z7v%?c_jMkH!;{GOfe$ZuL2(l6K?(1gBn5VuxY)lOYc5;^{Jp#E`I%15brMwo!(Ss$HlSvg1ZdF>&h_ly<|3ve|B7C-6ZU7>}iBD zD8BvPYY4x)om{FL2~&0RI{$v3sVn6mP)zyxHyG6bj5i<%t0@EC5IuI7CEC<_V%uDi z44sV52bumS`~UIvo?mUF>-V=L%aSV&V5-4R2nj8OKnSFe!E(28QSZf;E3V+){jWbV znR6yNzj?mzX0m2w!C1aO*VcXQy~(;oQ*(Vb0lwOsJawMHLd>E?!s~PYF!(Rs4KExV z|9V#t_?MoVKREd81S&G-5C!r-7k^kunAY;bU5Fr|d%pFUa7d#x8w&1~tZv8m8b z-x>RQ8biE5D2NUpTwf^H?gNOFG02lpH?~1v18`sFQw}+vbkQ+o85HOYH~#k2oKwqP zVsO+kIOszE^wb1#gM%0Ir1*PZ+YlxU4&s+J>bHFUm$wiYd4Ahn?tQ)VwUwFSN@I^L zAz=@)5rcG1ZN=j*^FU@ltSMRr0M~z(6?GB8H_jlAzX;{|fuG=`9?sq-VyxNA2F?1%&6R-sb7UtP}6EzSPnnjaJ{&6e>99+dTp z^Q`{f-6(hX@olf!$X-s=$3g;mXP-%x&I9}Q7Nnb2hosj8W1uQ4_lwJjUT$egM>Ndl z4wHf@fT5XpKgB^7$SS`w_g?M?qoX9fTV$3= zVwAxYeo!SQIBhj`8y=MGLM%g{U?7>)^PzT$D7+M3_PMec2Ebcckh)@H^7s@brt~}8NMKYPgC~iZ8D?=Hk z&qOITaIm(igaDUEX4yx{xf@#pT^0}w5;Jd)@P=6V$H2jev>Q^vpz^VXG2`ym(QD(} z;Aix~`?>g16EMybd6^kr&OEug@@j=!z1y_;{e&@#a9Z6$&%=RMdnylv&(wFn!Ms7uQbU#* z3w^QD`@Fg}$CbMJwEm-06AeA6biE8$WKVNV!9T*NoXJUo6r3-+K{Y?IuZE^}O2wcQBwO5n@N( zp8RB3gbhFpv||qxtlDP6vd@Em>EG=Z@1C6DJrtts_ENiEC;;f_<_hw_nDL6AnLd%W zwH4V=ZBX1~a1a9w)fU0w)hLe&QQF`j%OzI_wz>9aU)#>kj>S64Lay^N7&s|evD|Wp zN>6XPUh?_lsw;=!&+i^$v1go%>91E5LaD@I5!*LOu69T?jg$cN5nq=V6z`{DrJ2I5 z@pwU|_8e~!jFukZeHYXwEUg&rZ!P0|iBsd@U+2Vf1*x{3vL&^}*1Cxe_-Do7;CSsT z(j$I4*2scxKr=RXICe{T#ev4ZJtD;OCa7w5(6rt)^q^y#jjf_&ZdJ&3_Sj`MOY?wU zO}47WFZj8b*Yl^9`663lLVG*bYQ0ccztNTYy>5XsIvino`6KdMbu>9U8hI#o4YwM(TQ!g907e#{^95;^IQJLZ~6TH zcxteJ}t`%Qfd=L}U<++sbm zTX)%IF0py^#^B&CfecegWHkZ#k^veLJUHTfK<%6>2bCl8o?i}_3(7*M6aVF@8A~d# zU3*1iYUG~J@@2UtMS0fZTuCx!|08zxG*+GVDL&*T&O^kds$nzzmUhz6>6EJb778Th zl{?`mkz4k)xkrkWJjHXR4sEv%kJ%E+%Bi=cT6|6AFo>EJOmXon4f$}Tr3~yCmL6eKRhUMEU-e=e3|HS}lI2zGN)u6Seg`iW+** zHDKm=d2fepAbCsHYN0C!&YzpMm>KW={H7~Iq|s6mlqu)hAKh$u(rPy~lYZmiZ@s1e z_0&ZFm4k6iK7p70-A>HVgOOPhS^6|HLxY18A9ysi%xC$1{-vj8>8WAakbdT1I0g1@ z`H`LTB)B_5ynYxNGu;@ZCLqs)9dHI3dtiDLGQUdyHBk~_WM{_-(zNrxyTrsB&EOz| z&>RH%BRri-;6P-{;9#0Sqp~qx{?XUA^p@5EY&s{R!?Ja)R|8*ms3wC%1fD%yOtZ;N zXc6Aw3v!bmx}4W>&TnFZt7bxs!c1fLlWk zPUR}~7b5k$CMk}@5o`w!ls^*RYwO%BwhvEmMETgsP=I~og@fobb$(N-=_}!WcG4La zb!>KPv6pH9JeXhGayoNetpklPww}t3Ol* zN!hZ@V#&du=L=qZ1bmLBoLy0p6BEpEi1JyZp{2uxus^; zzvlD8y*>!VXJx_AgD&BEJ6=Ka)mQdFJFQCd2%&%cjf21ScmLN@Gx>K8u8$s=t#;Zu zYQK1D6#H_Qc$mnN({yz6*4po7q1AKGEXmeE)@ni-qf%tvmbncsDNs&b_&b^&tUrY>RksN`hi_i(|8h!xP^F88uPPKA((MyA@U(_SROKC}(Z8 zM}|5cDh1_@cDB7jBeVwwLV$W-ec~tD2eqD`$wuMfFpU)urhWSU%uY*q7W%beHlTi+srnujv) zxe#mTFi9R(Q72N)P~14Neex7z{>k6?t-t#pPtE54_O<=Z!Kkm}QR{=`Ogl|D(%n7L zHIFR}J$UcRzGy3arqhJf@J*6=x{slpDAg6Kse-~XuH+VIAtzPu8(ESwbX+< zMB8M1=Cp8K!>f8f|FOjPA3rbV*;0Aqv(>HfQ zS&?cV3=Zb*r98Y%)}>xNPg~)^Lf5L*Tdmm{Y~^infVCtK&TXJp1-7jEAiWoov|=*S z>@Y9g?*GZ(_^rSDzn+@l|Ms=LaB$O3&i!WXDMo-NaPNCBF-y0;wh6GXlt8Q#t>Xw^{6GSx=X#+DT#*NK;%2qNM#!Xy$&l zcWZqG_MZ!qui|=A`r_n*JUg&@$ZGM*GQ)c&a6AjuOC5FDO^LffrZLxk^qg$-wUR5T z>gVI_S*6(NWiM=@k-p-nWNU-5-WGucl=L( z_y6{_{o){K!)DUt;bv>{$4$+#!NCV#0m#40!T!fjmZUMAfXl2-pMplu9N;d$1o;udwYAo!X`d+V)S(3|<)6PI9A%-%`{&nMlWE!sT+S38Yafxatcat-}Gj$8X5reQl-=ZNrawoVsgTqsA}j zy6`x|+%jjoqeNgn6*0sk(e&$f;n0AV?pJ`Wu4Z2Y%46}#ap)Pz6?CK?INAz#C6Eoj zB5cOI_7JTzX5-z0>5hWQyFraPYTX;-*Ko5z=IA*T6-~p2ui8u(x+G?(h-< z>^MR)ZU+nwwoJIN9flbeA^r1C#u3an*gIEMLZ!P`TWBZ}|H=19t>Y~(J9ACGk;#IobyWU`Ak{f54Li%aPum*HkgCze

h(fT8L@j4ywe@u#ve>^qnZ+FN4^wj*l4WjeO(?eiuG5t3h}T;B16LhdZqBgppj;oRfhVWBnZ0d|z~ zoMZiIV>e}rp!!w-A~d^0DN4wzFQ>!4?^jO^lSEJ;nnbW9>%(0+BA%d-xnyuq%+dq0 zVzQ&B)8l$^sRwcAW1eyJa{Jhx5PsxT{GpvN1vtnfH` z;{;;QPLS_Dfb&Z1xL`(kn%jcA;G! zTvOlXt$vG6Qi#~3uZb*xGIy_hXSwo1sC@V#;?HkIzMWTTDTuLGF;~wDD#V!Qn*!tJ zZJ1p79D285tBRy%f0dWJ_T}KpHM-e1E@bI?R|BX7Rt z7ZJ2=i6-;oawZ)(%t+DsKb{(?|FH0%n?C}hh%-JgeMnE!$GPr5o|->6`0Nkhg8-MWN9$@7=I9+qw8?q3478ge zyO1XV#vs<@U`K@AGsK8BSJ*uBxhCIO6^K+{G1yEc#xu%`K@=>Yi2YnLv>%$LqGH2- z%n1h3mVIqHG!bg?3$lc+HtKMGltV|oI@fn5E!L6#lAQ%y^#j&@-RGU}S!PLl@N%1x z>o;Q+EVb2XIudf%Y(Zz7(&Ue<&|EXqPLrhI?1zIGf-8X(EMkCFjH6v4Of~!<+;l0+ zFn{@0o0oI;c*@`){NZT0GS|kywH=_Jo%Mb{(Qvr%Vv?0{VVy;gnss?Uxb&8SU1EE~ zYhfBv!uM?+qJNGjs$vR;zz|{YyiQYaX%t%NrI&$bQa`}|Om=QRa~em z*lHEwxx4w8t@JkRA3Vtrr<$xkkTMVJsYntPq(-&5As!0MW8Rv$={flpWU) zs*i0h@aDaaaaXMe*4q(V=7|Ki&}bIK9>eRkX|j7d%UFN&mTrG*FEbV}=ff~H$s03L z{XO?vPtETfe6a1jPg>=VnXXh$M*I_Q#P$tsmCaZmKb!Djg;lym6N|oEKnW6=f&0wF z_)7b=u*Zw|T@OPV+z0}`U5ocq*yGs*GEU2Wl?mIVl+ql=Qn+OV9=M%NhBC17^`c+Db%U^?OmLe9v{5Ro*GNo zg$KjG-iyW>_eMsknI9Hr>FH6uy`GxrP$42Q4AVjV>-bA%yy0mdOuq`RZuM}`g) zMW4M6xSVzSBBAF=^JJ@cJwt96`(?!WBV=B2U;J-*g!#N9G~11*b< zamn?PL#6kZ`=VslPOz0?*K+iFg|4<|{F@sbICI87)>!w+k6z?CY`gu< zTdKDi?(d8RLk}jRk-0aK_^+qtPYzPg8I}Biz2cr?PO-d=M}~gYW@xMZ>y!zu0+UJZ zfv=ZPS>sW6hA{6v%0vnbt}wySZhDe(YOrG~x4(au0`prw1m4+4&6d(-1`HO1P!Lv4 zr|C71!t&T~X>YH^*#Ep2jlGi@SSl`ai7E5EY;cfOOdoYR?9ZwucA{O>ZX?goNZ4^NWS|o# zo=pqp=UM64-u4^AHbV@b-zZtSN`l?JxVR6X#Wu()ii7O%^j&kkBaDw8PB$i9d0Yru zX0;szCDZ|$iZsUK6`jDiYChDx?X@RW1I*(m?9-R)p?#6_@0=0sZt-=hlEnt4?DM4g z({>WgDjnnT;P{69HK)r3{_fOuYCQaMC4NNJa-XR@IuKft7HD1>hj}X&Bz-u>=nfaZ zfWtUv{<+!WLyy20W9AUUo1LT)(x`J-gVA}IQzTe&4b$fSt z*iBwqB&ZvMJi8n4B>jLVSq+W;+#G%D^5C?;Px=vx#cZs166DN+39)SjbI?RhlCv~x zUwhC^FXQFu%Pw)^f_y|*bB$##F&gY;f93Pf^4wZ@3=a;veiR7UVxRRB#Est?`d}lmY0gCa1K+UDtNY!8c zs?G;>r(?1(hQQ0iq3}$NN1rTpAPqEX!3Ku|PUu90jK%9E?4a=9OK7P15nD z_VaCE1Uhi%msT~-dV68BMoGYDZ;D(r5uTkP!rXd1#qSoSYUP z<|~^KoPzi`JyKf~8w^p3(=$*dq-2vrNZ#II=ob!d#t9yQy{-^S*$oaxfN@q*lzV1f zZpe#r*ELEtNQzgrK<{=Po!2Eph_8NKz9mMVNw0UH&dU(Oexaq|#Qg9La**u1v1Xoi zOz-ZT_~XRPzP%0BP#MqVg?biQ$!1p??&4%Vr2_6Yfp)g?t+Gs6%mq&JR`K`SiQ@)J_sJmBwaC)#pzWpFbS82XUNm4?z? z#&?t(wA9*%&wdJC4N2{=)-uob*(>X-q|F~Ds%C{iCNA=!H%};Azj;gNM**;5OqTu$ z6W!`~RB>W(@b_Kf-#ExUFMafMBs0%!s23QZb>q%R&NEMsgBvSLZ|RM3jK+a3pM4i;9p%9c;RC6ucj9}P!TdF=jl zc0k9uLc(Io17TRt3xkfMrThC=b#kFS3ViM|`#hQ*rF)~8z_@@)HK>CO&!Kr=Wn4?IU~MJLO#D%R|eZ$2gG2zAFF7$Zufys z<$(v+_9*zfr{*vNb0E^fxI-?m%IggsG|Waje=Y7jxy!Vhzm0jn_e*e2<(_pJs+U^d;2u+^YW}i z%k4XN$C+IpnWXhVz!VO;5Ufs;$*zFR-gxF;T?`Thx5;so&$ObUOf?F$JJyeF#qcE_$FTU za)D27R-K(v3{WZwb#o}>9srnA;8cZU#gNNnaFA9${T3w}C$I#~f1 z?GM53bNDHnm0~%@c{8+trFC76sB80@)P5%%SXHX0B?>#)Z!*-9qago@o2FI{N||vf#th`?!I@!8klAJi5t%-{;!@I`#9;4 z-e7>V%=iVr0Ex*mpZ{-fX+9GHOZ)gqos5eWbgr3zF{+XMCmxNOoRhLW;$-FtKA^26 zc0ptsgk0OR0KWeD!DcOHX@T`%E2dx^<#>DSc$7jm7q%V1(^pw7}JwT#>2uOFUhlqvoQGxgdlzQqJ6&U)u=%6idcH`fONdzS2ahRH>t znNsL8<0sCQ20v=NS^R5}d@PsuKWtl_vz%601I%&xz60Q0v}25obE|Nz#E5p)|3hsG z#*D<&G;w3^^_}r&kHXH4U#%~*hWrbn{-lKO7jHtk(&Br!Hoj>;mi1CWgTKG|DL_~l zkK>`51o}l(@pCYh%vr17#)~RN4A@C3s(rwuSwFG44*yTa!oT!){~HITWuDA}b|RzH z#xi38dIW|(otRC_RxQ^8?8f|j@?AE0Cw%%Ns{ueT1wpgq%Jv9Nr*WhYj64t;H~BP& z4UCpzirxI(6-NB?aqqi>;iQ>tDIUG0_^9Mm= zH&vr zZ4suand@l`5#Vj|1fBzIH(@mimH>=S*a_TfWik1xMKR;tv*texX`!b>Qkz2T<=OOF zEDKug{1BY!1_!gXPQ&<*Rk*c<>E*D$>nI9Lb2F~XQ}OPV>6h;~eip&uC9M>(1qWs3 zKwcTx_;7XnLu(+DmHbN}L(Je{RjUCfwq`$Tr)gN?kZvG}IAfrxI zDmJ-LV}7=CHUd(>{k$Jcv#Yy`FJ+M~O-|2)wn;M2`|Igmc}oRt`#XfgJKl%ZAORYO zqMnI~X7!2yEONhgiPv5{H9L!5qKf{R&u?&0y|bN1|MArP);|b1^0^1|G@Dd*Yi4(` zm}dMD8;2B?ia(3JdUA$ib}oj`M0>1s#+p&%*`P>u_K~8)Nu8gjW8yt?jXA@(s%&%1 zzBVpqGNkmY-Pf_OB3ITf`AP0daPUbU$SnKXD%OB)u4$oTu^~LIu(cj7%jDU@X~7lg zFYBzc@2szl!(wQp6y}ul#oa5)#o=iJ9uAL&)hv>;tsi*CVmHX3=>pfEVdk8#6!K>azA9 zoq@r@fzU+W5gGLama?z#xC=2vA_wcQ~7ka^~p#;!vNFaB!a5h_*4;th3iM z*Z#~{peK8u-lACW|MHeD^`P|8-_z!?<1};wpu>dC`4MJH*Jfojf(g21%+EUEwzD8J zvmqE6$Jgvp8-0Ry_f%w;L1Lc*h$~Ud07#L7S7wDh0D)2{o{%|K6&aLh48|`e>^o@7IIzYfZcO_Mk(*xO&cveJ}mDCY0E;U zgJHBOE6h)tjlD#(8XtFwB3*r{2ETQ~-#WsS?5#7M4skbFqk5Q0HPsv@4$2d7X&hzD zZSwiGQY&@%L-WDijO%uZ%a0h=T6GXpPludq9QU(N#O+m>4m#}w+FIqAJX`#{v%NEm z$+d1^l_{rBOEZ>VlvV=&%I9j?gOrQwMMkk@)=*S?gZ2K%SU54%@kKHb z{lC1We{)d&v>lC3e3R!f?Ubge`0%skyjTMql`(EJ=4U7)Lpx(v4Eo3-csP>GY4OGi79Xh$5C*(Llxov z%;(>7|Ki|(JvB=X=Jv*y_2n+HnJ#{cJ3RfpRHbHGoF?y)l{sEx?a<8BvT;d43E@&S zIe}QFsj97b+V$w8=)0J~!3TJC=#iALif=6Q`Eiph4g8!Gl^J_%Z9RUv4b z#Td9d?E3N0J}QSkPV5C{NDUd5o$5=|keLOYVdJbrh}x6wD-Y0Dok4NjS!9hbEZB1G zRrCztxip3JCI{dZ)pT|I25Ob_i15ati}foaUms7Xrg_5uWX>@i68r^KC1D@M7Ot<~yV+q1*Z<5|*jU~jYn}hgTl%Y~#`t!J zw57Ln5eNpyGz65*%0bN%)(f=tY{NE}2+)_7&HI2D$q!7~R#`EIz=M|~S9{}V%A}p13kuCIcc^aTP_-%4``d6$ z7~}VL9iw_@9=E+O*TL@o*L*$%w`*j#y^z>yb3-5$<6Pr4pa7;tyVA^-vKLqHUsp?u z$8Y{Kb7d&-O$UZwa#pNpa8S^r_qOZs z0xXsG%uy}0OfKb@-R|$+#`C;9#LeO)14=GK4~79U7}^t8loY|6Jr)`CNt^8sCs+1% z-u|2z(0tf+f~A}lh_(C+Ixj1oYx>)~DuPJfUWH~9RecnY-W#|3+p}@F0o$&2ggGDB zsbC5rX4QhV{UJ*{5@?d*ri;cM7DqV2a(Hbct8|giyy~&g*{!IxU{@BO-@e9u_L3UIr6VfV`o zwYvp$uqfPC!UKLnG^=Bap$Fpx8Z({^T;Sg*bOjhLbBW2S{^sYWd4#Q>^iK z%)4+-nJCGdV2I5fX2gELkFKA55lx*0_4D?*tka`LcHT+S+j?p<`<{`=r)c_*j0N+T zp14S0*8j^}y5!*O?>(7G5|7<@IB4W^%$B)5MburtvWfo~n)$iAA~4YC?xG z%WfIOx6s`oGg{ky$Uyr<6qVDr91xjBcHKY}N?KUwZdD*y@W>H<*(D~;!*$N?;8=t- zIQU0CKXw0$ga3GHVCFylgSepwe>TZ{rC<&ff5e$o(_yoUg#zt9`>DjD7+_n4#<<-y z7vy;#7Y56Genj)nCoxAb%yL_EQAQt3YZH^IgbKX-3}JY8ALqBdvJmw&t+DITGE5}0 z+AV1vgSVBPnd@+2BC73zZ~*jJ!C{E>vWbOPj8oLV5zF- zso^g6!$O?dsJf(!P)cc^~L=l{CYgZ$gScZvV@ z)CBIWTeD>@@f5dB$HBE;{Q;Bj(D6?~5=Y7fg$xwDpN;Oy0bv?bY;oIwM%xwts#%d- zZ!{JkG4`Xc=j_--Yi}%!I=j;7a21z;DHd`o4!I2xs^?S?L(O9*hF8^%Q}59;Qr9N< zsiJ0Xg{Nd*6Zc1<#?{0gXmuzPLvy0O0z9vD7zF-uhzytzDQ(-N-Lh-y%J~;4!F$Ru z&5oNgK+Ns3G9|3?vrt8e-2>B{7Yon(u4I5Y@1!_y*>4D5`6um(=gKYr_|_&g?bnoU zN+|ak`)<9LD%5`dsF$9st!5{#H>6RpX=&RBEk9rNISmfxUD>%H;8)gnZX2H=i}qJ+ zAAMzfVf`(AsCI=j`WptyG^E(7oj!F>x1~z&%)boSz@X+V+HABe?l0_9=^@Z(XBk4;MtUC7}JvU{Y%cAMGq?$hhB zZa!EgM(ozz9ClNvnY?owK}?z z`Q1}fH>Z|8HF}xex$p&oyV+%6yD98Id6ktuWWEXt2-Iv0igWW0MltX@(TvTxud&}t&mVH zUOJooCp15GO!GpzIo3DC>%C>hg4_OxH1Ydp6RQ<3-0nAXuAwFNf8;UY4jqKjd^lu0 z8=KO#9QHN4u=_3yYU2o?8$k-cTlv?1p{*D2}X>8+L|6eor0-=i($W>F$|LyNy zc2lzB2h478Fg?%s&1W8G@5NKI=iplAcmTA=illi=201q1Ux`0smJp4z`eJKtUhLCp z6xlaX7RM}?S;2|{GKH(IMG*7Ai~!14xFa-Xh|l`Ta)%W3{o0|jO*jq>ga^nO3Hg$0 z9m=DH-#s-`Fk3Q3&Th>X`LlVMorR4{9G+NgC6!LSq9YHZMbH{wA;ltaZp=tRCYWc=_}4p z6Iw%cY*npmS^JDowTUzS0VYQLT*|zf3Bt{@3hD#O4A$kl_=iXg)BN&{7BiOdy4b-i!T9j z;0PwEXoR7c-qJ2}_uX~&l1u#IvsjbP$ZWe-*WqVBb0E9AHeGx4p9#%Q-pbp;LF#IC zIrE2z-sMG6R4?=PvdHDLi!Su0x|>c9gO=j)Lj;|AMRoYFF#Y%f{?0*d#yF{YW`q2Q z0S}8U~`(# zU3}fKnThvzcedTW1dF@Xg4qI{KbU+gYb%2XKm2O_?I=}I(dexen72(x3W_0^`R^U7 z0EJpL0L0ZSol4YRcBsDo?y1SW`jth@RRLl;C%7jn2sd@Q2%lR1@;S6{ce?K2 zN9u-O6=j1)Y>2Wui40>#xxkMIF11f64%^{u4=cy)7-f{*_ly=j6=QT#mVkg?y09UJ z9^|wESLNsJ&y3SQ6Ylr6UOPKe8nGSAmEvoK4P~`ya2jejp6mf(q>Ne#2FQ1vokd9= zrgwj$SUf!BEbFFr*gbE`flw(D-W{yQzs(0cn6Fvo{If>RXF{#`X4gD&GEy$GL&|36 z3X9QILgKPQ6kgbadU+xa-WTgRlB+a2nFKeuUW^zYnR_2cv0-fteNab+9{eq9 z=(k6<3 zhK3Vc2Mh>e@$a#YSPw7z+Kd^gIp-Dby=P=!h>LFa z6`e1O8zD7Z_TvH=3cCda<1js-u9L}7oUW59H*g+)u;D{fo5|d?g~i)ld4^@UXUL1Q z<5!tQC`9;IF$T#y3=zs!KPOLiEaqXUyKc%4rl$IQ5v`+Byoa0--~D~Lr3{=z-p}6A zGKTkX`__ES(*@M}12OcVPDlejuQaMJo*K5Q>nflwy`={6po<@~pE= z$d+FTaal~dx1oMrU6_(Y2p-q3EA=vp{Y=?yIE9R3+n%S$1f8WLzxQ|lH*4s(UE;vv z*Dmq@_IEG4DTAkpX!@TnlHT;iQ-eFH7Dr?VuXiRxI%{7+q@BgRnys*y=lK&G)3NC!{PBK7>qV~)RgfCuKD%FD=cOFFn670rVn3iz4 zrEZtYbWxZN=i2?^Q^c94 zmE|2!({AS4F**Rl-|k|{SRH;km(9iZR8DYH;Osdp-Av%3Y$nRvJM6TXH0S1Vq9@xg z-Z-&VFY)%4FYBN3i^2$A((ygYcH6P7cQP^t*<(jzul2(`_(Waas-W}J0e9WF*2mbP`UsEUMd zBk=Nm!^S||Rm^9q(}Qf;^pz>8XQiiEA?4f|GTfWFXTwkq)WdONL>hYVpRA$fZRs|r zP4`%CPO~q_`cmL|9ynz4uYmkTl3-Ci=oY~y1{PNU1;LdoT#&ERNKpfV{eVHym`S7f(&t z{Pzx3lJ+^b1R_p8q9N@EI979ydgNb&iFgSJ9^ zs#QbZv}U>C%&t#W^y=jOU8f)fxg7@>!)*(HHrg7O)PV9<`=MCanWt&3GHsPy*lAE@ zcIMX(@}@yn)Iwmbq=Ppv9{Hh-)ANXMRyuD_2K{n+rZl0_(PhEV>%4RHDv5kzM3M`{5f4t--)n zMdtXuy(%v~H5c||fL2vIgbKmW>eM;=|LA(}ueQ@5jS2i`hbl|Xf{cBQE10GjoI5@&fDWSkI-ehL6{-w)JGNSo(k@R_ zVFi{fV_@dKy?dKLfGy_BMx>;Gg<_Kz!_i$Va?x`t!UR_o2O+lCT$~f-l#8o_pNXEq z;Px%jcw~#j$8jDAQ92{vDAeHZcRV&NDNu|`Jo^KrQ+)8U@o6w169E}9^#wUWuDBK9z_^(syuvJ zQ%1>cXl=)i-;W=-FSwI#?>@;$Cq~0LmEmaTpwn%ZC-2HdKJlwbH)^FXzx=+=Gu{Ax zT3YghsYQ1pE&f4B3n1~M;S@U6fwPV*cZpx_%(r&tbH1rgSAGZ${wLbw)4CwF1I|_5 z?NRU1df;0Lj1=EEr28indg<@xjalcA!?Xp?aP>fp6B=f;jW%k@AUwK`wV8$MQ5@4_ z=8GB5%?jgW=%$-+xu*eV|KU~U-hb}Qu~caIdzV;!-QWFBH>JI|qpHI+C0!<*)5b0^ zeeu*x`{F&yh5e*|B;#XA^5LN%08Mwnjg-^3V}dSCL;ofaa_`VQ8~(8sw1g(%v0(4=+wY3Vkqy&aR7|wU z`xZ{_7*P!zjJrb!PE&Su*;BLPJ=Wz&spO@Z;_F*tM`5!_nvHXHv{lep{86j*`|j&+ zsPR%p(!t75j#@f&CtgoW%4=OBo#I`FVX=%sSz1F#Nty>`BNvORA%DguIm(a_;Xi&wLqJgEEYKlX(i2g2Ql+ z;Y{6~toj_ZjNYd>cD@gi|HD)BXHO;(4OX_W=mOhFJ;n*_7`>R(fFYbunww=rrg*d{ zab^mViS=8|>63yx@NU|X``f(uxz7daHo)g_5i_jLOQnA$)%@; z2PgM#r@YUBAbK)UFq(-OIJmrK@#;j8tifU9(P3=+HxB;E=O<&ap)v1T z`|Q3;Div>;W2C@J)_nkYPPgB5>g0sh{SlXF`-|Av#SbIs~toe;ut)NZJ@GHy9uv_q}u;P+3OF#H5}@IkRiYU=cJ z5GX&!ox{R5-kb(h?IA(b-RwbH?(V-s3^W*}zPcB27ds9)?#E`b zGlAvW4}V(hKpv6-hB&t!ME>XOF781Q^p{qWU`5~TEfXd9+=3o z__Hc6JvBp9Qv{>qJraYMm%cV4#F-N+Z1ZY@frBsCEOv-00CxN;{cqLX2Ky(UeFHDHo&Ri>76ZDQg;i!O#2yXK#`hhKFZ|$fT%_fm;g@ zAGxN_i&*4&q?9tJlmqD*cv-O<9EjPZRfF!CRt~;Da1vzRJNEZ90_$rfQ&oY+V~4|4 z$L}ls$oG_kKsuN<(9sZxwe>iFS`zW|WBy z%k8PBZPv(sa;0rjy<9sGZ1N>BUED|*|5$873;PR4qSI;v__)lWQaBK`F7FE9E)mFe zBT;r7-W0EyG})~uzn7h|AwBR~d1~FYy-5&!EU}ks8bt$ z6_G5+3^B6)xEnczF{;&1ZlTk}L8YF_Qhq^IU45OdquUnZ%#E+Vlr&%t~kHn;Ru#$S+${d++f zk2OBLaL3=2$kBcw_ANQldLQmd6`r}*Dtk0WlgbVp4ge=Cy{M1mg<4R5P0nJEk)gPC zQU0gD`oSuGj=E1g}I4@$Wro%pL!&*#CwGLO+X8)Lfu1o}O1ajXMQ z_l#k#-gOshng=4RKfEduTk*O+j{PX%VV(}88bBU;Z-bb+J`3y|&YAYXfT8O^fHMaq zc;Qw=1z6sT##owS1v#kQ{g@sv=U-#!nSuGLnMEh0bBP$XL~_&pJ%?TILKK3*Dmq@)yYLJ_eF;xv#SO!%(v-d zPZMx3RN_*k3}7Qbq`;eYLs3#mGeEQjA!x$q3qfOV476p*cSF$6nQZiV8rdTQu5nBR z_LlZKV-yVXGMvb=C?0}rGDLu<_RBdKq`{~aKq4=&KIV6_-%yGS9LI3H7i;kIjS=`D?z=?!k68Go6Jq-8A1&Q)9D zO^U@(E_m`piOXUs{6c>p#{)EEpj8n}qjoS>E1iDZ+rkFLa(>5zMD(wKYv>TaT>wbUW6peI+b%u^P78}ffc{^*#Q*pA!R5ZF1)0W!A0{CAvuJh9T4+!iAhO-O zt>jfRkA@(>Z3R?kCj0t&zv#6fdN|Gd3K+hBPx&3?N_K-tX6SfOGc8h%rKg5^Zc0e( z+&BMb|L=T$LwcBn=x-b(#3$VLs;B1r#p`_jXILnY&`>2~b-Z6B$EI=Q+bGM~_jBSP zUvqxl`I#W*ba3a22*ke19N;6QCYX{a<8}9hNWk}%m!K|a=s{MwWRKoDm8OR7078R$ z3CR>9R4F#|^sP^U>8s==U6^p6-wy)|b;O<7r1-+o8Mk70n{#!LA$(Pt|tAZ+aj%6jeY{-<}@G!kSYa4U@=?`$IwLG4;*U zFooXg?IOeKsMKcQ|kqi&OdRIr|i=JcM()@5sfSTIDF4*Ynk2t}Gm;9Ar` zt67HRZNUEbIjg%S!*Zb0EOZ)~tCp*rn@cl#O&O%0fJXxdpZ4|*9Gn&UNsDRvzjldV z@5x*P>?~#5GjMRZFB&T5qT3Y?J8zSTS_!sl-#|R5Fl!GIIz!hd$JsEnJBE0YG9}BK zJ4N$oZ!480*Ud4zHB{n+$Ta9$x1|i0Yma}spv~i|kV_5)vkWOnG4yXff5Lc7gn#2- z9F!Z}m(y20H3km;$>%@gK(>$&OnP)?$W^`-}nWHclmc$%^5{*8)xx0A7 z)=^H``HErOmBP|kAWDn7QJ7iR#3~@Cze2H>U5IBC`<3&5)Rjn#+FXqqXcdt7tsFj& ziA~1&VH)IH)m*Dmp&?}NK6x1d>R zn$3#KebJ{Ri_VC-sbYZ&P0&umIn#k?B6h`GGB2C5QVNRiWL$whl2x}MZ<6RiUclks zv^c?i98yT|+U_L za?viS3$dWytzSjEy)wVOmFL^_FHD?gw2iN(Lw!Qaqid@)E^oxTm?ACq6eR)^P9?)g zW&~El#e2sCGnN#~j}tfzQw>wlV7VZGWWa>92)D*_w|>pgHNk3dq%NC(yC7=X19D>D zF~C1Wz5D3oo9|$ymgwf2&EmI)TWP!!t+r0wfb}?nR;sdoY%dzb+VFtM|Wev9juF+6k5IMxzE%Nr7W$gjFZL zd$ay{OFjbSC;H^f?yQxd+1{2z8vCPKPjt5C#@RT>fY~fQtkt(M@_+3TzxqD-PxkCu zVDYjqY6WNhu+?OtTV*KtxoHZzJ9fuD1ya>0xT3E6)=eQx>Kt+gId#)(1&iy+r(!J% zZ0UQHvryS}$~!!Sr=vc?&9ZSr`$b;m^GC_;ITR$(7`8(h;L8P41`hs*$rPZ;a+jFZ zEk~_a`TXz*G^-?Xj3rfUEabrY0<^hhL8)Ttk0VCuAE%7DA=y%{OQyce=Rcve=8Be} z(_(l=V&Pxw=3uY4%vg}5x%`#Xd0e%zTOXaprW#!PqQHeuYJOkWn!qqT%jVr%y}5?9 zZ}^sf;K;8R1!U#x`{8<7K*~qXFrK$YG~u4M)?txfh)w4Sv{Lk227q(z|js=s@j-1_{OaM`69}^?D2nf zkpM3l3zi?L<-Vx%G8^2!HVWR^CNMpG4YI;c*{`J%> zy`^;c(r2X$71Pa49t<8=t&{sgj)5o0ri}_Y#yFN=krZ)YlWcGhw}j6&oC7RKT^q8q z?39Y>gk7EoJme974EeRVV*SP(6h^?X_{R8)$FIyMS`2fJT<)^?cb%G3x zN4BuZNSWLm_jzRd^QPBc6TvNgCoM;V@?rxDM74Ig!aA3sTl!vS&j=i$0?TIT}JwhTlcV5ydz0 zAZ7jn@kebFAMVCY2A?A3$xEB>wbwr&+qkaPF>eqdCl2 zUb;vY`{L^^68d+>!mz*G7aeD^rW?!oy`fO^6Ff#PGs;AW-E$@?Ta0;M!P2lV;aYFm z_fxr@?Mz~j%;FpCehKzu3D~iD5^(RBqvX}EJJ*8J(Cg32t9<_WvafCbIZ8vqI*DK@ z)SfnQ@IRiKC6mFg;7n@>Pjr3HdEB59(*im#Uz#xT$y1!C8kG0;=Y|ucfd?m0gt05M zomWh{9IG%EZrz7#3nbybhe-BpO;bZ7$J&|O;M5?oNeeX*$0gxuzbei6wzd0dM49#b z!0OXbW$6K_ZWpY#XM5DhG!%1|lCsE_$xgkhc6Mj#UEm_B6HQsUpv5-*iRsdm410e5 zOavk!_{#!! zzQ&Fo*12{-<8*f}+k9t3>U6#=3KykrT0|e~T7}F%$cPHV3Gw6Y8GZ*p|>wRFBxS)k~C8{ zssl?!Onb28Fg=l;tm^bb0#FXRw9Q%!-M;ZH`n7!8&e0wdo%WbyEd=1YvK{!7&ktZG zg)w9`5cTdZz8Pcq1qc7*safLSPpdcA1}CK!}t<7D^n(N`9f%xA4J`ecZ?g51=mu~zoky0s{&=K5!$1q~dDUQG)+PT!3J z_rg83Rv1As z<(Xx-`^SUx4u+BCw=TAlb+zV`Xh$bw21iN*bz1CH1us#Q>E)gb1<>{jI~Xx$oedBo zVX$kF2D%bt_Mg{9*H)U;&AbVC4k;HMrpzPc#oJAx%HKoVA6q*`8#RGd?I}m6436|; z=`9_;x+@s%MKG)m7>fZJB4Ql-CaZ&|{l0(A4i(1SNs%a9H$g`6kg zHH0>cEa>t_rHypHwhKI`z$XWHuBs}-J2q(oBU1c15}B8cAM97c(1WaG_Csn|Y1`rx zQX5_!9gY^utj-f#TQ9n%SUw7LD@qW$Avw7xPLY{i4$P=uYjqKw-Fip!djkinn?EwR zh|2{*!D(Tdj(A)W^MSfR{ZrdQoBf&uhZ_j&!f{JoE&Hi}nOvE0smSHrfyIune25vMUB z{BoXIJ1q_Zk?i+ThN1Vfk~WN>fBpO>4hN~)-<$qI@k^!MOK3#du*-~o{2`<@4jqzBXhSc-2#5;NX8eHA@_1btwAo+Pu&|nSs&VOmr)p)2&lkdp|Pj zIK-hJvpLfyN#08sj4@CwJ)RnKgWoXKHDyl!_Lj1Us+y|UYLL-b?|9kQhO7+V7G!{> zH+~2e1@AW0s$P*zNYxd8Q>3v1``5K z+y=S?tyR7TqfFeB>cz2;$Mf!IA`%P2o9^&B0`ts_6aEn`n1vLmlWHsg1QQ1y?aacIDW&GKd%GMw}|6EB>A9B*AOJ11cTk z4kmO5>&YFnF`t=rS*QT)6Qvnq=S@0a8HSJ>`#0TqQMI#MiF%YnlAegrFeI^@b2H6g zVZx6`II+QqHcObWf4RA^(J{P!j&qfuotp=ERxeej@ag>PE?#X8i@y89%=LFXUxEUr z&o^Lxn4a@rwz=}FJM-)%wi0_v4uj=Qtn?T#Ys+uPuRFO$h8}!e`Ui94&|=pBt)TU> zuxDQ6&4xI7$tVlYPaMXCL|teY-D3?ZT!0;zu;EJr_%w?;{4+1&FKIMTE2L}y`E8;k z!)9*P4br+BO#jK}#|1Zy%sJDmo*DxO$$ND6A8%=EH^AkQV*Zo$eAWO0!znQr8QaF@ zBvNDP_uk!Jc%hEAj@nl00LXE>a99F$!PC1=vdCCdfD#|>o~vvl#cwQoOY8f%mbJ7L z6VPISWyXTq=YI`u13IHiL2jzeySJ1+&I@NObm;6=`9|hk4a`1kPHdqz_o^`4IIpPct&Ar2dlr%ZE*}QpF5aJ)I+xwtb;~Fx!wi`z1*2^dGQ{Y zMD1W0FB_`O2gcaOgAW4EBG!NS2-&1|T0|s(qA+<&HwB z{UUUFvp)rEI%HpFlwlyUHj4pcTJRC;X&QP+IM^J$Tk>rlS)X?HXn(SDLYf?r3Md3e z7>U`UK1>oIr0H_R3$OC|T?)j;k=)ato*DxO^Jr1~kGIrn<*K{pYQa2MdTQo*=8M&C zU(9B)9mj}zJR~eJzoNmrHQfHZmSejl={r;-3*5=YO?(KxdV7~33{si^B>d4S_V%-U z$Cw-7Ny}YrRD^ovMr&7_wnTzfgBMpHHz&G=0@rrQG;#y;e4rzj)Sz%fv3gws1~Ypd zDUo;2O))t8xsFz4B{HpVtW>oqrBmSwAC5&aaYOjDTyGG9r)E|t+VgavP;h;8?NKl~ z;y<61STne{rHx_NPc zfE-lEHF^+%$R5c3qII>Vz1#H8)5aSN+5xneL;0dS&?7f#_~WVh+7B9f5WLJR@61K5oMH8z=s;g}kt{tm>T_~& ze0_bHoaS)zDKYMsn81B;H$W{j%1}EB;qZP5qqoGU%e0AE!*z~5{p$7SxJNqcv+N}$ znXbw9mB`KaJU4=y~q6K`cC|eEPEmupspYP5MA!eSftT3o% z>#X6S$iB+UMJIbqD=GlxocEJ5^$Qz_!~V^t*WZyN`TQzfEGf2Shmkxp=1kAgeKVxs z{Ym(nx=@^WjZy*KI2$Gs8#m<77G0k1vJ6ny`6d_+Uvw-%chMZ$Il#iuGsq??!4S1_ zcn}XzN^SG220z}az3x%K+#MN_I;M2Z9^BJ2rys#>9g|9AnsGsxwxioVlv~vUvqTnb3o; z1*JtF(SmGJ&=3B(WEw<>J9CI>pTcr$fOVu0gWF{?yNIK7|1|RQMJ(S7<5%Wymw6qn zgF7Dy)5A%A5y|F@P3oz6>-;PBTqyTxFAy_z_Mh?wNBa5wuV2$%#vcB>=@>oiM*rmV z=cLpU2TR)++kM$3Ca?>*|FS2u^wi99M^ZPvfsE6x`!XY6j;u6SGx&2G0T|6e>jG{$ zy>t1Hh;8pYYpIw_o76T^!nPovDa(4iHM4d0Iq4ua*Ih~~1h1?gj0Y@_#I`MH#0-J* zV*;6^>HV>RgT>&#Jv9an2613&I+=b`?_c%Q=$yA7RK)2) zg#`49+I$*n_~J{f5SR)j$4HUv*JQz%EoT`!`x1oeL38kAkq|R1y{5 z>_=p%YDl~u77BUXzfhY&s5H-NMAvNeTrosSTN+e9(Z}Pa6zLT$veG3kCtglYl3N?^ z?Nm3VERztL2Me)TFY?WYqWWv`SrMx+W-xQHJ-=pjSq#D}27j(*0@UVe7%!aSd0oKh zM@?jZw#l@u5+nV*+!h+nBEu*(ZsXl%M;Gn^`x+yozwZi=VKgg#!GQ8}w4(?fT-5F6 zWw$f<&VK1j2Mx6P=lfs=%XW(>9tt~}6jQGiE7@;-FsK;dP)M0BR{q|aCE4mS!Dx^@ zDvyI3)I2vH4fZ7Gt9*X=ArQodyPr;fdrQCC=kbWwz`@k?rLS$1Jf>68Nm9+~@c8k@ z3f`AZvcaF_C;@DLv4eBkZjwU+v@_3c_&(d?lHE4}3fWyB>dI&;VAnsR{l6ZfhSsxi zfl!nhQ_>d3NhZMrI?l?PiAZLbE!(!Eko0d)je&ziVne-0SGfXOeAQDkFO>E+78Q7K z&~Y&4fye0^=AUIbl|JM|!O_)PN{}r;gVx5xru3?sx|I~dP}jwFcWC9}ulILCkJiwg zTZ5;6Q60}kW5idY?UROOFe#`84)Wll=3oP3so^9)yt5fN7`w7c=+FVi7hw?_D<$Zf zbnty?QC!$YJ)NfPqCAA5wL3qJ(IvrlLda2y&qOsn7z1_O;*3WV%kP6f@&&$V%F~lV z#r3{oBJa~r;?+f;Yp(+GY=E*bg0(DN%hTLS-D9_E3z;~IjG{ESUnd(3FOp^N>I+A* zM`T(T`E(DY|H9f~&JZ>D^x1B<(+WPmG+)|ru?0SCn#4s2)iaT_F2t7JQo)rlW}SJ@ zG#SH^J(I$p?3@0bQI_N(Y{%gY(+A5B8JPfW-ip0&ekh|QjuEuIc>h>el8w6+V~W%! zLVXnpmW0Cq7Px=NOp1*(l7G*nO0(ZMSa_Y!KTi^ShcDlbMQ*u6HK#dy&$rwqp2bd+ zT=c;&CTDSiJfA^R-5k@;af~zgGso={JE{rE8;>rOL~%bOL`pD_NP+u2dr0a<(6^(2 zK{OA#lA{2GKml;5MJUA@bow}D%d;R*`G9aNK!W{pdugBN3>^Hor$(cZVdTjyi`ToL z_^PL-T!rM%`&0R;WZJ%jFgSEVEGF~71U6&stD3FsL|L`CSt|CPt$afcjt+JX#)2pY z`@62ivt|RZW?)fiiv#6~{;uDP&4g~8jRI+1GnD4`*HzShFM{A=%_R(%;b2-&epKi2 zvfHs!Ax8Kxe3YE1PWnX;x^7*5x-Q>qpJ7}B4%9?A90`Y~d;}KUiYpQbRaOMCodyy; zzNTI7`rdSlMJ;%Jr3GdN4n9w1(ZE6ABZ!1(fG{Pz_qr3mv(L$LY0v9@+ohUd&GSPT zP(RVdav?UxV&M(pI>HfMKKKK~MFR&j6o7hmZSS)bj|heyOwe2)(HZxYCforK_Jb%Y znPA!xiZJ&5gl-a}$jZ%)1Q{T3=cEkc8s_x`-;oLuYq756I_4nN|B~Ru$%@3lG0OgB za@5gFdOZ8B_?)-scEL{{(z%d-zYr!cq_Z{yx}E43!Zip!2l+STiR^1(eD)4gNf^SrK*{E^46h=v+HsSn+{h z!8~Q&+hfo?mfYE-B*3xV*>m31b~Y40hQ@tCD8O0W15Pv4@%u&EM55d;GrCA4$RL+B zaB#UxEd1_k;{b3>wz-U2`{Sv>FYxiwQ}bBbn~W$lo%uw#JWoX~ANGuj75vx2%Z;ag z|8!Fl=%H%N4N>q^xJYFz3v6Anxjto?v0lM`L>Zy?xkU|uh1==cr_9}{@iZo4^Q26P z{^9RD#@=a|V+QQ@)lh4#of@LPFWPp&!vZoAC;R6r{PO&Qnm9X%N;z$dDSg=iC zivVqPH?$DtS^IfDFow)%%^i+6t&!(Sv@@^DCI1b{AvF<9R4n7-vt|jnsPV&|-v$|j zSrgvjVWxRNkS%{vX-<)i0$!=fD>87es195B$<8LC0={!YeRD15A$Gvs3$J}M&PmzYl`uT8D2b}7`A$R$s@vGOsiAIcZM^9Y ziah%5QXK-9IEWS^~pAqVfkd4$LM|#`po3;+k5l+LPn)KYpe3;0I^9}q#x8$ z=9*&DZK>&-*+vnDJ6j{M5wPZ%yk(awpf(PXqaK`#q{k#5ZR3_WG@|Oyg&1R=ynF+y z0VBuzBb%l=Z1kOR1|(3+^9!jXjgqaax^rNw3w6KMz`^AXm7q{pt3S^>Soj`TcQF;w zL(>6_>zX3D>Bk&|)z!|k$4)K-RPFHuQQmW0db$Y~m_kqw2*Y|KoNZ0A43=KiuZ0xR z#b^iw)1qZyA;ICAf4*s@kWp%jtN3iH6dyC^z*nOG-1gNHtf3HxuPi3RK)7s7hG* zo)R3Lcn*FJq{uzI#`wuk$M*t|E9ZI zL%Ut|+Pe~6LRWtDsuJ8~!f9TJ8aU`(=5HAPjt8FjkYv!QM!DqPwe^$t-TRpTcpl;o zG9hk%kYR*I0JgaULKO}h?=Z^JM+u>l*U)wM-{QcLU^mP#S-=rRDrVSuU*xXvwcNrS zA~EB4IwcY!t&H>r~aqpC}R7w zOY9p_{k^EIOtZ6DRu#_z7t4%=U}XzeX8~1O#22!m2N#2+V^B<)hh-F8@@K6ByY@*! z`4V+TD9o1xf)4E@1QuvG=^HKXqdU8MdtT78{nHGTXK5$3#hZZOnlGb@h>ogYKyusC z5Q6~Uj~CBLcG-w(;NUAyjb9*&s_`^Z-~M=N(4#3-E1F~D6JnyxJ*GO55}vXZc?wup zeT>|xPVM!%Pq8U^b{H}_5g)$XCAO~=CBZYNB5ArHoBR`399rfvmZC@CNKJfb5Nb+y zeYEY8qwqq?ElX`I3%nWbDIHN)&$?{b5t#DZz>^H%=hS0-BA#8@J`}1$K6w2}g-1Ul z-FZstl8Yc9?|qif}MO-{nbH(f)c>ej@WXSI47E-aU}QQ ztpF)p_VC=^mG1$+wIz$*j(rj0 zTGLFnx5uIT?F0wCq|C+P$8m}spPDc1X@qPH&%Qh=g}Y*rd*X{`qOM=feOt})!}I>; ztXaV}3X^D{@(%vnGmbfxxk(tl+9j5{Ybo>8LdiZ_2rM!pFvo)R`L631f?1ZGTuVK; zKKV~yo19TTL*m`>qb(HzwDQGDD-c^TpeC*I(cOsTX;^};$+F+7 zuD0TahT9=jf<@mu0wrzu?TZ!|eG+=(kvuK;BT}|$c?yi>QTiP-MP}}Nr$;M?KRyhf ztz0YJoE{S`QX4^ufRYY5I>m81y*>0qUZ73}s z0E>%An79i6I$zW!vhQ7Eo=Gn|2ckOvAf|=YI8={^Xhql{(C4gq4gy4(c3mEf6UGyF z1Bf8rp$%csUEm$;*($iUh@~DhH@eXx-6I=XaAp79j*XONpr0JaXwE^gWg*yp>=b@7 z-;)K7)b%60v44CKTAaqPP_<;yUN>)@EQkU_^ zB@S+QTwYEj$LmKELp<_hsx+U=^KsYVaCNl%@i5G6RW-*=o@vAg`^W1GCNLHh+Xau! zc0(C@jE84nNc@$#jyZgJd2pB)!u3x~9Ipy@IplqT=t`5H0uJTZxOPOQQBm$AUx*(K z{9czmmV2bD{A$yNCc9kozJ2DJrIOv$vjkyY;RmP^``u|fA@B9)$d3{qF4{W`-Vb{H zJN+EhwS~9b&tcl)$g=%Gn0puqOHYlk?5T0gloq|b`%+`bjr-Tj_rZiUg2OZ>y%eQU z9Ls^8Tz(D{yW6E^uVc+KRjFZL)i>u_bI$t@t0@=?832?S@(I|iB{vEd zu;3|r`Ohx#zn+>tOwg>~Y3~q4@};j09IJV5(7ZRX$L~kKI!W>VDgEs+@puYy1KJ4< zVgtpPK@%s%htpT%2p9L_nihn?HN;M6rm5sP^^?M{{em#yn@THPa24XlUp5(vZ90_m z$5Ub$o4emHP+S`i#4FEO5>~n@IG?@fK_YXKWD{Ls+w&yP_;*_2`B6OE0zY=EEwyHY z#K4|ON}w?@Jd>4(CAF$GM4qT@1VN}{cQkYrh0hK*i8?=`E^OiM$lYvrBOu);_bY4C zwI@Y(LG6cX%#BZ$LZxK4`QP0A_TqgtN16u{s)gZJ z*U5*!1&GjUXXby;2F4X2i94VBvI{F#_g~WOUSL(~C?V=<rVA{C1)A4P(vD09@8TH7$C8^|IChNb?<{i=t{`ii86$*W#NhQ`2c`-LtKZnDN8jrwx~JHvZ%iJ7c||t6I(;d5{0})Z`2tynjk6>)_XZ^!L3esW0_l zDa~R-&iS@Z3AM_SKZE0-#sGE(;Xbbnt85Tr_e=&eFlVWp1IiKoEeTcD(;?RO_JW^A?!*G!_$&tpHHu;@zyVL!O>aWM;0s14hp z%!VE;vc}oqJCD1>-QqZ0P^qc%?u5rfHX!Y@=IUaGGhUyQ#TNnEwWNi)h6#Y{2#m1NnN719oo|-jRh2X9*z1I zcNE*MEA%4fzK1jxof9hc2(Ao&cGN|*xPdF@f|hG5AKoI9xi+SLB0$dtB7;m;cSM-F*{i!6 zVyy?JzLn-$@$G=c0nzbc0kQWz8~5%OWIL7#-SHEAGhZctGUw@*T%`wJ%W|{*hSZ-Q z*qd zZ3jeF8fFsBF98s<#))CaYjFMmOyg2b#l2_t^**K5?oJ1_$c3 zNL~Vc1q&LOs^q|HoF8&)e)P}J>OY>E7>9V8S2nMt8&BuycV8P-0H*Sq(2sOA{{l0*h+hOoS+9j@TnQ#m@d8Ti@B%Ho8Tt zVoUCXj%f~Q)KEfzWI_h_Uesk<#j@mvdoQvr{q-v|XXebk_k86s#=xt+)_V8eYsJ!Q zvlLsn_KjXg1`Z+*Kzxy~9i62J??nda>1JQ0c<6#-TdC5qf&0%kUD9{rJr zkLjR4ou)_efX#{QbC3&SXdqeiqQ_{CS%iaY=LO2NlpV1j0A^ArRCF7r%RsauoZP@?2Wt-RcgX~bptTR$sE;IDOJ2d4Son+RqXhiVX zf5ydecy{(Hk1k(Cr60;uJuCno%4>Uriuf8m&uZ10E!I%7i1E%JT@?`-eYY=z23n2P zVAEUT-JTnAvtG+Js|`zFqLJjdo^2FQwzsrpwh8KoKcO+fq99w@bHWez%2>eC&niyytXd_4_h#{6K!&EI+owI{S33Ae%5`zhc6V0@A@JnyZ-wt zoh>v9yS8Rkd}-P7TnBCPlffnNhpOgVpzyQQPh!s$<|E7C?)H1Eq7>qXKV`c3TW$!G zl`pZ%ud>}&)8H$A{%rORFkUOIdCWT^v3!l5I63leSE+k19TEPZg|p4QYW==$iXs1Q+A@ z<-h#-lagLvs zj{OB_$~?X7>Pa0)@6JY(caWM31d|1WKU<=Vr(r0WsdI)i3|epJ1^4%L^jzXs{u?ex zTP4BqezYn;a>>CWL$Ux%;q~s4?5_1NbHQK*XBO-gt%%>q0Rue_MNm1$v*kVVtGu0N zCpvq)4w8AFC^{;={B!2$ivuZT(G4>s-nShwK_g|?fu85QUbE0fIGaOXaC6}2 zrEW!WplgG2mdHzXvdVVPw&&SzozJ;^71a`tkQbNU1AKM3xI0_yOVwP2U**(vECaFS zQOF`k^DmvR33)QePQDZ(wB2SD%OQ`Z?Ju$r5^AyS6y5$9ma@KVtBd$)w(gwheY~cA z%(jt%Q=xOKd(n$)y+YQ@YkSyiv4PtJnnffyw)kiVe9l>wrw_`CT6nR!24o3O9_?|W zKFNQ7GJ7Mek5g&q^56a&WdjE_uNW95@c)_DHcqRNsb{op)PHtD=W@$beyjhM*XBNQ zTPb$cPhp_ISJ8oGIGFV1;COd`OC$i#GJU9;MyVY!VRpm2+9+Mh*n{`GaL~L1CpkZG z+%`(Vd4W|7?H4?L%c=RtpZ{#Nvdy26Sb=8d8S1axQsVbtc@yFUi=94!K9 zm&C zF1(M~b2hBpNm99n-(<6UQysh*JDsuI9mJTM?*MH@6O`Wl8t8>*c|Z*1YM54&yF5m_NZER52GmgYPH!kV(R8@@&eYJQ`|yig zQBOo*N`XKL%_-abFU`MXd-O(VngZXAeAb}$=0g>T=!wAY|IBNPreQV3Ca%0A&cML~ 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

D>6mx_W08HI`7od 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