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

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

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

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

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

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


// Class TransactionTemplateCollection 

TransactionTemplateCollection::TransactionTemplateCollection()
  //## begin TransactionTemplateCollection::TransactionTemplateCollection%41FDA1530338_const.initialization preserve=yes
  //## end TransactionTemplateCollection::TransactionTemplateCollection%41FDA1530338_const.initialization
{
  //## begin TransactionTemplateCollection::TransactionTemplateCollection%41FDA1530338_const.body preserve=yes
  //## end TransactionTemplateCollection::TransactionTemplateCollection%41FDA1530338_const.body
}


TransactionTemplateCollection::~TransactionTemplateCollection()
{
  //## begin TransactionTemplateCollection::~TransactionTemplateCollection%41FDA1530338_dest.body preserve=yes

        clear();

  //## end TransactionTemplateCollection::~TransactionTemplateCollection%41FDA1530338_dest.body
}



//## Other Operations (implementation)
//## Operation: clear%41FF37BC037C
void TransactionTemplateCollection::clear ()
{
  //## begin TransactionTemplateCollection::clear%41FF37BC037C.body preserve=yes

        for ( std::map< int, TestScenarioTemplate * >::iterator where = m_scenario.begin();
                  where != m_scenario.end();
                  ++where )
        {
                delete where->second;
                where->second = 0;
        }
        m_scenario.clear();

  //## end TransactionTemplateCollection::clear%41FF37BC037C.body
}

//## Operation: findTestScenarioTemplate%41FF6B0502AD
TestScenarioTemplate* TransactionTemplateCollection::findTestScenarioTemplate (const int &scenario) const
{
  //## begin TransactionTemplateCollection::findTestScenarioTemplate%41FF6B0502AD.body preserve=yes

        std::map< int, TestScenarioTemplate * >::const_iterator
                instance = m_scenario.find( scenario );

        if ( instance != m_scenario.end() )
        {
                return ( instance->second );
        }

        return ( 0 );
        
  //## end TransactionTemplateCollection::findTestScenarioTemplate%41FF6B0502AD.body
}

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

        unsigned templates = 0;
        for ( std::map< int, TestScenarioTemplate * >::const_iterator where = m_scenario.begin();
                  where != m_scenario.end();
                  ++where )
        {
                templates += where->second->getTemplateCount();
        }

        return ( templates );

  //## end TransactionTemplateCollection::getTemplateCount%41FF47240341.body
}

//## Operation: getTestScenario%41FF20EA00B3
TestScenarioTemplate& TransactionTemplateCollection::getTestScenario (const int &scenario)
{
  //## begin TransactionTemplateCollection::getTestScenario%41FF20EA00B3.body preserve=yes

        std::map< int, TestScenarioTemplate * >::const_iterator
                instance = m_scenario.find( scenario );

        if ( instance != m_scenario.end() )
        {
                return ( *instance->second );
        }
        else
        {
                TestScenarioTemplate * testScenario = 0;

                try
                {
                        testScenario = new TestScenarioTemplate( scenario );

                        if ( m_scenario.insert(
                                        std::map< int, TestScenarioTemplate * >::value_type(
                                                scenario,
                                                testScenario ) ).second )
                        {
                                return ( *testScenario );
                        }
                        else
                        {
                                MTHROW( std::runtime_error, \
                                        "Cannot add scenario \"" \
                                        << scenario \
                                        << "\" to collection." );
                        }
                }
                catch ( ... )
                {
                        delete testScenario;
                        testScenario = 0;

                        throw;
                }
        }

  //## end TransactionTemplateCollection::getTestScenario%41FF20EA00B3.body
}

//## Operation: haveTemplatesForScenario%41FF3FF8006A
const bool TransactionTemplateCollection::haveTemplatesForScenario (const int &scenario) const
{
  //## begin TransactionTemplateCollection::haveTemplatesForScenario%41FF3FF8006A.body preserve=yes

        std::map< int, TestScenarioTemplate * >::const_iterator
                instance = m_scenario.find( scenario );

        if ( instance != m_scenario.end() )
        {
                if ( instance->second->getTemplateCount() > 0 )
                {
                        return ( true );
                }
        }

        instance = m_scenario.find( 0 );

        if ( instance != m_scenario.end() )
        {
                if ( instance->second->getTemplateCount() > 0 )
                {
                        return ( true );
                }
        }

        return ( false );

  //## end TransactionTemplateCollection::haveTemplatesForScenario%41FF3FF8006A.body
}

//## Operation: isTestScenarioContained%41FF6A27039E
const bool TransactionTemplateCollection::isTestScenarioContained (const int &scenario)
{
  //## begin TransactionTemplateCollection::isTestScenarioContained%41FF6A27039E.body preserve=yes

        return ( m_scenario.find( scenario ) != m_scenario.end() );

  //## end TransactionTemplateCollection::isTestScenarioContained%41FF6A27039E.body
}

// Additional Declarations
  //## begin TransactionTemplateCollection%41FDA1530338.declarations preserve=yes
  //## end TransactionTemplateCollection%41FDA1530338.declarations

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