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

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

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

#ifndef TransactionSpecificationValue_h
#define TransactionSpecificationValue_h 1

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

//## begin module%41F608450399.includes preserve=yes
#include <iostream>
#include <string>
//## end module%41F608450399.includes

// FieldExpression
#include "FieldExpression.h"

class TransactionSpecification;
class DefinedVariableTable;
class EvaluationContext;

//## begin module%41F608450399.additionalDeclarations preserve=yes
//## end module%41F608450399.additionalDeclarations


//## begin TransactionSpecificationValue%41F608450399.preface preserve=yes
//## end TransactionSpecificationValue%41F608450399.preface

//## Class: TransactionSpecificationValue%41F608450399; private
//      A value of a field in a transaction specification.  During transaction
//      generation, specifications are instantiated by evaluating its values.
//## Category: TransactionTestManager::Transaction Specification%41FD9D7902B3
//## Subsystem: MASS::Dev::Tools::TxnTestManager::src%41F5A79001E4
//## Persistence: Transient
//## Cardinality/Multiplicity: n



//## Uses: <unnamed>%420472570148;Iteration { -> }
//## Uses: <unnamed>%4204725F0233;TestScenario { -> }
//## Uses: <unnamed>%4204728C01D5;XMLSchema::IXmlSchemaWrapperSchema { -> }
//## Uses: <unnamed>%420AD8DF0202;DefinedVariableTable { -> F}
//## Uses: <unnamed>%421176A70068;EvaluationContext { -> F}

class TransactionSpecificationValue 
{
  //## begin TransactionSpecificationValue%41F608450399.initialDeclarations preserve=yes
  //## end TransactionSpecificationValue%41F608450399.initialDeclarations

  public:
    //## Constructors (specified)
      //## Operation: TransactionSpecificationValue%420429860176
      //        This constructor creates an instance for a given xpath.
      TransactionSpecificationValue (const std::string &xPath,  // The xpath of the field.
      TransactionSpecification& transaction     // The transaction for which this field is defined.  While we do not accept
        // ownership over this instance, we do assume its validity for the remainder
        // of our lifetime.
      );

      //## Operation: TransactionSpecificationValue%41F705C90020
      //        This constructor expects values for all attributes.
      TransactionSpecificationValue (const std::string &xPath,  // The xpath of the field.
      const std::string &value,         // The value.
      const bool &obsolete      // Of value true when the value is obsolete, and of value false otherwise.
      );

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


    //## Other Operations (specified)
      //## Operation: evaluate%420AC7E6015D
      //        Evaluate the expression of this field, 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.
      bool &postponed   // Set the actual argument to true when evaluation is postponed, and to false
        // otherwise.
      );

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

      //## Operation: getXPath%41F766AF01D4
      //        Evaluate to the xpath of this instance.
      const std::string & getXPath () const;

      //## Operation: isMarked%41F7058D0276
      //        Evaluate to true when this value is marked, and to false otherwise.
      const bool isMarked () const;

      //## Operation: isObsolete%41F7228502A8
      //        Evaluate to true when this value is obsolete, and to false otherwise.
      const bool isObsolete () const;

      //## Operation: mark%41F705930342
      //        Mark this value.
      void mark ();

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

      //## Operation: unmark%41F7070602A0
      //        Unmark this value.
      void unmark ();

    // Additional Public Declarations
      //## begin TransactionSpecificationValue%41F608450399.public preserve=yes
      //## end TransactionSpecificationValue%41F608450399.public

  protected:
    // Additional Protected Declarations
      //## begin TransactionSpecificationValue%41F608450399.protected preserve=yes
      //## end TransactionSpecificationValue%41F608450399.protected

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

      TransactionSpecificationValue(const TransactionSpecificationValue &right);

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

    // Data Members for Class Attributes

      //## Attribute: marked%41F704800286
      //        Of value true when this field is marked, and false otherwise.
      //## begin TransactionSpecificationValue::marked%41F704800286.attr preserve=no  private: bool {VA} false
      bool m_marked;
      //## end TransactionSpecificationValue::marked%41F704800286.attr

      //## Attribute: obsolete%41F7222B01BE
      //        Of value true when the value is obsolete, and of value false otherwise.
      //## begin TransactionSpecificationValue::obsolete%41F7222B01BE.attr preserve=no  private: bool {VA} 
      bool m_obsolete;
      //## end TransactionSpecificationValue::obsolete%41F7222B01BE.attr

      //## Attribute: inPayload%41F763980317
      //        When true, the value is in the payload, otherwise it is in the header.
      //## begin TransactionSpecificationValue::inPayload%41F763980317.attr preserve=no  private: bool {VA} 
      bool m_inPayload;
      //## end TransactionSpecificationValue::inPayload%41F763980317.attr

      //## Attribute: xPath%41F7044B0228
      //        The xpath of the field.
      //## begin TransactionSpecificationValue::xPath%41F7044B0228.attr preserve=no  private: std::string {VA} 
      std::string m_xPath;
      //## end TransactionSpecificationValue::xPath%41F7044B0228.attr

    // Data Members for Associations

      //## Association: TransactionTestManager::Transaction Generation::<unnamed>%4204701D02DA
      //## Role: TransactionSpecificationValue::transaction%4204701E002B
      //        The transaction for which this field is defined.  While we do not accept
      //        ownership over this instance, we do assume its validity for the remainder of
      //        our lifetime.
      //## begin TransactionSpecificationValue::transaction%4204701E002B.role preserve=no  private: TransactionSpecification {1 -> 1RFHAN}
      TransactionSpecification *m_transaction;
      //## end TransactionSpecificationValue::transaction%4204701E002B.role

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

    // Additional Private Declarations
      //## begin TransactionSpecificationValue%41F608450399.private preserve=yes
      //## end TransactionSpecificationValue%41F608450399.private

  private: //## implementation
    // Additional Implementation Declarations
      //## begin TransactionSpecificationValue%41F608450399.implementation preserve=yes
      //## end TransactionSpecificationValue%41F608450399.implementation

};

//## begin TransactionSpecificationValue%41F608450399.postscript preserve=yes
//## end TransactionSpecificationValue%41F608450399.postscript

// Class TransactionSpecificationValue 

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


#endif