/******************************************************************
** Copyright (C) 2001, University of Alabama in Huntsville. 
** All rights reserved.
**
** File   : CRelationHierarchy.h
**
** Author : David Phillips
**
** Description:
**    This file provides definition for the CRelationHierarchy
**    class.
**
** History:
**    24-Nov-2001 : David Phillips
**        Created file.
******************************************************************/

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

//## begin module%3BE21A8902B4.cm preserve=no
//	  %X% %Q% %Z% %W%
//## end module%3BE21A8902B4.cm

//## begin module%3BE21A8902B4.cp preserve=no
//## end module%3BE21A8902B4.cp

//## Module: CRelationHierarchy%3BE21A8902B4; Pseudo Package specification
//## Source file: C:\Documents and Settings\dphillips.PORTABLE\Desktop\CS650\ConGraT\CGEngine\CRelationHierarchy.h

#ifndef CRelationHierarchy_h
#define CRelationHierarchy_h 1

#pragma warning(disable: 4786)  // Disable debug information warning

//## begin module%3BE21A8902B4.additionalIncludes preserve=no
//## end module%3BE21A8902B4.additionalIncludes

//## begin module%3BE21A8902B4.includes preserve=yes
//## end module%3BE21A8902B4.includes

// ACConstruct
#include "CGEngine\ACConstruct.h"
#include <map>
#include <string>

//## begin module%3BE21A8902B4.additionalDeclarations preserve=yes
//## end module%3BE21A8902B4.additionalDeclarations


//## begin CRelationHierarchy%3BE21A8902B4.preface preserve=yes
//## end CRelationHierarchy%3BE21A8902B4.preface

//## Class: CRelationHierarchy%3BE21A8902B4
//	The CRelationHierarchy is a container that contains all
//	of the Relation_Definition instances.
//## Category: CGEngine%3BD772CB008A
//## Persistence: Transient
//## Cardinality/Multiplicity: n

class CRelationDefinition;

class CRelationHierarchy : public ACConstruct  //## Inherits: <unnamed>%3BE21A970138
{
  //## begin CRelationHierarchy%3BE21A8902B4.initialDeclarations preserve=yes
  //## end CRelationHierarchy%3BE21A8902B4.initialDeclarations

  public:
    //## Constructors (generated)
      CRelationHierarchy();

      CRelationHierarchy(const CRelationHierarchy &right);

    //## Destructor (generated)
      ~CRelationHierarchy();

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

    //## Equality Operations (generated)
      int operator==(const CRelationHierarchy &right) const;

      int operator!=(const CRelationHierarchy &right) const;

    // Additional Public Declarations
      void Insert (ACConstruct* pConstruct);

	  CRelationDefinition* FindByName(std::string sName) const;

	  void Commit();

  protected:
	  typedef std::map< std::string, CRelationDefinition* > RelationDefMap;
      RelationDefMap m_mapRelation;

  private:

};

//## begin CRelationHierarchy%3BE21A8902B4.postscript preserve=yes
//## end CRelationHierarchy%3BE21A8902B4.postscript

// Class CRelationHierarchy 

//## begin module%3BE21A8902B4.epilog preserve=yes
//## end module%3BE21A8902B4.epilog

#endif
