fintp_base
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RoutingMessageEvaluator Class Referenceabstract

#include <RoutingMessageEvaluator.h>

Public Types

enum  EvaluatorType {
  SWIFTXML, ACHBLKACC, ACHBLKRJCT, ACHRECON,
  ACHCOREBLKDDBTRFL, GSRSXML, ISOXML, SAGSTS,
  SEPASTS, EBASTS, SWIFTSTS
}
 
enum  FeedbackProvider { FEEDBACKPROVIDER_FTP = 0, FEEDBACKPROVIDER_MQ = 1, FEEDBACKPROVIDER_TFD = 2, FEEDBACKPROVIDER_UNK = 3 }
 

Public Member Functions

void setKeywordMappings (const map< string, string > keywordMappings)
 
const vector< string > getKeywordNames ()
 
void setIsoTypes (const bool isoMessageType)
 
string GetKeywordXPath (const string &messageType, const string &keyword)
 
string EvaluateKeywordValue (const string &messageType, const string &value, const string &keyword, const string &field="value")
 
pair< string,
RoutingKeyword::EVALUATOR_TYPE
Evaluate (const string &value, const string &keyword, const string &field)
 
bool CheckPayloadType (RoutingMessageEvaluator::EvaluatorType payloadtype) const
 
virtual bool isIso () const
 
bool isBusinessFormat () const
 
bool isValid () const
 
void setValid (const bool validStatus)
 
string ToString ()
 
string getField (const int field)
 
string getField (const string &field)
 
string getCustomXPath (const string &xpath, const bool noCache=false)
 
string getNamespace () const
 
virtual const
RoutingAggregationCode
getAggregationCode (const RoutingAggregationCode &feedback)=0
 
virtual RoutingAggregationCode getBusinessAggregationCode ()
 
virtual FinTP::NameValueCollection getAddParams (const string &ref)
 
virtual bool isReply ()=0
 
virtual bool isAck ()=0
 
virtual bool isNack ()=0
 
virtual bool isAck (const string ns)
 
virtual bool isNack (const string ns)
 
virtual bool isBatch ()=0
 
virtual bool updateRelatedMessages ()
 
virtual bool isOriginalIncomingMessage ()
 
virtual bool isDD ()
 
virtual bool isID ()
 
virtual string getIssuer ()
 
virtual string getOverrideFeedback ()
 
virtual string getOverrideFeedbackId ()
 
virtual
RoutingMessageEvaluator::FeedbackProvider 
getOverrideFeedbackProvider ()
 
const
XERCES_CPP_NAMESPACE_QUALIFIER
DOMDocument * 
getDocument () const
 
RoutingMessageEvaluator::EvaluatorType getEvaluatorType () const
 
virtual wsrm::SequenceResponse * getSequenceResponse ()=0
 
virtual void UpdateMessage (RoutingMessage *message)
 
virtual bool checkReactivation ()
 
virtual bool delayReply ()
 
virtual ~RoutingMessageEvaluator ()
 

Static Public Member Functions

static void setGetOriginalRefFunction (string(*function)(const string &reference, const string &batchId))
 
static void setGetBatchTypeFunction (string(*function)(const string &batchId, const string &tableName, const string &sender))
 
static void setKeywords (const RoutingKeywordCollection &keywords)
 
static void setSwiftACKMethod (const string &method)
 
static void setSAAACKMethod (const string &method)
 
static void setTFDACKMethod (const string &method)
 
static void setMarkApproved (bool markAchApproved)
 
static string getSAAACKMethod ()
 
static string getSwiftACKMethod ()
 
static string getTFDACKMethod ()
 
static void ReadEvaluators (const string &location)
 
static void EvaluatorsCleanup ()
 
static
RoutingMessageEvaluator::FeedbackProvider 
getProviderById (const string &coorelId)
 
static
RoutingMessageEvaluator::FeedbackProvider 
getProviderByCode (const string &code)
 
static
RoutingMessageEvaluator::FeedbackProvider 
getProviderByName (const string &coorelName)
 
static string getNamespaceByMessageType (const string &messageType)
 
static RoutingAggregationCode composeFeedback (const string &correlId, const string &errorCode, RoutingMessageEvaluator::FeedbackProvider)
 
static string serializeFeedback (const RoutingAggregationCode &feedback)
 
static RoutingMessageEvaluatorgetEvaluator (const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *document)
 
static
RoutingMessageEvaluator::EvaluatorType 
Parse (const string &evaluatorType)
 
