Package com.prowidesoftware.swift.model

Core package with classes that model SWIFT messages.

See:
          Description

Interface Summary
TagVisitor  
 

Class Summary
AbstractSwiftMessage Base class for common attributes of MT and MX SWIFT messages.
BIC Helper class to validate a BIC
IBAN Utility class to validate IBAN codes.
ISOCountries Helper class to validate ISO Country codes
ISOCurrencies Helper class to validate ISO Currency codes
MIR This class models and parses the Message Input Reference (MIR), String of 28 characters, always local to the sender of the message.
MtSwiftMessage Object that contains both raw and model representations of an MT SWIFT message.
MxSwiftMessage Object that contains both raw and model representations of an MX SWIFT message.
PropertyResource Common code for subclasses.
SequenceNode Node that identifies a sequence inside a message.
SwiftBlock Base class for a generic SWIFT block.
This is an abstract class so specific block classes for each block (block 1, 2, 3, etc...) should be instantiated.

Instances of this class may have a list of unparsed texts (UnparsedTextList).
SwiftBlock1 Base class for SWIFT Basic Header Block (block 1).
SwiftBlock2 Base class for SWIFT Application Header Block (block 2).
The Application Header contains information about the message type and the destination of the message.
SwiftBlock2Input Base class for SWIFT Application Header Block (block 2) for INPUT (to SWIFT).
This block is used to construct messages that are going to be input to the SWIFT network.
SwiftBlock2Output Base class for SWIFT Application Header Block (block 2) for OUTPUT (from SWIFT).
This block is used to construct messages that have been output from the SWIFT network.
SwiftBlock3 Base class for SWIFT User Header Block (block 3).
This block is optional, and contains special processing instructions.
SwiftBlock4 Base class for SWIFT Body Block (block 4).
This block is where the actual message content is specified and is what most users see.
SwiftBlock5 Base class for SWIFT Trailer Block (block 5).
Each SWIFT message has one or more trailers as required by the message exchange and security requirements.
SwiftBlockUser Base class for SWIFT User "ad-hoc" Blocks (blocks with number other than 1-5 or names).

The assumption is that these User Defined Blocks are used and defined as tag blocks (meaning that these blocks behave like a block 3 or 5).

NOTE: this is not part of SWIFT standard, but seems to be common practice for users to append some locally defined blocks to annotate messages in a semi-compatible way (for example: add block 9 for some local information or block "S" for system reference).

SwiftMessage Base class for swift messages.
This class is a generic data structure container for SWIFT messages.
SwiftMessageNote Comments associated to a message for application only usage (not part of the standard).
SwiftMessageStatusInfo Status tracking record for application only usage (not part of the standard).
The status name identifier is modeled with plain String, nevertheless the usage of an application specific enumeration is encourage; constructors and methods with raw Enum parameters are provided.
SwiftMessageUtils Utility methods that provide higher level access to SwiftMessage
SwiftServiceId Class to hold valid service id values.
SwiftTagListBlock Base class for SWIFT blocks that contain and arbitrary set of fields (3, 4, 5 and user blocks).
Specific block classes for each block should be instantiated.
SwiftValueBlock Base class for SWIFT blocks that contain its fields concatenated as a single fixed length value; blocks 1 and 2.
This is an abstract class so specific block classes for each block should be instantiated.
Tag Representation of a swift tag (also 'field' in computer terms) in a message.
UnparsedTextList List of unparsed texts for messages, blocks or tags.
For performance reasons, the unparsed texts are stored directly as strings inside this list object.
 

Enum Summary
MessageIOType Enumeration of messages flow types.
MxBusinessProcess SWIFT business process classification for MX messages.
 

Package com.prowidesoftware.swift.model Description

Core package with classes that model SWIFT messages.

This is a core package that provides classes to hold the structure for all SWIFT messages.

It is basically a three level hierarchy representing the primary elements that defines a SWIFT message; the message itself, it's blocks, and the tag (or fields) inside each block.
The object model is quite generic and loosely coupled to particular MT structures, that require minimal construction constrains.

SwiftMessage The top level object in the hierarchy is the SwiftMessage, which contains attributes to hold up to five SwiftBlock objects and optionally an arbitrary number of SwiftBlockUser (see below).

SwiftBlock Each block class is a subclass of SwiftBlock. There is a small hierarchy of different block classes, grouped by functionality. For example, in FIN messages, block 1 is fixed length a string, and block 4 is a set of tags. An abstract class hierarchy represents this block taxonomy and specific subclasses exist for each of the five possible SWIFT blocks.

SwiftValueBlock In the hierarchy the SwiftValueBlock is a container for blocks with fixed length string value. Its child classes implement then specific attributes for each field of the string value. For Block1 for example you have getters and setters for serviceId, applicationId, etc..

SwiftTagListBlock And SwiftTagListBlock is a container for blocks conformed by list of Tag. A tag is basically a pair of datums, the name of the tag (for example; "59", "13C", "23E") and a value. Generic getters are provided to obtain individual tags or lists containing filtered subsets of tags.

SwiftBlockUser SwiftBlockUser is not part of SWIFT standard, but seems to be common practice for users to append some locally defined blocks to annotate messages in an almost-compatible way (for example: add block 9 for some local information or block "S" for system reference). Contents of this block are opaque for WIFE, but they are preserved so applications can still have them available