Desarrollador
| Parser |
|
|
|
Este paquete provee funcionalidad para parsear el fichero de mensaje SWIFT populando objetos Java (Message Model).De esta manera el desarrollador puede concentrarse en el manejo de los datos sin tener que lidear con los detalles de bajo nivel de los ficheros SWIFT. El parser realiza las validaciones de sintáxis mínimas necesarias para poder obtener los datos del mensaje. La validación completa de mensajes (estructura, semántica, etc...) es una problemática independiente y no cubierta por el algoritmo de parseo. Considerando el siguiente ejemplo de mensaje SWIFT (se agregan saltos de línea extra por motivos de formateo de página): {1:F01BANKDEFMAXXX2039063581}{2:O1031609050901BANKDEFXAXXX89549829458949811609N}
Asumiendo que el literal del mensaje se encuentra en la variable "fin", el siguiente código parsea el contenido del mensaje creando como resultado un objeto SwiftMessage: SwiftMessage m = (new SwiftParser()).parse(fin); La variable "val32a" contendrá el valor "050902JPY3520000,". SwiftTagListBlock internamente utiliza un List para acumular los campos encontrados en un bloque. Esta lista preserva el orden de los campos encontrados en el mensaje y provee API para manipular y obtener los mismos. La implementación principal se encuentra en la clase SwiftParser, pero la forma más simple de utilizar esta funcionalidad es mediante el API de servicios de conversión: SwiftMessage m = (new ConversionService()).getMessageFromFIN(fin); Algunos mensajes SWIFT contienen otros mensajes adosados como información extra. Por ejemplo:
Por motivos de performance y simplicidad del modelo estos mensajes adjuntos no son inicialmente parseados y se guardan en el modelo como literales String, utilizando los objetos del modelo denominados UnparsedTextsList y que pueden ser seteados como información adicional para mensajes, bloques o campos. Se brindan métodos del API para obtener estos objetos, sobre los cuales se pueden hacer llamadas subsecuentes al parser. Se puede pensar este mecanismo como parseo "lazy" de mensajes adjuntos. Cómo puedo parsear y obtener componentes internos de los campos?El parser de mensajes inicialmente no realiza parseo interno de campos. Por ejemplo para el campo ":32A:050902JPY3520000," el objeto Tag contendrá como value el String "050902JPY3520000,". Sin embargo puede utilizarse las clases específicas de modelado de MTs y campos para esto, por ejemplo: SwiftMessage m = (new SwiftParser()).parse(fin); |



