GME  13
OclObjectExGME.h
Go to the documentation of this file.
00001 //###############################################################################################################################################
00002 //
00003 //      Object Constraint Language Generic Manager
00004 //      OCLObjectExGME.h
00005 //
00006 //###############################################################################################################################################
00007 
00008 #ifndef OCLObjectExGME_h
00009 #define OCLObjectExGME_h
00010 
00011 #include "StdAfx.h"
00012 #include "OCLCommon.h"
00013 #include "OCLObject.h"
00014 #include "mga.h"
00015 
00016         #define CREATE_GMEPROJECT( pManager, project )  \
00017                 OclMeta::Object( new OclGmeCM::Project( pManager, project ) )
00018 
00019         #define CREATE_GMEOBJECT( pManager, object )    \
00020                 OclMeta::Object( new OclGmeCM::Object( pManager, object ) )
00021 
00022         #define CREATE_GMECONNECTIONPOINT( pManager, object )   \
00023                 OclMeta::Object( new OclGmeCM::ConnectionPoint( pManager, object ) )
00024 
00025         #define DECL_GMEOBJECT( varName, var2Name )             \
00026                 CComPtr<IMgaObject> varName;                                    \
00027                 if ( ! var2Name.IsUndefined() )                                         \
00028                         ( ( OclGmeCM::Object* ) var2Name.GetImplementation() )->GetValue( varName )
00029 
00030         #define DECL_GMEFOLDER( varName, var2Name )             \
00031                 CComPtr<IMgaFolder> varName;                                    \
00032                 if ( ! var2Name.IsUndefined() )                                         \
00033                         ( ( OclGmeCM::Object* ) var2Name.GetImplementation() )->GetValue( varName )
00034 
00035         #define DECL_GMEFCO( varName, var2Name )                \
00036                 CComPtr<IMgaFCO> varName;                                       \
00037                 if ( ! var2Name.IsUndefined() )                                         \
00038                         ( ( OclGmeCM::Object* ) var2Name.GetImplementation() )->GetValue( varName )
00039 
00040         #define DECL_GMESET( varName, var2Name )                \
00041                 CComPtr<IMgaSet> varName;                                       \
00042                 if ( ! var2Name.IsUndefined() )                                         \
00043                         ( ( OclGmeCM::Object* ) var2Name.GetImplementation() )->GetValue( varName )
00044 
00045         #define DECL_GMEATOM( varName, var2Name )               \
00046                 CComPtr<IMgaAtom> varName;                                      \
00047                 if ( ! var2Name.IsUndefined() )                                         \
00048                         ( ( OclGmeCM::Object* ) var2Name.GetImplementation() )->GetValue( varName )
00049 
00050         #define DECL_GMEMODEL( varName, var2Name )              \
00051                 CComPtr<IMgaModel> varName;                                     \
00052                 if ( ! var2Name.IsUndefined() )                                         \
00053                         ( ( OclGmeCM::Object* ) var2Name.GetImplementation() )->GetValue( varName )
00054 
00055         #define DECL_GMEREFERENCE( varName, var2Name )          \
00056                 CComPtr<IMgaReference> varName;                                 \
00057                 if ( ! var2Name.IsUndefined() )                                         \
00058                         ( ( OclGmeCM::Object* ) var2Name.GetImplementation() )->GetValue( varName )
00059 
00060         #define DECL_GMECONNECTION( varName, var2Name )         \
00061                 CComPtr<IMgaConnection> varName;                                        \
00062                 if ( ! var2Name.IsUndefined() )                                         \
00063                         ( ( OclGmeCM::Object* ) var2Name.GetImplementation() )->GetValue( varName )
00064 
00065         #define DECL_GMECONNECTIONPOINT( varName, var2Name )            \
00066                 CComPtr<IMgaConnPoint> varName;                                 \
00067                 if ( ! var2Name.IsUndefined() )                                         \
00068                         ( ( OclGmeCM::ConnectionPoint* ) var2Name.GetImplementation() )->GetValue( varName )
00069 
00070         #define DECL_GMEPROJECT( varName, var2Name )            \
00071                 CComPtr<IMgaProject> varName;                                   \
00072                 if ( ! var2Name.IsUndefined() )                                         \
00073                         ( ( OclGmeCM::Project* ) var2Name.GetImplementation() )->GetValue( varName )
00074 
00075 namespace OclGmeCM
00076 {
00077         typedef OclImplementation::Object Any;
00078 
00079 //##############################################################################################################################################
00080 //
00081 //      C L A S S : OclGmeCM::Object <<< + Any
00082 //
00083 //==============================================================================================================================================
00084 //
00085 //      D E S C R I P T I O N :
00086 //
00087 //##############################################################################################################################################
00088 
00089         class Object
00090                 : public Any
00091         {
00092                 private :
00093                         CComPtr<IMgaObject>     m_Value;
00094 
00095                 public :
00096                                                         Object( OclMeta::TypeManager* pManager, CComPtr<IMgaObject> value );
00097                                                         Object( OclMeta::TypeManager* pManager, CComPtr<IMgaFCO> value );
00098                                                         Object( OclMeta::TypeManager* pManager, CComPtr<IMgaFolder> value );
00099                                                         Object( OclMeta::TypeManager* pManager, CComPtr<IMgaAtom> value );
00100                                                         Object( OclMeta::TypeManager* pManager, CComPtr<IMgaModel> value );
00101                                                         Object( OclMeta::TypeManager* pManager, CComPtr<IMgaConnection> value );
00102                                                         Object( OclMeta::TypeManager* pManager, CComPtr<IMgaReference> value );
00103                                                         Object( OclMeta::TypeManager* pManager, CComPtr<IMgaSet> value );
00104                 private :
00105                                                         void SetTypeName();
00106                 public :
00107                         virtual         Any*    Clone() const;
00108 
00109                                         int             GetValue( CComPtr<IMgaObject>& value ) const;
00110                                         void    SetValue( CComPtr<IMgaObject> value );
00111                                         int             GetValue( CComPtr<IMgaFolder>& value ) const;
00112                                         void    SetValue( CComPtr<IMgaFolder> value );
00113                                         int             GetValue( CComPtr<IMgaFCO>& value ) const;
00114                                         void    SetValue( CComPtr<IMgaFCO> value );
00115                                         int             GetValue( CComPtr<IMgaModel>& value ) const;
00116                                         void    SetValue( CComPtr<IMgaModel> value );
00117                                         int             GetValue( CComPtr<IMgaAtom>& value ) const;
00118                                         void    SetValue( CComPtr<IMgaAtom> value );
00119                                         int             GetValue( CComPtr<IMgaReference>& value ) const;
00120                                         void    SetValue( CComPtr<IMgaReference> value );
00121                                         int             GetValue( CComPtr<IMgaConnection>& value ) const;
00122                                         void    SetValue( CComPtr<IMgaConnection> value );
00123                                         int             GetValue( CComPtr<IMgaSet>& value ) const;
00124                                         void    SetValue( CComPtr<IMgaSet> value );
00125 
00126                         virtual         bool    Equals( const Any& object ) const;
00127                                         bool    operator==( const Object& object ) const;
00128                                         bool    operator!=( const Object& object ) const;
00129 
00130                         virtual std::string     Print() const;
00131                         virtual IUnknown* GetObject() const;
00132         };
00133 
00134 //##############################################################################################################################################
00135 //
00136 //      C L A S S : OclGmeCM::ConnectionPoint <<< + Any
00137 //
00138 //==============================================================================================================================================
00139 //
00140 //      D E S C R I P T I O N :
00141 //
00142 //##############################################################################################################################################
00143 
00144         class ConnectionPoint
00145                 : public Any
00146         {
00147                 private :
00148                         CComPtr<IMgaConnPoint>  m_Value;
00149 
00150                 public :
00151                                                         ConnectionPoint( OclMeta::TypeManager* pManager, CComPtr<IMgaConnPoint> value );
00152                         virtual         Any*    Clone() const;
00153 
00154                                         int             GetValue( CComPtr<IMgaConnPoint>& value ) const;
00155                                         void    SetValue( CComPtr<IMgaConnPoint> value );
00156 
00157                         virtual         bool    Equals( const Any& object ) const;
00158                                         bool    operator==( const ConnectionPoint& object ) const;
00159                                         bool    operator!=( const ConnectionPoint& object ) const;
00160 
00161                         virtual std::string     Print() const;
00162         };
00163 
00164 //##############################################################################################################################################
00165 //
00166 //      C L A S S : OclGmeCM::Project <<< + Any
00167 //
00168 //==============================================================================================================================================
00169 //
00170 //      D E S C R I P T I O N :
00171 //
00172 //##############################################################################################################################################
00173 
00174         class Project
00175                 : public Any
00176         {
00177                 private :
00178                         CComPtr<IMgaProject>    m_Value;
00179 
00180                 public :
00181                                                         Project( OclMeta::TypeManager* pManager, CComPtr<IMgaProject> value );
00182                         virtual         Any*    Clone() const;
00183 
00184                                         int             GetValue( CComPtr<IMgaProject>& value ) const;
00185                                         void    SetValue( CComPtr<IMgaProject> value );
00186 
00187                         virtual         bool    Equals( const Any& object ) const;
00188                                         bool    operator==( const Project& object ) const;
00189                                         bool    operator!=( const Project& object ) const;
00190 
00191                         virtual std::string     Print() const;
00192         };
00193 
00194 }; // namespace OclGmeCM
00195 
00196 #endif // OCLObjectExGME_h