Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

//## begin module%1.7%.codegen_version preserve=yes
//   Read the documentation to learn more about C++ code generator
//   versioning.
//## end module%1.7%.codegen_version

//## begin module%41FDA5210143.cm preserve=no
//## end module%41FDA5210143.cm

//## begin module%41FDA5210143.cp preserve=no
//      C O P Y R I G H T   N O T I C E
//      This material is confidential to ERG and may not be disclosed in whole
//      or in part to any third party nor used in any manner whatsoever other
//      than for the purposes expressly consented to by ERG in writing.
//
//      This material is also copyright and may not be reproduced, stored in a
//      retrieval system or transmitted in any form or by any means in whole or
//      in part without the express written consent of ERG.
//## end module%41FDA5210143.cp

//## Module: TransactionFieldTemplate%41FDA5210143; Pseudo Package body
//## Subsystem: MASS::Dev::Tools::TxnTestManager::src%41F5A79001E4
//## Source file: Z:\MASS_Dev\Tools\TxnTestManager\src\TransactionFieldTemplate.cpp

//## begin module%41FDA5210143.additionalIncludes preserve=no
//## end module%41FDA5210143.additionalIncludes

//## begin module%41FDA5210143.includes preserve=yes
#pragma warn -com
#include <LoggingMacros.h>
#pragma warn +com
//## end module%41FDA5210143.includes

// TransactionFieldTemplate
#include "TransactionFieldTemplate.h"
//## begin module%41FDA5210143.additionalDeclarations preserve=yes
//## end module%41FDA5210143.additionalDeclarations


// Class TransactionFieldTemplate 

//## Operation: TransactionFieldTemplate%41FF0D770177
TransactionFieldTemplate::TransactionFieldTemplate (const std::string &regularExpression)
  //## begin TransactionFieldTemplate::TransactionFieldTemplate%41FF0D770177.hasinit preserve=no
      : m_compiledRegularExpression(0)
  //## end TransactionFieldTemplate::TransactionFieldTemplate%41FF0D770177.hasinit
  //## begin TransactionFieldTemplate::TransactionFieldTemplate%41FF0D770177.initialization preserve=yes

,       m_regularExpression( regularExpression )

  //## end TransactionFieldTemplate::TransactionFieldTemplate%41FF0D770177.initialization
{
  //## begin TransactionFieldTemplate::TransactionFieldTemplate%41FF0D770177.body preserve=yes
  //## end TransactionFieldTemplate::TransactionFieldTemplate%41FF0D770177.body
}

//## Operation: TransactionFieldTemplate%41FF272F013A
TransactionFieldTemplate::TransactionFieldTemplate (const std::string &regularExpression, const std::string &value)
  //## begin TransactionFieldTemplate::TransactionFieldTemplate%41FF272F013A.hasinit preserve=no
      : m_compiledRegularExpression(0)
  //## end TransactionFieldTemplate::TransactionFieldTemplate%41FF272F013A.hasinit
  //## begin TransactionFieldTemplate::TransactionFieldTemplate%41FF272F013A.initialization preserve=yes

,       m_regularExpression( regularExpression ),
        m_value( value )

  //## end TransactionFieldTemplate::TransactionFieldTemplate%41FF272F013A.initialization
{
  //## begin TransactionFieldTemplate::TransactionFieldTemplate%41FF272F013A.body preserve=yes
  //## end TransactionFieldTemplate::TransactionFieldTemplate%41FF272F013A.body
}


TransactionFieldTemplate::~TransactionFieldTemplate()
{
  //## begin TransactionFieldTemplate::~TransactionFieldTemplate%41FDA5210143_dest.body preserve=yes

        if ( m_compiledRegularExpression )
        {
                regfree( m_compiledRegularExpression );
                
                delete m_compiledRegularExpression;
                m_compiledRegularExpression = 0;
        }

  //## end TransactionFieldTemplate::~TransactionFieldTemplate%41FDA5210143_dest.body
}



//## Other Operations (implementation)
//## Operation: getValue%41FF21A6017E
const std::string & TransactionFieldTemplate::getValue () const
{
  //## begin TransactionFieldTemplate::getValue%41FF21A6017E.body preserve=yes

        return ( m_value );

  //## end TransactionFieldTemplate::getValue%41FF21A6017E.body
}

//## Operation: isMatch%41FF654E035B
const bool TransactionFieldTemplate::isMatch (const std::string &xpath) const
{
  //## begin TransactionFieldTemplate::isMatch%41FF654E035B.body preserve=yes

        if ( !m_compiledRegularExpression )
        {
                m_compiledRegularExpression = new regex_t;

                const int status = regcomp(
                        m_compiledRegularExpression,
                        m_regularExpression.c_str(),
                        REG_ICASE );

                if ( status != 0 )
                {
                        char message[ 1024 ];
                        regerror( status, m_compiledRegularExpression, message, sizeof( message ) );

                        MTHROW( std::runtime_error, \
                                message );
                }
        }

        const int status = regexec(
                m_compiledRegularExpression,
                xpath.c_str(),
                0,
                0,
                0 );

        switch ( status )
        {
                case 0:
                        return ( true );
                case REG_NOMATCH:
                        return ( false );
                default:
                        {
                                char message[ 1024 ];
                                regerror( status, m_compiledRegularExpression, message, sizeof( message ) );

                                MTHROW( std::runtime_error, \
                                        message );
                        }
        }

  //## end TransactionFieldTemplate::isMatch%41FF654E035B.body
}

//## Operation: setValue%41FF2F7C003C
const std::string & TransactionFieldTemplate::setValue (const std::string &value)
{
  //## begin TransactionFieldTemplate::setValue%41FF2F7C003C.body preserve=yes

        return ( m_value = value );

  //## end TransactionFieldTemplate::setValue%41FF2F7C003C.body
}

// Additional Declarations
  //## begin TransactionFieldTemplate%41FDA5210143.declarations preserve=yes
  //## end TransactionFieldTemplate%41FDA5210143.declarations

//## begin module%41FDA5210143.epilog preserve=yes
//## end module%41FDA5210143.epilog