@@ -1300,6 +1300,32 @@ public CheckoutPaymentMethod deserialize(JsonParser jp, DeserializationContext c
13001300 log .log (Level .FINER , "Input data does not match schema 'UpiIntentDetails'" , e );
13011301 }
13021302
1303+ // deserialize UpiQrDetails
1304+ try {
1305+ boolean attemptParsing = true ;
1306+ if (attemptParsing ) {
1307+ // Checks if the unique type of the oneOf json matches any of the object TypeEnum values
1308+ boolean typeMatch = false ;
1309+ if (tree .findValue ("type" ) != null ) {
1310+ typeMatch =
1311+ Arrays .stream (UpiQrDetails .TypeEnum .values ())
1312+ .anyMatch ((t ) -> t .getValue ().equals (tree .findValue ("type" ).asText ()));
1313+ }
1314+
1315+ if (typeMatch ) {
1316+ deserialized = tree .traverse (jp .getCodec ()).readValueAs (UpiQrDetails .class );
1317+ // TODO: there is no validation against JSON schema constraints
1318+ // (min, max, enum, pattern...), this does not perform a strict JSON
1319+ // validation, which means the 'match' count may be higher than it should be.
1320+ match ++;
1321+ log .log (Level .FINER , "Input data matches schema 'UpiQrDetails'" );
1322+ }
1323+ }
1324+ } catch (Exception e ) {
1325+ // deserialization failed, continue
1326+ log .log (Level .FINER , "Input data does not match schema 'UpiQrDetails'" , e );
1327+ }
1328+
13031329 // deserialize VippsDetails
13041330 try {
13051331 boolean attemptParsing = true ;
@@ -1692,6 +1718,11 @@ public CheckoutPaymentMethod(UpiIntentDetails o) {
16921718 setActualInstance (o );
16931719 }
16941720
1721+ public CheckoutPaymentMethod (UpiQrDetails o ) {
1722+ super ("oneOf" , Boolean .FALSE );
1723+ setActualInstance (o );
1724+ }
1725+
16951726 public CheckoutPaymentMethod (VippsDetails o ) {
16961727 super ("oneOf" , Boolean .FALSE );
16971728 setActualInstance (o );
@@ -1768,6 +1799,7 @@ public CheckoutPaymentMethod(ZipDetails o) {
17681799 schemas .put ("TwintDetails" , new GenericType <TwintDetails >() {});
17691800 schemas .put ("UpiCollectDetails" , new GenericType <UpiCollectDetails >() {});
17701801 schemas .put ("UpiIntentDetails" , new GenericType <UpiIntentDetails >() {});
1802+ schemas .put ("UpiQrDetails" , new GenericType <UpiQrDetails >() {});
17711803 schemas .put ("VippsDetails" , new GenericType <VippsDetails >() {});
17721804 schemas .put ("VisaCheckoutDetails" , new GenericType <VisaCheckoutDetails >() {});
17731805 schemas .put ("WeChatPayDetails" , new GenericType <WeChatPayDetails >() {});
@@ -1792,8 +1824,8 @@ public Map<String, GenericType<?>> getSchemas() {
17921824 * PayByBankAISDirectDebitDetails, PayByBankDetails, PayPalDetails, PayPayDetails, PayToDetails,
17931825 * PayUUpiDetails, PayWithGoogleDetails, PaymentDetails, PixDetails, PseDetails,
17941826 * RakutenPayDetails, RatepayDetails, RivertyDetails, SamsungPayDetails, SepaDirectDebitDetails,
1795- * StoredPaymentMethodDetails, TwintDetails, UpiCollectDetails, UpiIntentDetails, VippsDetails ,
1796- * VisaCheckoutDetails, WeChatPayDetails, WeChatPayMiniProgramDetails, ZipDetails
1827+ * StoredPaymentMethodDetails, TwintDetails, UpiCollectDetails, UpiIntentDetails, UpiQrDetails ,
1828+ * VippsDetails, VisaCheckoutDetails, WeChatPayDetails, WeChatPayMiniProgramDetails, ZipDetails
17971829 *
17981830 * <p>It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a
17991831 * composed schema (allOf, anyOf, oneOf).
@@ -2035,6 +2067,11 @@ public void setActualInstance(Object instance) {
20352067 return ;
20362068 }
20372069
2070+ if (JSON .isInstanceOf (UpiQrDetails .class , instance , new HashSet <>())) {
2071+ super .setActualInstance (instance );
2072+ return ;
2073+ }
2074+
20382075 if (JSON .isInstanceOf (VippsDetails .class , instance , new HashSet <>())) {
20392076 super .setActualInstance (instance );
20402077 return ;
@@ -2061,7 +2098,7 @@ public void setActualInstance(Object instance) {
20612098 }
20622099
20632100 throw new RuntimeException (
2064- "Invalid instance type. Must be AchDetails, AffirmDetails, AfterpayDetails, AmazonPayDetails, AncvDetails, AndroidPayDetails, ApplePayDetails, BacsDirectDebitDetails, BillDeskDetails, BlikDetails, CardDetails, CashAppDetails, CellulantDetails, DokuDetails, DragonpayDetails, EBankingFinlandDetails, EcontextVoucherDetails, EftDetails, FastlaneDetails, GenericIssuerPaymentMethodDetails, GooglePayDetails, IdealDetails, KlarnaDetails, MasterpassDetails, MbwayDetails, MobilePayDetails, MolPayDetails, OpenInvoiceDetails, PayByBankAISDirectDebitDetails, PayByBankDetails, PayPalDetails, PayPayDetails, PayToDetails, PayUUpiDetails, PayWithGoogleDetails, PaymentDetails, PixDetails, PseDetails, RakutenPayDetails, RatepayDetails, RivertyDetails, SamsungPayDetails, SepaDirectDebitDetails, StoredPaymentMethodDetails, TwintDetails, UpiCollectDetails, UpiIntentDetails, VippsDetails, VisaCheckoutDetails, WeChatPayDetails, WeChatPayMiniProgramDetails, ZipDetails" );
2101+ "Invalid instance type. Must be AchDetails, AffirmDetails, AfterpayDetails, AmazonPayDetails, AncvDetails, AndroidPayDetails, ApplePayDetails, BacsDirectDebitDetails, BillDeskDetails, BlikDetails, CardDetails, CashAppDetails, CellulantDetails, DokuDetails, DragonpayDetails, EBankingFinlandDetails, EcontextVoucherDetails, EftDetails, FastlaneDetails, GenericIssuerPaymentMethodDetails, GooglePayDetails, IdealDetails, KlarnaDetails, MasterpassDetails, MbwayDetails, MobilePayDetails, MolPayDetails, OpenInvoiceDetails, PayByBankAISDirectDebitDetails, PayByBankDetails, PayPalDetails, PayPayDetails, PayToDetails, PayUUpiDetails, PayWithGoogleDetails, PaymentDetails, PixDetails, PseDetails, RakutenPayDetails, RatepayDetails, RivertyDetails, SamsungPayDetails, SepaDirectDebitDetails, StoredPaymentMethodDetails, TwintDetails, UpiCollectDetails, UpiIntentDetails, UpiQrDetails, VippsDetails, VisaCheckoutDetails, WeChatPayDetails, WeChatPayMiniProgramDetails, ZipDetails" );
20652102 }
20662103
20672104 /**
@@ -2075,8 +2112,8 @@ public void setActualInstance(Object instance) {
20752112 * PayByBankDetails, PayPalDetails, PayPayDetails, PayToDetails, PayUUpiDetails,
20762113 * PayWithGoogleDetails, PaymentDetails, PixDetails, PseDetails, RakutenPayDetails,
20772114 * RatepayDetails, RivertyDetails, SamsungPayDetails, SepaDirectDebitDetails,
2078- * StoredPaymentMethodDetails, TwintDetails, UpiCollectDetails, UpiIntentDetails, VippsDetails ,
2079- * VisaCheckoutDetails, WeChatPayDetails, WeChatPayMiniProgramDetails, ZipDetails
2115+ * StoredPaymentMethodDetails, TwintDetails, UpiCollectDetails, UpiIntentDetails, UpiQrDetails ,
2116+ * VippsDetails, VisaCheckoutDetails, WeChatPayDetails, WeChatPayMiniProgramDetails, ZipDetails
20802117 *
20812118 * @return The actual instance (AchDetails, AffirmDetails, AfterpayDetails, AmazonPayDetails,
20822119 * AncvDetails, AndroidPayDetails, ApplePayDetails, BacsDirectDebitDetails, BillDeskDetails,
@@ -2088,7 +2125,7 @@ public void setActualInstance(Object instance) {
20882125 * PayToDetails, PayUUpiDetails, PayWithGoogleDetails, PaymentDetails, PixDetails, PseDetails,
20892126 * RakutenPayDetails, RatepayDetails, RivertyDetails, SamsungPayDetails,
20902127 * SepaDirectDebitDetails, StoredPaymentMethodDetails, TwintDetails, UpiCollectDetails,
2091- * UpiIntentDetails, VippsDetails, VisaCheckoutDetails, WeChatPayDetails,
2128+ * UpiIntentDetails, UpiQrDetails, VippsDetails, VisaCheckoutDetails, WeChatPayDetails,
20922129 * WeChatPayMiniProgramDetails, ZipDetails)
20932130 */
20942131 @ Override
@@ -2615,6 +2652,17 @@ public UpiIntentDetails getUpiIntentDetails() throws ClassCastException {
26152652 return (UpiIntentDetails ) super .getActualInstance ();
26162653 }
26172654
2655+ /**
2656+ * Get the actual instance of `UpiQrDetails`. If the actual instance is not `UpiQrDetails`, the
2657+ * ClassCastException will be thrown.
2658+ *
2659+ * @return The actual instance of `UpiQrDetails`
2660+ * @throws ClassCastException if the instance is not `UpiQrDetails`
2661+ */
2662+ public UpiQrDetails getUpiQrDetails () throws ClassCastException {
2663+ return (UpiQrDetails ) super .getActualInstance ();
2664+ }
2665+
26182666 /**
26192667 * Get the actual instance of `VippsDetails`. If the actual instance is not `VippsDetails`, the
26202668 * ClassCastException will be thrown.
0 commit comments