static bool isIso (const string &msgNamespace)
 

Static Public Attributes

static const string FEEDBACKFTP_ACK = "FTP02"
 
static const string FEEDBACKFTP_APPROVED = "FTM00"
 
static const string FEEDBACKFTP_CSMAPPROVED = "CSM00"
 
static const string FEEDBACKFTP_RJCT = "FTP09"
 
static const string FEEDBACKFTP_REACT = "FTP12"
 
static const string FEEDBACKFTP_MSG = "FTP00"
 
static const string FEEDBACKFTP_LATERJCT = "FTP10"
 
static const string FEEDBACKFTP_REFUSE = "RFD"
 
static const string FEEDBACKFTP_LOSTRFD = "FTP99"
 
static const string FEEDBACKFTP_NOREACT = "FTP21"
 
static const string AGGREGATIONTOKEN_FTPID = "CORRELID"
 
static const string AGGREGATIONTOKEN_FTPCODE = "APPCODE"
 
static const string AGGREGATIONTOKEN_SAACODE = "INTERFACECODE"
 
static const string AGGREGATIONTOKEN_TFDCODE = "CORRESPCODE"
 
static const string AGGREGATIONTOKEN_SWIFTCODE = "NETWORKCODE"
 
static const string AGGREGATIONTOKEN_MIR = "SWIFTMIR"
 
static const string AGGREGATIONTOKEN_MQID = "MQID"
 
static const string AGGREGATIONTOKEN_MQCODE = "MQFEED"
 
static const string AGGREGATIONTOKEN_PAYLOAD = "PAYLOAD"
 
static const string AGGREGATIONTOKEN_REQUESTOR = "REQUESTOR"
 
static const string AGGREGATIONTOKEN_BATCHID = "BATCHID"
 
static const string AGGREGATIONTOKEN_OBATCHID = "OBATCHID"
 
static const string AGGREGATIONTOKEN_BATCHSEQ = "BATCHSEQ"
 
static const string AGGREGATIONTOKEN_TRN = "TRN"
 
static const string AGGREGATIONTOKEN_OSESSION = "OSESSION"
 
static const string AGGREGATIONTOKEN_ISESSION = "ISESSION"
 
static const string AGGREGATIONTOKEN_ISSUER = "ISSUER"
 
static const string AGGREGATIONTOKEN_CORRELID = "CORRELID"
 

Protected Member Functions

virtual string internalToString ()=0
 
string internalGetField (const int field)
 
string internalGetField (const string &field)
 
RoutingMessageEvaluatoroperator= (const RoutingMessageEvaluator &source)
 
 RoutingMessageEvaluator (const RoutingMessageEvaluator &source)
 
 RoutingMessageEvaluator (const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *document, RoutingMessageEvaluator::EvaluatorType evaluatorType)
 
void setNamespace (const string &namespaceValue)
 

Static Protected Member Functions

static string getOriginalRef (const string &reference, const string &batchId)
 
static string getBatchType (const string &batchId, const string &tableName="BATCHJOBS", const string &sender="")
 

Protected Attributes

map< string, string > m_Fields
 Cache map containing message evaluators internal routing fields Values came from internal defined fields. More...
 
map< string, string > m_XPathFields
 Cache map containing xpath values used while processing message. More...
 
map< string, string > m_KeywordMappings
 Specific keyword mappings of current evaluator type. More...
 
bool m_IsoMessageType
 Selector type to be consider for the current message. More...
 
RoutingMessageEvaluator::EvaluatorType m_EvaluatorType
 
RoutingAggregationCode m_AggregationCode
 
bool m_Valid
 
string m_Namespace
 
XALAN_CPP_NAMESPACE_QUALIFIER
XercesDocumentWrapper * 
m_DocumentWrapper
 
XALAN_CPP_NAMESPACE_QUALIFIER
XalanDocument * 
m_XalanDocument
 
const
XERCES_CPP_NAMESPACE_QUALIFIER
DOMDocument * 
m_Document
 

Static Protected Attributes

static const string m_FeedbackProviders [FEEDBACK_PROVIDER_COUNT] = { "Q", "W", "T", "W", "T", "A", "S", "U" }
 
static const string m_FeedbackTokens [FEEDBACK_PROVIDER_COUNT]
 
static const string m_FeedbackIds [FEEDBACK_PROVIDER_COUNT]
 
static RoutingKeywordCollectionm_Keywords = NULL
 All keywords definitions from Routing Engine. More...
 
