prowide/prowide-core

View on GitHub
overview.html

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8"?>
<body>
    <h1>Prowide SWIFT Core</h1>
      <h3>Prowide Core is an open source Java framework for managing SWIFT messages.</h3>

    <h2>What's included?</h2>
    <ol>
        <li>Java model for ISO 15022 MT (ex: {@link com.prowidesoftware.swift.model.mt.mt1xx.MT103 MT103} and {@link com.prowidesoftware.swift.model.field.Field32A Field32A} classes, for all MT message categories)</li>
        <li>{@link com.prowidesoftware.swift.io.parser.SwiftParser Parser} from SWIFT (FIN or RJE) into Java</li>
        <li>Builder API from Java to SWIFT (FIN or {@link com.prowidesoftware.swift.io.RJEReader RJE})</li>
        <li>Conversion to {@link com.prowidesoftware.swift.model.SwiftMessage#toJson() JSON} and proprietary {@link com.prowidesoftware.swift.model.SwiftMessage#toXml() XML}</li>
        <li>Complementary model suited for {@link com.prowidesoftware.swift.model.AbstractSwiftMessage persistence}</li>
    </ol>

    <h2>Java model for MT SWIFT messages</h2>

        <p>The message model for MT messages is a set of Java classes representing the structure and content of a SWIFT MT (ISO 15022) message.</p>

        <p>It is designed in three layers of specific use; each provide a different level of abstraction.</p>

        <img src="data:image/png;base64,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" alt="Prowide Core model">

        <h3>Persistence - Lightweight Layer</h3>

        <p>Generic representation for messages intended for persistence. It can be thought of as a wrapper of a swift message file.</p>

        <p>The model includes specific attributes for headers and trailer information, while the body content (business payload) is kept as single <code>String</code> attribute (not parsed).
        <br>It is specially suited for optimal database persistence, sharing a simple and efficient database structure for all message types including MX.</p>

        <p>The main classes for this layer are the {@link com.prowidesoftware.swift.model.AbstractSwiftMessage} and {@link com.prowidesoftware.swift.model.MtSwiftMessage}.</p>

    <h3>Parse/Build - Functional Layer</h3>

        <p>This layer provides a specific classes for each message type and field. It can be thinked of as a facade or view of the internal message content.</p>

        <p>The entry point for this layer is the {@link com.prowidesoftware.swift.model.mt.AbstractMT} and all its subclasses that represent a specific message type.</p>

        <p>This model is specially suited to read content from messages.</p>


    <h3>Backbone - Structure Layer</h3>

        <p>The message representation at this level handles the message content as simple tuples of field name and field value and implements low level handling of sequences and block. This model is quite simple, generic and loosely coupled to specific messages, therefore being very efficient and requiring minimal construction constraints.</p>

        <p>Messages in this layer are represented by the {@link com.prowidesoftware.swift.model.SwiftMessage} class, with its internal name-value tuples modeled by the {@link com.prowidesoftware.swift.model.Tag} class.</p>

        <p>This layer is also the one used for content modification.</p>


    <h2>Additional resources</h2>
    <ol>
        <li>Documentation: <a href="https://dev.prowidesoftware.com/">https://dev.prowidesoftware.com/resources</a></li>
        <li>Code examples: <a href="https://github.com/prowide/prowide-core-examples">https://github.com/prowide/prowide-core-examples</a></li>
        <li>Source code: <a href="https://github.com/prowide/prowide-core">https://github.com/prowide/prowide-core</a></li>
    </ol>

  <p>The project is active since 2006, production ready and commercially supported by <a href="https://www.prowidesoftware.com">Prowide Software</a>.</p>
  <p>For SWIFT messages validation, extended MX support, GUI application and more, please check the Integrator version at <a href="https://www.prowidesoftware.com/products/integrator">https://www.prowidesoftware.com/products/integrator</a></p>
  <p>SWIFT is a trademark of <a href="www.swift.com">S.W.I.F.T. SCRL.</a></p>
</body>