Class ChipDnaMobileSerializer


  • public class ChipDnaMobileSerializer
    extends java.lang.Object
    Utility class for serializing and deserializing ChipDNA Mobile data objects to/from XML format.

    This class provides static methods for converting ChipDNA Mobile data structures to XML strings and converting XML strings back into various ChipDNA Mobile data structures (such as receipt data, card hashes, device status, etc.).

    All public methods in this class are static and thread-safe for XML serialization and deserialization operations.

    Since:
    16/07/2017
    Author:
    Creditcall
    • Field Detail

      • ReceiptItemIdTag

        public static final java.lang.String ReceiptItemIdTag
        See Also:
        Constant Field Values
      • ReceiptInclusionTag

        public static final java.lang.String ReceiptInclusionTag
        See Also:
        Constant Field Values
      • ReceiptPriorityAttribute

        public static final java.lang.String ReceiptPriorityAttribute
        See Also:
        Constant Field Values
      • CardHashScopeAttribute

        public static final java.lang.String CardHashScopeAttribute
        See Also:
        Constant Field Values
      • CardHashSourceAttribute

        public static final java.lang.String CardHashSourceAttribute
        See Also:
        Constant Field Values
      • CardTokenAlgorithmAttribute

        public static final java.lang.String CardTokenAlgorithmAttribute
        See Also:
        Constant Field Values
      • CardTokenKeyAttribute

        public static final java.lang.String CardTokenKeyAttribute
        See Also:
        Constant Field Values
      • FeatureTokensTag

        public static final java.lang.String FeatureTokensTag
        See Also:
        Constant Field Values
      • VersionInformationTag

        public static final java.lang.String VersionInformationTag
        See Also:
        Constant Field Values
      • ApplicationNameTag

        public static final java.lang.String ApplicationNameTag
        See Also:
        Constant Field Values
      • DeviceStatusRootTag

        public static final java.lang.String DeviceStatusRootTag
        See Also:
        Constant Field Values
      • DeviceStatusNameTag

        public static final java.lang.String DeviceStatusNameTag
        See Also:
        Constant Field Values
      • DeviceStatusMakeTag

        public static final java.lang.String DeviceStatusMakeTag
        See Also:
        Constant Field Values
      • DeviceStatusModelTag

        public static final java.lang.String DeviceStatusModelTag
        See Also:
        Constant Field Values
      • DeviceStatusFirmwareNameTag

        public static final java.lang.String DeviceStatusFirmwareNameTag
        See Also:
        Constant Field Values
      • DeviceStatusFirmwareVersionTag

        public static final java.lang.String DeviceStatusFirmwareVersionTag
        See Also:
        Constant Field Values
      • DeviceStatusOperatingSystemVersionTag

        public static final java.lang.String DeviceStatusOperatingSystemVersionTag
        See Also:
        Constant Field Values
      • DeviceStatusKernelsHashTag

        public static final java.lang.String DeviceStatusKernelsHashTag
        See Also:
        Constant Field Values
      • DeviceStatusRevisionTag

        public static final java.lang.String DeviceStatusRevisionTag
        See Also:
        Constant Field Values
      • DeviceStatusRawBatteryChargePercentageTag

        public static final java.lang.String DeviceStatusRawBatteryChargePercentageTag
        See Also:
        Constant Field Values
      • DeviceStatusBatteryChargePercentageTag

        public static final java.lang.String DeviceStatusBatteryChargePercentageTag
        See Also:
        Constant Field Values
      • DeviceStatusBatteryChargingStatusTag

        public static final java.lang.String DeviceStatusBatteryChargingStatusTag
        See Also:
        Constant Field Values
      • DeviceStatusBatteryChargingStatusUpdateDateTimeTag

        public static final java.lang.String DeviceStatusBatteryChargingStatusUpdateDateTimeTag
        See Also:
        Constant Field Values
      • DeviceStatusBatteryChargingStatusUpdateDateTimeFormatTag

        public static final java.lang.String DeviceStatusBatteryChargingStatusUpdateDateTimeFormatTag
        See Also:
        Constant Field Values
      • DeviceStatusSerialNumTag

        public static final java.lang.String DeviceStatusSerialNumTag
        See Also:
        Constant Field Values
      • DeviceStatusAvailabilityErrorTag

        public static final java.lang.String DeviceStatusAvailabilityErrorTag
        See Also:
        Constant Field Values
      • DeviceStatusErrorInformationTag

        public static final java.lang.String DeviceStatusErrorInformationTag
        See Also:
        Constant Field Values
      • DateTimeFormatTag

        public static final java.lang.String DateTimeFormatTag
        See Also:
        Constant Field Values
      • RequestQueueStatusTag

        public static final java.lang.String RequestQueueStatusTag
        See Also:
        Constant Field Values
      • TotalNumberOfPendingRequestsTag

        public static final java.lang.String TotalNumberOfPendingRequestsTag
        See Also:
        Constant Field Values
      • TotalNumberOfFailedRequestsTag

        public static final java.lang.String TotalNumberOfFailedRequestsTag
        See Also:
        Constant Field Values
      • PendingRequestsStorageLimitTag

        public static final java.lang.String PendingRequestsStorageLimitTag
        See Also:
        Constant Field Values
      • TotalPendingValueStoredTag

        public static final java.lang.String TotalPendingValueStoredTag
        See Also:
        Constant Field Values
      • TotalFailedValueStoredTag

        public static final java.lang.String TotalFailedValueStoredTag
        See Also:
        Constant Field Values
      • PendingRequestValueLimitTag

        public static final java.lang.String PendingRequestValueLimitTag
        See Also:
        Constant Field Values
      • OldestPendingRequestDateTimeTag

        public static final java.lang.String OldestPendingRequestDateTimeTag
        See Also:
        Constant Field Values
      • PendingRequestTotalsByRequestTypeTag

        public static final java.lang.String PendingRequestTotalsByRequestTypeTag
        See Also:
        Constant Field Values
      • FailedRequestTotalsByRequestTypeTag

        public static final java.lang.String FailedRequestTotalsByRequestTypeTag
        See Also:
        Constant Field Values
      • PendingRequestVolumesByRequestTypeTag

        public static final java.lang.String PendingRequestVolumesByRequestTypeTag
        See Also:
        Constant Field Values
      • FailedRequestVolumesByRequestType

        public static final java.lang.String FailedRequestVolumesByRequestType
        See Also:
        Constant Field Values
      • FailedOfflineRequestsTag

        public static final java.lang.String FailedOfflineRequestsTag
        See Also:
        Constant Field Values
      • FailedRequestTag

        public static final java.lang.String FailedRequestTag
        See Also:
        Constant Field Values
      • LastConfigUpdateDateTimeTag

        public static final java.lang.String LastConfigUpdateDateTimeTag
        See Also:
        Constant Field Values
      • DaysUntilConfigUpdateRequiredTag

        public static final java.lang.String DaysUntilConfigUpdateRequiredTag
        See Also:
        Constant Field Values
      • RequiredConfigUpdateDateTimeTag

        public static final java.lang.String RequiredConfigUpdateDateTimeTag
        See Also:
        Constant Field Values
      • PaymentPlatformStatusTag

        public static final java.lang.String PaymentPlatformStatusTag
        See Also:
        Constant Field Values
      • AvailabilityStateTag

        public static final java.lang.String AvailabilityStateTag
        See Also:
        Constant Field Values
      • LocalDateTimeFormatTag

        public static final java.lang.String LocalDateTimeFormatTag
        See Also:
        Constant Field Values
      • LocalDateTimeTag

        public static final java.lang.String LocalDateTimeTag
        See Also:
        Constant Field Values
      • PaymentPlatformStatusCheckDateTimeFormatTag

        public static final java.lang.String PaymentPlatformStatusCheckDateTimeFormatTag
        See Also:
        Constant Field Values
      • PaymentPlatformStatusCheckDateTimeTag

        public static final java.lang.String PaymentPlatformStatusCheckDateTimeTag
        See Also:
        Constant Field Values
      • TerminalStatusTag

        public static final java.lang.String TerminalStatusTag
        See Also:
        Constant Field Values
      • TransactionKeyTag

        public static final java.lang.String TransactionKeyTag
        See Also:
        Constant Field Values
      • WebMisUsernameTag

        public static final java.lang.String WebMisUsernameTag
        See Also:
        Constant Field Values
      • WebMisPasswordTag

        public static final java.lang.String WebMisPasswordTag
        See Also:
        Constant Field Values
      • AvailableCurrenciesTag

        public static final java.lang.String AvailableCurrenciesTag
        See Also:
        Constant Field Values
      • PaymentMethodAttribute

        public static final java.lang.String PaymentMethodAttribute
        See Also:
        Constant Field Values
      • NumericCodeAttribute

        public static final java.lang.String NumericCodeAttribute
        See Also:
        Constant Field Values
      • CharCodeAttribute

        public static final java.lang.String CharCodeAttribute
        See Also:
        Constant Field Values
      • ExponentAttribute

        public static final java.lang.String ExponentAttribute
        See Also:
        Constant Field Values
      • EnabledAttribute

        public static final java.lang.String EnabledAttribute
        See Also:
        Constant Field Values
      • AvailableApplicationsTag

        public static final java.lang.String AvailableApplicationsTag
        See Also:
        Constant Field Values
      • ApplicationNameAttribute

        public static final java.lang.String ApplicationNameAttribute
        See Also:
        Constant Field Values
      • ApplicationPriorityAttribute

        public static final java.lang.String ApplicationPriorityAttribute
        See Also:
        Constant Field Values
      • PinPadConnectionTypeAttribute

        public static final java.lang.String PinPadConnectionTypeAttribute
        See Also:
        Constant Field Values
      • CategoryCodeAttribute

        public static final java.lang.String CategoryCodeAttribute
        See Also:
        Constant Field Values
      • TransactionTypesTag

        public static final java.lang.String TransactionTypesTag
        See Also:
        Constant Field Values
      • TransactionTypeTag

        public static final java.lang.String TransactionTypeTag
        See Also:
        Constant Field Values
      • FileNameAttribute

        public static final java.lang.String FileNameAttribute
        See Also:
        Constant Field Values
      • FirmwareUpdateStatusTag

        public static final java.lang.String FirmwareUpdateStatusTag
        See Also:
        Constant Field Values
      • FilesRequiringUpdateTag

        public static final java.lang.String FilesRequiringUpdateTag
        See Also:
        Constant Field Values
      • DaysUntilFirmwareUpdateRequiredTag

        public static final java.lang.String DaysUntilFirmwareUpdateRequiredTag
        See Also:
        Constant Field Values
      • RequiredFirmwareUpdateDateTimeTag

        public static final java.lang.String RequiredFirmwareUpdateDateTimeTag
        See Also:
        Constant Field Values
    • Constructor Detail

      • ChipDnaMobileSerializer

        public ChipDnaMobileSerializer()
    • Method Detail

      • deserializeReceiptData

        public static java.util.Map<java.lang.String,​ReceiptField> deserializeReceiptData​(java.lang.String receiptDataXml)
                                                                                         throws org.xmlpull.v1.XmlPullParserException,
                                                                                                java.io.IOException
        Deserializes XML string containing receipt data into a Map of ReceiptField objects.
        Parameters:
        receiptDataXml - The XML string containing receipt data to be deserialized
        Returns:
        A Map where keys are receipt item IDs and values are ReceiptField objects
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
      • deserializeCardHashes

        public static java.util.List<CardHash> deserializeCardHashes​(java.lang.String cardHashXml)
                                                              throws org.xmlpull.v1.XmlPullParserException,
                                                                     java.io.IOException
        Deserializes XML string containing card hashes into a List of CardHash objects.
        Parameters:
        cardHashXml - The XML string containing card hash data to be deserialized
        Returns:
        A List of CardHash objects parsed from the XML
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
      • deserializeCardTokens

        public static java.util.List<CardToken> deserializeCardTokens​(java.lang.String cardTokenXml)
                                                               throws org.xmlpull.v1.XmlPullParserException,
                                                                      java.io.IOException
        Deserializes XML string containing card tokens into a List of CardToken objects.
        Parameters:
        cardTokenXml - The XML string containing card token data to be deserialized. Cannot be null.
        Returns:
        A List of CardToken objects parsed from the XML
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
        java.lang.NullPointerException - If cardTokenXml is null
      • serializeFeatureTokens

        public static java.lang.String serializeFeatureTokens​(java.util.List<FeatureToken> featureTokens)
        Serializes a List of FeatureToken objects into XML string format.
        Parameters:
        featureTokens - The List of FeatureToken objects to be serialized. Cannot be null.
        Returns:
        An XML string representation of the feature tokens
        Throws:
        java.lang.NullPointerException - If featureTokens is null
        java.lang.RuntimeException - If there is an error during XML serialization
      • deserializeVersionInformation

        public static VersionInformation deserializeVersionInformation​(java.lang.String versionInformationXml)
                                                                throws org.xmlpull.v1.XmlPullParserException,
                                                                       java.io.IOException
        Deserializes XML string containing version information into a VersionInformation object.
        Parameters:
        versionInformationXml - The XML string containing version information to be deserialized
        Returns:
        A VersionInformation object containing version, release name, and application name
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
      • deserializeDeviceStatus

        public static DeviceStatus deserializeDeviceStatus​(java.lang.String deviceStatusXml)
                                                    throws org.xmlpull.v1.XmlPullParserException,
                                                           java.io.IOException
        Deserializes XML string containing device status information into a DeviceStatus object.
        Parameters:
        deviceStatusXml - The XML string containing device status data to be deserialized
        Returns:
        A DeviceStatus object containing device information such as name, status, make, model, firmware details, battery information, etc.
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
      • deserializeFirmwareUpdateStatus

        public static FirmwareUpdateStatus deserializeFirmwareUpdateStatus​(java.lang.String firmwareUpdateStatusXml)
                                                                    throws org.xmlpull.v1.XmlPullParserException,
                                                                           java.io.IOException
        Deserializes XML string containing firmware update status into a FirmwareUpdateStatus object.
        Parameters:
        firmwareUpdateStatusXml - The XML string containing firmware update status data to be deserialized
        Returns:
        A FirmwareUpdateStatus object containing update requirements, dates, and files requiring updates
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
      • deserializeRequestQueueStatus

        public static RequestQueueStatus deserializeRequestQueueStatus​(java.lang.String requestQueueStatusXml)
                                                                throws org.xmlpull.v1.XmlPullParserException,
                                                                       java.io.IOException
        Deserializes XML string containing request queue status into a RequestQueueStatus object.
        Parameters:
        requestQueueStatusXml - The XML string containing request queue status data to be deserialized
        Returns:
        A RequestQueueStatus object containing information about pending and failed requests, storage limits, and request totals by type
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
      • deserializeTmsStatus

        public static TmsStatus deserializeTmsStatus​(java.lang.String tmsStatusXml)
                                              throws org.xmlpull.v1.XmlPullParserException,
                                                     java.io.IOException
        Deserializes XML string containing TMS status information into a TmsStatus object.
        Parameters:
        tmsStatusXml - The XML string containing TMS status data to be deserialized
        Returns:
        A TmsStatus object containing configuration update information and date/time details
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
      • deserializePaymentPlatformStatus

        public static PaymentPlatformStatus deserializePaymentPlatformStatus​(java.lang.String paymentPlatformStatusXml)
                                                                      throws org.xmlpull.v1.XmlPullParserException,
                                                                             java.io.IOException
        Deserializes XML string containing payment platform status into a PaymentPlatformStatus object.
        Parameters:
        paymentPlatformStatusXml - The XML string containing payment platform status data to be deserialized
        Returns:
        A PaymentPlatformStatus object containing availability state, date/time information, and any errors
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
      • deserializeTerminalStatus

        public static TerminalStatus deserializeTerminalStatus​(java.lang.String terminalStatusXml)
                                                        throws org.xmlpull.v1.XmlPullParserException,
                                                               java.io.IOException
        Deserializes XML string containing terminal status information into a TerminalStatus object.
        Parameters:
        terminalStatusXml - The XML string containing terminal status data to be deserialized
        Returns:
        A TerminalStatus object containing terminal configuration including ID, transaction key, API key, and WebMIS credentials
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
      • deserializeAvailableCurrencies

        public static java.util.HashMap<PaymentMethod,​java.util.ArrayList<Currency>> deserializeAvailableCurrencies​(java.lang.String availableCurrenciesXml)
                                                                                                                   throws org.xmlpull.v1.XmlPullParserException,
                                                                                                                          java.io.IOException
        Deserializes XML string containing available currencies into a HashMap mapping payment methods to currency lists.
        Parameters:
        availableCurrenciesXml - The XML string containing available currencies data to be deserialized
        Returns:
        A HashMap where keys are PaymentMethod enums and values are ArrayLists of Currency objects
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
      • deserializeAvailablePinPads

        public static java.util.HashMap<java.lang.String,​java.util.ArrayList<java.lang.String>> deserializeAvailablePinPads​(java.lang.String availablePinPadsXml)
                                                                                                                           throws org.xmlpull.v1.XmlPullParserException,
                                                                                                                                  java.io.IOException
        Deserializes XML string containing available pin pads into a HashMap mapping connection types to pin pad names.
        Parameters:
        availablePinPadsXml - The XML string containing available pin pads data to be deserialized. Can be null.
        Returns:
        A HashMap where keys are connection type strings and values are ArrayLists of pin pad names. Returns empty HashMap if input is null.
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
      • deserializeAvailableApplications

        public static java.util.ArrayList<Application> deserializeAvailableApplications​(java.lang.String availableApplicationsXml)
                                                                                 throws org.xmlpull.v1.XmlPullParserException,
                                                                                        java.io.IOException
        Deserializes XML string containing available applications into an ArrayList of Application objects.
        Parameters:
        availableApplicationsXml - The XML string containing available applications data to be deserialized
        Returns:
        An ArrayList of Application objects containing application names and priorities
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing
      • deserializeMerchantData

        public static MerchantData deserializeMerchantData​(java.lang.String merchantDataXml)
                                                    throws org.xmlpull.v1.XmlPullParserException,
                                                           java.io.IOException
        Deserializes XML string containing merchant data into a MerchantData object.
        Parameters:
        merchantDataXml - The XML string containing merchant data to be deserialized
        Returns:
        A MerchantData object containing a list of Merchant objects with their associated information
        Throws:
        org.xmlpull.v1.XmlPullParserException - If there is an error parsing the XML
        java.io.IOException - If there is an I/O error during parsing