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%41FF0DE8006D.cm preserve=no
//## end module%41FF0DE8006D.cm

//## begin module%41FF0DE8006D.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%41FF0DE8006D.cp

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

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

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

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


// Class TestScenarioTemplate 

//## Operation: TestScenarioTemplate%41FF0F6F0398
TestScenarioTemplate::TestScenarioTemplate (const int &scenario)
  //## begin TestScenarioTemplate::TestScenarioTemplate%41FF0F6F0398.hasinit preserve=no
  //## end TestScenarioTemplate::TestScenarioTemplate%41FF0F6F0398.hasinit
  //## begin TestScenarioTemplate::TestScenarioTemplate%41FF0F6F0398.initialization preserve=yes

:       m_scenario( scenario )

  //## end TestScenarioTemplate::TestScenarioTemplate%41FF0F6F0398.initialization
{
  //## begin TestScenarioTemplate::TestScenarioTemplate%41FF0F6F0398.body preserve=yes
  //## end TestScenarioTemplate::TestScenarioTemplate%41FF0F6F0398.body
}


TestScenarioTemplate::~TestScenarioTemplate()
{
  //## begin TestScenarioTemplate::~TestScenarioTemplate%41FF0DE8006D_dest.body preserve=yes

        for ( std::map< std::string, TransactionFieldTemplate * >::iterator
                        where = m_fieldTemplate.begin();
                  where != m_fieldTemplate.end();
                  ++where )
        {
                delete where->second;
                where->second = 0;
        }

  //## end TestScenarioTemplate::~TestScenarioTemplate%41FF0DE8006D_dest.body
}



//## Other Operations (implementation)
//## Operation: findMatch%41FF6BF70156
const unsigned TestScenarioTemplate::findMatch (std::string &value, const std::string &xpath) const
{
  //## begin TestScenarioTemplate::findMatch%41FF6BF70156.body preserve=yes

        unsigned count = 0;

        for ( std::map< std::string, TransactionFieldTemplate * >::const_iterator
                        where = m_fieldTemplate.begin();
                  where != m_fieldTemplate.end();
                  ++where )
        {
                if ( where->second->isMatch( xpath ) )
                {
                        value = where->second->getValue();
                        
                        ++count;
                }
        }

        return ( count );

  //## end TestScenarioTemplate::findMatch%41FF6BF70156.body
}

//## Operation: getField%41FF214B013F
TransactionFieldTemplate& TestScenarioTemplate::getField (const std::string &regularExpression)
{
  //## begin TestScenarioTemplate::getField%41FF214B013F.body preserve=yes

        std::map< std::string, TransactionFieldTemplate * >::const_iterator
                instance = m_fieldTemplate.find( regularExpression );

        if ( instance != m_fieldTemplate.end() )
        {
                return ( *instance->second );
        }
        else
        {
                TransactionFieldTemplate * field = 0;

                try
                {
                        field = new TransactionFieldTemplate( regularExpression );

                        if ( m_fieldTemplate.insert(
                                        std::map< std::string, TransactionFieldTemplate * >::value_type(
                                                regularExpression,
                                                field ) ).second )
                        {
                                return ( *field );
                        }
                        else
                        {
                                MTHROW( std::runtime_error, \
                                        "Cannot add field \"" \
                                        << regularExpression \
                                        << "\" to transaction " \
                                        << m_scenario \
                                        << '.' );
                        }
                }
                catch ( ... )
                {
                        delete field;
                        field = 0;

                        throw;
                }
        }

  //## end TestScenarioTemplate::getField%41FF214B013F.body
}

//## Operation: getTemplateCount%41FF409A021F
const unsigned TestScenarioTemplate::getTemplateCount () const
{
  //## begin TestScenarioTemplate::getTemplateCount%41FF409A021F.body preserve=yes

        return ( m_fieldTemplate.size() );  

  //## end TestScenarioTemplate::getTemplateCount%41FF409A021F.body
}

// Additional Declarations
  //## begin TestScenarioTemplate%41FF0DE8006D.declarations preserve=yes
  //## end TestScenarioTemplate%41FF0DE8006D.declarations

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