static
CorrelationOptions::SwiftACKMethod 
m_SwiftACKMethod = CorrelationOptions::METHOD_MQID
 
static
CorrelationOptions::TFDACKMethod 
m_TFDACKMethod = CorrelationOptions::TMETHOD_MIR
 
static
CorrelationOptions::SAAACKMethod 
m_SAAACKMethod = CorrelationOptions::SAA_METHOD_MQID
 
static bool m_MarkACHApproved = false
 
static map< Plugin *, void * > m_RegisteredPlugins
 

Private Member Functions

virtual string getMessageType ()=0
 

Static Private Attributes

static string(* m_GetOriginalRefFunction )(const string &reference, const string &batchId) = NULL
 
static string(* m_GetBatchTypeFunction )(const string &batchId, const string &tableName, const string &sender) = NULL
 

Member Enumeration Documentation

Enumerator
SWIFTXML 
ACHBLKACC 
ACHBLKRJCT 
ACHRECON 
ACHCOREBLKDDBTRFL 
GSRSXML 
ISOXML 
SAGSTS 
SEPASTS 
EBASTS 
SWIFTSTS 
Enumerator
FEEDBACKPROVIDER_FTP 
FEEDBACKPROVIDER_MQ 
FEEDBACKPROVIDER_TFD 
FEEDBACKPROVIDER_UNK 

Constructor & Destructor Documentation

RoutingMessageEvaluator::RoutingMessageEvaluator ( const RoutingMessageEvaluator source)
protected
RoutingMessageEvaluator::RoutingMessageEvaluator ( const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *  document,
RoutingMessageEvaluator::EvaluatorType  evaluatorType 
)
protected
RoutingMessageEvaluator::~RoutingMessageEvaluator ( )
virtual

Member Function Documentation

