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

//## begin module%4209C61A01F8.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%4209C61A01F8.cp

//## Module: DefinedVariable%4209C61A01F8; Pseudo Package specification
//## Subsystem: MASS::Dev::Tools::TxnTestManager::src%41F5A79001E4
//## Source file: Z:\MASS_Dev\Tools\TxnTestManager\src\DefinedVariable.h

#ifndef DefinedVariable_h
#define DefinedVariable_h 1

//## begin module%4209C61A01F8.additionalIncludes preserve=no
//## end module%4209C61A01F8.additionalIncludes

//## begin module%4209C61A01F8.includes preserve=yes
//## end module%4209C61A01F8.includes

// FieldExpression
#include "FieldExpression.h"

class TransactionSpecificationValue;
class EvaluationContext;

//## begin module%4209C61A01F8.additionalDeclarations preserve=yes
#include <vector>
//## end module%4209C61A01F8.additionalDeclarations


//## begin DefinedVariable%4209C61A01F8.preface preserve=yes
//## end DefinedVariable%4209C61A01F8.preface

//## Class: DefinedVariable%4209C61A01F8; private
//      A defined variable.
//## Category: TransactionTestManager::Symbol Table%4209C5C30033
//## Subsystem: MASS::Dev::Tools::TxnTestManager::src%41F5A79001E4
//## Persistence: Transient
//## Cardinality/Multiplicity: n



//## Uses: <unnamed>%420ACCBD0067;TransactionSpecificationValue { -> F}
//## Uses: <unnamed>%421176B20172;EvaluationContext { -> F}

class DefinedVariable 
{
  //## begin DefinedVariable%4209C61A01F8.initialDeclarations preserve=yes
  //## end DefinedVariable%4209C61A01F8.initialDeclarations

  public:
    //## Constructors (specified)
      //## Operation: DefinedVariable%4209CBCF00A3
      //        The only constructor.
      DefinedVariable (const std::string &variableName  // The name of this variable.
      );

    //## Destructor (generated)
      virtual ~DefinedVariable();


    //## Other Operations (specified)
      //## Operation: evaluate%420ACC990152
      //        Evaluate the expression of this variable, and evaluate to true, or to false
      //        when any expression cannot be evaluated.
      const bool evaluate (std::string &value,  // The resulting value.
      const bool &sideEffect,   // When true, evaluation is allowed to have side effects, otherwise side
        // effects must be suppressed.  For example, when true, a call to a sequence
        // generator may allocate a new number from the sequence: when false, the call
        // must not change the sate of the sequence generator.
        // 
        // One usage of this: when generating a transaction side effects are allowed,
        // when rendering the hint to display for a field value side effects are not
        // allowed.
      EvaluationContext& evaluationContext,     // The evaluation context.
      std::vector< DefinedVariable * > &path,   // The evaluation path.
      bool &postponed   // Set the actual argument to true when evaluation is postponed, and to false
        // otherwise.
      );

      //## Operation: getExpression%420ACC82000A
      //        Evaluate to the expression of this instance.
      const std::string & getExpression () const;

      //## Operation: setExpression%420ACC82000B
      //        Set the expression of this instance, and evaluate to the resulting value.
      const std::string & setExpression (const std::string &value       // The value.
      );

    // Additional Public Declarations
      //## begin DefinedVariable%4209C61A01F8.public preserve=yes
      //## end DefinedVariable%4209C61A01F8.public

  protected:
    // Additional Protected Declarations
      //## begin DefinedVariable%4209C61A01F8.protected preserve=yes
      //## end DefinedVariable%4209C61A01F8.protected

  private:
    //## Constructors (generated)
      DefinedVariable();

      DefinedVariable(const DefinedVariable &right);

    //## Assignment Operation (generated)
      DefinedVariable & operator=(const DefinedVariable &right);

    // Data Members for Class Attributes

      //## Attribute: variableName%4209C7AD00AE
      //        The name of this variable.
      //## begin DefinedVariable::variableName%4209C7AD00AE.attr preserve=no  private: std::string {VAC} variableName
      const std::string m_variableName;
      //## end DefinedVariable::variableName%4209C7AD00AE.attr

      //## Attribute: value%4209C7CD00DD
      //        The value of this variable.
      //## begin DefinedVariable::value%4209C7CD00DD.attr preserve=no  private: std::string {VA} 
      std::string m_value;
      //## end DefinedVariable::value%4209C7CD00DD.attr

    // Data Members for Associations

      //## Association: TransactionTestManager::Symbol Table::<unnamed>%420ACBD602E8
      //## Role: DefinedVariable::expression%420ACBD70077
      //        expression
      //## begin DefinedVariable::expression%420ACBD70077.role preserve=no  private: FieldExpression {1 -> 1VHgAN}
      FieldExpression m_expression;
      //## end DefinedVariable::expression%420ACBD70077.role

    // Additional Private Declarations
      //## begin DefinedVariable%4209C61A01F8.private preserve=yes
      //## end DefinedVariable%4209C61A01F8.private

  private: //## implementation
    // Additional Implementation Declarations
      //## begin DefinedVariable%4209C61A01F8.implementation preserve=yes
      //## end DefinedVariable%4209C61A01F8.implementation

};

//## begin DefinedVariable%4209C61A01F8.postscript preserve=yes
//## end DefinedVariable%4209C61A01F8.postscript

// Class DefinedVariable 

//## begin module%4209C61A01F8.epilog preserve=yes
//## end module%4209C61A01F8.epilog


#endif