Clases principales
Visión general
A continuación se muestra una vista simplificada de las diversas clases principales relacionadas con el IPF ISO2002 Message model:
Los aspectos más destacados son las siguientes clases:
| Class | Description |
|---|---|
ISO20022MessageModel |
Este es el punto de acceso principal para trabajar con instancias de Message Definitions. Es un singleton configurable. |
JsonMapper |
Se encarga de la serialización y deserialización JSON |
XMLMapper |
Se encarga de la serialización y deserialización XML |
MessageComponentValidator |
Valida Message Definitions o Message Components; puede realizar Schema Validation, Message Rule y Business Rule Validation |
MessageDefinitionSpec |
Metadatos generados para cada Message Definition generada. Se usa para proporcionar al ISO20022MessageModel contexto adicional para cada MessageDefinition (como el namespace). ISO20022MessageModel puede usar esta información adicional para inicializar sus componentes, como el XMLMapper. |
ISO20022MessageModel
Este es el punto de entrada principal; es un singleton configurable y se proporciona con contexto/metadatos de las MessageDefinitions generadas durante la instanciación. Este contexto se puede usar para arrancar los componentes de soporte subyacentes.
El ISO20022MessageModel contiene una sobrecarga
ISO20022MessageModel.init()
así como un método tradicional
ISO20022MessageModel.getInstance()
La llamada init() realiza una verificación de singleton de la misma manera que getInstance(); sin embargo, diferenciamos con la intención de que init() pueda aceptar argumentos de configuración, y esperamos que esto ocurra solo una vez dentro de una aplicación.
El comportamiento esperado es un único init() al inicio de la aplicación y luego el uso de getInstance() a partir de entonces.
Las llamadas repetidas a init() devolverán la instancia original y registrarán un error.
Llamar a getInstance() sin haber inicializado previamente a través de init() resultará en una Runtime Exception.
|
Posible cambio de API
Este enfoque de init() vs. getInstance() probablemente cambie a un método único invocable. |