@Override
    public Map<String, Map<String, Map<String, Class<?>>>> getDependentObjects() {

        return new HashMap<String, Map<String, Map<String, Class<?>>>>() {{
            put("PaymentType", new HashMap<String, Map<String, Class<?>>>() {{
                        put("CARD", new HashMap<String, Class<?>>() {{
                                    put("PaymentDetails", PayInPaymentDetailsCard.class);
                                }}
                        );
                        put("PREAUTHORIZED", new HashMap<String, Class<?>>() {{
                                    put("PaymentDetails", PayInPaymentDetailsPreAuthorized.class);
                                }}
                        );
                        put("BANK_WIRE", new HashMap<String, Class<?>>() {{
                                    put("PaymentDetails", PayInPaymentDetailsBankWire.class);
                                }}
                        );
                        put("DIRECT_DEBIT", new HashMap<String, Class<?>>() {{
                                    put("PaymentDetails", PayInPaymentDetailsDirectDebit.class);
                                }}
                        );
                        put("PAYPAL", new HashMap<String, Class<?>>() {{
                                    put("PaymentDetails", PayInPaymentDetailsPayPal.class);
                                }}
                        );
                        // ...and more in future...
                    }}
            );
            put("ExecutionType", new HashMap<String, Map<String, Class<?>>>() {{
                        put("WEB", new HashMap<String, Class<?>>() {{
                                    put("ExecutionDetails", PayInExecutionDetailsWeb.class);
                                }}
                        );
                        put("DIRECT", new HashMap<String, Class<?>>() {{
                                    put("ExecutionDetails", PayInExecutionDetailsDirect.class);
                                }}
                        );
                        put("EXTERNAL_INSTRUCTION", new HashMap<String, Class<?>>() {{
                                    put("ExecutionDetails", PayInExecutionDetailsBankingAlias.class);
                                }}
                        );
                        // ...and more in future...
                    }}
            );
        }};
    }
@ Override public Map < String , Map < String , Map < String , Class < ? > > > > getDependentObjects ( ) { return new HashMap < String , Map < String , Map < String , Class < ? > > > > ( ) { { put ( "PaymentType" , new HashMap < String , Map < String , Class < ? > > > ( ) { { put ( "CARD" , new HashMap < String , Class < ? > > ( ) { { put ( "PaymentDetails" , PayInPaymentDetailsCard . class ) ; } } ) ; put ( "PREAUTHORIZED" , new HashMap < String , Class < ? > > ( ) { { put ( "PaymentDetails" , PayInPaymentDetailsPreAuthorized . class ) ; } } ) ; put ( "BANK_WIRE" , new HashMap < String , Class < ? > > ( ) { { put ( "PaymentDetails" , PayInPaymentDetailsBankWire . class ) ; } } ) ; put ( "DIRECT_DEBIT" , new HashMap < String , Class < ? > > ( ) { { put ( "PaymentDetails" , PayInPaymentDetailsDirectDebit . class ) ; } } ) ; put ( "PAYPAL" , new HashMap < String , Class < ? > > ( ) { { put ( "PaymentDetails" , PayInPaymentDetailsPayPal . class ) ; } } ) ; } } ) ; put ( "ExecutionType" , new HashMap < String , Map < String , Class < ? > > > ( ) { { put ( "WEB" , new HashMap < String , Class < ? > > ( ) { { put ( "ExecutionDetails" , PayInExecutionDetailsWeb . class ) ; } } ) ; put ( "DIRECT" , new HashMap < String , Class < ? > > ( ) { { put ( "ExecutionDetails" , PayInExecutionDetailsDirect . class ) ; } } ) ; put ( "EXTERNAL_INSTRUCTION" , new HashMap < String , Class < ? > > ( ) { { put ( "ExecutionDetails" , PayInExecutionDetailsBankingAlias . class ) ; } } ) ; } } ) ; } } ; }
Gets the structure that maps which property depends on other property.

@return