bool RoutingMessageEvaluator::CheckPayloadType ( RoutingMessageEvaluator::EvaluatorType  payloadtype) const
inline
virtual bool RoutingMessageEvaluator::checkReactivation ( )
inlinevirtual
RoutingAggregationCode RoutingMessageEvaluator::composeFeedback ( const string &  correlId,
const string &  errorCode,
RoutingMessageEvaluator::FeedbackProvider  provider 
)
static
virtual bool RoutingMessageEvaluator::delayReply ( )
inlinevirtual
pair< string, RoutingKeyword::EVALUATOR_TYPE > RoutingMessageEvaluator::Evaluate ( const string &  value,
const string &  keyword,
const string &  field 
)
string RoutingMessageEvaluator::EvaluateKeywordValue ( const string &  messageType,
const string &  value,
const string &  keyword,
const string &  field = "value" 
)
void RoutingMessageEvaluator::EvaluatorsCleanup ( )
static
virtual FinTP::NameValueCollection RoutingMessageEvaluator::getAddParams ( const string &  ref)
inlinevirtual
virtual const RoutingAggregationCode& RoutingMessageEvaluator::getAggregationCode ( const RoutingAggregationCode feedback)
pure virtual
string RoutingMessageEvaluator::getBatchType ( const string &  batchId,
const string &  tableName = "BATCHJOBS",
const string &  sender = "" 
)
staticprotected
virtual RoutingAggregationCode RoutingMessageEvaluator::getBusinessAggregationCode ( )
inlinevirtual
string RoutingMessageEvaluator::getCustomXPath ( const string &  xpath,
const bool  noCache = false 
)
const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* RoutingMessageEvaluator::getDocument ( ) const
inline
RoutingMessageEvaluator * RoutingMessageEvaluator::getEvaluator ( const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *  document)
static
RoutingMessageEvaluator::EvaluatorType RoutingMessageEvaluator::getEvaluatorType ( ) const
inline
string RoutingMessageEvaluator::getField ( const int  field)
string RoutingMessageEvaluator::getField ( const string &  field)
virtual string RoutingMessageEvaluator::getIssuer ( )
inlinevirtual
const vector< string > RoutingMessageEvaluator::getKeywordNames ( )
string RoutingMessageEvaluator::GetKeywordXPath ( const string &  messageType,
const string &  keyword 
)
virtual string RoutingMessageEvaluator::getMessageType ( )
privatepure virtual
string RoutingMessageEvaluator::getNamespace ( ) const
inline
string RoutingMessageEvaluator::getNamespaceByMessageType ( const string &  messageType)
static
string RoutingMessageEvaluator::getOriginalRef ( const string &  reference,
const string &  batchId 
)
staticprotected
virtual string RoutingMessageEvaluator::getOverrideFeedback ( )
inlinevirtual
virtual string RoutingMessageEvaluator::getOverrideFeedbackId ( )
inlinevirtual
virtual RoutingMessageEvaluator::FeedbackProvider RoutingMessageEvaluator::getOverrideFeedbackProvider ( )
inlinevirtual
RoutingMessageEvaluator::FeedbackProvider RoutingMessageEvaluator::getProviderByCode ( const string &  code)
static
RoutingMessageEvaluator::FeedbackProvider RoutingMessageEvaluator::getProviderById ( const string &  coorelId)
static
RoutingMessageEvaluator::FeedbackProvider RoutingMessageEvaluator::getProviderByName ( const string &  coorelName)
static
static string RoutingMessageEvaluator::getSAAACKMethod ( )
inlinestatic
virtual wsrm::SequenceResponse* RoutingMessageEvaluator::getSequenceResponse ( )
pure virtual
static string RoutingMessageEvaluator::getSwiftACKMethod ( )
inlinestatic
static string RoutingMessageEvaluator::getTFDACKMethod ( )
inlinestatic
string RoutingMessageEvaluator::internalGetField ( const int  field)
protected
string RoutingMessageEvaluator::internalGetField ( const string &  field)
protected
virtual string RoutingMessageEvaluator::internalToString ( )
protectedpure virtual
virtual bool RoutingMessageEvaluator::isAck ( )
pure virtual
virtual bool RoutingMessageEvaluator::isAck ( const string  ns)
inlinevirtual
virtual bool RoutingMessageEvaluator::isBatch ( )
pure virtual
bool RoutingMessageEvaluator::isBusinessFormat ( ) const
virtual bool RoutingMessageEvaluator::isDD ( )
inlinevirtual
virtual bool RoutingMessageEvaluator::isID ( )
inlinevirtual
bool RoutingMessageEvaluator::isIso ( const string &  msgNamespace)
static
virtual bool RoutingMessageEvaluator::isIso ( ) const
inlinevirtual
virtual bool RoutingMessageEvaluator::isNack ( )
pure virtual
virtual bool RoutingMessageEvaluator::isNack ( const string  ns)
inlinevirtual
virtual bool RoutingMessageEvaluator::isOriginalIncomingMessage ( )
inlinevirtual
virtual bool RoutingMessageEvaluator::isReply ( )
pure virtual
bool RoutingMessageEvaluator::isValid ( ) const
inline
RoutingMessageEvaluator & RoutingMessageEvaluator::operator= ( const RoutingMessageEvaluator source)
protected
static RoutingMessageEvaluator::EvaluatorType RoutingMessageEvaluator::Parse ( const string &  evaluatorType)
static
void RoutingMessageEvaluator::ReadEvaluators ( const string &  location)
static
string RoutingMessageEvaluator::serializeFeedback ( const RoutingAggregationCode feedback)
static
void RoutingMessageEvaluator::setGetBatchTypeFunction ( string(*)(const string &batchId, const string &tableName, const string &sender)  function)
static
void RoutingMessageEvaluator::setGetOriginalRefFunction ( string(*)(const string &reference, const string &batchId)  function)
static
void RoutingMessageEvaluator::setIsoTypes ( const bool  isoMessageType)
inline
void RoutingMessageEvaluator::setKeywordMappings ( const map< string, string >  keywordMappings)
inline
void RoutingMessageEvaluator::setKeywords ( const RoutingKeywordCollection keywords)
static
static void RoutingMessageEvaluator::setMarkApproved ( bool  markAchApproved)
inlinestatic
void RoutingMessageEvaluator::setNamespace ( const string &  namespaceValue)
inlineprotected
static void RoutingMessageEvaluator::setSAAACKMethod ( const string &  method)
inlinestatic
static void RoutingMessageEvaluator::setSwiftACKMethod ( const string &  method)
inlinestatic
static void RoutingMessageEvaluator::setTFDACKMethod ( const string &  method)
inlinestatic
void RoutingMessageEvaluator::setValid ( const bool  validStatus)
inline
string RoutingMessageEvaluator::ToString ( )
void RoutingMessageEvaluator::UpdateMessage ( RoutingMessage *  message)
virtual
virtual bool RoutingMessageEvaluator::updateRelatedMessages ( )
inlinevirtual

Member Data Documentation

