Class FinTransmogrifierRepository
The FinTransmogrifierRepository is a container for FinTransmogrifier instances.
Inheritance
Inherited Members
Namespace: Subsembly.FinTS
Assembly: Subsembly.FinTS.Core.dll
Syntax
public class FinTransmogrifierRepository
Remarks
The FinTransmogrifierRepository maintains two hashtables that enable quick lookup of FinTransmogrifier instances by the Segment Tag name, or by the Segment Type (Segmentkennung) and Segment Version.
Access to the FinTransmogrifierRepository is not synchronized (thread safe)! This should not be a problem, because multiple simultaneous look ups are thread safe. Thus, if the FinTransmogrifierRepository is loaded by a single thread at startup and subsequently there are only lookup accesses everything is OK.
Constructors
FinTransmogrifierRepository()
Creates an all empty FinTransmogrifierRepository.
Declaration
public FinTransmogrifierRepository()
Properties
Transmogrifiers
Provides access to the FinTransmogrifier collection of this repository.
Declaration
public ICollection Transmogrifiers { get; }
Property Value
Type | Description |
---|---|
System.Collections.ICollection |
Methods
Add(XmlElement)
Add the given syntax to this repository.
Declaration
public void Add(XmlElement xmlSyntax)
Parameters
Type | Name | Description |
---|---|---|
System.Xml.XmlElement | xmlSyntax | Syntax to be added. |
FindSegmentType(String)
Determines the segment type for a particular order tag based on the available FinTransmogrifier instances of this repository.
Declaration
public string FindSegmentType(string sOrderTag)
Parameters
Type | Name | Description |
---|---|---|
System.String | sOrderTag | The base order tag without version number and without _Req suffix. For example, "SingRemitt" is the base order tag for a single remittance. Must not be null. |
Returns
Type | Description |
---|---|
System.String | If an FinTransmogrifier in this repository is found that handles
XML orders with the given order tag, then its
SegmentType property is returned. If no matching
FinTransmogrifier is found, then |
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | The sOrderTag parameter was null. |
FindTransmogrifier(String)
Find a FinTransmogrifier by its segment tag.
Declaration
public FinTransmogrifier FindTransmogrifier(string sSegmentTag)
Parameters
Type | Name | Description |
---|---|---|
System.String | sSegmentTag | XML segment tag of the segment that shall be processed by the requested transmogrifier. For example, "SingRemitt_5_Req" is the segment tag for a single remittance based on segment version 5. |
Returns
Type | Description |
---|---|
FinTransmogrifier | If this repository contains a FinTransmogrifier that processes the
requested segment tag, then its reference is returned. Otherwise |
FindTransmogrifier(String, Int32)
Find a FinTransmogrifier by segment type and version.
Declaration
public FinTransmogrifier FindTransmogrifier(string sSegmentType, int nSegmentVersion)
Parameters
Type | Name | Description |
---|---|---|
System.String | sSegmentType | Segment type of the segment that shall be processed by the requested transmogrifier. |
System.Int32 | nSegmentVersion | Segment version of the segment that shall be processed by the requested transmogrifier. |
Returns
Type | Description |
---|---|
FinTransmogrifier | If this repository contains a FinTransmogrifier that processes the
requested segment type and version, then its reference is returned. Otherwise
|
Load(Stream)
Loads an XML file with syntax descriptions from a stream into this repository.
Declaration
public void Load(Stream aStream)
Parameters
Type | Name | Description |
---|---|---|
System.IO.Stream | aStream | Readable stream that provides the XML file. |
Remarks
The loaded XML file must contain an <all> root node that contains all the syntax description <seg> nodes.
The loaded syntax descriptions are added to the repository. Any previously existing entries are still maintained. If a syntax is added with a Segment Tag or Segment Type and Segment Version that already exists in this repository, then it will be replaced with the loaded syntax.
Exceptions
Type | Condition |
---|---|
System.Xml.XmlException | The given file was not a valid XML document. |
System.ArgumentNullException | The parameter was |
Load(String)
Loads an XML file with syntax descriptions into this repository.
Declaration
public void Load(string sFilename)
Parameters
Type | Name | Description |
---|---|---|
System.String | sFilename | Syntaxfile to be loaded. |
Remarks
The loaded XML file must contain an <all> root node that contains all the syntax description <seg> nodes.
The loaded syntax descriptions are added to the repository. Any previously existing entries are still maintained. If a syntax is added with a Segment Tag or Segment Type and Segment Version that already exists in this repository, then it will be replaced with the loaded syntax.
Exceptions
Type | Condition |
---|---|
System.Xml.XmlException | The given file was not a valid XML document. |
System.IO.FileNotFoundException | The given filename did not exist. |
System.ArgumentNullException | The parameter was |
Transmogrify(FinSegment)
Transmogrifies a segment using a matching transmogrifier from this repository.
Declaration
public XmlDocument Transmogrify(FinSegment aSegment)
Parameters
Type | Name | Description |
---|---|---|
FinSegment | aSegment | Segment to be transmogrified. |
Returns
Type | Description |
---|---|
System.Xml.XmlDocument | XML data that resulted by transmogrifying the segment. |
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | Parameter aSegment was |
System.InvalidOperationException | No matching transmogrifier could be found in this repository. |
Transmogrify(FinSegment, XmlNode)
Transmogrifies a segment using a matching transmogrifier from this repository.
Declaration
public void Transmogrify(FinSegment aSegment, XmlNode xmlParentNode)
Parameters
Type | Name | Description |
---|---|---|
FinSegment | aSegment | Segment to be transmogrified. |
System.Xml.XmlNode | xmlParentNode | Parent node that shall receive the transmogrified segment data nodes. |
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | Parameter aSegment or xmlParentNode was |
System.InvalidOperationException | No matching transmogrifier could be found in this repository. |
Transmogrify(XmlElement)
Transmogrifies a XML order using a matching transmogrifier from this repository.
Declaration
public FinSegment Transmogrify(XmlElement xmlOrder)
Parameters
Type | Name | Description |
---|---|---|
System.Xml.XmlElement | xmlOrder | XML order to be transmogrified. |
Returns
Type | Description |
---|---|
FinSegment | FinSegment that resulted by transmogrifying the XML order. |
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | Parameter xmlOrder was |
System.InvalidOperationException | No matching transmogrifier could be found in this repository. |