GME  13
MgaMetaConnJoint.cpp
Go to the documentation of this file.
00001 
00002 #include "stdafx.h"
00003 #include "MgaMetaConnJoint.h"
00004 #include "MgaMetaPointerSpec.h"
00005 
00006 // --------------------------- CMgaMetaConnJoint
00007 
00008 // ------- Methods
00009 
00010 void CMgaMetaConnJoint::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
00011 {
00012         ASSERT( metaproject != NULL );
00013         ASSERT( me != NULL );
00014 
00015         TraverseCollection(metaproject, me, ATTRID_PTRSPECS_COLL);
00016 }
00017 
00018 bool CMgaMetaConnJoint::CheckPaths(CCoreObjectPtr &self, jointpaths_type &jointpaths)
00019 {
00020         ASSERT( self != NULL );
00021 
00022         jointpaths_type::iterator i = jointpaths.begin();
00023         jointpaths_type::iterator e = jointpaths.end();
00024         while( i != e )
00025         {
00026                 CCoreObjectPtr spec;
00027 
00028                 if( FAILED(ComGetCollValueByName(i->ptrspec_name,
00029                                 self, ATTRID_PTRSPECS_COLL, ATTRID_PTRSPECNAME, PutOut(spec))) )
00030                         return false;
00031 
00032                 ASSERT( spec != NULL );
00033 
00034                 if( !CMgaMetaPointerSpec::CheckPath(spec, i->pathitems, false) )
00035                         return false;
00036 
00037                 ++i;
00038         }
00039 
00040         return true;
00041 }