const string RoutingMessageEvaluator::AGGREGATIONTOKEN_BATCHID = "BATCHID"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_BATCHSEQ = "BATCHSEQ"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_CORRELID = "CORRELID"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_FTPCODE = "APPCODE"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_FTPID = "CORRELID"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_ISESSION = "ISESSION"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_ISSUER = "ISSUER"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_MIR = "SWIFTMIR"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_MQCODE = "MQFEED"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_MQID = "MQID"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_OBATCHID = "OBATCHID"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_OSESSION = "OSESSION"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_PAYLOAD = "PAYLOAD"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_REQUESTOR = "REQUESTOR"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_SAACODE = "INTERFACECODE"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_SWIFTCODE = "NETWORKCODE"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_TFDCODE = "CORRESPCODE"
static
const string RoutingMessageEvaluator::AGGREGATIONTOKEN_TRN = "TRN"
static
const string RoutingMessageEvaluator::FEEDBACKFTP_ACK = "FTP02"
static
const string RoutingMessageEvaluator::FEEDBACKFTP_APPROVED = "FTM00"
static
const string RoutingMessageEvaluator::FEEDBACKFTP_CSMAPPROVED = "CSM00"
static
const string RoutingMessageEvaluator::FEEDBACKFTP_LATERJCT = "FTP10"
static
const string RoutingMessageEvaluator::FEEDBACKFTP_LOSTRFD = "FTP99"
static
const string RoutingMessageEvaluator::FEEDBACKFTP_MSG = "FTP00"
static
const string RoutingMessageEvaluator::FEEDBACKFTP_NOREACT = "FTP21"
static
const string RoutingMessageEvaluator::FEEDBACKFTP_REACT = "FTP12"
static
const string RoutingMessageEvaluator::FEEDBACKFTP_REFUSE = "RFD"
static
const string RoutingMessageEvaluator::FEEDBACKFTP_RJCT = "FTP09"
static
RoutingAggregationCode RoutingMessageEvaluator::m_AggregationCode
protected
const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* RoutingMessageEvaluator::m_Document
protected
XALAN_CPP_NAMESPACE_QUALIFIER XercesDocumentWrapper* RoutingMessageEvaluator::m_DocumentWrapper
protected
RoutingMessageEvaluator::EvaluatorType RoutingMessageEvaluator::m_EvaluatorType
protected
const string RoutingMessageEvaluator::m_FeedbackProviders = { "Q", "W", "T", "W", "T", "A", "S", "U" }
staticprotected
map< string, string > RoutingMessageEvaluator::m_Fields
protected

Cache map containing message evaluators internal routing fields Values came from internal defined fields.

string(* RoutingMessageEvaluator::m_GetBatchTypeFunction)(const string &batchId, const string &tableName, const string &sender) = NULL
staticprivate
string(* RoutingMessageEvaluator::m_GetOriginalRefFunction)(const string &reference, const string &batchId) = NULL
staticprivate
bool RoutingMessageEvaluator::m_IsoMessageType
protected

Selector type to be consider for the current message.

map< string, string > RoutingMessageEvaluator::m_KeywordMappings
protected

Specific keyword mappings of current evaluator type.

RoutingKeywordCollection * RoutingMessageEvaluator::m_Keywords = NULL
staticprotected

All keywords definitions from Routing Engine.

bool RoutingMessageEvaluator::m_MarkACHApproved = false
staticprotected
string RoutingMessageEvaluator::m_Namespace
protected
map< Plugin *, void * > RoutingMessageEvaluator::m_RegisteredPlugins
staticprotected
CorrelationOptions::SAAACKMethod RoutingMessageEvaluator::m_SAAACKMethod = CorrelationOptions::SAA_METHOD_MQID
staticprotected
CorrelationOptions::SwiftACKMethod RoutingMessageEvaluator::m_SwiftACKMethod = CorrelationOptions::METHOD_MQID
staticprotected
CorrelationOptions::TFDACKMethod RoutingMessageEvaluator::m_TFDACKMethod = CorrelationOptions::TMETHOD_MIR
staticprotected
bool RoutingMessageEvaluator::m_Valid
protected
XALAN_CPP_NAMESPACE_QUALIFIER XalanDocument* RoutingMessageEvaluator::m_XalanDocument
protected
map< string, string > RoutingMessageEvaluator::m_XPathFields
protected

Cache map containing xpath values used while processing message.

Values came from:

  1. Message evaluators implemetations who need specific xpaths values
  2. KEYWORD routing condition

The documentation for this class was generated from the following files: