GME  13
OCLGMEECFacade.h
Go to the documentation of this file.
00001 //###############################################################################################################################################
00002 //
00003 //      Object Constraint Language Generic Manager
00004 //      OCLGMEECFacade.h
00005 //
00006 //###############################################################################################################################################
00007 
00008 #ifndef OCLGMEECFacade_h
00009 #define OCLGMEECFacade_h
00010 
00011 #include "GMEConstraintEx.h"
00012 
00013 namespace OclGmeEC
00014 {
00015         typedef CComObjPtr<IMgaFCO> SPFCO;
00016         typedef std::vector<SPFCO> FCOVector;
00017 
00018 //##############################################################################################################################################
00019 //
00020 //      C L A S S : OclGmeEC::Facade
00021 //
00022 //==============================================================================================================================================
00023 //
00024 //      D E S C R I P T I O N :
00025 //
00026 //##############################################################################################################################################
00027 
00028         class Facade
00029         {
00030                 private :
00031                         CComPtr<IMgaProject>            m_spProject;
00032                         OclTree::TreeManager*           m_pTreeManager;
00033 
00034                 public :
00035                         bool                                                                    m_bEnabled;
00036                         bool                                                                    m_bEnabledEvents;
00037                         bool                                                                    m_bEnabledInteractions;
00038 
00039                 public :
00040                                                                                                 Facade();
00041                                                                                                 ~Facade();
00042                                         void                                            Initialize( CComPtr<IMgaProject> spProject );
00043                                         void                                            Finalize();
00044 
00045                                         CComPtr<IMgaProject>    GetProject() const;
00046                                         OclTree::TreeManager*   GetTreeManager() const;
00047 
00048                                         void    CheckConstraint( CComPtr<IMgaFCO> spConstraint, OclGme::ConstraintVector& vecFaileds, bool bFieldsMandatory );
00049                                         void    CheckAllConstraints( OclGme::ConstraintVector& vecFaileds );
00050                                         void    CheckConstraintFunction( CComPtr<IMgaFCO> spConstraintFunction, OclGme::ConstraintFunctionVector& vecFaileds, bool bFieldsMandatory );
00051                                         void    CheckAllConstraintFunctions( OclGme::ConstraintFunctionVector& vecFaileds );
00052 
00053                 private :
00054                                         bool    IsConstraintDefined( CComPtr<IMgaFCO> spConstraint );
00055                                         bool    IsConstraintFunctionDefined( CComPtr<IMgaFCO> spConstraintFunction );
00056         };
00057 
00058 }; // namespace OclGmeEC
00059 
00060 #endif // OCLGMEECFacade_h