/******************************************************************************
** Copyright (C) 2001, University of Alabama in Huntsville. 
** All rights reserved.
**
** File   : CSheetOfAssertion.h
**
** Author : David Phillips
**
** Description:
**    This file provides definition for the CSheetOfAssertion
**    class.
**
** History:
** 24-Nov-2001 : David Phillips
**     Created file.
** 02-Dec-2001 : Satish Hota
**     Moved the ConceptVector and RelationVector typedefs to their 
**     respective header files.
******************************************************************************/

#ifndef CSheetOfAssertion_h
#define CSheetOfAssertion_h 1

#include "CGEngine\ACConstruct.h"
#include "CGEngine\CConcept.h"
#include "CGEngine\CRelation.h"
#include <map>
#include <vector>

class CSheetOfAssertion : public ACConstruct  //## Inherits: <unnamed>%3BD77420004F
{

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

      CSheetOfAssertion(const CSheetOfAssertion &right);

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

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

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

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

      void Insert (ACConstruct* pConstruct);
      void Remove (ACConstruct* pConstruct);

      CConcept* FindByLabel(std::string sLabel);

	  typedef std::map< std::string, CConcept* > LabelMap;
      const LabelMap* GetLabels() const;

  protected:
      LabelMap m_mapLabel;

      CConcept::ConceptVector m_vectorConcept;

      CRelation::RelationVector m_vectorRelation;

};

#endif
