[GME-commit] GMESRC/GME/ConstraintManager AParser.cpp,1.1,1.2 ConstraintManager.dsp,1.22,1.23 ConstraintMgr.cpp,1.17,1.18 ExpressionChecker.cpp,1.16,1.17 GMEConstraintBrowserDialog.cpp,1.12,1.13 GMEConstraintBrowserDialog.h,1.6,1.7 GMEConstraintEx.cpp,1.14,1.15 GMEConstraintEx.h,1.7,1.8 GMEConstraintPropertiesDialog.cpp,1.13,1.14 GMEConstraintPropertiesDialog.h,1.6,1.7 GMESyntacticSemanticDialog.cpp,1.10,1.11 GMEViolationDialog.cpp,1.15,1.16 GMEViolationDialog.h,1.11,1.12 OCLCommon.cpp,1.4,1.5 OCLCommon.h,1.4,1.5 OCLCommonEx.cpp,1.11,1.12 OCLCommonEx.h,1.8,1.9 OCLContext.h,1.4,1.5 OCLException.cpp,1.9,1.10 OCLException.h,1.8,1.9 OCLFactory.h,1.2,1.3 OCLFeature.h,1.2,1.3 OCLFeatureImplementation.h,1.6,1.7 OCLFormalParameter.h,1.1,1.2 OCLGMECMFacade.cpp,1.27,1.28 OCLGMECMFacade.h,1.12,1.13 OCLGMEECFacade.cpp,1.11,1.12 OCLGMEECFacade.h,1.4,1.5 OCLObject.cpp,1.7,1.8 OCLObject.h,1.4,1.5 OCLObjectExBasic.cpp,1.7,1.8 OCLObjectExBasic.h,1.4,1.5 OCLObjectExGME.cpp,1.9,1.10 OCLParserStatic.cpp,1.5,1.6 OCLParserStatic.h,1.5,1.6 OCLSignature.cpp,1.3,1.4 OCLSignature.h,1.2,1.3 OCLTree.cpp,1.28,1.29 OCLTree.h,1.14,1.15 OCLType.cpp,1.7,1.8 OCLType.h,1.3,1.4 OCLTypeExBasic.cpp,1.17,1.18 OCLTypeExBasic.h,1.3,1.4 OCLTypeExGMECM.cpp,1.27,1.28 OCLTypeExGMECM.h,1.4,1.5 OCLTypeExGMEEC.cpp,1.21,1.22 OCLTypeExGMEEC.h,1.4,1.5 OclConstraint.cpp,1.6,1.7 OclConstraint.h,1.5,1.6 OclObjectExGME.h,1.3,1.4 OclViolation.h,1.3,1.4 StdAfx.h,1.7,1.8

gme-commit at list.isis.vanderbilt.edu gme-commit at list.isis.vanderbilt.edu
Wed Oct 13 11:18:02 CDT 2004


Update of /var/lib/gme/GMESRC/GME/ConstraintManager
In directory braindrain:/tmp/cvs-serv20870/ConstraintManager

Modified Files:
	AParser.cpp ConstraintManager.dsp ConstraintMgr.cpp 
	ExpressionChecker.cpp GMEConstraintBrowserDialog.cpp 
	GMEConstraintBrowserDialog.h GMEConstraintEx.cpp 
	GMEConstraintEx.h GMEConstraintPropertiesDialog.cpp 
	GMEConstraintPropertiesDialog.h GMESyntacticSemanticDialog.cpp 
	GMEViolationDialog.cpp GMEViolationDialog.h OCLCommon.cpp 
	OCLCommon.h OCLCommonEx.cpp OCLCommonEx.h OCLContext.h 
	OCLException.cpp OCLException.h OCLFactory.h OCLFeature.h 
	OCLFeatureImplementation.h OCLFormalParameter.h 
	OCLGMECMFacade.cpp OCLGMECMFacade.h OCLGMEECFacade.cpp 
	OCLGMEECFacade.h OCLObject.cpp OCLObject.h 
	OCLObjectExBasic.cpp OCLObjectExBasic.h OCLObjectExGME.cpp 
	OCLParserStatic.cpp OCLParserStatic.h OCLSignature.cpp 
	OCLSignature.h OCLTree.cpp OCLTree.h OCLType.cpp OCLType.h 
	OCLTypeExBasic.cpp OCLTypeExBasic.h OCLTypeExGMECM.cpp 
	OCLTypeExGMECM.h OCLTypeExGMEEC.cpp OCLTypeExGMEEC.h 
	OclConstraint.cpp OclConstraint.h OclObjectExGME.h 
	OclViolation.h StdAfx.h 
Log Message:
GME ported to STLport
-std:: prefix added to stl classes and methods



CVS User: zolmol

Index: AParser.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/AParser.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** AParser.cpp	20 Aug 2002 15:39:00 -0000	1.1
--- AParser.cpp	13 Oct 2004 15:17:54 -0000	1.2
***************
*** 30,34 ****
  #include <stdlib.h>
  #include <stdarg.h>
! #include <string.h>
  #include <stdio.h>
  
--- 30,34 ----
  #include <stdlib.h>
  #include <stdarg.h>
! #include <string.h>//z!
  #include <stdio.h>
  

Index: ConstraintManager.dsp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/ConstraintManager.dsp,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** ConstraintManager.dsp	13 Sep 2004 14:14:53 -0000	1.22
--- ConstraintManager.dsp	13 Oct 2004 15:17:54 -0000	1.23
***************
*** 44,48 ****
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
! # ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "../Common" /I "../interfaces" /I "../include/STL" /I "." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /FR /FD /GZ /c
  # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
  # ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
--- 44,48 ----
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
! # ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "../Common" /I "../interfaces" /I "../include/STLport" /I "." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /FR /FD /GZ /c
  # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
  # ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
***************
*** 53,57 ****
  LINK32=link.exe
  # ADD BASE LINK32 /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
! # ADD LINK32 /nologo /base:"0x60200000" /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
  # Begin Custom Build - Performing registration
  OutDir=.\Debug
--- 53,57 ----
  LINK32=link.exe
  # ADD BASE LINK32 /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
! # ADD LINK32 /nologo /base:"0x60200000" /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\lib"
  # Begin Custom Build - Performing registration
  OutDir=.\Debug
***************
*** 80,84 ****
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /MD /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /D "_ATL_STATIC_REGISTRY" /Yu"stdafx.h" /FD /c
! # ADD CPP /nologo /MD /W3 /GX /Zi /O1 /I "../Common" /I "../interfaces" /I "../include/STL" /I "." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /D "_ATL_STATIC_REGISTRY" /FR /FD /c
  # SUBTRACT CPP /YX /Yc /Yu
  # ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
--- 80,84 ----
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /MD /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /D "_ATL_STATIC_REGISTRY" /Yu"stdafx.h" /FD /c
! # ADD CPP /nologo /MD /W3 /GX /Zi /O1 /I "../Common" /I "../interfaces" /I "../include/STLport" /I "." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /D "_ATL_STATIC_REGISTRY" /FR /FD /c
  # SUBTRACT CPP /YX /Yc /Yu
  # ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
***************
*** 89,93 ****
  LINK32=link.exe
  # ADD BASE LINK32 /nologo /subsystem:windows /dll /machine:I386
! # ADD LINK32 /nologo /base:"0x60200000" /subsystem:windows /dll /map /debug /machine:I386
  # Begin Custom Build - Performing registration
  OutDir=.\Release
--- 89,93 ----
  LINK32=link.exe
  # ADD BASE LINK32 /nologo /subsystem:windows /dll /machine:I386
! # ADD LINK32 /nologo /base:"0x60200000" /subsystem:windows /dll /map /debug /machine:I386 /libpath:"..\lib"
  # Begin Custom Build - Performing registration
  OutDir=.\Release

Index: ConstraintMgr.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/ConstraintMgr.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** ConstraintMgr.cpp	25 Aug 2004 13:53:36 -0000	1.17
--- ConstraintMgr.cpp	13 Oct 2004 15:17:54 -0000	1.18
***************
*** 57,66 ****
  			COMTHROW(oleapp->ShowFCO(fco));
  		}
! 		catch (CException* e)			
  		{
  		}
  
  	} 
! 	catch(hresult_exception &e) 
  	{ 
  		return ; 
--- 57,66 ----
  			COMTHROW(oleapp->ShowFCO(fco));
  		}
! 		catch (CException*)
  		{
  		}
  
  	} 
! 	catch(hresult_exception &)
  	{ 
  		return ; 
***************
*** 208,212 ****
  		if ( ! vecConstraints.empty() || ! vecConstraintFunctions.empty() ) {
  			CSyntacticSemanticDialog dlgErrors;
! 			for ( int i = 0 ; i < vecConstraintFunctions.size() ; i++ )
  				dlgErrors.AddItem( vecConstraintFunctions[ i ] );
  			for ( i = 0 ; i < vecConstraints.size() ; i++ )
--- 208,212 ----
  		if ( ! vecConstraints.empty() || ! vecConstraintFunctions.empty() ) {
  			CSyntacticSemanticDialog dlgErrors;
! 			for ( unsigned int i = 0 ; i < vecConstraintFunctions.size() ; i++ )
  				dlgErrors.AddItem( vecConstraintFunctions[ i ] );
  			for ( i = 0 ; i < vecConstraints.size() ; i++ )

Index: ExpressionChecker.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/ExpressionChecker.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** ExpressionChecker.cpp	16 Dec 2002 23:26:00 -0000	1.16
--- ExpressionChecker.cpp	13 Oct 2004 15:17:54 -0000	1.17
***************
*** 50,54 ****
  		if ( ! vecConstraints.empty() || ! vecConstraintFunctions.empty() ) {
  			CSyntacticSemanticDialog dlgErrors( AfxGetApp()->m_pActiveWnd );
! 			for ( int i = 0 ; i < vecConstraintFunctions.size() ; i++ )
  				dlgErrors.AddItem( vecConstraintFunctions[ i ] );
  			for ( i = 0 ; i < vecConstraints.size() ; i++ )
--- 50,54 ----
  		if ( ! vecConstraints.empty() || ! vecConstraintFunctions.empty() ) {
  			CSyntacticSemanticDialog dlgErrors( AfxGetApp()->m_pActiveWnd );
! 			for ( unsigned int i = 0 ; i < vecConstraintFunctions.size() ; i++ )
  				dlgErrors.AddItem( vecConstraintFunctions[ i ] );
  			for ( i = 0 ; i < vecConstraints.size() ; i++ )
***************
*** 107,111 ****
  			CComQIPtr<IMgaFCO> spFCO = obj;
  			if( spFCO ) {
! 				string strKind = OclCommonEx::GetObjectKind( spFCO.p );
  				if ( strKind == "Constraint" ) {
  					CWaitCursor crsrWait;
--- 107,111 ----
  			CComQIPtr<IMgaFCO> spFCO = obj;
  			if( spFCO ) {
! 				std::string strKind = OclCommonEx::GetObjectKind( spFCO.p );
  				if ( strKind == "Constraint" ) {
  					CWaitCursor crsrWait;
***************
*** 114,118 ****
  					if ( ! vecConstraints.empty() ) {
  						CSyntacticSemanticDialog dlgErrors( pMainWindow );
! 						for ( int i = 0 ; i < vecConstraints.size() ; i++ )
  							dlgErrors.AddItem( vecConstraints[ i ] );
  						crsrWait.Restore();
--- 114,118 ----
  					if ( ! vecConstraints.empty() ) {
  						CSyntacticSemanticDialog dlgErrors( pMainWindow );
! 						for ( unsigned int i = 0 ; i < vecConstraints.size() ; i++ )
  							dlgErrors.AddItem( vecConstraints[ i ] );
  						crsrWait.Restore();
***************
*** 128,132 ****
  					if ( ! vecConstraintFunctions.empty() ) {
  						CSyntacticSemanticDialog dlgErrors( pMainWindow );
! 						for ( int i = 0 ; i < vecConstraintFunctions.size() ; i++ )
  							dlgErrors.AddItem( vecConstraintFunctions[ i ] );
  						crsrWait.Restore();
--- 128,132 ----
  					if ( ! vecConstraintFunctions.empty() ) {
  						CSyntacticSemanticDialog dlgErrors( pMainWindow );
! 						for ( unsigned int i = 0 ; i < vecConstraintFunctions.size() ; i++ )
  							dlgErrors.AddItem( vecConstraintFunctions[ i ] );
  						crsrWait.Restore();

Index: GMEConstraintBrowserDialog.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/GMEConstraintBrowserDialog.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** GMEConstraintBrowserDialog.cpp	14 Jun 2004 20:28:23 -0000	1.12
--- GMEConstraintBrowserDialog.cpp	13 Oct 2004 15:17:54 -0000	1.13
***************
*** 195,199 ****
  					OclCommonEx::ObjectVector vecObjects;
  					OclCommonEx::GetKindObjects( m_pFacade->GetProject(), spConstraint->GetContextType().substr( 6 ), vecObjects );
! 					for ( int i = 0 ; i < vecObjects.size() ; i++ ) {
  						OclGme::Constraint::EnableInfo eInfo = spConstraint->GetEnableInfo( vecObjects[ i ].p );
  						if ( eInfo > OclGme::Constraint::CE_NONE && eInfo <= OclGme::Constraint::CE_ENABLED_READONLY ) {
--- 195,199 ----
  					OclCommonEx::ObjectVector vecObjects;
  					OclCommonEx::GetKindObjects( m_pFacade->GetProject(), spConstraint->GetContextType().substr( 6 ), vecObjects );
! 					for ( unsigned int i = 0 ; i < vecObjects.size() ; i++ ) {
  						OclGme::Constraint::EnableInfo eInfo = spConstraint->GetEnableInfo( vecObjects[ i ].p );
  						if ( eInfo > OclGme::Constraint::CE_NONE && eInfo <= OclGme::Constraint::CE_ENABLED_READONLY ) {
***************
*** 214,223 ****
  			HTREEITEM hParent = m_treeObjects.GetParentItem( *it );
  			MapH2ID::iterator idit = m_mapH2ID.find( ( HTREEITEM ) m_treeObjects.GetItemData( hParent ) );
! 			string strOID = (*idit).second;
  			CComPtr<IMgaObject> spObject;
  			COMTHROW( m_pFacade->GetProject()->GetObjectByID( CComBSTR( OclCommonEx::Convert( (*idit).second ) ), &spObject ) );
  			item.spObject = CREATE_GMEOBJECT( m_pFacade->GetTreeManager()->GetTypeManager(), spObject );
  
! 			string strCID = OclCommonEx::Convert( m_treeObjects.GetItemText( *it ) );
  			for ( ConstraintMap::iterator cit = m_mapConstraint.begin() ; cit != m_mapConstraint.end() ; cit++ ) {
  				if ( (*cit).second->GetFullName() == strCID ) {
--- 214,223 ----
  			HTREEITEM hParent = m_treeObjects.GetParentItem( *it );
  			MapH2ID::iterator idit = m_mapH2ID.find( ( HTREEITEM ) m_treeObjects.GetItemData( hParent ) );
! 			std::string strOID = (*idit).second;
  			CComPtr<IMgaObject> spObject;
  			COMTHROW( m_pFacade->GetProject()->GetObjectByID( CComBSTR( OclCommonEx::Convert( (*idit).second ) ), &spObject ) );
  			item.spObject = CREATE_GMEOBJECT( m_pFacade->GetTreeManager()->GetTypeManager(), spObject );
  
! 			std::string strCID = OclCommonEx::Convert( m_treeObjects.GetItemText( *it ) );
  			for ( ConstraintMap::iterator cit = m_mapConstraint.begin() ; cit != m_mapConstraint.end() ; cit++ ) {
  				if ( (*cit).second->GetFullName() == strCID ) {
***************
*** 519,523 ****
  	void CConstraintBrowserDialog::LoadConstraints()
  	{
! 		for ( int i = 0 ; i < m_pFacade->m_vecMetaConstraints.size() ; i++ )
  			AddConstraint( m_pFacade->m_vecMetaConstraints[ i ] );
  		for ( i = 0 ; i < m_pFacade->m_vecUserConstraints.size() ; i++ )
--- 519,523 ----
  	void CConstraintBrowserDialog::LoadConstraints()
  	{
! 		for ( unsigned int i = 0 ; i < m_pFacade->m_vecMetaConstraints.size() ; i++ )
  			AddConstraint( m_pFacade->m_vecMetaConstraints[ i ] );
  		for ( i = 0 ; i < m_pFacade->m_vecUserConstraints.size() ; i++ )
***************
*** 536,541 ****
  		CComPtr<IMgaMetaFolder> spRootFolder;
  		COMTHROW( m_pFacade->GetMetaProject()->get_RootFolder( &spRootFolder ) );
! 		for ( int i = 0 ; i < vecMetas.size() ; i++ ) {
! 			string strKind = OclCommonEx::GetObjectName( vecMetas[ i ].p );
  			objtype_enum eType = OclCommonEx::GetObjectType( vecMetas[ i ].p );
  			if ( eType == OBJTYPE_FOLDER )
--- 536,541 ----
  		CComPtr<IMgaMetaFolder> spRootFolder;
  		COMTHROW( m_pFacade->GetMetaProject()->get_RootFolder( &spRootFolder ) );
! 		for ( unsigned int i = 0 ; i < vecMetas.size() ; i++ ) {
! 			std::string strKind = OclCommonEx::GetObjectName( vecMetas[ i ].p );
  			objtype_enum eType = OclCommonEx::GetObjectType( vecMetas[ i ].p );
  			if ( eType == OBJTYPE_FOLDER )
***************
*** 565,569 ****
  			case Ocl::Constraint::CS_CHECK_FAILED : {
  				iImNumS = CSIMG_SEMANTIC_ERROR;
! 				string strType = spConstraint->GetFullName();
  				int iPos = strType.rfind( ":" );
  				strType = strType.substr( 0, iPos - 1 );
--- 565,569 ----
  			case Ocl::Constraint::CS_CHECK_FAILED : {
  				iImNumS = CSIMG_SEMANTIC_ERROR;
! 				std::string strType = spConstraint->GetFullName();
  				int iPos = strType.rfind( ":" );
  				strType = strType.substr( 0, iPos - 1 );
***************
*** 604,608 ****
  	}
  
! 	void CConstraintBrowserDialog::ExpandKind( const string& strKind, HTREEITEM hItem )
  	{
  		if ( m_treeObjects.GETSTATE( hItem ) != NS_UNKNOWN )
--- 604,608 ----
  	}
  
! 	void CConstraintBrowserDialog::ExpandKind( const std::string& strKind, HTREEITEM hItem )
  	{
  		if ( m_treeObjects.GETSTATE( hItem ) != NS_UNKNOWN )
***************
*** 621,625 ****
  		// Add Constraints As Children
  
! 		for ( int i = 0 ; i < vecConstraints.size() ; i++ ) {
  			UINT uiMask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_STATE | TVIF_TEXT;
  			int iImNum = vecConstraints[ i ]->GetType();
--- 621,625 ----
  		// Add Constraints As Children
  
! 		for ( unsigned int i = 0 ; i < vecConstraints.size() ; i++ ) {
  			UINT uiMask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_STATE | TVIF_TEXT;
  			int iImNum = vecConstraints[ i ]->GetType();
***************
*** 650,654 ****
  		// Determine icon
  
! 		string strName = OclCommonEx::GetObjectName( spObject );
  		CComQIPtr<IMgaFCO> spFCO = spObject;
  		CComQIPtr<IMgaFolder> spFolder = spObject;
--- 650,654 ----
  		// Determine icon
  
! 		std::string strName = OclCommonEx::GetObjectName( spObject );
  		CComQIPtr<IMgaFCO> spFCO = spObject;
  		CComQIPtr<IMgaFolder> spFolder = spObject;
***************
*** 683,687 ****
  		m_mapID2H.insert( MapID2H::value_type( OclCommonEx::Convert( strID ), hItem ) );
  
! 		for ( int i = 0 ; i < vecConstraints.size() ; i++ ) {
  
  			// Add Constraint
--- 683,687 ----
  		m_mapID2H.insert( MapID2H::value_type( OclCommonEx::Convert( strID ), hItem ) );
  
! 		for ( unsigned int i = 0 ; i < vecConstraints.size() ; i++ ) {
  
  			// Add Constraint
***************
*** 764,768 ****
  	}
  
! 	int CConstraintBrowserDialog::GetAncestorState( HTREEITEM hItem, const string& strCID )
  	{
  		HTREEITEM hParent = m_treeObjects.GetParentItem( hItem ); // Assume Instance
--- 764,768 ----
  	}
  
! 	int CConstraintBrowserDialog::GetAncestorState( HTREEITEM hItem, const std::string& strCID )
  	{
  		HTREEITEM hParent = m_treeObjects.GetParentItem( hItem ); // Assume Instance
***************
*** 863,867 ****
  	}
  
! 	HTREEITEM CConstraintBrowserDialog::FindConstraintNode( HTREEITEM hItem, const string& strCID )
  	{
  		for ( HTREEITEM hCItem = m_treeObjects.GetChildItem( hItem ) ; hCItem != NULL ; hCItem = m_treeObjects.GetNextSiblingItem( hCItem ) ) {
--- 863,867 ----
  	}
  
! 	HTREEITEM CConstraintBrowserDialog::FindConstraintNode( HTREEITEM hItem, const std::string& strCID )
  	{
  		for ( HTREEITEM hCItem = m_treeObjects.GetChildItem( hItem ) ; hCItem != NULL ; hCItem = m_treeObjects.GetNextSiblingItem( hCItem ) ) {
***************
*** 897,901 ****
  	}
  
! 	void CConstraintBrowserDialog::RefreshKind( const string& strKind )
  	{
  		MapID2H::iterator it = m_mapID2H.find( strKind );
--- 897,901 ----
  	}
  
! 	void CConstraintBrowserDialog::RefreshKind( const std::string& strKind )
  	{
  		MapID2H::iterator it = m_mapID2H.find( strKind );
***************
*** 960,964 ****
  		// Remove it from context map
  
! 		string strType;
  		if ( spConstraint->IsValid() )
  			strType = spConstraint->GetContextType();
--- 960,964 ----
  		// Remove it from context map
  
! 		std::string strType;
  		if ( spConstraint->IsValid() )
  			strType = spConstraint->GetContextType();
***************
*** 992,996 ****
  			OclCommonEx::ObjectVector vecObjects;
  			OclCommonEx::GetKindObjects( m_pFacade->GetProject(), strType.substr( 6 ), vecObjects );
! 			for ( int i = 0 ; i < vecObjects.size() ; i++ ) {
  				if ( OclCommonEx::GetLibraryPath( vecObjects[ i ].p ).empty() ) {
  					CComPtr<IMgaRegNode> spRegNode;
--- 992,996 ----
  			OclCommonEx::ObjectVector vecObjects;
  			OclCommonEx::GetKindObjects( m_pFacade->GetProject(), strType.substr( 6 ), vecObjects );
! 			for ( unsigned int i = 0 ; i < vecObjects.size() ; i++ ) {
  				if ( OclCommonEx::GetLibraryPath( vecObjects[ i ].p ).empty() ) {
  					CComPtr<IMgaRegNode> spRegNode;

Index: GMEConstraintBrowserDialog.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/GMEConstraintBrowserDialog.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** GMEConstraintBrowserDialog.h	14 Jun 2004 20:28:23 -0000	1.6
--- GMEConstraintBrowserDialog.h	13 Oct 2004 15:17:54 -0000	1.7
***************
*** 99,110 ****
  	};
  
! 	typedef map< string , OclGme::ConstraintVector > 	ConstraintVectorMap;
! 	typedef map< string , OclCommonEx::SPObject >	ObjectMap;
! 	typedef map< HTREEITEM , OclGme::SpConstraint >	ConstraintMap;
  
! 	typedef map< HTREEITEM, string >					MapH2ID;
! 	typedef map< string, HTREEITEM >					MapID2H;
  
! 	typedef set< HTREEITEM >							HandlerSet;
  
  class CConstraintBrowserDialog : public CDialog
--- 99,110 ----
  	};
  
! 	typedef std::map< std::string , OclGme::ConstraintVector > 	ConstraintVectorMap;
! 	typedef std::map< std::string , OclCommonEx::SPObject >	ObjectMap;
! 	typedef std::map< HTREEITEM , OclGme::SpConstraint >	ConstraintMap;
  
! 	typedef std::map< HTREEITEM, std::string >					MapH2ID;
! 	typedef std::map< std::string, HTREEITEM >					MapID2H;
  
! 	typedef std::set< HTREEITEM >							HandlerSet;
  
  class CConstraintBrowserDialog : public CDialog
***************
*** 160,173 ****
  		void 			LoadSettings();
  		void 			AddConstraint( OclGme::SpConstraint spConstraint );
! 		void 			ExpandKind( const string& strKind, HTREEITEM hItem );
  		void 			LoadObject( CComPtr<IMgaObject> spObject, HTREEITEM hParent, const OclGme::ConstraintVector& vecConstraints );
  
  		void 			InsertConstraint( OclGme::SpConstraint spConstraint );
  		void 			RemoveConstraint( OclGme::SpConstraint spConstraint, bool bRemoveEnableInfo = true );
! 		void 			RefreshKind( const string& strKind );
  
  		void 			RefreshRootState( HTREEITEM hItem );
! 		int 				GetAncestorState( HTREEITEM hItem, const string& strCID );
! 		HTREEITEM 	FindConstraintNode( HTREEITEM hItem, const string& strCID );
  		void 			SetNewState( HTREEITEM hItem, int iNewS, bool bInheritance );
  		void			SelectItem( HTREEITEM hItem, bool bSelect );
--- 160,173 ----
  		void 			LoadSettings();
  		void 			AddConstraint( OclGme::SpConstraint spConstraint );
! 		void 			ExpandKind( const std::string& strKind, HTREEITEM hItem );
  		void 			LoadObject( CComPtr<IMgaObject> spObject, HTREEITEM hParent, const OclGme::ConstraintVector& vecConstraints );
  
  		void 			InsertConstraint( OclGme::SpConstraint spConstraint );
  		void 			RemoveConstraint( OclGme::SpConstraint spConstraint, bool bRemoveEnableInfo = true );
! 		void 			RefreshKind( const std::string& strKind );
  
  		void 			RefreshRootState( HTREEITEM hItem );
! 		int 				GetAncestorState( HTREEITEM hItem, const std::string& strCID );
! 		HTREEITEM 	FindConstraintNode( HTREEITEM hItem, const std::string& strCID );
  		void 			SetNewState( HTREEITEM hItem, int iNewS, bool bInheritance );
  		void			SelectItem( HTREEITEM hItem, bool bSelect );

Index: GMEConstraintEx.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/GMEConstraintEx.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** GMEConstraintEx.cpp	18 May 2004 13:30:58 -0000	1.14
--- GMEConstraintEx.cpp	13 Oct 2004 15:17:54 -0000	1.15
***************
*** 58,67 ****
  	}
  
! 	string ConstraintBase::GetFullName() const
  	{
  		return ( IsValid() ) ? OclConstraint::GetFullName() : GetDefinedName();
  	}
  
! 	bool ConstraintBase::GetContextAndName( string& strContext, string& strName ) const
  	{
  		if ( IsValid() ) {
--- 58,67 ----
  	}
  
! 	std::string ConstraintBase::GetFullName() const
  	{
  		return ( IsValid() ) ? OclConstraint::GetFullName() : GetDefinedName();
  	}
  
! 	bool ConstraintBase::GetContextAndName( std::string& strContext, std::string& strName ) const
  	{
  		if ( IsValid() ) {
***************
*** 71,78 ****
  		}
  
! 		string strDName = GetDefinedName();
  		int iPos = strDName.rfind( "::" );
  
! 		if ( iPos == string::npos ) {
  			strContext = "?";
  			strName = strDName;
--- 71,78 ----
  		}
  
! 		std::string strDName = GetDefinedName();
  		int iPos = strDName.rfind( "::" );
  
! 		if ( iPos == std::string::npos ) {
  			strContext = "?";
  			strName = strDName;
***************
*** 91,95 ****
  //##############################################################################################################################################
  
! 	Constraint::Constraint( const string& strName, const string& strContextType, const string& strExpression, const string& strMessage, unsigned long ulEventMask, long lPriority, constraint_depth_enum eDepth, bool bFieldsMandatory )
  		: ConstraintBase(), m_strMessage( strMessage ), m_ulEventMask( ulEventMask ), m_lPriority( lPriority ), m_eDepth( eDepth )
  	{
--- 91,95 ----
  //##############################################################################################################################################
  
! 	Constraint::Constraint( const std::string& strName, const std::string& strContextType, const std::string& strExpression, const std::string& strMessage, unsigned long ulEventMask, long lPriority, constraint_depth_enum eDepth, bool bFieldsMandatory )
  		: ConstraintBase(), m_strMessage( strMessage ), m_ulEventMask( ulEventMask ), m_lPriority( lPriority ), m_eDepth( eDepth )
  	{
***************
*** 105,109 ****
  	}
  
! 	Constraint::Constraint( const string& strContextType, CComPtr<IMgaFCO> spFCO, bool bFieldsMandatory )
  		: ConstraintBase()
  	{
--- 105,109 ----
  	}
  
! 	Constraint::Constraint( const std::string& strContextType, CComPtr<IMgaFCO> spFCO, bool bFieldsMandatory )
  		: ConstraintBase()
  	{
***************
*** 115,119 ****
  		// TODO : Obtain strMessage, ulEventMask, eDepth
  
! 		string strName = OclCommonEx::GetObjectName( spFCO.p );
  		Trim( strName );
  
--- 115,119 ----
  		// TODO : Obtain strMessage, ulEventMask, eDepth
  
! 		std::string strName = OclCommonEx::GetObjectName( spFCO.p );
  		Trim( strName );
  
***************
*** 129,133 ****
  	}
  
! 	Constraint::Constraint( const string& strContextType, CComPtr<IMgaConstraint> spConstraint )
  		: ConstraintBase()
  	{
--- 129,133 ----
  	}
  
! 	Constraint::Constraint( const std::string& strContextType, CComPtr<IMgaConstraint> spConstraint )
  		: ConstraintBase()
  	{
***************
*** 146,150 ****
  		CString strTemp;
  		COMTHROW( spConstraint->get_Name( PutOut( strTemp ) ) );
! 		string strName = OclCommonEx::Convert( strTemp );
  		Trim( strName );
  
--- 146,150 ----
  		CString strTemp;
  		COMTHROW( spConstraint->get_Name( PutOut( strTemp ) ) );
! 		std::string strName = OclCommonEx::Convert( strTemp );
  		Trim( strName );
  
***************
*** 210,215 ****
  		COMTHROW( spRegNode->get_Name( PutOut( strTemp ) ) );
  		int iPos = strTemp.ReverseFind( ':' );
! 		string strName = OclCommonEx::Convert( strTemp.Right( strTemp.GetLength() - iPos - 1 ) );
! 		string strContextType = OclCommonEx::Convert( strTemp.Left( iPos - 1 ) );
  		Trim( strName );
  		Trim( strContextType );
--- 210,215 ----
  		COMTHROW( spRegNode->get_Name( PutOut( strTemp ) ) );
  		int iPos = strTemp.ReverseFind( ':' );
! 		std::string strName = OclCommonEx::Convert( strTemp.Right( strTemp.GetLength() - iPos - 1 ) );
! 		std::string strContextType = OclCommonEx::Convert( strTemp.Left( iPos - 1 ) );
  		Trim( strName );
  		Trim( strContextType );
***************
*** 244,253 ****
  	}
  
! 	string Constraint::GetMessage() const
  	{
  		return m_strMessage;
  	}
  
! 	string Constraint::GetExpression() const
  	{
  		return m_strExpression;
--- 244,253 ----
  	}
  
! 	std::string Constraint::GetMessage() const
  	{
  		return m_strMessage;
  	}
  
! 	std::string Constraint::GetExpression() const
  	{
  		return m_strExpression;
***************
*** 324,328 ****
  		if ( GetLocation() == ConstraintBase::CL_LIBRARY ) {
  			StringVector vecConstraintPath = GetLibraryPath();
! 			for ( int i = 0 ; i < min( vecConstraintPath.size(), vecObjectPath.size() ) ; i++ )
  				if ( vecObjectPath[ i ] != vecConstraintPath[ i ] )
  					return Constraint::CE_NONE;
--- 324,328 ----
  		if ( GetLocation() == ConstraintBase::CL_LIBRARY ) {
  			StringVector vecConstraintPath = GetLibraryPath();
! 			for ( unsigned int i = 0 ; i < min( vecConstraintPath.size(), vecObjectPath.size() ) ; i++ )
  				if ( vecObjectPath[ i ] != vecConstraintPath[ i ] )
  					return Constraint::CE_NONE;
***************
*** 379,383 ****
  //##############################################################################################################################################
  
! 	ConstraintFunction::ConstraintFunction( const string& strName, const string& strContextType, const string& strParameterList, const string& strReturnType, bool bIsAttribute, const string& strExpression, bool bFieldsMandatory )
  		: ConstraintBase()
  	{
--- 379,383 ----
  //##############################################################################################################################################
  
! 	ConstraintFunction::ConstraintFunction( const std::string& strName, const std::string& strContextType, const std::string& strParameterList, const std::string& strReturnType, bool bIsAttribute, const std::string& strExpression, bool bFieldsMandatory )
  		: ConstraintBase()
  	{
***************
*** 391,395 ****
  
  		SetType( ( bIsAttribute ) ? ConstraintBase::CT_ATTRIBUTE_USER : ConstraintBase::CT_METHOD_USER );
! 		string strStereotype = ( bIsAttribute ) ? " defattribute " : " defmethod ";
  
  		Define( strContextType + "::" + strName, "context " + strContextType + "::" + strName + "( " + m_strParameterList + " ) : " + strReturnType + strStereotype + strName + " :\r\n\r\n" + m_strExpression );
--- 391,395 ----
  
  		SetType( ( bIsAttribute ) ? ConstraintBase::CT_ATTRIBUTE_USER : ConstraintBase::CT_METHOD_USER );
! 		std::string strStereotype = ( bIsAttribute ) ? " defattribute " : " defmethod ";
  
  		Define( strContextType + "::" + strName, "context " + strContextType + "::" + strName + "( " + m_strParameterList + " ) : " + strReturnType + strStereotype + strName + " :\r\n\r\n" + m_strExpression );
***************
*** 415,430 ****
  		COMTHROW( spFCO->get_StrAttrByName( CComBSTR( "CFuncStereotype" ), PutOut( strAttrStereotype ) ) );
  		SetType( ( strAttrStereotype == "attribute" ) ? ConstraintBase::CT_ATTRIBUTE_META : ConstraintBase::CT_METHOD_META );
! 		string strStereotype = " def" + OclCommonEx::Convert( strAttrStereotype ) + " ";
  
! 		string strName = OclCommonEx::GetObjectName( spFCO.p );
  
  		CString strAttrContextType;
  		COMTHROW( spFCO->get_StrAttrByName( CComBSTR( "CFuncContext" ), PutOut( strAttrContextType ) ) );
! 		string strContextType = OclCommonEx::Convert( strAttrContextType );
  		Trim( strContextType );
  
  		CString strAttrReturnType;
  		COMTHROW( spFCO->get_StrAttrByName( CComBSTR( "CFuncReturnType" ), PutOut( strAttrReturnType ) ) );
! 		string strReturnType = OclCommonEx::Convert( strAttrReturnType );
  
  		Define( strContextType + "::" + strName, "context " + strContextType + "::" + strName + "( " + m_strParameterList + " ) : " + strReturnType + strStereotype + strName + " :\r\n\r\n" + m_strExpression );
--- 415,430 ----
  		COMTHROW( spFCO->get_StrAttrByName( CComBSTR( "CFuncStereotype" ), PutOut( strAttrStereotype ) ) );
  		SetType( ( strAttrStereotype == "attribute" ) ? ConstraintBase::CT_ATTRIBUTE_META : ConstraintBase::CT_METHOD_META );
! 		std::string strStereotype = " def" + OclCommonEx::Convert( strAttrStereotype ) + " ";
  
! 		std::string strName = OclCommonEx::GetObjectName( spFCO.p );
  
  		CString strAttrContextType;
  		COMTHROW( spFCO->get_StrAttrByName( CComBSTR( "CFuncContext" ), PutOut( strAttrContextType ) ) );
! 		std::string strContextType = OclCommonEx::Convert( strAttrContextType );
  		Trim( strContextType );
  
  		CString strAttrReturnType;
  		COMTHROW( spFCO->get_StrAttrByName( CComBSTR( "CFuncReturnType" ), PutOut( strAttrReturnType ) ) );
! 		std::string strReturnType = OclCommonEx::Convert( strAttrReturnType );
  
  		Define( strContextType + "::" + strName, "context " + strContextType + "::" + strName + "( " + m_strParameterList + " ) : " + strReturnType + strStereotype + strName + " :\r\n\r\n" + m_strExpression );
***************
*** 447,454 ****
  	{
  		SetType( ConstraintBase::CT_METHOD_META );
! 		string strStereotype = " defmethod ";
! 		string strContextType = "gme::Project";
! 		string strReturnType = "ocl::Boolean";
! 		string strName;
  
  		CString strFunctionData;
--- 447,454 ----
  	{
  		SetType( ConstraintBase::CT_METHOD_META );
! 		std::string strStereotype = " defmethod ";
! 		std::string strContextType = "gme::Project";
! 		std::string strReturnType = "ocl::Boolean";
! 		std::string strName;
  
  		CString strFunctionData;
***************
*** 487,491 ****
  		CString strCFName;
  		COMTHROW( m_spConstraint->get_Name( PutOut( strCFName ) ) );
! 		string strName = OclCommonEx::Convert( strCFName );
  		Trim( strName );
  
--- 487,491 ----
  		CString strCFName;
  		COMTHROW( m_spConstraint->get_Name( PutOut( strCFName ) ) );
! 		std::string strName = OclCommonEx::Convert( strCFName );
  		Trim( strName );
  
***************
*** 494,498 ****
  		COMTHROW( m_spConstraint->get_Expression( PutOut( strFunctionData ) ) );
  
! 		string strStereotype = " defmethod ";
  		int iPos = strFunctionData.Find( ';' );
  		if ( iPos != -1 ) {
--- 494,498 ----
  		COMTHROW( m_spConstraint->get_Expression( PutOut( strFunctionData ) ) );
  
! 		std::string strStereotype = " defmethod ";
  		int iPos = strFunctionData.Find( ';' );
  		if ( iPos != -1 ) {
***************
*** 508,512 ****
  		SetType( ( strStereotype == " defattribute " ) ? ConstraintBase::CT_ATTRIBUTE_META : ConstraintBase::CT_METHOD_META );
  
! 		string strContextType = "gme::Project";
  		iPos = strFunctionData.Find( ';' );
  		if ( iPos != -1 ) {
--- 508,512 ----
  		SetType( ( strStereotype == " defattribute " ) ? ConstraintBase::CT_ATTRIBUTE_META : ConstraintBase::CT_METHOD_META );
  
! 		std::string strContextType = "gme::Project";
  		iPos = strFunctionData.Find( ';' );
  		if ( iPos != -1 ) {
***************
*** 527,531 ****
  		}
  
! 		string strReturnType = "ocl::Boolean";
  		iPos = strFunctionData.Find( ';' );
  		if ( iPos != -1 ) {
--- 527,531 ----
  		}
  
! 		std::string strReturnType = "ocl::Boolean";
  		iPos = strFunctionData.Find( ';' );
  		if ( iPos != -1 ) {
***************
*** 551,555 ****
  
  		COMTHROW( spRegNode->get_Name( PutOut( strTemp ) ) );
! 		string strName = OclCommonEx::Convert( strTemp );
  		Trim( strName );
  
--- 551,555 ----
  
  		COMTHROW( spRegNode->get_Name( PutOut( strTemp ) ) );
! 		std::string strName = OclCommonEx::Convert( strTemp );
  		Trim( strName );
  
***************
*** 558,562 ****
  		COMTHROW( spRegNode->get_SubNodeByName( CComBSTR( "Context" ), &spNode ) );
  		COMTHROW( spNode->get_Value( PutOut( strTemp ) ) );
! 		string strContextType = OclCommonEx::Convert( strTemp );
  		Trim( strContextType );
  
--- 558,562 ----
  		COMTHROW( spRegNode->get_SubNodeByName( CComBSTR( "Context" ), &spNode ) );
  		COMTHROW( spNode->get_Value( PutOut( strTemp ) ) );
! 		std::string strContextType = OclCommonEx::Convert( strTemp );
  		Trim( strContextType );
  
***************
*** 566,570 ****
  		COMTHROW( spRegNode->get_SubNodeByName( CComBSTR( "Stereotype" ), &spNode ) );
  		COMTHROW( spNode->get_Value( PutOut( strTemp ) ) );
! 		string strStereotype = OclCommonEx::Convert( strTemp );
  		Trim( strStereotype );
  		if ( strStereotype == "attribute" )
--- 566,570 ----
  		COMTHROW( spRegNode->get_SubNodeByName( CComBSTR( "Stereotype" ), &spNode ) );
  		COMTHROW( spNode->get_Value( PutOut( strTemp ) ) );
! 		std::string strStereotype = OclCommonEx::Convert( strTemp );
  		Trim( strStereotype );
  		if ( strStereotype == "attribute" )
***************
*** 587,591 ****
  		COMTHROW( spRegNode->get_SubNodeByName( CComBSTR( "ReturnType" ), &spNode ) );
  		COMTHROW( spNode->get_Value( PutOut( strTemp ) ) );
! 		string strReturnType = OclCommonEx::Convert( strTemp );
  		Trim( strReturnType );
  
--- 587,591 ----
  		COMTHROW( spRegNode->get_SubNodeByName( CComBSTR( "ReturnType" ), &spNode ) );
  		COMTHROW( spNode->get_Value( PutOut( strTemp ) ) );
! 		std::string strReturnType = OclCommonEx::Convert( strTemp );
  		Trim( strReturnType );
  
***************
*** 601,610 ****
  	}
  
! 	string ConstraintFunction::GetParameterList() const
  	{
  		return m_strParameterList;
  	}
  
! 	string ConstraintFunction::GetExpression() const
  	{
  		return m_strExpression;
--- 601,610 ----
  	}
  
! 	std::string ConstraintFunction::GetParameterList() const
  	{
  		return m_strParameterList;
  	}
  
! 	std::string ConstraintFunction::GetExpression() const
  	{
  		return m_strExpression;

Index: GMEConstraintEx.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/GMEConstraintEx.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** GMEConstraintEx.h	31 May 2004 20:33:00 -0000	1.7
--- GMEConstraintEx.h	13 Oct 2004 15:17:54 -0000	1.8
***************
*** 27,32 ****
  
  
! 	typedef vector<SpConstraint>			ConstraintVector;
! 	typedef vector<SpConstraintFunction> 	ConstraintFunctionVector;
  
  //##############################################################################################################################################
--- 27,32 ----
  
  
! 	typedef std::vector<SpConstraint>			ConstraintVector;
! 	typedef std::vector<SpConstraintFunction> 	ConstraintFunctionVector;
  
  //##############################################################################################################################################
***************
*** 63,68 ****
  					Location			GetLocation() const;
  					StringVector		GetLibraryPath() const;
! 			virtual string				GetFullName() const;
! 					bool	GetContextAndName( string& strContext, string& strName ) const;
  		protected :
  					void 				SetType( Type eType, const StringVector& vecLibraryPath = StringVector() );
--- 63,68 ----
  					Location			GetLocation() const;
  					StringVector		GetLibraryPath() const;
! 			virtual std::string			GetFullName() const;
! 					bool	GetContextAndName( std::string& strContext, std::string& strName ) const;
  		protected :
  					void 				SetType( Type eType, const StringVector& vecLibraryPath = StringVector() );
***************
*** 88,98 ****
  			long							m_lPriority;
  			constraint_depth_enum		m_eDepth;
! 			string 							m_strMessage;
! 			string 							m_strExpression;
  
  		public :
! 										Constraint( const string& strName, const string& strContextType, const string& strExpression, const string& strMessage, unsigned long ulEventMask, long lPriority, constraint_depth_enum eDepth, bool bFieldsMandatory = true );
! 										Constraint( const string& strContextType, CComPtr<IMgaFCO> spFCO, bool bFieldsMandatory = true );
! 										Constraint( const string& strContextType, CComPtr<IMgaConstraint> spConstraint );
  										Constraint( CComPtr<IMgaRegNode> spRegNode, const StringVector& vecLibPath );
  			virtual						~Constraint();
--- 88,98 ----
  			long							m_lPriority;
  			constraint_depth_enum		m_eDepth;
! 			std::string 					m_strMessage;
! 			std::string						m_strExpression;
  
  		public :
! 										Constraint( const std::string& strName, const std::string& strContextType, const std::string& strExpression, const std::string& strMessage, unsigned long ulEventMask, long lPriority, constraint_depth_enum eDepth, bool bFieldsMandatory = true );
! 										Constraint( const std::string& strContextType, CComPtr<IMgaFCO> spFCO, bool bFieldsMandatory = true );
! 										Constraint( const std::string& strContextType, CComPtr<IMgaConstraint> spConstraint );
  										Constraint( CComPtr<IMgaRegNode> spRegNode, const StringVector& vecLibPath );
  			virtual						~Constraint();
***************
*** 101,106 ****
  			long 						GetPriority() const;
  			constraint_depth_enum 	GetDepth() const;
! 			string 						GetMessage() const;
! 			string 						GetExpression() const;
  
  			EnableInfo					GetEnableInfo( CComPtr<IMgaObject> spObject ) const;
--- 101,106 ----
  			long 						GetPriority() const;
  			constraint_depth_enum 	GetDepth() const;
! 			std::string 				GetMessage() const;
! 			std::string					GetExpression() const;
  
  			EnableInfo					GetEnableInfo( CComPtr<IMgaObject> spObject ) const;
***************
*** 123,137 ****
  
  		private :
! 			string 							m_strParameterList;
! 			string 							m_strExpression; // func body
  
  		public :
! 									ConstraintFunction( const string& strName, const string& strContextType, const string& strParameterList, const string& strReturnType, bool bIsAttribute, const string& strExpression, bool bFieldsMandatory = true );
  									ConstraintFunction( CComPtr<IMgaFCO> spFCO, bool bFieldsMandatory = true );
  									ConstraintFunction( CComPtr<IMgaConstraint> spConstraint );
  									ConstraintFunction( CComPtr<IMgaRegNode> spRegNode );
  
! 			string 					GetParameterList() const;
! 			string 					GetExpression() const;
  
  			Ocl::Constraint::State 	Write( CComPtr<IMgaRegNode> spRegNode );
--- 123,137 ----
  
  		private :
! 			std::string 					m_strParameterList;
! 			std::string						m_strExpression; // func body
  
  		public :
! 									ConstraintFunction( const std::string& strName, const std::string& strContextType, const std::string& strParameterList, const std::string& strReturnType, bool bIsAttribute, const std::string& strExpression, bool bFieldsMandatory = true );
  									ConstraintFunction( CComPtr<IMgaFCO> spFCO, bool bFieldsMandatory = true );
  									ConstraintFunction( CComPtr<IMgaConstraint> spConstraint );
  									ConstraintFunction( CComPtr<IMgaRegNode> spRegNode );
  
! 			std::string				GetParameterList() const;
! 			std::string 			GetExpression() const;
  
  			Ocl::Constraint::State 	Write( CComPtr<IMgaRegNode> spRegNode );

Index: GMEConstraintPropertiesDialog.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/GMEConstraintPropertiesDialog.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** GMEConstraintPropertiesDialog.cpp	20 Nov 2002 18:37:00 -0000	1.13
--- GMEConstraintPropertiesDialog.cpp	13 Oct 2004 15:17:54 -0000	1.14
***************
*** 13,16 ****
--- 13,17 ----
  #include "GMESyntacticSemanticDialog.h"
  #include "OCLCommonEx.h"
+ #include <algorithm>
  
  #ifdef _DEBUG
***************
*** 20,24 ****
  #endif
  
! typedef map<int,int> EventMap;
  
  namespace OclGmeCM
--- 21,25 ----
  #endif
  
! typedef std::map<int,int> EventMap;
  
  namespace OclGmeCM
***************
*** 80,85 ****
  	m_lstImages.Add( &bmp, RGB( 255, 0, 255 ) );
  
! 	string strName;
! 	string strContext;
  	if ( m_spConstraintIn.Ptr() )
  		m_spConstraintIn->GetContextAndName( strContext, strName );
--- 81,86 ----
  	m_lstImages.Add( &bmp, RGB( 255, 0, 255 ) );
  
! 	std::string strName;
! 	std::string strContext;
  	if ( m_spConstraintIn.Ptr() )
  		m_spConstraintIn->GetContextAndName( strContext, strName );
***************
*** 113,117 ****
  				StringVector vecLibPath = m_spConstraintIn->GetLibraryPath();
  				CString strPath;
! 				for ( int i = 0 ; i < vecLibPath.size() ; i++ ) {
  					if ( i > 0 )
  						strPath += "/";
--- 114,118 ----
  				StringVector vecLibPath = m_spConstraintIn->GetLibraryPath();
  				CString strPath;
! 				for ( unsigned int i = 0 ; i < vecLibPath.size() ; i++ ) {
  					if ( i > 0 )
  						strPath += "/";
***************
*** 206,212 ****
  
  	StringVector vecKinds;
! 	for ( int i = 0 ; i < vecMetas.size() ; i++ )
  		vecKinds.push_back( OclCommonEx::GetObjectName( vecMetas[ i ].p ) );
! 	sort( vecKinds.begin(), vecKinds.end() );
  
  	for ( i = 0 ; i < vecKinds.size() ; i++ )
--- 207,213 ----
  
  	StringVector vecKinds;
! 	for ( unsigned int i = 0 ; i < vecMetas.size() ; i++ )
  		vecKinds.push_back( OclCommonEx::GetObjectName( vecMetas[ i ].p ) );
! 	std::sort( vecKinds.begin(), vecKinds.end() );
  
  	for ( i = 0 ; i < vecKinds.size() ; i++ )
***************
*** 313,317 ****
  	if ( it != m_pDialog->m_mapConstraints.end() ) {
  		OclGme::ConstraintVector vecConstraints = (*it).second;
! 		for ( int i = 0 ; i < vecConstraints.size() ; i++ )
  			if ( vecConstraints[ i ]->GetName() == OclCommonEx::Convert( strName ) && vecConstraints[ i ].Ptr() != m_spConstraintIn.Ptr() ) {
  				AfxMessageBox( "Context [ " + strContext + " ] already has a constraint called " + strName + "." );
--- 314,318 ----
  	if ( it != m_pDialog->m_mapConstraints.end() ) {
  		OclGme::ConstraintVector vecConstraints = (*it).second;
! 		for ( unsigned int i = 0 ; i < vecConstraints.size() ; i++ )
  			if ( vecConstraints[ i ]->GetName() == OclCommonEx::Convert( strName ) && vecConstraints[ i ].Ptr() != m_spConstraintIn.Ptr() ) {
  				AfxMessageBox( "Context [ " + strContext + " ] already has a constraint called " + strName + "." );

Index: GMEConstraintPropertiesDialog.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/GMEConstraintPropertiesDialog.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** GMEConstraintPropertiesDialog.h	20 Nov 2002 17:14:00 -0000	1.6
--- GMEConstraintPropertiesDialog.h	13 Oct 2004 15:17:54 -0000	1.7
***************
*** 175,179 ****
  
  	private :
! 		map<int,int> GetEventMap() const;
  
  	private :
--- 175,179 ----
  
  	private :
! 		std::map<int,int> GetEventMap() const;
  
  	private :

Index: GMESyntacticSemanticDialog.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/GMESyntacticSemanticDialog.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** GMESyntacticSemanticDialog.cpp	20 Nov 2002 18:37:00 -0000	1.10
--- GMESyntacticSemanticDialog.cpp	13 Oct 2004 15:17:54 -0000	1.11
***************
*** 131,135 ****
  		AddConstraintRow( i );
  
! 	for ( i = 0 ; i < m_vecConstraints.size() ; i++ )
  		AddConstraintRow( i + iFunctions );
  
--- 131,135 ----
  		AddConstraintRow( i );
  
! 	for ( i = 0 ; i < (int) m_vecConstraints.size() ; i++ )
  		AddConstraintRow( i + iFunctions );
  
***************
*** 274,278 ****
  		int iFunctions = m_vecConstraintFunctions.size();
  		eType = ( iPos >= iFunctions ) ? m_vecConstraints[ iPos - iFunctions ]->GetType() : m_vecConstraintFunctions[ iPos ]->GetType();
! 		string strContextT, strNameT;
  		if ( iPos >= iFunctions )
  			m_vecConstraints[ iPos - iFunctions ]->GetContextAndName( strContextT, strNameT );
--- 274,278 ----
  		int iFunctions = m_vecConstraintFunctions.size();
  		eType = ( iPos >= iFunctions ) ? m_vecConstraints[ iPos - iFunctions ]->GetType() : m_vecConstraintFunctions[ iPos ]->GetType();
! 		std::string strContextT, strNameT;
  		if ( iPos >= iFunctions )
  			m_vecConstraints[ iPos - iFunctions ]->GetContextAndName( strContextT, strNameT );
***************
*** 425,429 ****
  
  			lvItem.iSubItem = 2;
! 			strTemp = OclCommonEx::Convert( ex.GetMessage() );
  			lvItem.pszText = strTemp.GetBuffer( strTemp.GetLength() );
  			m_lstErrors.SetItem( &lvItem );
--- 425,429 ----
  
  			lvItem.iSubItem = 2;
! 			strTemp = OclCommonEx::Convert( ex.GGetMessage() );
  			lvItem.pszText = strTemp.GetBuffer( strTemp.GetLength() );
  			m_lstErrors.SetItem( &lvItem );

Index: GMEViolationDialog.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/GMEViolationDialog.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** GMEViolationDialog.cpp	14 Jun 2004 20:28:23 -0000	1.15
--- GMEViolationDialog.cpp	13 Oct 2004 15:17:54 -0000	1.16
***************
*** 20,24 ****
  namespace OclGmeCM {
  
- 	using namespace std;
  	struct SortStruct
  	{
--- 20,23 ----
***************
*** 161,165 ****
  	// Fill Constraint List
  
! 	for ( int i = 0 ; i < m_vecRecords.size() ; i++ ) {
  		LVITEM lvItem;
  		lvItem.mask = LVIF_IMAGE | LVIF_PARAM;
--- 160,164 ----
  	// Fill Constraint List
  
! 	for ( unsigned int i = 0 ; i < m_vecRecords.size() ; i++ ) {
  		LVITEM lvItem;
  		lvItem.mask = LVIF_IMAGE | LVIF_PARAM;
***************
*** 277,283 ****
  	m_lstObjects.MoveWindow( rectObj );
  	
! 	vector< CButton* > vecButtons;
  	vecButtons.push_back( &m_btnNext ); vecButtons.push_back( &m_btnPrevious ); vecButtons.push_back( &m_btnClose ); vecButtons.push_back( &m_btnAbort );
! 	for ( int i = 0 ; i < vecButtons.size() ; i++ ) {
  		CRect rect; vecButtons[ i ]->GetWindowRect( rect );
  		int iHeight = rect.Height();
--- 276,282 ----
  	m_lstObjects.MoveWindow( rectObj );
  	
! 	std::vector< CButton* > vecButtons;
  	vecButtons.push_back( &m_btnNext ); vecButtons.push_back( &m_btnPrevious ); vecButtons.push_back( &m_btnClose ); vecButtons.push_back( &m_btnAbort );
! 	for ( unsigned int i = 0 ; i < vecButtons.size() ; i++ ) {
  		CRect rect; vecButtons[ i ]->GetWindowRect( rect );
  		int iHeight = rect.Height();
***************
*** 434,448 ****
  		int iLine = vi.position.iLine;
  
! 		for ( int i = 0 ; i < m_lstExpression.GetItemCount() ; i++ ) {
  			LVITEM lvItem;
  			DWORD lparam = m_lstExpression.GetItemData(i);
  			lvItem.mask = LVIF_IMAGE | LVIF_STATE;
! 			lvItem.state = ( lparam + 1== iLine ) ? LVIS_SELECTED : 0;
  			lvItem.stateMask = LVIS_SELECTED;
  			lvItem.iItem = i;
  			lvItem.iSubItem = 0;
! 			lvItem.iImage = ( lparam + 1== iLine ) ? 1 : 0;
  			m_lstExpression.SetItem( &lvItem );
! 			if ( lparam + 1== iLine )
  				m_lstExpression.EnsureVisible( i, false );
  		}
--- 433,447 ----
  		int iLine = vi.position.iLine;
  
! 		for ( unsigned int i = 0 ; i < (unsigned int) m_lstExpression.GetItemCount() ; i++ ) {
  			LVITEM lvItem;
  			DWORD lparam = m_lstExpression.GetItemData(i);
  			lvItem.mask = LVIF_IMAGE | LVIF_STATE;
! 			lvItem.state = ( lparam + 1 == (unsigned int) iLine ) ? LVIS_SELECTED : 0;
  			lvItem.stateMask = LVIS_SELECTED;
  			lvItem.iItem = i;
  			lvItem.iSubItem = 0;
! 			lvItem.iImage = ( lparam + 1 == (unsigned int) iLine ) ? 1 : 0;
  			m_lstExpression.SetItem( &lvItem );
! 			if ( lparam + 1 == (unsigned int) iLine )
  				m_lstExpression.EnsureVisible( i, false );
  		}
***************
*** 572,576 ****
  
  		LVITEM lvItem;
! 		for ( int i = 0 ; i < arrText.GetSize() ; i++ ) {
  
  			// Add Line
--- 571,575 ----
  
  		LVITEM lvItem;
! 		for ( unsigned int i = 0 ; i < (unsigned int) arrText.GetSize() ; i++ ) {
  
  			// Add Line
***************
*** 706,710 ****
  
  		for ( int i = 0 ; i < m_lstConstraints.GetItemCount() ; i++ )
! 			if ( m_lstConstraints.GetItemData( i ) == m_iSelectedConstraint ) {
  				m_iSelected = i;
  			 	RefreshWidgets( false );
--- 705,709 ----
  
  		for ( int i = 0 ; i < m_lstConstraints.GetItemCount() ; i++ )
! 			if ( m_lstConstraints.GetItemData( i ) == (unsigned int) m_iSelectedConstraint ) {
  				m_iSelected = i;
  			 	RefreshWidgets( false );

Index: GMEViolationDialog.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/GMEViolationDialog.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** GMEViolationDialog.h	14 Jun 2004 20:28:23 -0000	1.11
--- GMEViolationDialog.h	13 Oct 2004 15:17:54 -0000	1.12
***************
*** 19,23 ****
  	#include <string>
  
- 	using namespace std;
  
  //##############################################################################################################################################
--- 19,22 ----
***************
*** 44,48 ****
  	CImageList						m_lstConstraintImages;
  	CImageList						m_lstLineImages;
! 	vector<EvaluationRecord>		m_vecRecords;
  	bool							m_bAbort;
  	bool							m_bOK;
--- 43,47 ----
  	CImageList						m_lstConstraintImages;
  	CImageList						m_lstLineImages;
! 	std::vector<EvaluationRecord>	m_vecRecords;
  	bool							m_bAbort;
  	bool							m_bOK;

Index: OCLCommon.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLCommon.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** OCLCommon.cpp	18 May 2004 13:30:58 -0000	1.4
--- OCLCommon.cpp	13 Oct 2004 15:17:54 -0000	1.5
***************
*** 8,12 ****
  #include "OCLCommon.h"
  
! 	string& TrimLeft( string& strIn )
  	{
  		while ( ! strIn.empty() && ( strIn[ 0 ] < 20 || strIn[ 0 ] == ' ' || strIn[ 0 ] == '\t' ) )
--- 8,12 ----
  #include "OCLCommon.h"
  
! 	std::string& TrimLeft( std::string& strIn )
  	{
  		while ( ! strIn.empty() && ( strIn[ 0 ] < 20 || strIn[ 0 ] == ' ' || strIn[ 0 ] == '\t' ) )
***************
*** 15,19 ****
  	}
  
! 	string& TrimRight( string& strIn )
  	{
  		while ( ! strIn.empty() && ( strIn[ strIn.length() - 1 ] < 20 || strIn[ strIn.length() - 1 ] == ' ' || strIn[ strIn.length() - 1 ] == '\t' ) )
--- 15,19 ----
  	}
  
! 	std::string& TrimRight( std::string& strIn )
  	{
  		while ( ! strIn.empty() && ( strIn[ strIn.length() - 1 ] < 20 || strIn[ strIn.length() - 1 ] == ' ' || strIn[ strIn.length() - 1 ] == '\t' ) )
***************
*** 22,31 ****
  	}
  
! 	string& Trim( string& strIn )
  	{
  		return TrimRight( TrimLeft( strIn ) );
  	}
  
! 	bool operator!=( const string& str1, const string& str2 )
  	{
  		return ! ( str1 == str2 );
--- 22,31 ----
  	}
  
! 	std::string& Trim( std::string& strIn )
  	{
  		return TrimRight( TrimLeft( strIn ) );
  	}
  
! 	bool operator!=( const std::string& str1, const std::string& str2 )
  	{
  		return ! ( str1 == str2 );
***************
*** 34,41 ****
  namespace OclCommon {
  
! 	void convertR( const TypeSeq& si, int i, string& s )
  	{
  		s += si[ i ];
! 		if ( si.size() >  i + 1 ) {
  			s += "(";
  			convertR( si, i + 1, s );
--- 34,41 ----
  namespace OclCommon {
  
! 	void convertR( const TypeSeq& si, int i, std::string& s )
  	{
  		s += si[ i ];
! 		if ( (int) si.size() >  i + 1 ) {
  			s += "(";
  			convertR( si, i + 1, s );
***************
*** 44,48 ****
  	}
  
! 	void Convert( const TypeSeq& si, string& s )
  	{
  		s = "";
--- 44,48 ----
  	}
  
! 	void Convert( const TypeSeq& si, std::string& s )
  	{
  		s = "";
***************
*** 51,58 ****
  	}
  
! 	int convertR( string& s, TypeSeq& si, int i )
  	{
  		int p = s.find( '(' );
! 		if ( p == string::npos ) {
  			si.push_back( s );
  			return 0;
--- 51,58 ----
  	}
  
! 	int convertR( std::string& s, TypeSeq& si, int i )
  	{
  		int p = s.find( '(' );
! 		if ( p == std::string::npos ) {
  			si.push_back( s );
  			return 0;
***************
*** 60,64 ****
  		if ( s[ s.length() - 1 ] != ')' )
  			return i + s.length();
! 		string strTemp = s.substr( 0, p );
  		TrimRight( strTemp );
  		if ( strTemp.empty() )
--- 60,64 ----
  		if ( s[ s.length() - 1 ] != ')' )
  			return i + s.length();
! 		std::string strTemp = s.substr( 0, p );
  		TrimRight( strTemp );
  		if ( strTemp.empty() )
***************
*** 72,79 ****
  	}
  
! 	int Convert( const string& s, TypeSeq& si )
  	{
  		si.clear();
! 		string ss( s );
  		TrimLeft( ss );
  		int i = s.length() - ss.length();
--- 72,79 ----
  	}
  
! 	int Convert( const std::string& s, TypeSeq& si )
  	{
  		si.clear();
! 		std::string ss( s );
  		TrimLeft( ss );
  		int i = s.length() - ss.length();

Index: OCLCommon.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLCommon.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** OCLCommon.h	23 Oct 2002 14:05:00 -0000	1.4
--- OCLCommon.h	13 Oct 2004 15:17:54 -0000	1.5
***************
*** 9,26 ****
  #define OCLCommon_h
  
! #include <stl_config.h>
  
! #include "vector"
! #include "map"
! #include "set"
! #include "string"
  #include "stdio.h"
  
  #define TABSTR "    "
  
! typedef vector< string >	StringVector;
  typedef StringVector			TypeSeq;
  
! bool operator!=( const string& str1, const string& str2 );
  
  struct Position
--- 9,26 ----
  #define OCLCommon_h
  
! #include <stl_user_config.h>
  
! #include <vector>
! #include <map>
! #include <set>
! #include <string>
  #include "stdio.h"
  
  #define TABSTR "    "
  
! typedef std::vector< std::string >	StringVector;
  typedef StringVector			TypeSeq;
  
! bool operator!=( const std::string& str1, const std::string& str2 );
  
  struct Position
***************
*** 30,41 ****
  };
  
! string& Trim( string& strIn );
  
! typedef map< int , Position > PositionMap;
  
  namespace OclCommon {
  
! 	void Convert( const TypeSeq& ts, string& s );
! 	int Convert( const string& s, TypeSeq& ts );
  
  }; // namespace OclCommon
--- 30,41 ----
  };
  
! std::string& Trim( std::string& strIn );
  
! typedef std::map< int , Position > PositionMap;
  
  namespace OclCommon {
  
! 	void Convert( const TypeSeq& ts, std::string& s );
! 	int Convert( const std::string& s, TypeSeq& ts );
  
  }; // namespace OclCommon

Index: OCLCommonEx.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLCommonEx.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** OCLCommonEx.cpp	18 May 2004 13:30:58 -0000	1.11
--- OCLCommonEx.cpp	13 Oct 2004 15:17:54 -0000	1.12
***************
*** 10,13 ****
--- 10,14 ----
  #include "Regexp.h"
  #include "TokenEx.h"
+ #include <algorithm>
  
  namespace OclCommonEx {
***************
*** 19,31 ****
  //##############################################################################################################################################
  
! 	string Convert( const CString& strIn )
  	{
  		CString strTemp( strIn );
! 		string strOut( strTemp.GetBuffer( strTemp.GetLength() ) );
  		strTemp.ReleaseBuffer();
  		return strOut;
  	}
  
! 	CString Convert( const string& strIn )
  	{
  		return CString( strIn.c_str() );
--- 20,32 ----
  //##############################################################################################################################################
  
! 	std::string Convert( const CString& strIn )
  	{
  		CString strTemp( strIn );
! 		std::string strOut( strTemp.GetBuffer( strTemp.GetLength() ) );
  		strTemp.ReleaseBuffer();
  		return strOut;
  	}
  
! 	CString Convert( const std::string& strIn )
  	{
  		return CString( strIn.c_str() );
***************
*** 110,114 ****
  	}
  
! 	string GetConnPointRole( CComPtr<IMgaConnPoint> spCP )
  	{
  		CString strRole;
--- 111,115 ----
  	}
  
! 	std::string GetConnPointRole( CComPtr<IMgaConnPoint> spCP )
  	{
  		CString strRole;
***************
*** 117,121 ****
  	}
  
! 	string GetObjectName( CComPtr<IMgaObject> spObject )
  	{
  		CString strName;
--- 118,122 ----
  	}
  
! 	std::string GetObjectName( CComPtr<IMgaObject> spObject )
  	{
  		CString strName;
***************
*** 124,128 ****
  	}
  
! 	string GetObjectName( CComPtr<IMgaMetaBase> spObject )
  	{
  		CString strName;
--- 125,129 ----
  	}
  
! 	std::string GetObjectName( CComPtr<IMgaMetaBase> spObject )
  	{
  		CString strName;
***************
*** 131,135 ****
  	}
  
! 	string GetObjectKind( CComPtr<IMgaObject> spObject )
  	{
  		CString strKind;
--- 132,136 ----
  	}
  
! 	std::string GetObjectKind( CComPtr<IMgaObject> spObject )
  	{
  		CString strKind;
***************
*** 145,149 ****
  	}
  
! 	string GetFCORole( CComPtr<IMgaFCO> spFCO )
  	{
  		CComPtr<IMgaMetaRole> spMetaRole;
--- 146,150 ----
  	}
  
! 	std::string GetFCORole( CComPtr<IMgaFCO> spFCO )
  	{
  		CComPtr<IMgaMetaRole> spMetaRole;
***************
*** 173,184 ****
  	}
  
! 	string ParseLibraryName( const string& strFullName )
  	{
! 		string strName;
  		int iPos = strFullName.rfind( "\\" );
! 		if ( iPos != string::npos )
  			strName = strFullName.substr( iPos + 1 );
  		iPos = strName.rfind( "." );
! 		if ( iPos != string::npos )
  			strName = strName.substr( 0, iPos );
  		Trim( strName );
--- 174,185 ----
  	}
  
! 	std::string ParseLibraryName( const std::string& strFullName )
  	{
! 		std::string strName;
  		int iPos = strFullName.rfind( "\\" );
! 		if ( iPos != std::string::npos )
  			strName = strFullName.substr( iPos + 1 );
  		iPos = strName.rfind( "." );
! 		if ( iPos != std::string::npos )
  			strName = strName.substr( 0, iPos );
  		Trim( strName );
***************
*** 231,239 ****
  			spFolder = GetFirstLibrary( spParent );
  		}
! 		reverse( vecPath.begin(), vecPath.end() );
  		return vecPath;
  	}
  
! 	string ObjectTypeToString( objtype_enum eType )
  	{
  		switch ( eType ) {
--- 232,240 ----
  			spFolder = GetFirstLibrary( spParent );
  		}
! 		std::reverse( vecPath.begin(), vecPath.end() );
  		return vecPath;
  	}
  
! 	std::string ObjectTypeToString( objtype_enum eType )
  	{
  		switch ( eType ) {
***************
*** 248,252 ****
  	}
  
! 	objtype_enum StringToObjectType( const string& strType )
  	{
  		if ( strType == "Atom" )
--- 249,253 ----
  	}
  
! 	objtype_enum StringToObjectType( const std::string& strType )
  	{
  		if ( strType == "Atom" )
***************
*** 265,269 ****
  	}
  
! 	string CreateType( const string& strKind, objtype_enum eType )
  	{
  		if ( eType == OBJTYPE_NULL )
--- 266,270 ----
  	}
  
! 	std::string CreateType( const std::string& strKind, objtype_enum eType )
  	{
  		if ( eType == OBJTYPE_NULL )
***************
*** 273,289 ****
  	}
  
! 	bool ResolveType( const string& strFullName, string& strKind, objtype_enum& eType )
  	{
  		eType = OBJTYPE_NULL;
  		strKind = "";
  		int iPos = strFullName.find( "::" );
! 		if ( iPos == string::npos ) {
  			strKind = strFullName;
  			return true;
  		}
  		if ( strFullName.substr( 0, iPos ) == "meta" ) {
! 			string strTemp = strFullName.substr( iPos + 2 );
  			iPos = strTemp.find( "::" );
! 			if ( iPos == string::npos ) {
  				strKind = strTemp;
  				return true;
--- 274,290 ----
  	}
  
! 	bool ResolveType( const std::string& strFullName, std::string& strKind, objtype_enum& eType )
  	{
  		eType = OBJTYPE_NULL;
  		strKind = "";
  		int iPos = strFullName.find( "::" );
! 		if ( iPos == std::string::npos ) {
  			strKind = strFullName;
  			return true;
  		}
  		if ( strFullName.substr( 0, iPos ) == "meta" ) {
! 			std::string strTemp = strFullName.substr( iPos + 2 );
  			iPos = strTemp.find( "::" );
! 			if ( iPos == std::string::npos ) {
  				strKind = strTemp;
  				return true;
***************
*** 298,313 ****
  	}
  
! 	string LowerFirst( const string& strValue )
  	{
  		if ( strValue.empty() )
  			return strValue;
! 		return string( _strlwr( (char*)strValue.substr( 0, 1 ).c_str() ) ) + strValue.substr( 1 );
  	}
  
! 	string UpperFirst( const string& strValue )
  	{
  		if ( strValue.empty() )
  			return strValue;
! 		return string( _strupr( (char*)strValue.substr( 0, 1 ).c_str() ) ) + strValue.substr( 1 );
  	}
  
--- 299,314 ----
  	}
  
! 	std::string LowerFirst( const std::string& strValue )
  	{
  		if ( strValue.empty() )
  			return strValue;
! 		return std::string( _strlwr( (char*)strValue.substr( 0, 1 ).c_str() ) ) + strValue.substr( 1 );
  	}
  
! 	std::string UpperFirst( const std::string& strValue )
  	{
  		if ( strValue.empty() )
  			return strValue;
! 		return std::string( _strupr( (char*)strValue.substr( 0, 1 ).c_str() ) ) + strValue.substr( 1 );
  	}
  
***************
*** 333,337 ****
  	{
  		OclMeta::Association* pAssociationFound = NULL;
! 		for ( int i = 0 ; i < vecAssociations.size() ; i++ )
  			if ( pAssociation->IsIdentical( *vecAssociations[ i ] ) ) {
  				pAssociationFound = vecAssociations[ i ];
--- 334,338 ----
  	{
  		OclMeta::Association* pAssociationFound = NULL;
! 		for ( unsigned int i = 0 ; i < vecAssociations.size() ; i++ )
  			if ( pAssociation->IsIdentical( *vecAssociations[ i ] ) ) {
  				pAssociationFound = vecAssociations[ i ];
***************
*** 363,367 ****
  	void AddAssociations( OclMeta::AssociationVector& vecAssociationsToAdd, OclMeta::AssociationVector& vecAssociations )
  	{
! 		for ( int i = 0 ; i < vecAssociationsToAdd.size() ; i++ )
  			vecAssociations.push_back( vecAssociationsToAdd[ i ] );
  		vecAssociationsToAdd.clear();
--- 364,368 ----
  	void AddAssociations( OclMeta::AssociationVector& vecAssociationsToAdd, OclMeta::AssociationVector& vecAssociations )
  	{
! 		for ( unsigned int i = 0 ; i < vecAssociationsToAdd.size() ; i++ )
  			vecAssociations.push_back( vecAssociationsToAdd[ i ] );
  		vecAssociationsToAdd.clear();
***************
*** 396,400 ****
  	bool ContainsObject( CComPtr<IMgaFCO> spFCO, FCOVector& vecFCOs )
  	{
! 		for ( int i = 0 ; i < vecFCOs.size() ; i++ )
  			if ( vecFCOs[ i ].p == spFCO.p )
  				return true;
--- 397,401 ----
  	bool ContainsObject( CComPtr<IMgaFCO> spFCO, FCOVector& vecFCOs )
  	{
! 		for ( unsigned int i = 0 ; i < vecFCOs.size() ; i++ )
  			if ( vecFCOs[ i ].p == spFCO.p )
  				return true;
***************
*** 404,408 ****
  	bool ContainsObject( CComPtr<IMgaObject> spObject, ObjectVector& vecObjects )
  	{
! 		for ( int i = 0 ; i < vecObjects.size() ; i++ )
  			if ( vecObjects[ i ].p == spObject.p )
  				return true;
--- 405,409 ----
  	bool ContainsObject( CComPtr<IMgaObject> spObject, ObjectVector& vecObjects )
  	{
! 		for ( unsigned int i = 0 ; i < vecObjects.size() ; i++ )
  			if ( vecObjects[ i ].p == spObject.p )
  				return true;
***************
*** 412,416 ****
  	bool IsAbstract( CComPtr<IMgaFCO> spFCO )
  	{
! 		string strKind = GetObjectKind( spFCO.p );
  		if ( strKind == "Folder" )
  			return false;
--- 413,417 ----
  	bool IsAbstract( CComPtr<IMgaFCO> spFCO )
  	{
! 		std::string strKind = GetObjectKind( spFCO.p );
  		if ( strKind == "Folder" )
  			return false;
***************
*** 437,443 ****
  	}
  
! 	void GetAssociationEnds( CComPtr<IMgaFCO> spFCO, const string& strRole, const string& strKind, FCOVector& vecFCOs )
  	{
! 		string strCPRole, strCKind;
  		CComPtr<IMgaConnPoints> spStartCPs;
  		COMTHROW( spFCO->get_PartOfConns( &spStartCPs ) );
--- 438,444 ----
  	}
  
! 	void GetAssociationEnds( CComPtr<IMgaFCO> spFCO, const std::string& strRole, const std::string& strKind, FCOVector& vecFCOs )
  	{
! 		std::string strCPRole, strCKind;
  		CComPtr<IMgaConnPoints> spStartCPs;
  		COMTHROW( spFCO->get_PartOfConns( &spStartCPs ) );
***************
*** 465,469 ****
  	}
  
! 	void GetAssociationEnds( CComPtr<IMgaFCO> spFCO, const string& strRole, const string& strKind, FCOVector& vecFCOs, FCOVector& vecConnections )
  	{
  		CComPtr<IMgaConnPoints> spStartCPs;
--- 466,470 ----
  	}
  
! 	void GetAssociationEnds( CComPtr<IMgaFCO> spFCO, const std::string& strRole, const std::string& strKind, FCOVector& vecFCOs, FCOVector& vecConnections )
  	{
  		CComPtr<IMgaConnPoints> spStartCPs;
***************
*** 491,499 ****
  	}
  
! 	void GetInheritances( CComPtr<IMgaFCO> spFCO, const string& strInheritanceType, bool bIsParent, FCOVector& vecFCOs )
  	{
  		AddObject( spFCO, vecFCOs );
! 		string strKind1;
! 		string strKind2;
  
  		if ( strInheritanceType == "Interface" ) {
--- 492,500 ----
  	}
  
! 	void GetInheritances( CComPtr<IMgaFCO> spFCO, const std::string& strInheritanceType, bool bIsParent, FCOVector& vecFCOs )
  	{
  		AddObject( spFCO, vecFCOs );
! 		std::string strKind1;
! 		std::string strKind2;
  
  		if ( strInheritanceType == "Interface" ) {
***************
*** 512,524 ****
  		FCOVector vecInheritances;
  		GetAssociationEnds( spFCO, "", strKind1, vecInheritances );
! 		for ( int i = 0 ; i < vecInheritances.size() ; i++ )
  			GetAssociationEnds( vecInheritances[ i ].p, "", strKind2, vecFCOs );
  	}
  
! 	void GetEquivalences( CComPtr<IMgaFCO> spFCO, const string& strEquivalencesType, bool bToLeft, FCOVector& vecFCOs )
  	{
  		AddObject( spFCO, vecFCOs );
! 		string strKind1;
! 		string strKind2;
  
  		if ( strEquivalencesType == "Aspect" ) {
--- 513,525 ----
  		FCOVector vecInheritances;
  		GetAssociationEnds( spFCO, "", strKind1, vecInheritances );
! 		for ( unsigned int i = 0 ; i < vecInheritances.size() ; i++ )
  			GetAssociationEnds( vecInheritances[ i ].p, "", strKind2, vecFCOs );
  	}
  
! 	void GetEquivalences( CComPtr<IMgaFCO> spFCO, const std::string& strEquivalencesType, bool bToLeft, FCOVector& vecFCOs )
  	{
  		AddObject( spFCO, vecFCOs );
! 		std::string strKind1;
! 		std::string strKind2;
  
  		if ( strEquivalencesType == "Aspect" ) {
***************
*** 537,545 ****
  		FCOVector vecEquivalences;
  		GetAssociationEnds( spFCO, "", strKind1, vecEquivalences );
! 		for ( int i = 0 ; i < vecEquivalences.size() ; i++ )
  			GetAssociationEnds( vecEquivalences[ i ].p, "", strKind2, vecFCOs );
  	}
  
! 	void GetMetaObjectsR( CComPtr<IMgaMetaBase> spMeta, const string& strName, objtype_enum eType, MetaBaseVector& vecMetaBases )
  	{
  		if ( ( eType == OBJTYPE_NULL || eType == OclCommonEx::GetObjectType( spMeta ) ) && ( strName.empty() || strName == GetObjectName( spMeta ) ) )
--- 538,546 ----
  		FCOVector vecEquivalences;
  		GetAssociationEnds( spFCO, "", strKind1, vecEquivalences );
! 		for ( unsigned int i = 0 ; i < vecEquivalences.size() ; i++ )
  			GetAssociationEnds( vecEquivalences[ i ].p, "", strKind2, vecFCOs );
  	}
  
! 	void GetMetaObjectsR( CComPtr<IMgaMetaBase> spMeta, const std::string& strName, objtype_enum eType, MetaBaseVector& vecMetaBases )
  	{
  		if ( ( eType == OBJTYPE_NULL || eType == OclCommonEx::GetObjectType( spMeta ) ) && ( strName.empty() || strName == GetObjectName( spMeta ) ) )
***************
*** 568,572 ****
  	}
  
! 	void GetMetaObjects( CComPtr<IMgaMetaProject> spProject, const string& strName, objtype_enum eType, MetaBaseVector& vecMetaBases )
  	{
  		CComPtr<IMgaMetaFolder> spRootFolder;
--- 569,573 ----
  	}
  
! 	void GetMetaObjects( CComPtr<IMgaMetaProject> spProject, const std::string& strName, objtype_enum eType, MetaBaseVector& vecMetaBases )
  	{
  		CComPtr<IMgaMetaFolder> spRootFolder;
***************
*** 575,579 ****
  	};
  
! 	string GetPointerRole( CComPtr<IMgaMetaPointerSpec> spPointer )
  	{
  		CString strName;
--- 576,580 ----
  	};
  
! 	std::string GetPointerRole( CComPtr<IMgaMetaPointerSpec> spPointer )
  	{
  		CString strName;
***************
*** 587,591 ****
  		GetMetaObjects( spProject, "", OBJTYPE_MODEL, vecModels );
  		ModelMap mapModels;
! 		for ( int i = 0 ; i < vecModels.size() ; i++ ) {
  			CComQIPtr<IMgaMetaModel> spModel = vecModels[ i ].p;
  			mapModels.insert( ModelMap::value_type( GetObjectName( vecModels[ i ].p ), spModel.p ) );
--- 588,592 ----
  		GetMetaObjects( spProject, "", OBJTYPE_MODEL, vecModels );
  		ModelMap mapModels;
! 		for ( unsigned int i = 0 ; i < vecModels.size() ; i++ ) {
  			CComQIPtr<IMgaMetaModel> spModel = vecModels[ i ].p;
  			mapModels.insert( ModelMap::value_type( GetObjectName( vecModels[ i ].p ), spModel.p ) );
***************
*** 612,624 ****
  	{
  		StringVector vecKinds;
! 		for ( int i = 0 ; i < vecDescriptions.size() ; i++ ) {
  			int iPos = vecDescriptions[ i ].find( ' ' );
! 			if ( iPos == string::npos ) {
! 				if ( find( vecKinds.begin(), vecKinds.end(), vecDescriptions[ i ] ) == vecKinds.end() )
  					vecKinds.push_back( vecDescriptions[ i ] );
  			}
  			else {
! 				string strModel = vecDescriptions[ i ].substr( 0, iPos );
! 				string strRole = vecDescriptions[ i ].substr( iPos + 1 );
  				ModelMap::iterator iModel = mapModels.find( strModel );
  				CComPtr<IMgaMetaRole> spRole;
--- 613,625 ----
  	{
  		StringVector vecKinds;
! 		for ( unsigned int i = 0 ; i < vecDescriptions.size() ; i++ ) {
  			int iPos = vecDescriptions[ i ].find( ' ' );
! 			if ( iPos == std::string::npos ) {
! 				if ( std::find( vecKinds.begin(), vecKinds.end(), vecDescriptions[ i ] ) == vecKinds.end() )
  					vecKinds.push_back( vecDescriptions[ i ] );
  			}
  			else {
! 				std::string strModel = vecDescriptions[ i ].substr( 0, iPos );
! 				std::string strRole = vecDescriptions[ i ].substr( iPos + 1 );
  				ModelMap::iterator iModel = mapModels.find( strModel );
  				CComPtr<IMgaMetaRole> spRole;
***************
*** 626,631 ****
  				CComPtr<IMgaMetaFCO> spFCO;
  				COMTHROW( spRole->get_Kind( &spFCO ) );
! 				string strKind = GetObjectName( spFCO.p );
! 				if ( find( vecKinds.begin(), vecKinds.end(), strKind ) == vecKinds.end() )
  					vecKinds.push_back( strKind );
  			}
--- 627,632 ----
  				CComPtr<IMgaMetaFCO> spFCO;
  				COMTHROW( spRole->get_Kind( &spFCO ) );
! 				std::string strKind = GetObjectName( spFCO.p );
! 				if ( std::find( vecKinds.begin(), vecKinds.end(), strKind ) == vecKinds.end() )
  					vecKinds.push_back( strKind );
  			}
***************
*** 646,650 ****
  	}
  
! 	void GetDerivedObjects( CComPtr<IMgaProject> spProject, const string& strType, ObjectVector& vecObjects )
  	{
  		CComPtr<IMgaFCOs> spFCOs;
--- 647,651 ----
  	}
  
! 	void GetDerivedObjects( CComPtr<IMgaProject> spProject, const std::string& strType, ObjectVector& vecObjects )
  	{
  		CComPtr<IMgaFCOs> spFCOs;
***************
*** 658,662 ****
  	}
  
! 	void GetKindFolders( CComPtr<IMgaFolder> spFolder, const string& strKind, bool bKind, ObjectVector& vecObjects )
  	{
  		if ( strKind.empty() || ( ( bKind ) ? GetObjectKind( spFolder.p ) : GetObjectName( spFolder.p ) ) == strKind )
--- 659,663 ----
  	}
  
! 	void GetKindFolders( CComPtr<IMgaFolder> spFolder, const std::string& strKind, bool bKind, ObjectVector& vecObjects )
  	{
  		if ( strKind.empty() || ( ( bKind ) ? GetObjectKind( spFolder.p ) : GetObjectName( spFolder.p ) ) == strKind )
***************
*** 669,673 ****
  	}
  
! 	void GetKindObjects( CComPtr<IMgaProject> spProject, const string& strKind, ObjectVector& vecObjects )
  	{
  		CComPtr<IMgaMetaProject> spMetaProject;
--- 670,674 ----
  	}
  
! 	void GetKindObjects( CComPtr<IMgaProject> spProject, const std::string& strKind, ObjectVector& vecObjects )
  	{
  		CComPtr<IMgaMetaProject> spMetaProject;
***************
*** 676,680 ****
  		GetMetaObjects( spMetaProject, strKind, OBJTYPE_NULL, vecMetas );
  
! 		for ( int i = 0 ; i < vecMetas.size() ; i++ ) {
  			CComQIPtr<IMgaMetaFCO> spFCO = vecMetas[ i ].p;
  
--- 677,681 ----
  		GetMetaObjects( spMetaProject, strKind, OBJTYPE_NULL, vecMetas );
  
! 		for ( unsigned int i = 0 ; i < vecMetas.size() ; i++ ) {
  			CComQIPtr<IMgaMetaFCO> spFCO = vecMetas[ i ].p;
  
***************
*** 714,718 ****
  	}
  
! 	void GetObjectPathR( CComPtr<IMgaObject> spObject, string& strPath )
  	{
  		CComPtr<IMgaObject> spParent;
--- 715,719 ----
  	}
  
! 	void GetObjectPathR( CComPtr<IMgaObject> spObject, std::string& strPath )
  	{
  		CComPtr<IMgaObject> spParent;
***************
*** 724,745 ****
  	}
  
! 	string GetObjectPath( CComPtr<IMgaObject> spObject )
  	{
! 		string strPath;
  		GetObjectPathR( spObject, strPath );
  		return ( strPath.empty() ) ? "/" : strPath;
  	}
  
! 	string GetObjectDescription( CComPtr<IMgaObject> spObject )
  	{
  		if ( ! spObject.p )
  			return "null";
  
! 		string strName = GetObjectName( spObject );
! 		string strKind = GetObjectKind( spObject );
  		objtype_enum eType = GetObjectType( spObject );
! 		string strMetaKind = "gme::" + ObjectTypeToString( eType );
  
! 		string strContainmentRole;
  		CComQIPtr<IMgaFCO> spFCO = spObject;
  		if ( spFCO.p ) {
--- 725,746 ----
  	}
  
! 	std::string GetObjectPath( CComPtr<IMgaObject> spObject )
  	{
! 		std::string strPath;
  		GetObjectPathR( spObject, strPath );
  		return ( strPath.empty() ) ? "/" : strPath;
  	}
  
! 	std::string GetObjectDescription( CComPtr<IMgaObject> spObject )
  	{
  		if ( ! spObject.p )
  			return "null";
  
! 		std::string strName = GetObjectName( spObject );
! 		std::string strKind = GetObjectKind( spObject );
  		objtype_enum eType = GetObjectType( spObject );
! 		std::string strMetaKind = "gme::" + ObjectTypeToString( eType );
  
! 		std::string strContainmentRole;
  		CComQIPtr<IMgaFCO> spFCO = spObject;
  		if ( spFCO.p ) {
***************
*** 751,757 ****
  		}
  
! 		string strPath = GetObjectPath( spObject );
  
! 		string strOut = strName + " { ";
  
  		switch ( eType ) {
--- 752,758 ----
  		}
  
! 		std::string strPath = GetObjectPath( spObject );
  
! 		std::string strOut = strName + " { ";
  
  		switch ( eType ) {
***************
*** 799,810 ****
  	}
  
! 	string GetConnectionPointDescription( CComPtr<IMgaConnPoint> spCP )
  	{
  		if ( ! spCP.p )
  			return "null";
  
! 		string strOut = "gme::ConnectionPoint { ";
  
! 		string strRole = GetConnPointRole( spCP );
  		if ( ! strRole.empty() )
  			strOut += "role: " + strRole + "; ";
--- 800,811 ----
  	}
  
! 	std::string GetConnectionPointDescription( CComPtr<IMgaConnPoint> spCP )
  	{
  		if ( ! spCP.p )
  			return "null";
  
! 		std::string strOut = "gme::ConnectionPoint { ";
  
! 		std::string strRole = GetConnPointRole( spCP );
  		if ( ! strRole.empty() )
  			strOut += "role: " + strRole + "; ";

Index: OCLCommonEx.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLCommonEx.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** OCLCommonEx.h	18 Nov 2002 18:24:00 -0000	1.8
--- OCLCommonEx.h	13 Oct 2004 15:17:54 -0000	1.9
***************
*** 29,43 ****
  
  	typedef CComObjPtr<IMgaObject> SPObject;
! 	typedef vector<SPObject> ObjectVector;
  	typedef CComObjPtr<IMgaFCO> SPFCO;
! 	typedef vector<SPFCO> FCOVector;
  	typedef CComObjPtr<IMgaMetaBase> SPMeta;
! 	typedef vector<SPMeta> MetaBaseVector;
  	typedef CComObjPtr<IMgaConnPoint> SPCP;
! 	typedef vector<SPCP> CPVector;
  	typedef CComObjPtr<IMgaMetaPointerSpec> SPPointer;
! 	typedef vector<SPPointer> PointerVector;
  	typedef CComObjPtr<IMgaMetaModel> SPModel;
! 	typedef map< string, SPModel> ModelMap;
  
  //##############################################################################################################################################
--- 29,43 ----
  
  	typedef CComObjPtr<IMgaObject> SPObject;
! 	typedef std::vector<SPObject> ObjectVector;
  	typedef CComObjPtr<IMgaFCO> SPFCO;
! 	typedef std::vector<SPFCO> FCOVector;
  	typedef CComObjPtr<IMgaMetaBase> SPMeta;
! 	typedef std::vector<SPMeta> MetaBaseVector;
  	typedef CComObjPtr<IMgaConnPoint> SPCP;
! 	typedef std::vector<SPCP> CPVector;
  	typedef CComObjPtr<IMgaMetaPointerSpec> SPPointer;
! 	typedef std::vector<SPPointer> PointerVector;
  	typedef CComObjPtr<IMgaMetaModel> SPModel;
! 	typedef std::map< std::string, SPModel> ModelMap;
  
  //##############################################################################################################################################
***************
*** 47,81 ****
  //##############################################################################################################################################
  
! 	string Convert( const CString& strIn );
  
! 	CString Convert( const string& strIn );
  
  	bool ParseCardinality( const CString& strCardinality );
  
! 	string UpperFirst( const string& strValue );
! 	string LowerFirst( const string& strValue );
  	CString UpperFirst( const CString& strValue );
  	CString LowerFirst( const CString& strValue );
  
! 	string GetConnPointRole( CComPtr<IMgaConnPoint> spCP );
  
! 	string GetObjectKind( CComPtr<IMgaObject> spObject );
  
! 	string GetFCORole( CComPtr<IMgaFCO> spFCO );
  
  	objtype_enum GetObjectType( CComPtr<IMgaObject> spObject );
  	objtype_enum GetObjectType( CComPtr<IMgaMetaBase> spObject );
  
! 	string GetObjectName( CComPtr<IMgaObject> spObject );
! 	string GetObjectName( CComPtr<IMgaMetaBase> spObject );
  
! 	string ObjectTypeToString( objtype_enum eType );
! 	objtype_enum StringToObjectType( const string& strType );
  
  	bool IsInLibrary( CComPtr<IMgaObject> spObject );
  	StringVector GetLibraryPath( CComPtr<IMgaObject> spObject );
  
! 	string CreateType( const string& strKind, objtype_enum eType );
! 	bool ResolveType( const string& strFullName, string& strKind, objtype_enum& eType );
  
  	void AddAssociation( OclMeta::TypeManager* pManager, OclMeta::Association* pAssociation, OclMeta::AssociationVector& vecAssociations, bool bCantBeSet );
--- 47,81 ----
  //##############################################################################################################################################
  
! 	std::string Convert( const CString& strIn );
  
! 	CString Convert( const std::string& strIn );
  
  	bool ParseCardinality( const CString& strCardinality );
  
! 	std::string UpperFirst( const std::string& strValue );
! 	std::string LowerFirst( const std::string& strValue );
  	CString UpperFirst( const CString& strValue );
  	CString LowerFirst( const CString& strValue );
  
! 	std::string GetConnPointRole( CComPtr<IMgaConnPoint> spCP );
  
! 	std::string GetObjectKind( CComPtr<IMgaObject> spObject );
  
! 	std::string GetFCORole( CComPtr<IMgaFCO> spFCO );
  
  	objtype_enum GetObjectType( CComPtr<IMgaObject> spObject );
  	objtype_enum GetObjectType( CComPtr<IMgaMetaBase> spObject );
  
! 	std::string GetObjectName( CComPtr<IMgaObject> spObject );
! 	std::string GetObjectName( CComPtr<IMgaMetaBase> spObject );
  
! 	std::string ObjectTypeToString( objtype_enum eType );
! 	objtype_enum StringToObjectType( const std::string& strType );
  
  	bool IsInLibrary( CComPtr<IMgaObject> spObject );
  	StringVector GetLibraryPath( CComPtr<IMgaObject> spObject );
  
! 	std::string CreateType( const std::string& strKind, objtype_enum eType );
! 	bool ResolveType( const std::string& strFullName, std::string& strKind, objtype_enum& eType );
  
  	void AddAssociation( OclMeta::TypeManager* pManager, OclMeta::Association* pAssociation, OclMeta::AssociationVector& vecAssociations, bool bCantBeSet );
***************
*** 97,120 ****
  	bool IsAbstract( CComPtr<IMgaFCO> spFCO );
  	bool GetAllObjects( CComPtr<IMgaFCO>& spFCO, CComPtr<IMgaFCOs>& spRefs );
! 	void GetAssociationEnds( CComPtr<IMgaFCO> spFCO, const string& strRole, const string& strKind, FCOVector& vecFCOs );
! 	void GetAssociationEnds( CComPtr<IMgaFCO> spFCO, const string& strRole, const string& strKind, FCOVector& vecFCOs, FCOVector& vecConnections );
! 	void GetInheritances( CComPtr<IMgaFCO> spFCO, const string& strInheritanceType, bool bIsParent, FCOVector& vecFCOs );
! 	void GetEquivalences( CComPtr<IMgaFCO> spFCO, const string& strEquivalenceType, bool bToLeft, FCOVector& vecFCOs );
  
  	// Modeling Time
  
! 	void GetMetaObjects( CComPtr<IMgaMetaProject> spProject, const string& strName, objtype_enum eType, MetaBaseVector& vecMetaBases );
! 	void GetDerivedObjects( CComPtr<IMgaProject> spProject, const string& strType, ObjectVector& vecObjects );
! 	void GetKindObjects( CComPtr<IMgaProject> spProject, const string& strKind, ObjectVector& vecObjects );
! 	void GetKindFolders( CComPtr<IMgaFolder> spFolder, const string& strKind, bool bKind, ObjectVector& vecObjects );
  
! 	string GetPointerRole( CComPtr<IMgaMetaPointerSpec> spPointer );
  	ModelMap GetModels( CComPtr<IMgaMetaProject> spProject );
  	StringVector GetPointerDescriptions( CComPtr<IMgaMetaPointerSpec> spPointer );
  	StringVector TranslateDescriptionsToKinds( ModelMap& mapModels, const StringVector& vecDescriptions );
  
! 	string GetObjectPath( CComPtr<IMgaObject> spObject );
! 	string GetObjectDescription( CComPtr<IMgaObject> spObject );
! 	string GetConnectionPointDescription( CComPtr<IMgaConnPoint> spCP );
  
  
--- 97,120 ----
  	bool IsAbstract( CComPtr<IMgaFCO> spFCO );
  	bool GetAllObjects( CComPtr<IMgaFCO>& spFCO, CComPtr<IMgaFCOs>& spRefs );
! 	void GetAssociationEnds( CComPtr<IMgaFCO> spFCO, const std::string& strRole, const std::string& strKind, FCOVector& vecFCOs );
! 	void GetAssociationEnds( CComPtr<IMgaFCO> spFCO, const std::string& strRole, const std::string& strKind, FCOVector& vecFCOs, FCOVector& vecConnections );
! 	void GetInheritances( CComPtr<IMgaFCO> spFCO, const std::string& strInheritanceType, bool bIsParent, FCOVector& vecFCOs );
! 	void GetEquivalences( CComPtr<IMgaFCO> spFCO, const std::string& strEquivalenceType, bool bToLeft, FCOVector& vecFCOs );
  
  	// Modeling Time
  
! 	void GetMetaObjects( CComPtr<IMgaMetaProject> spProject, const std::string& strName, objtype_enum eType, MetaBaseVector& vecMetaBases );
! 	void GetDerivedObjects( CComPtr<IMgaProject> spProject, const std::string& strType, ObjectVector& vecObjects );
! 	void GetKindObjects( CComPtr<IMgaProject> spProject, const std::string& strKind, ObjectVector& vecObjects );
! 	void GetKindFolders( CComPtr<IMgaFolder> spFolder, const std::string& strKind, bool bKind, ObjectVector& vecObjects );
  
! 	std::string GetPointerRole( CComPtr<IMgaMetaPointerSpec> spPointer );
  	ModelMap GetModels( CComPtr<IMgaMetaProject> spProject );
  	StringVector GetPointerDescriptions( CComPtr<IMgaMetaPointerSpec> spPointer );
  	StringVector TranslateDescriptionsToKinds( ModelMap& mapModels, const StringVector& vecDescriptions );
  
! 	std::string GetObjectPath( CComPtr<IMgaObject> spObject );
! 	std::string GetObjectDescription( CComPtr<IMgaObject> spObject );
! 	std::string GetConnectionPointDescription( CComPtr<IMgaConnPoint> spCP );
  
  

Index: OCLContext.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLContext.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** OCLContext.h	23 Oct 2002 14:05:00 -0000	1.4
--- OCLContext.h	13 Oct 2004 15:17:54 -0000	1.5
***************
*** 67,77 ****
  	{
  		public :
! 			typedef struct CItem_tag { string name; TItem item; } CItem;
! 			typedef vector< CItem > CItemVector;
  
  
  		private :
  			typedef struct StoreItem{ TItem object; bool bAssignable; };
! 			typedef map< string, StoreItem > TMap;
  
  		private :
--- 67,77 ----
  	{
  		public :
! 			typedef struct CItem_tag { std::string name; TItem item; } CItem;
! 			typedef std::vector< CItem > CItemVector;
  
  
  		private :
  			typedef struct StoreItem{ TItem object; bool bAssignable; };
! 			typedef std::map< std::string, StoreItem > TMap;
  
  		private :
***************
*** 92,96 ****
  			}
  
! 			bool ExistsVariable( const string& strName ) const
  			{
  				TItem object;
--- 92,96 ----
  			}
  
! 			bool ExistsVariable( const std::string& strName ) const
  			{
  				TItem object;
***************
*** 98,102 ****
  			}
  
! 			bool GetVariable( const string& strName, TItem& object ) const
  			{
  				StoreItem item;
--- 98,102 ----
  			}
  
! 			bool GetVariable( const std::string& strName, TItem& object ) const
  			{
  				StoreItem item;
***************
*** 107,111 ****
  			}
  
! 			bool AddVariable( const string& strName, const TItem& object, bool bAssignable = false )
  			{
  				StoreItem item;
--- 107,111 ----
  			}
  
! 			bool AddVariable( const std::string& strName, const TItem& object, bool bAssignable = false )
  			{
  				StoreItem item;
***************
*** 118,122 ****
  			}
  
! 			bool IsAssignable( const string& strName, bool& bAssignable ) const
  			{
  				StoreItem item;
--- 118,122 ----
  			}
  
! 			bool IsAssignable( const std::string& strName, bool& bAssignable ) const
  			{
  				StoreItem item;
***************
*** 127,131 ****
  			}
  
! 			bool RemoveVariable( const string& strName )
  			{
  				if ( ExistsVariable( strName ) ) {
--- 127,131 ----
  			}
  
! 			bool RemoveVariable( const std::string& strName )
  			{
  				if ( ExistsVariable( strName ) ) {
***************
*** 136,140 ****
  			}
  
! 			bool SetVariable( const string& strName, const TItem& object )
  			{
  				StoreItem item;
--- 136,140 ----
  			}
  
! 			bool SetVariable( const std::string& strName, const TItem& object )
  			{
  				StoreItem item;
***************
*** 176,180 ****
  
  		private :
! 			bool GetVariable( const string& strName, StoreItem& item ) const
  			{
  				TMap::const_iterator i = m_mapVariables.find( strName );
--- 176,180 ----
  
  		private :
! 			bool GetVariable( const std::string& strName, StoreItem& item ) const
  			{
  				TMap::const_iterator i = m_mapVariables.find( strName );
***************
*** 201,209 ****
  		public :
  			typedef RealContext< TItem >::CItem StateItem;
! 			typedef vector< StateItem > StateItemVector;
  
  		private :
  			typedef RealContext< TItem > CTItem;
! 			typedef vector< CTItem > CTVector;
  
  		private :
--- 201,209 ----
  		public :
  			typedef RealContext< TItem >::CItem StateItem;
! 			typedef std::vector< StateItem > StateItemVector;
  
  		private :
  			typedef RealContext< TItem > CTItem;
! 			typedef std::vector< CTItem > CTVector;
  
  		private :
***************
*** 239,243 ****
  			}
  
! 			bool ExistsVariable( const string& strName ) const
  			{
  				for ( int i = m_vecContexts.size() - 1 ; i >= 0 ; i-- )
--- 239,243 ----
  			}
  
! 			bool ExistsVariable( const std::string& strName ) const
  			{
  				for ( int i = m_vecContexts.size() - 1 ; i >= 0 ; i-- )
***************
*** 250,254 ****
  			}
  
! 			bool GetVariable( const string& strName, TItem& object ) const
  			{
  				for ( int i = m_vecContexts.size() - 1 ; i >= 0 ; i-- )
--- 250,254 ----
  			}
  
! 			bool GetVariable( const std::string& strName, TItem& object ) const
  			{
  				for ( int i = m_vecContexts.size() - 1 ; i >= 0 ; i-- )
***************
*** 261,265 ****
  			}
  
! 			bool IsAssignable( const string& strName, bool& bAssignable ) const
  			{
  				for ( int i = m_vecContexts.size() - 1 ; i >= 0 ; i-- )
--- 261,265 ----
  			}
  
! 			bool IsAssignable( const std::string& strName, bool& bAssignable ) const
  			{
  				for ( int i = m_vecContexts.size() - 1 ; i >= 0 ; i-- )
***************
*** 272,276 ****
  			}
  
! 			bool AddVariable( const string& strName, const TItem& object, bool bAssignable = false, bool bRedefine = false )
  			{
  				if ( bRedefine && ! m_vecContexts[ m_vecContexts.size() - 1 ].ExistsVariable( strName ) || ! ExistsVariable( strName ) ) {
--- 272,276 ----
  			}
  
! 			bool AddVariable( const std::string& strName, const TItem& object, bool bAssignable = false, bool bRedefine = false )
  			{
  				if ( bRedefine && ! m_vecContexts[ m_vecContexts.size() - 1 ].ExistsVariable( strName ) || ! ExistsVariable( strName ) ) {
***************
*** 281,285 ****
  			}
  
! 			bool RemoveVariable( const string& strName )
  			{
  				for ( int i = m_vecContexts.size() - 1 ; i >= 0 ; i-- )
--- 281,285 ----
  			}
  
! 			bool RemoveVariable( const std::string& strName )
  			{
  				for ( int i = m_vecContexts.size() - 1 ; i >= 0 ; i-- )
***************
*** 292,296 ****
  			}
  
! 			bool SetVariable( const string& strName, const TItem& object )
  			{
  				for ( int i = m_vecContexts.size() - 1 ; i >= 0 ; i-- )
--- 292,296 ----
  			}
  
! 			bool SetVariable( const std::string& strName, const TItem& object )
  			{
  				for ( int i = m_vecContexts.size() - 1 ; i >= 0 ; i-- )
***************
*** 306,317 ****
  			{
  				StateItemVector vecItemsOut;
! 				for ( int i = 0 ; i < m_vecContexts.size() ; i++ ) {
  					StateItemVector vecItems = m_vecContexts[ i ].GetState();
  					if ( i != 0 && vecItems[ 0 ].name == "self" ) {
  						char chBuffer[ 100 ];
  						sprintf( chBuffer, "%d", i + 1 );
! 						vecItems[ 0 ].name = "self - " + string( chBuffer );
  					}
! 					for ( int j = 0 ; j < vecItems.size() ; j++ )
  						vecItemsOut.push_back( vecItems[ j ] );
  				}
--- 306,317 ----
  			{
  				StateItemVector vecItemsOut;
! 				for ( unsigned int i = 0 ; i < m_vecContexts.size() ; i++ ) {
  					StateItemVector vecItems = m_vecContexts[ i ].GetState();
  					if ( i != 0 && vecItems[ 0 ].name == "self" ) {
  						char chBuffer[ 100 ];
  						sprintf( chBuffer, "%d", i + 1 );
! 						vecItems[ 0 ].name = "self - " + std::string( chBuffer );
  					}
! 					for ( unsigned int j = 0 ; j < vecItems.size() ; j++ )
  						vecItemsOut.push_back( vecItems[ j ] );
  				}

Index: OCLException.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLException.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** OCLException.cpp	18 May 2004 13:30:58 -0000	1.9
--- OCLException.cpp	13 Oct 2004 15:17:54 -0000	1.10
***************
*** 14,18 ****
  //###############################################################################################################################################
  
! string ErrorMessages[] = {
  
  	"Type [ ? ] does not exist.",
--- 14,18 ----
  //###############################################################################################################################################
  
! std::string ErrorMessages[] = {
  
  	"Type [ ? ] does not exist.",
***************
*** 75,81 ****
  //###############################################################################################################################################
  
! 	string Exception::GetMessage()
  	{
! 		string strMessage = m_strMessage;
  		if ( m_iCode != - 1 ) {
  			switch ( m_eType ) {
--- 75,81 ----
  //###############################################################################################################################################
  
! 	std::string Exception::GGetMessage()
  	{
! 		std::string strMessage = m_strMessage;
  		if ( m_iCode != - 1 ) {
  			switch ( m_eType ) {
***************
*** 86,92 ****
  			}
  		}
! 		int iCnt = 0;
  		int iPos = strMessage.find( '?' );
! 		while ( iPos != string::npos && iCnt < m_vecParameters.size() ) {
  			strMessage = strMessage.substr( 0, iPos ) + m_vecParameters[ iCnt++ ] + strMessage.substr( iPos + 1, strMessage.length() - iPos - 1 );
  			iPos = strMessage.find( '?' );
--- 86,92 ----
  			}
  		}
! 		unsigned int iCnt = 0;
  		int iPos = strMessage.find( '?' );
! 		while ( iPos != std::string::npos && iCnt < m_vecParameters.size() ) {
  			strMessage = strMessage.substr( 0, iPos ) + m_vecParameters[ iCnt++ ] + strMessage.substr( iPos + 1, strMessage.length() - iPos - 1 );
  			iPos = strMessage.find( '?' );

Index: OCLException.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLException.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** OCLException.h	25 Oct 2002 18:32:00 -0000	1.8
--- OCLException.h	13 Oct 2004 15:17:54 -0000	1.9
***************
*** 86,90 ****
  namespace OclCommon
  {
! 	class Exception;
  	class ExceptionPool;
  
--- 86,90 ----
  namespace OclCommon
  {
! 	//class Exception;
  	class ExceptionPool;
  
***************
*** 106,110 ****
  		private :
  			int					m_iCode;
! 			string				m_strMessage;
  			ExceptionType		m_eType;
  			StringVector 		m_vecParameters;
--- 106,110 ----
  		private :
  			int					m_iCode;
! 			std::string			m_strMessage;
  			ExceptionType		m_eType;
  			StringVector 		m_vecParameters;
***************
*** 123,127 ****
  			}
  
! 			Exception( ExceptionType eType, int iCode, const string& param, int iLine = -1, int iColumn = -1 )
  				: m_iCode( iCode ), m_strMessage( "" ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
--- 123,127 ----
  			}
  
! 			Exception( ExceptionType eType, int iCode, const std::string& param, int iLine = -1, int iColumn = -1 )
  				: m_iCode( iCode ), m_strMessage( "" ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
***************
*** 129,133 ****
  			}
  
! 			Exception( ExceptionType eType, int iCode, const string& param1, const string& param2, int iLine = -1, int iColumn = -1 )
  				: m_iCode( iCode ), m_strMessage( "" ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
--- 129,133 ----
  			}
  
! 			Exception( ExceptionType eType, int iCode, const std::string& param1, const std::string& param2, int iLine = -1, int iColumn = -1 )
  				: m_iCode( iCode ), m_strMessage( "" ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
***************
*** 136,140 ****
  			}
  
! 			Exception( ExceptionType eType, int iCode, const string& param1, const string& param2, const string& param3, int iLine = -1, int iColumn = -1 )
  				: m_iCode( iCode ), m_strMessage( "" ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
--- 136,140 ----
  			}
  
! 			Exception( ExceptionType eType, int iCode, const std::string& param1, const std::string& param2, const std::string& param3, int iLine = -1, int iColumn = -1 )
  				: m_iCode( iCode ), m_strMessage( "" ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
***************
*** 149,158 ****
  			}
  
! 			Exception( ExceptionType eType, const string& strMessage, int iLine = -1, int iColumn = -1 )
  				: m_iCode( -1 ), m_strMessage( strMessage ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
  			}
  
! 			Exception( ExceptionType eType, const string& strMessage, const string& param, int iLine = -1, int iColumn = -1 )
  				: m_iCode( -1 ), m_strMessage( strMessage ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
--- 149,158 ----
  			}
  
! 			Exception( ExceptionType eType, const std::string& strMessage, int iLine = -1, int iColumn = -1 )
  				: m_iCode( -1 ), m_strMessage( strMessage ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
  			}
  
! 			Exception( ExceptionType eType, const std::string& strMessage, const std::string& param, int iLine = -1, int iColumn = -1 )
  				: m_iCode( -1 ), m_strMessage( strMessage ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
***************
*** 160,164 ****
  			}
  
! 			Exception( ExceptionType eType, const string& strMessage, const string& param1, const string& param2, int iLine = -1, int iColumn = -1 )
  				: m_iCode( -1 ), m_strMessage( strMessage ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
--- 160,164 ----
  			}
  
! 			Exception( ExceptionType eType, const std::string& strMessage, const std::string& param1, const std::string& param2, int iLine = -1, int iColumn = -1 )
  				: m_iCode( -1 ), m_strMessage( strMessage ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
***************
*** 167,171 ****
  			}
  
! 			Exception( ExceptionType eType, const string& strMessage, const string& param1, const string& param2, const string& param3, int iLine = -1, int iColumn = -1 )
  				: m_iCode( -1 ), m_strMessage( strMessage ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
--- 167,171 ----
  			}
  
! 			Exception( ExceptionType eType, const std::string& strMessage, const std::string& param1, const std::string& param2, const std::string& param3, int iLine = -1, int iColumn = -1 )
  				: m_iCode( -1 ), m_strMessage( strMessage ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
***************
*** 176,180 ****
  
  
! 			Exception( ExceptionType eType, const string& strMessage, const StringVector& vecParameters, int iLine = -1, int iColumn = -1 )
  				: m_iCode( -1 ), m_vecParameters( vecParameters ), m_strMessage( strMessage ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
--- 176,180 ----
  
  
! 			Exception( ExceptionType eType, const std::string& strMessage, const StringVector& vecParameters, int iLine = -1, int iColumn = -1 )
  				: m_iCode( -1 ), m_vecParameters( vecParameters ), m_strMessage( strMessage ), m_iLine( iLine ), m_iColumn( iColumn ), m_eType( eType )
  			{
***************
*** 218,222 ****
  			}
  
! 			string GetMessage();
  
  			int GetCode()
--- 218,222 ----
  			}
  
! 			std::string GGetMessage();//z!
  
  			int GetCode()
***************
*** 244,248 ****
  	{
  		private :
! 			typedef vector< Exception > ExceptionVector;
  
  			ExceptionVector	m_vecExceptions;
--- 244,248 ----
  	{
  		private :
! 			typedef std::vector< Exception > ExceptionVector;
  
  			ExceptionVector	m_vecExceptions;
***************
*** 278,282 ****
  			void Add( ExceptionPool& ePool )
  			{
! 				for ( int i = 0 ; i < ePool.m_vecExceptions.size() ; i++ )
  					Add( ePool.m_vecExceptions[ i ] );
  			}
--- 278,282 ----
  			void Add( ExceptionPool& ePool )
  			{
! 				for ( unsigned int i = 0 ; i < ePool.m_vecExceptions.size() ; i++ )
  					Add( ePool.m_vecExceptions[ i ] );
  			}
***************
*** 303,311 ****
  				if ( from < 0 )
  					from = 0;
! 				if ( from > m_vecExceptions.size() )
  					return;
! 				if ( to < 0 || to >= m_vecExceptions.size() )
  					to = m_vecExceptions.size() - 1;
! 				if ( from == 0 && to == m_vecExceptions.size() - 1 )
  					m_vecExceptions.clear();
  				else {
--- 303,311 ----
  				if ( from < 0 )
  					from = 0;
! 				if ( from > (int) m_vecExceptions.size() )
  					return;
! 				if ( to < 0 || to >= (int) m_vecExceptions.size() )
  					to = m_vecExceptions.size() - 1;
! 				if ( from == 0 && to == (int) m_vecExceptions.size() - 1 )
  					m_vecExceptions.clear();
  				else {
***************
*** 314,322 ****
  					for ( int i = 0 ; i < from ; i++ )
  						m_vecExceptions.push_back( vecTemp[ i ] );
! 					for ( i = to ; i < vecTemp.size() ; i++ )
  						m_vecExceptions.push_back( vecTemp[ i ] );
  				}
  				m_bHasError = false;
! 				for ( int i = 0 ; i < m_vecExceptions.size() ; i++ )
  					if ( m_vecExceptions[ i ].GetType() != Exception::ET_WARNING ) {
  						m_bHasError = true;
--- 314,322 ----
  					for ( int i = 0 ; i < from ; i++ )
  						m_vecExceptions.push_back( vecTemp[ i ] );
! 					for ( i = to ; i < (int) vecTemp.size() ; i++ )
  						m_vecExceptions.push_back( vecTemp[ i ] );
  				}
  				m_bHasError = false;
! 				for ( unsigned int i = 0 ; i < m_vecExceptions.size() ; i++ )
  					if ( m_vecExceptions[ i ].GetType() != Exception::ET_WARNING ) {
  						m_bHasError = true;
***************
*** 332,336 ****
  			void SetLine( int iLine )
  			{
! 				for ( int i = 0 ; i < m_vecExceptions.size() ; i++ )
  					m_vecExceptions[ i ].SetLine( iLine );
  			}
--- 332,336 ----
  			void SetLine( int iLine )
  			{
! 				for ( unsigned int i = 0 ; i < m_vecExceptions.size() ; i++ )
  					m_vecExceptions[ i ].SetLine( iLine );
  			}
***************
*** 338,342 ****
  			void SetColumn( int iColumn )
  			{
! 				for ( int i = 0 ; i < m_vecExceptions.size() ; i++ )
  					m_vecExceptions[ i ].SetColumn( iColumn );
  			}
--- 338,342 ----
  			void SetColumn( int iColumn )
  			{
! 				for ( unsigned int i = 0 ; i < m_vecExceptions.size() ; i++ )
  					m_vecExceptions[ i ].SetColumn( iColumn );
  			}

Index: OCLFactory.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLFactory.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** OCLFactory.h	23 Oct 2002 14:05:00 -0000	1.2
--- OCLFactory.h	13 Oct 2004 15:17:54 -0000	1.3
***************
*** 83,87 ****
  			virtual			~TypeFactory() {};
  
! 			virtual void	GetTypes( const string& strName, vector< OclMeta::Type* >& vecTypes ) = 0;
  
  			OclMeta::TypeManager* GetTypeManager() const
--- 83,87 ----
  			virtual			~TypeFactory() {};
  
! 			virtual void	GetTypes( const std::string& strName, std::vector< OclMeta::Type* >& vecTypes ) = 0;
  
  			OclMeta::TypeManager* GetTypeManager() const

Index: OCLFeature.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLFeature.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** OCLFeature.h	23 Oct 2002 14:05:00 -0000	1.2
--- OCLFeature.h	13 Oct 2004 15:17:54 -0000	1.3
***************
*** 24,37 ****
  	class Function;
  
! 	typedef vector< Attribute* > AttributeVector;
! 	typedef vector< Association* > AssociationVector;
! 	typedef vector< Iterator* > IteratorVector;
! 	typedef vector< Method* > MethodVector;
! 	typedef vector< Operator* > OperatorVector;
! 	typedef vector< Function* > FunctionVector;
  
  	class Dependency;
  
! 	typedef set< Dependency > DependencySet;
  
  //##############################################################################################################################################
--- 24,37 ----
  	class Function;
  
! 	typedef std::vector< Attribute* > AttributeVector;
! 	typedef std::vector< Association* > AssociationVector;
! 	typedef std::vector< Iterator* > IteratorVector;
! 	typedef std::vector< Method* > MethodVector;
! 	typedef std::vector< Operator* > OperatorVector;
! 	typedef std::vector< Function* > FunctionVector;
  
  	class Dependency;
  
! 	typedef std::set< Dependency > DependencySet;
  
  //##############################################################################################################################################
***************
*** 54,58 ****
  
  		protected :
! 			Feature( const string& strName, const OclSignature::Feature::FeatureKind eKind, const TypeSeq& vecTypeReturn, bool bDynamic, bool bDependence = false )
  				: OclSignature::Feature( strName, eKind ), m_vecTypeReturn( vecTypeReturn ), m_bDynamic( bDynamic ), m_bDependence( bDependence )
  			{
--- 54,58 ----
  
  		protected :
! 			Feature( const std::string& strName, const OclSignature::Feature::FeatureKind eKind, const TypeSeq& vecTypeReturn, bool bDynamic, bool bDependence = false )
  				: OclSignature::Feature( strName, eKind ), m_vecTypeReturn( vecTypeReturn ), m_bDynamic( bDynamic ), m_bDependence( bDependence )
  			{
***************
*** 135,139 ****
  	{
  		public :
! 			Attribute( const string& strName, const TypeSeq& vecTypeReturn, OclImplementation::Attribute* pImplementation, bool bDynamic, bool bDependence = false )
  				: Feature( strName, OclSignature::Feature::FK_ATTRIBUTE, vecTypeReturn, bDynamic, bDependence ), OclSignature::Attribute( strName ), FeatureAppendix<OclImplementation::Attribute>( pImplementation )
  			{
--- 135,139 ----
  	{
  		public :
! 			Attribute( const std::string& strName, const TypeSeq& vecTypeReturn, OclImplementation::Attribute* pImplementation, bool bDynamic, bool bDependence = false )
  				: Feature( strName, OclSignature::Feature::FK_ATTRIBUTE, vecTypeReturn, bDynamic, bDependence ), OclSignature::Attribute( strName ), FeatureAppendix<OclImplementation::Attribute>( pImplementation )
  			{
***************
*** 162,166 ****
  	{
  		public :
! 			Association( const string& strName, const string& strAcceptable, TypeSeq& vecTypeReturn, OclImplementation::Association* pImplementation, bool bDynamic )
  				: Feature( strName, OclSignature::Feature::FK_ASSOCIATION, vecTypeReturn, bDynamic ), OclSignature::Association( strName, strAcceptable ), FeatureAppendix<OclImplementation::Association>( pImplementation )
  			{
--- 162,166 ----
  	{
  		public :
! 			Association( const std::string& strName, const std::string& strAcceptable, TypeSeq& vecTypeReturn, OclImplementation::Association* pImplementation, bool bDynamic )
  				: Feature( strName, OclSignature::Feature::FK_ASSOCIATION, vecTypeReturn, bDynamic ), OclSignature::Association( strName, strAcceptable ), FeatureAppendix<OclImplementation::Association>( pImplementation )
  			{
***************
*** 189,193 ****
  	{
  		public :
! 			Iterator( const string& strName, const string& strParameterType, TypeSeq& vecTypeReturn, OclImplementation::Iterator* pImplementation, bool bDynamic )
  				: Feature( strName, OclSignature::Feature::FK_ITERATOR, vecTypeReturn, bDynamic ), OclSignature::Iterator( strName, strParameterType ), FeatureAppendix<OclImplementation::Iterator>( pImplementation )
  			{
--- 189,193 ----
  	{
  		public :
! 			Iterator( const std::string& strName, const std::string& strParameterType, TypeSeq& vecTypeReturn, OclImplementation::Iterator* pImplementation, bool bDynamic )
  				: Feature( strName, OclSignature::Feature::FK_ITERATOR, vecTypeReturn, bDynamic ), OclSignature::Iterator( strName, strParameterType ), FeatureAppendix<OclImplementation::Iterator>( pImplementation )
  			{
***************
*** 216,220 ****
  	{
  		public :
! 			Method( const string& strName, const OclCommon::FormalParameterVector& vecParameters, TypeSeq& vecTypeReturn, OclImplementation::Method* pImplementation, bool bDynamic, bool bDependence = false )
  				: Feature( strName, OclSignature::Feature::FK_METHOD, vecTypeReturn, bDynamic, bDependence ), OclSignature::Method( strName, vecParameters ), FeatureAppendix<OclImplementation::Method>( pImplementation )
  			{
--- 216,220 ----
  	{
  		public :
! 			Method( const std::string& strName, const OclCommon::FormalParameterVector& vecParameters, TypeSeq& vecTypeReturn, OclImplementation::Method* pImplementation, bool bDynamic, bool bDependence = false )
  				: Feature( strName, OclSignature::Feature::FK_METHOD, vecTypeReturn, bDynamic, bDependence ), OclSignature::Method( strName, vecParameters ), FeatureAppendix<OclImplementation::Method>( pImplementation )
  			{
***************
*** 243,252 ****
  	{
  		public :
! 			Operator( const string& strName, const string& strOperand1Type, const TypeSeq& vecTypeReturn, OclImplementation::Operator* pImplementation, bool bDynamic )
  				: Feature( strName, OclSignature::Feature::FK_OPERATOR, vecTypeReturn, bDynamic ), OclSignature::Operator( strName, strOperand1Type ), FeatureAppendix<OclImplementation::Operator>( pImplementation )
  			{
  			}
  
! 			Operator( const string& strName, const string& strOperand1Type, const string& strOperand2Type, const TypeSeq& vecTypeReturn, OclImplementation::Operator* pImplementation, bool bDynamic )
  				: Feature( strName, OclSignature::Feature::FK_OPERATOR, vecTypeReturn, bDynamic ), OclSignature::Operator( strName, strOperand1Type, strOperand2Type ), FeatureAppendix<OclImplementation::Operator>( pImplementation )
  			{
--- 243,252 ----
  	{
  		public :
! 			Operator( const std::string& strName, const std::string& strOperand1Type, const TypeSeq& vecTypeReturn, OclImplementation::Operator* pImplementation, bool bDynamic )
  				: Feature( strName, OclSignature::Feature::FK_OPERATOR, vecTypeReturn, bDynamic ), OclSignature::Operator( strName, strOperand1Type ), FeatureAppendix<OclImplementation::Operator>( pImplementation )
  			{
  			}
  
! 			Operator( const std::string& strName, const std::string& strOperand1Type, const std::string& strOperand2Type, const TypeSeq& vecTypeReturn, OclImplementation::Operator* pImplementation, bool bDynamic )
  				: Feature( strName, OclSignature::Feature::FK_OPERATOR, vecTypeReturn, bDynamic ), OclSignature::Operator( strName, strOperand1Type, strOperand2Type ), FeatureAppendix<OclImplementation::Operator>( pImplementation )
  			{
***************
*** 275,279 ****
  	{
  		public :
! 			Function( const string& strName, const OclCommon::FormalParameterVector& vecParameters, TypeSeq& vecTypeReturn, OclImplementation::Function* pImplementation, bool bDynamic )
  				: Feature( strName, OclSignature::Feature::FK_FUNCTION, vecTypeReturn, bDynamic ), OclSignature::Function( strName, vecParameters ), FeatureAppendix<OclImplementation::Function>( pImplementation )
  			{
--- 275,279 ----
  	{
  		public :
! 			Function( const std::string& strName, const OclCommon::FormalParameterVector& vecParameters, TypeSeq& vecTypeReturn, OclImplementation::Function* pImplementation, bool bDynamic )
  				: Feature( strName, OclSignature::Feature::FK_FUNCTION, vecTypeReturn, bDynamic ), OclSignature::Function( strName, vecParameters ), FeatureAppendix<OclImplementation::Function>( pImplementation )
  			{
***************
*** 300,309 ****
  		public :
  			Position 	m_position;
! 			string		m_strSignature;
  			bool 		m_bFailed;
  			bool 		m_bChecked;
  
  
! 			Dependency( const string& strSignature, const Position& position )
  				: m_strSignature( strSignature), m_position( position ), m_bFailed( false ), m_bChecked( false )
  			{
--- 300,309 ----
  		public :
  			Position 	m_position;
! 			std::string	m_strSignature;
  			bool 		m_bFailed;
  			bool 		m_bChecked;
  
  
! 			Dependency( const std::string& strSignature, const Position& position )
  				: m_strSignature( strSignature), m_position( position ), m_bFailed( false ), m_bChecked( false )
  			{
***************
*** 341,347 ****
  			}
  
! 			string Print() const
  			{
! 				string strOut = "c: ";
  				strOut += ( m_bChecked ) ? "1 " : "0 ";
  				strOut += "f: ";
--- 341,347 ----
  			}
  
! 			std::string Print() const
  			{
! 				std::string strOut = "c: ";
  				strOut += ( m_bChecked ) ? "1 " : "0 ";
  				strOut += "f: ";
***************
*** 378,382 ****
  			}
  
! 			static DependencySet::iterator LookUp( DependencySet& ds, const string& strSignature )
  			{
  				Position pos;
--- 378,382 ----
  			}
  
! 			static DependencySet::iterator LookUp( DependencySet& ds, const std::string& strSignature )
  			{
  				Position pos;
***************
*** 385,391 ****
  			}
  
! 			static string Print( const DependencySet& setDependencies )
  			{
! 				string strOut;
  				for ( DependencySet::iterator it = setDependencies.begin() ; it != setDependencies.end() ; it++ )
  					strOut += (*it).Print() + "\r\n";
--- 385,391 ----
  			}
  
! 			static std::string Print( const DependencySet& setDependencies )
  			{
! 				std::string strOut;
  				for ( DependencySet::iterator it = setDependencies.begin() ; it != setDependencies.end() ; it++ )
  					strOut += (*it).Print() + "\r\n";

Index: OCLFeatureImplementation.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLFeatureImplementation.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** OCLFeatureImplementation.h	13 Sep 2004 14:14:53 -0000	1.6
--- OCLFeatureImplementation.h	13 Oct 2004 15:17:54 -0000	1.7
***************
*** 87,91 ****
  			}
  
! 			void ThrowException( const string& strMessage )
  			{
  				THROWOCL0( ET_RUNTIME, strMessage );
--- 87,91 ----
  			}
  
! 			void ThrowException( const std::string& strMessage )
  			{
  				THROWOCL0( ET_RUNTIME, strMessage );

Index: OCLFormalParameter.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLFormalParameter.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** OCLFormalParameter.h	30 Sep 2002 23:08:00 -0000	1.1
--- OCLFormalParameter.h	13 Oct 2004 15:17:54 -0000	1.2
***************
*** 14,18 ****
  {
  	class FormalParameter;
! 	typedef vector< FormalParameter > FormalParameterVector;
  
  //##############################################################################################################################################
--- 14,18 ----
  {
  	class FormalParameter;
! 	typedef std::vector< FormalParameter > FormalParameterVector;
  
  //##############################################################################################################################################
***************
*** 29,43 ****
  	{
  		private :
! 			string	m_strName;
! 			string	m_strType;
  			bool	m_bRequired;
  
  		public :
! 			FormalParameter( const string& strName, const string& strType, bool bRequired )
  				: m_strName( strName ), m_strType( strType ), m_bRequired( bRequired )
  			{
  			}
  
! 			FormalParameter( const string& strType, bool bRequired )
  				: m_strName( "" ), m_strType( strType ), m_bRequired( bRequired )
  			{
--- 29,43 ----
  	{
  		private :
! 			std::string	m_strName;
! 			std::string	m_strType;
  			bool	m_bRequired;
  
  		public :
! 			FormalParameter( const std::string& strName, const std::string& strType, bool bRequired )
  				: m_strName( strName ), m_strType( strType ), m_bRequired( bRequired )
  			{
  			}
  
! 			FormalParameter( const std::string& strType, bool bRequired )
  				: m_strName( "" ), m_strType( strType ), m_bRequired( bRequired )
  			{
***************
*** 69,73 ****
  			}
  
! 			bool IsIdentical( const string& strType ) const
  			{
  				return m_strType == strType;
--- 69,73 ----
  			}
  
! 			bool IsIdentical( const std::string& strType ) const
  			{
  				return m_strType == strType;
***************
*** 89,98 ****
  			}
  
! 			string GetName() const
  			{
  				return m_strName;
  			}
  
! 			string GetTypeName() const
  			{
  				return m_strType;
--- 89,98 ----
  			}
  
! 			std::string GetName() const
  			{
  				return m_strName;
  			}
  
! 			std::string GetTypeName() const
  			{
  				return m_strType;

Index: OCLGMECMFacade.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLGMECMFacade.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** OCLGMECMFacade.cpp	14 Jun 2004 20:28:23 -0000	1.27
--- OCLGMECMFacade.cpp	13 Oct 2004 15:17:54 -0000	1.28
***************
*** 13,16 ****
--- 13,17 ----
  #include "OCLObjectExBasic.h"
  #include "OCLObjectExGME.h"
+ #include <algorithm>
  
  namespace OclGmeCM
***************
*** 84,89 ****
  				context.AddVariable( "self", GetThis() );
  				OclCommon::FormalParameterVector vecParameters = m_spFunction->GetFormalParameters();
! 				for ( int i = 0 ; i < vecParameters.size() ; i++ )
! 					context.AddVariable( vecParameters[ i ].GetName(), ( i >= GetArgumentCount() ) ? OclMeta::Object::UNDEFINED : GetArgument( i ) );
  				SetResult( m_spFunction->Evaluate( context ) );
  			}
--- 85,90 ----
  				context.AddVariable( "self", GetThis() );
  				OclCommon::FormalParameterVector vecParameters = m_spFunction->GetFormalParameters();
! 				for ( unsigned int i = 0 ; i < vecParameters.size() ; i++ )
! 					context.AddVariable( vecParameters[ i ].GetName(), ( (int) i >= GetArgumentCount() ) ? OclMeta::Object::UNDEFINED : GetArgument( i ) );
  				SetResult( m_spFunction->Evaluate( context ) );
  			}
***************
*** 99,103 ****
  			{
  				OclGme::ConstraintFunctionVector vecFunctions = m_pFacade->m_vecMetaConstraintFunctions;
! 				for ( int i = 0 ; i < vecFunctions.size() ; i++ ) {
  					if ( vecFunctions[ i ]->IsValid() && m_pFacade->GetTreeManager()->GetTypeManager()->IsTypeA( signature.GetTypeName(), vecFunctions[ i ]->GetContextType() ) >= 0 )
  						if ( vecFunctions[ i ]->GetName() == signature.GetName() && vecFunctions[ i ]->GetStereotype() == Ocl::Constraint::CS_ATTRIBUTEDEF )
--- 100,104 ----
  			{
  				OclGme::ConstraintFunctionVector vecFunctions = m_pFacade->m_vecMetaConstraintFunctions;
! 				for ( unsigned int i = 0 ; i < vecFunctions.size() ; i++ ) {
  					if ( vecFunctions[ i ]->IsValid() && m_pFacade->GetTreeManager()->GetTypeManager()->IsTypeA( signature.GetTypeName(), vecFunctions[ i ]->GetContextType() ) >= 0 )
  						if ( vecFunctions[ i ]->GetName() == signature.GetName() && vecFunctions[ i ]->GetStereotype() == Ocl::Constraint::CS_ATTRIBUTEDEF )
***************
*** 115,121 ****
  			{
  				OclGme::ConstraintFunctionVector vecFunctions = m_pFacade->m_vecMetaConstraintFunctions;
! 				for ( int i = 0 ; i < vecFunctions.size() ; i++ ) {
  					if ( vecFunctions[ i ]->IsValid() && m_pFacade->GetTreeManager()->GetTypeManager()->IsTypeA( signature.GetTypeName(), vecFunctions[ i ]->GetContextType() ) >= 0 )
! 						if ( vecFunctions[ i ]->GetName() == signature.GetName() && vecFunctions[ i ]->GetStereotype() == Ocl::Constraint::CS_METHODDEF && vecFunctions[ i ]->GetFormalParameters().size() == signature.GetParameterCount() )
  							vecFeatures.push_back( new OclMeta::Method( signature.GetName(), CreateFormalParameters( vecFunctions[ i ]->GetFormalParameters() ), CreateReturnType( vecFunctions[ i ]->GetReturnType() ), new ConstraintMethod( m_pFacade->GetProject(), vecFunctions[ i ] ), true, true ) );
  				}
--- 116,122 ----
  			{
  				OclGme::ConstraintFunctionVector vecFunctions = m_pFacade->m_vecMetaConstraintFunctions;
! 				for ( unsigned int i = 0 ; i < vecFunctions.size() ; i++ ) {
  					if ( vecFunctions[ i ]->IsValid() && m_pFacade->GetTreeManager()->GetTypeManager()->IsTypeA( signature.GetTypeName(), vecFunctions[ i ]->GetContextType() ) >= 0 )
! 						if ( vecFunctions[ i ]->GetName() == signature.GetName() && vecFunctions[ i ]->GetStereotype() == Ocl::Constraint::CS_METHODDEF && (int) vecFunctions[ i ]->GetFormalParameters().size() == signature.GetParameterCount() )
  							vecFeatures.push_back( new OclMeta::Method( signature.GetName(), CreateFormalParameters( vecFunctions[ i ]->GetFormalParameters() ), CreateReturnType( vecFunctions[ i ]->GetReturnType() ), new ConstraintMethod( m_pFacade->GetProject(), vecFunctions[ i ] ), true, true ) );
  				}
***************
*** 129,133 ****
  
  		private :
! 			TypeSeq CreateReturnType( const string& strType )
  			{
  				TypeSeq vecType;
--- 130,134 ----
  
  		private :
! 			TypeSeq CreateReturnType( const std::string& strType )
  			{
  				TypeSeq vecType;
***************
*** 139,143 ****
  			{
  				OclCommon::FormalParameterVector vecParams;
! 				for ( int j = 0 ; j < vecParamsIn.size() ; j++ ) {
  					TypeSeq vecType;
  					OclCommon::Convert( vecParamsIn[ j ].GetTypeName(), vecType );
--- 140,144 ----
  			{
  				OclCommon::FormalParameterVector vecParams;
! 				for ( unsigned int j = 0 ; j < vecParamsIn.size() ; j++ ) {
  					TypeSeq vecType;
  					OclCommon::Convert( vecParamsIn[ j ].GetTypeName(), vecType );
***************
*** 326,330 ****
  	}
  
! 	typedef vector< OclMeta::DependencySet > DependencySetVector;
  
  	void Facade::LoadConstraintFunctions( OclGme::ConstraintFunctionVector& vecFounds, OclGme::ConstraintFunctionVector& vecFaileds, OclGme::ConstraintFunctionVector& vecSucceededs )
--- 327,331 ----
  	}
  
! 	typedef std::vector< OclMeta::DependencySet > DependencySetVector;
  
  	void Facade::LoadConstraintFunctions( OclGme::ConstraintFunctionVector& vecFounds, OclGme::ConstraintFunctionVector& vecFaileds, OclGme::ConstraintFunctionVector& vecSucceededs )
***************
*** 332,336 ****
  		// Parse, ParseContext
  
! 		for ( int i = 0 ; i < vecFounds.size() ; i++ ) {
  			Ocl::Constraint::State eState = vecFounds[ i ]->Parse();
  			if ( eState == Ocl::Constraint::CS_PARSE_SUCCEEDED ) {
--- 333,337 ----
  		// Parse, ParseContext
  
! 		for ( unsigned int i = 0 ; i < vecFounds.size() ; i++ ) {
  			Ocl::Constraint::State eState = vecFounds[ i ]->Parse();
  			if ( eState == Ocl::Constraint::CS_PARSE_SUCCEEDED ) {
***************
*** 373,377 ****
  		StringVector vecErrors;
  		for ( i = 0 ; i < vecFaileds.size() ; i++ ) {
! 			string strSignature;
  			try {
  				strSignature = GetSignature( vecFaileds[ i ] );
--- 374,378 ----
  		StringVector vecErrors;
  		for ( i = 0 ; i < vecFaileds.size() ; i++ ) {
! 			std::string strSignature;
  			try {
  				strSignature = GetSignature( vecFaileds[ i ] );
***************
*** 384,393 ****
  
  		for ( i = 0 ; i < vecErrors.size() ; i++ ) {
! 			for ( int j = 0 ; j < vecDependencySets.size() ; j++ ) {
  				OclMeta::DependencySet::iterator it = OclMeta::Dependency::LookUp( vecDependencySets[ j ], vecErrors[ i ] );
  				if ( it != vecDependencySets[ j ].end() ) {
  					OclMeta::Dependency::SetChecked( vecDependencySets[ j ], it, true );
! 					string strSignature = GetSignature( vecSucceededs[ j ] );
! 					if ( find( vecErrors.begin(), vecErrors.end(), strSignature ) == vecErrors.end() )
  						vecErrors.push_back( strSignature );
  				}
--- 385,394 ----
  
  		for ( i = 0 ; i < vecErrors.size() ; i++ ) {
! 			for ( unsigned int j = 0 ; j < vecDependencySets.size() ; j++ ) {
  				OclMeta::DependencySet::iterator it = OclMeta::Dependency::LookUp( vecDependencySets[ j ], vecErrors[ i ] );
  				if ( it != vecDependencySets[ j ].end() ) {
  					OclMeta::Dependency::SetChecked( vecDependencySets[ j ], it, true );
! 					std::string strSignature = GetSignature( vecSucceededs[ j ] );
! 					if ( std::find( vecErrors.begin(), vecErrors.end(), strSignature ) == vecErrors.end() )
  						vecErrors.push_back( strSignature );
  				}
***************
*** 416,420 ****
  	}
  
! 	string Facade::GetSignature( OclGme::SpConstraintFunction spCF )
  	{
  		Ocl::Constraint::Stereotype eStereo = spCF->GetStereotype();
--- 417,421 ----
  	}
  
! 	std::string Facade::GetSignature( OclGme::SpConstraintFunction spCF )
  	{
  		Ocl::Constraint::Stereotype eStereo = spCF->GetStereotype();
***************
*** 426,430 ****
  			OclCommon::FormalParameterVector vecParameters = spCF->GetFormalParameters();
  			StringVector vecTypes;
! 			for ( int i = 0 ; i < vecParameters.size() ; i++ ) {
  				TypeSeq vecType;
  				OclCommon::Convert( vecParameters[ i ].GetTypeName(), vecType );
--- 427,431 ----
  			OclCommon::FormalParameterVector vecParameters = spCF->GetFormalParameters();
  			StringVector vecTypes;
! 			for ( unsigned int i = 0 ; i < vecParameters.size() ; i++ ) {
  				TypeSeq vecType;
  				OclCommon::Convert( vecParameters[ i ].GetTypeName(), vecType );
***************
*** 444,449 ****
  
  		OclGme::ConstraintVector vecFounds;
! 		for ( int i = 0 ; i < vecMetas.size() ; i ++ ) {
! 			string strName = "meta::" + OclCommonEx::GetObjectName( vecMetas[ i ].p );;
  			CComPtr<IMgaConstraints> spConstraints;
  			COMTHROW( vecMetas[ i ]->get_Constraints( &spConstraints ) );
--- 445,450 ----
  
  		OclGme::ConstraintVector vecFounds;
! 		for ( unsigned int i = 0 ; i < vecMetas.size() ; i ++ ) {
! 			std::string strName = "meta::" + OclCommonEx::GetObjectName( vecMetas[ i ].p );;
  			CComPtr<IMgaConstraints> spConstraints;
  			COMTHROW( vecMetas[ i ]->get_Constraints( &spConstraints ) );
***************
*** 472,476 ****
  		OclCommonEx::ObjectVector vecFolders;
  		OclCommonEx::GetKindFolders( spRootFolder, "", true, vecFolders );
! 		for ( int i = 0 ; i < vecFolders.size() ; i++ ) {
  			CComQIPtr<IMgaFolder> spFolder = vecFolders[ i ].p;
  			StringVector vecLibraryPath = OclCommonEx::GetLibraryPath( spFolder.p );
--- 473,477 ----
  		OclCommonEx::ObjectVector vecFolders;
  		OclCommonEx::GetKindFolders( spRootFolder, "", true, vecFolders );
! 		for ( unsigned int i = 0 ; i < vecFolders.size() ; i++ ) {
  			CComQIPtr<IMgaFolder> spFolder = vecFolders[ i ].p;
  			StringVector vecLibraryPath = OclCommonEx::GetLibraryPath( spFolder.p );
***************
*** 492,496 ****
  	void Facade::LoadConstraints( OclGme::ConstraintVector& vecFounds, OclGme::ConstraintVector& vecFaileds, OclGme::ConstraintVector& vecSucceededs )
  	{
! 		for ( int i = 0 ; i < vecFounds.size() ; i++ ) {
  			Ocl::Constraint::State eState = vecFounds[ i ]->Parse();
  			if ( eState == Ocl::Constraint::CS_PARSE_SUCCEEDED ) {
--- 493,497 ----
  	void Facade::LoadConstraints( OclGme::ConstraintVector& vecFounds, OclGme::ConstraintVector& vecFaileds, OclGme::ConstraintVector& vecSucceededs )
  	{
! 		for ( unsigned int i = 0 ; i < vecFounds.size() ; i++ ) {
  			Ocl::Constraint::State eState = vecFounds[ i ]->Parse();
  			if ( eState == Ocl::Constraint::CS_PARSE_SUCCEEDED ) {
***************
*** 515,523 ****
  	void Facade::GetObjectConstraints( CComPtr<IMgaObject> spObject, EvaluationRecordVector& vecInputs, unsigned long ulCurrentEventMask )
  	{
! 		string strKind = "meta::" + OclCommonEx::GetObjectKind( spObject );
  
  		// Collect Meta Constraints
  
! 		for ( int i = 0 ; i < m_vecMetaConstraints.size() ; i++ ) {
  			if ( m_vecMetaConstraints[ i ]->IsValid() ) {
  				CString sK = OclCommonEx::Convert( strKind );
--- 516,524 ----
  	void Facade::GetObjectConstraints( CComPtr<IMgaObject> spObject, EvaluationRecordVector& vecInputs, unsigned long ulCurrentEventMask )
  	{
! 		std::string strKind = "meta::" + OclCommonEx::GetObjectKind( spObject );
  
  		// Collect Meta Constraints
  
! 		for ( unsigned int i = 0 ; i < m_vecMetaConstraints.size() ; i++ ) {
  			if ( m_vecMetaConstraints[ i ]->IsValid() ) {
  				CString sK = OclCommonEx::Convert( strKind );
***************
*** 561,565 ****
  		vecInputs.clear();
  
! 		for ( int i = 0 ; i < vecInputs2.size() ; i++ ) {
  			bool bWasAdded = false;
  			for ( EvaluationRecordVector::iterator it = vecInputs.begin() ; it != vecInputs.end() ; it++ ) {
--- 562,566 ----
  		vecInputs.clear();
  
! 		for ( unsigned int i = 0 ; i < vecInputs2.size() ; i++ ) {
  			bool bWasAdded = false;
  			for ( EvaluationRecordVector::iterator it = vecInputs.begin() ; it != vecInputs.end() ; it++ ) {
***************
*** 581,591 ****
  	}
  
! 	bool Facade::getConstraintFunctionText(string &name, string &text)
  	{
  				text = "";
! 				for (int i = 0 ; i < m_vecUserConstraintFunctions.size() ; i++ ) 
  				{
  					bool valid = m_vecUserConstraintFunctions[ i ]->IsValid();
! 					string fname = m_vecUserConstraintFunctions[ i ]->GetName();// GetFullName();
  					if ( valid  &&  fname == name)
  					{
--- 582,592 ----
  	}
  
! 	bool Facade::getConstraintFunctionText(std::string &name, std::string &text)
  	{
  				text = "";
! 				for (unsigned int i = 0 ; i < m_vecUserConstraintFunctions.size() ; i++ ) 
  				{
  					bool valid = m_vecUserConstraintFunctions[ i ]->IsValid();
! 					std::string fname = m_vecUserConstraintFunctions[ i ]->GetName();// GetFullName();
  					if ( valid  &&  fname == name)
  					{
***************
*** 597,601 ****
  				{
  					bool valid = m_vecMetaConstraintFunctions[ i ]->IsValid();
! 					string fname = m_vecMetaConstraintFunctions[ i ]->GetName();// GetFullName();
  					if ( valid  &&  fname == name)
  					{
--- 598,602 ----
  				{
  					bool valid = m_vecMetaConstraintFunctions[ i ]->IsValid();
! 					std::string fname = m_vecMetaConstraintFunctions[ i ]->GetName();// GetFullName();
  					if ( valid  &&  fname == name)
  					{
***************
*** 613,617 ****
  		for (int k=0; k< vnum; k++)
  		{
! 			string name = rec.vecViolations[k].methodName;
  			if (!rec.vecViolations[k].methodName.empty())
  			{
--- 614,618 ----
  		for (int k=0; k< vnum; k++)
  		{
! 			std::string name = rec.vecViolations[k].methodName;
  			if (!rec.vecViolations[k].methodName.empty())
  			{
***************
*** 619,623 ****
  				if (it != rec.calledFunctions.end())
  					continue;
! 				string text;
  				if (getConstraintFunctionText(name, text))
  				{
--- 620,624 ----
  				if (it != rec.calledFunctions.end())
  					continue;
! 				std::string text;
  				if (getConstraintFunctionText(name, text))
  				{
***************
*** 625,629 ****
  					item.text = text;
  					item.serial = serial;
! 					pair<FuncDesc::iterator, bool> pp = rec.calledFunctions.insert(FuncDesc::value_type(name, item));
  					ASSERT(pp.second);
  					if (pp.second)
--- 626,630 ----
  					item.text = text;
  					item.serial = serial;
! 					std::pair<FuncDesc::iterator, bool> pp = rec.calledFunctions.insert(FuncDesc::value_type(name, item));
  					ASSERT(pp.second);
  					if (pp.second)
***************
*** 643,647 ****
  			if (!rec.vecViolations[i].methodName.empty())
  			{
! 				string name = rec.vecViolations[i].methodName;
  				FuncDesc::iterator it = rec.calledFunctions.find(name);
  				if (it != rec.calledFunctions.end())
--- 644,648 ----
  			if (!rec.vecViolations[i].methodName.empty())
  			{
! 				std::string name = rec.vecViolations[i].methodName;
  				FuncDesc::iterator it = rec.calledFunctions.find(name);
  				if (it != rec.calledFunctions.end())
***************
*** 790,794 ****
  			GetObjectConstraints( spParent, vecInnerInputs, ulCurrentEventMask );
  
! 			for ( int i = 0 ; i < vecInnerInputs.size() ; i++ ) {
  				switch( vecInnerInputs[ i ].spConstraint->GetDepth() ) {
  					case CONSTRAINT_DEPTH_ZERO :
--- 791,795 ----
  			GetObjectConstraints( spParent, vecInnerInputs, ulCurrentEventMask );
  
! 			for ( unsigned int i = 0 ; i < vecInnerInputs.size() ; i++ ) {
  				switch( vecInnerInputs[ i ].spConstraint->GetDepth() ) {
  					case CONSTRAINT_DEPTH_ZERO :
***************
*** 845,849 ****
  		AfxGetApp()->DoWaitCursor( 1 );
  		EvaluationRecordVector vecInputs;
! 		for ( int i = 0 ; i < vecObjects.size() ; i++ )
  			CollectConstraints( vecObjects[ i ].p, vecInputs );
  		AfxGetApp()->DoWaitCursor( -1 );
--- 846,850 ----
  		AfxGetApp()->DoWaitCursor( 1 );
  		EvaluationRecordVector vecInputs;
! 		for ( unsigned int i = 0 ; i < vecObjects.size() ; i++ )
  			CollectConstraints( vecObjects[ i ].p, vecInputs );
  		AfxGetApp()->DoWaitCursor( -1 );

Index: OCLGMECMFacade.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLGMECMFacade.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** OCLGMECMFacade.h	14 Jun 2004 20:28:23 -0000	1.12
--- OCLGMECMFacade.h	13 Oct 2004 15:17:54 -0000	1.13
***************
*** 16,24 ****
  	struct FuncItem
  	{
! 		string	text;
  		int		serial;
  	};
  
! 	typedef map<string, FuncItem> FuncDesc;
  
  	struct EvaluationRecord
--- 16,24 ----
  	struct FuncItem
  	{
! 		std::string	text;
  		int		serial;
  	};
  
! 	typedef std::map<std::string, FuncItem> FuncDesc;
  
  	struct EvaluationRecord
***************
*** 39,43 ****
  	};
  
! 	typedef vector< EvaluationRecord > EvaluationRecordVector;
  
  	class ConstraintDefinitionFactory;
--- 39,43 ----
  	};
  
! 	typedef std::vector< EvaluationRecord > EvaluationRecordVector;
  
  	class ConstraintDefinitionFactory;
***************
*** 99,106 ****
  		private :
  					void								updateLineno(EvaluationRecord &rec);
! 					bool								getConstraintFunctionText(string &name, string &text);
  					void								addFunctionTexts(EvaluationRecord &rec);
  					void 								LoadConstraintFunctions( OclGme::ConstraintFunctionVector& vecFounds, OclGme::ConstraintFunctionVector& vecFaileds, OclGme::ConstraintFunctionVector& vecSucceededs );
! 					string 								GetSignature( OclGme::SpConstraintFunction spCF );
  					void								LoadConstraints( OclGme::ConstraintVector& vecFounds, OclGme::ConstraintVector& vecFaileds, OclGme::ConstraintVector& vecSucceededs );
  
--- 99,106 ----
  		private :
  					void								updateLineno(EvaluationRecord &rec);
! 					bool								getConstraintFunctionText(std::string &name, std::string &text);
  					void								addFunctionTexts(EvaluationRecord &rec);
  					void 								LoadConstraintFunctions( OclGme::ConstraintFunctionVector& vecFounds, OclGme::ConstraintFunctionVector& vecFaileds, OclGme::ConstraintFunctionVector& vecSucceededs );
! 					std::string							GetSignature( OclGme::SpConstraintFunction spCF );
  					void								LoadConstraints( OclGme::ConstraintVector& vecFounds, OclGme::ConstraintVector& vecFaileds, OclGme::ConstraintVector& vecSucceededs );
  

Index: OCLGMEECFacade.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLGMEECFacade.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** OCLGMEECFacade.cpp	18 May 2004 13:30:58 -0000	1.11
--- OCLGMEECFacade.cpp	13 Oct 2004 15:17:54 -0000	1.12
***************
*** 37,41 ****
  		OclCommonEx::GetInheritances( spFCO, "Implementation", false, vecDeriveds );
  		OclCommonEx::GetInheritances( spFCO, "Interface", false, vecDeriveds );
! 		for ( int i = 0 ; i < vecDeriveds.size() ; i++ )
  			GetAllObjectsConsideredAsContext( vecDeriveds[ i ].p, vecFCOs, vecExamined );
  	}
--- 37,41 ----
  		OclCommonEx::GetInheritances( spFCO, "Implementation", false, vecDeriveds );
  		OclCommonEx::GetInheritances( spFCO, "Interface", false, vecDeriveds );
! 		for ( unsigned int i = 0 ; i < vecDeriveds.size() ; i++ )
  			GetAllObjectsConsideredAsContext( vecDeriveds[ i ].p, vecFCOs, vecExamined );
  	}
***************
*** 62,66 ****
  				OclGme::ConstraintFunctionVector vecFunctions;
  				GetConstraintFunctions( vecFunctions );
! 				for ( int i = 0 ; i < vecFunctions.size() ; i++ ) {
  					if ( m_pTreeManager->GetTypeManager()->IsTypeA( signature.GetTypeName(), vecFunctions[ i ]->GetContextType() ) >= 0 )
  						if ( 	vecFunctions[ i ]->GetName() == signature.GetName() && vecFunctions[ i ]->GetStereotype() == Ocl::Constraint::CS_ATTRIBUTEDEF )
--- 62,66 ----
  				OclGme::ConstraintFunctionVector vecFunctions;
  				GetConstraintFunctions( vecFunctions );
! 				for ( unsigned int i = 0 ; i < vecFunctions.size() ; i++ ) {
  					if ( m_pTreeManager->GetTypeManager()->IsTypeA( signature.GetTypeName(), vecFunctions[ i ]->GetContextType() ) >= 0 )
  						if ( 	vecFunctions[ i ]->GetName() == signature.GetName() && vecFunctions[ i ]->GetStereotype() == Ocl::Constraint::CS_ATTRIBUTEDEF )
***************
*** 73,82 ****
  				OclGme::ConstraintFunctionVector vecFunctions;
  				GetConstraintFunctions( vecFunctions );
! 				for ( int i = 0 ; i < vecFunctions.size() ; i++ ) {
  					if ( m_pTreeManager->GetTypeManager()->IsTypeA( signature.GetTypeName(), vecFunctions[ i ]->GetContextType() ) >= 0 ) {
  						OclCommon::FormalParameterVector vecParamsIn = vecFunctions[ i ]->GetFormalParameters();
! 						if ( vecFunctions[ i ]->GetName() == signature.GetName() && vecFunctions[ i ]->GetStereotype() == Ocl::Constraint::CS_METHODDEF && vecParamsIn.size() == signature.GetParameterCount() ) {
  							OclCommon::FormalParameterVector vecParams;
! 							for ( int j = 0 ; j < vecParamsIn.size() ; j++ ) {
  								TypeSeq vecType;
  								OclCommon::Convert( vecParamsIn[ j ].GetTypeName(), vecType );
--- 73,82 ----
  				OclGme::ConstraintFunctionVector vecFunctions;
  				GetConstraintFunctions( vecFunctions );
! 				for ( unsigned int i = 0 ; i < vecFunctions.size() ; i++ ) {
  					if ( m_pTreeManager->GetTypeManager()->IsTypeA( signature.GetTypeName(), vecFunctions[ i ]->GetContextType() ) >= 0 ) {
  						OclCommon::FormalParameterVector vecParamsIn = vecFunctions[ i ]->GetFormalParameters();
! 						if ( vecFunctions[ i ]->GetName() == signature.GetName() && vecFunctions[ i ]->GetStereotype() == Ocl::Constraint::CS_METHODDEF && (int) vecParamsIn.size() == signature.GetParameterCount() ) {
  							OclCommon::FormalParameterVector vecParams;
! 							for ( unsigned int j = 0 ; j < vecParamsIn.size() ; j++ ) {
  								TypeSeq vecType;
  								OclCommon::Convert( vecParamsIn[ j ].GetTypeName(), vecType );
***************
*** 111,115 ****
  			}
  
! 			TypeSeq CreateReturnType( const string& strType )
  			{
  				TypeSeq vecType;
--- 111,115 ----
  			}
  
! 			TypeSeq CreateReturnType( const std::string& strType )
  			{
  				TypeSeq vecType;
***************
*** 192,204 ****
  		FCOVector vecAssociated, vecFCOs, vecExamined;
  		OclCommonEx::GetAssociationEnds( spConstraint, "src", "HasConstraint", vecAssociated );
! 		for ( int i = 0 ; i < vecAssociated.size() ; i++ )
  			GetAllObjectsConsideredAsContext( vecAssociated[ i ].p, vecFCOs, vecExamined );
  
  		for ( i = 0 ; i < vecFCOs.size() ; i++ ) {
! 			string strType = OclCommonEx::GetObjectName( vecFCOs[ i ].p );
  			if ( strType.empty() ) {
  				char chNum[ 100 ];
  				sprintf( chNum, "%d", i );
! 				strType = "UntitledClass_" + string( chNum );
  			}
  			OclGme::SpConstraint pConstraint( new OclGme::Constraint( strType, spConstraint, bFieldsMandatory ) );
--- 192,204 ----
  		FCOVector vecAssociated, vecFCOs, vecExamined;
  		OclCommonEx::GetAssociationEnds( spConstraint, "src", "HasConstraint", vecAssociated );
! 		for ( unsigned int i = 0 ; i < vecAssociated.size() ; i++ )
  			GetAllObjectsConsideredAsContext( vecAssociated[ i ].p, vecFCOs, vecExamined );
  
  		for ( i = 0 ; i < vecFCOs.size() ; i++ ) {
! 			std::string strType = OclCommonEx::GetObjectName( vecFCOs[ i ].p );
  			if ( strType.empty() ) {
  				char chNum[ 100 ];
  				sprintf( chNum, "%d", i );
! 				strType = "UntitledClass_" + std::string( chNum );
  			}
  			OclGme::SpConstraint pConstraint( new OclGme::Constraint( strType, spConstraint, bFieldsMandatory ) );

Index: OCLGMEECFacade.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLGMEECFacade.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** OCLGMEECFacade.h	16 Dec 2002 20:42:00 -0000	1.4
--- OCLGMEECFacade.h	13 Oct 2004 15:17:54 -0000	1.5
***************
*** 14,18 ****
  {
  	typedef CComObjPtr<IMgaFCO> SPFCO;
! 	typedef vector<SPFCO> FCOVector;
  
  //##############################################################################################################################################
--- 14,18 ----
  {
  	typedef CComObjPtr<IMgaFCO> SPFCO;
! 	typedef std::vector<SPFCO> FCOVector;
  
  //##############################################################################################################################################

Index: OCLObject.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLObject.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** OCLObject.cpp	13 Sep 2004 14:14:53 -0000	1.7
--- OCLObject.cpp	13 Oct 2004 15:17:54 -0000	1.8
***************
*** 70,84 ****
  	}
  
! 	string Object::GetTypeName() const
  	{
  		return ( IsUndefined() ) ? UNDEFINED_TYPENAME : Ptr()->GetTypeName();
  	}
  
! 	string Object::GetStaticTypeName() const
  	{
  		return m_strStaticTypeName;
  	}
  
! 	void Object::SetStaticTypeName( const string& strStaticTypeName )
  	{
  		m_strStaticTypeName = strStaticTypeName;
--- 70,84 ----
  	}
  
! 	std::string Object::GetTypeName() const
  	{
  		return ( IsUndefined() ) ? UNDEFINED_TYPENAME : Ptr()->GetTypeName();
  	}
  
! 	std::string Object::GetStaticTypeName() const
  	{
  		return m_strStaticTypeName;
  	}
  
! 	void Object::SetStaticTypeName( const std::string& strStaticTypeName )
  	{
  		m_strStaticTypeName = strStaticTypeName;
***************
*** 114,118 ****
  	}
  
! 	string Object::Print() const
  	{
  		return ( IsUndefined() ) ? "undefined" : Ptr()->Print();
--- 114,118 ----
  	}
  
! 	std::string Object::Print() const
  	{
  		return ( IsUndefined() ) ? "undefined" : Ptr()->Print();

Index: OCLObject.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLObject.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** OCLObject.h	13 Sep 2004 14:14:53 -0000	1.4
--- OCLObject.h	13 Oct 2004 15:17:54 -0000	1.5
***************
*** 11,14 ****
--- 11,15 ----
  #include "OCLCommon.h"
  #include "OCLRefCount.h"
+ #include "unknwn.h"
  
  namespace OclMeta {
***************
*** 26,30 ****
  	class TypeManager;
  
! 	typedef vector< Object > ObjectVector;
  
  //##############################################################################################################################################
--- 27,31 ----
  	class TypeManager;
  
! 	typedef std::vector< Object > ObjectVector;
  
  //##############################################################################################################################################
***************
*** 45,49 ****
  
  		private :
! 			string m_strStaticTypeName;
  
  		public :
--- 46,50 ----
  
  		private :
! 			std::string m_strStaticTypeName;
  
  		public :
***************
*** 58,69 ****
  			bool 							operator!=( const Object& object ) const;
  
! 			string 							GetTypeName() const;
! 			string 							GetStaticTypeName() const;
! 			void 							SetStaticTypeName( const string& strStaticTypeName );
  			bool 							IsCompound() const;
  			bool							IsComparable() const;
  			bool 							IsUndefined() const;
  			OclImplementation::Object* 	GetImplementation() const;
! 			string							Print() const;
  			virtual IUnknown*				GetObject() const;
  	};
--- 59,70 ----
  			bool 							operator!=( const Object& object ) const;
  
! 			std::string						GetTypeName() const;
! 			std::string 					GetStaticTypeName() const;
! 			void 							SetStaticTypeName( const std::string& strStaticTypeName );
  			bool 							IsCompound() const;
  			bool							IsComparable() const;
  			bool 							IsUndefined() const;
  			OclImplementation::Object* 	GetImplementation() const;
! 			std::string						Print() const;
  			virtual IUnknown*				GetObject() const;
  	};
***************
*** 88,96 ****
  	{
  		protected :
! 			string m_strTypeName;
  			OclMeta::TypeManager*	m_pTypeManager;
  
  		protected :
! 			Object( OclMeta::TypeManager* pManager, const string& strTypeName )
  				: OclCommon::ReferenceCountable<Object>(), m_pTypeManager( pManager ), m_strTypeName( strTypeName )
  			{
--- 89,97 ----
  	{
  		protected :
! 			std::string m_strTypeName;
  			OclMeta::TypeManager*	m_pTypeManager;
  
  		protected :
! 			Object( OclMeta::TypeManager* pManager, const std::string& strTypeName )
  				: OclCommon::ReferenceCountable<Object>(), m_pTypeManager( pManager ), m_strTypeName( strTypeName )
  			{
***************
*** 102,106 ****
  			}
  
! 			string GetTypeName() const
  			{
  				return m_strTypeName;
--- 103,107 ----
  			}
  
! 			std::string GetTypeName() const
  			{
  				return m_strTypeName;
***************
*** 135,139 ****
  			}
  
! 			virtual string Print() const = 0;
  			virtual IUnknown* GetObject() const {return NULL;};
  
--- 136,140 ----
  			}
  
! 			virtual std::string Print() const = 0;
  			virtual IUnknown* GetObject() const {return NULL;};
  
***************
*** 158,162 ****
  	{
  		protected :
! 			CompoundObject( OclMeta::TypeManager* pManager, const string& strTypeName )
  				: Object( pManager, strTypeName )
  			{
--- 159,163 ----
  	{
  		protected :
! 			CompoundObject( OclMeta::TypeManager* pManager, const std::string& strTypeName )
  				: Object( pManager, strTypeName )
  			{

Index: OCLObjectExBasic.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLObjectExBasic.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** OCLObjectExBasic.cpp	13 Sep 2004 14:14:53 -0000	1.7
--- OCLObjectExBasic.cpp	13 Oct 2004 15:17:54 -0000	1.8
***************
*** 8,12 ****
  #include "OCLObjectExBasic.h"
  #include "OCLType.h"
! #include "algorithm"
  
  namespace OclBasic
--- 8,12 ----
  #include "OCLObjectExBasic.h"
  #include "OCLType.h"
! #include <algorithm>
  
  namespace OclBasic
***************
*** 19,29 ****
  //##############################################################################################################################################
  
! 	string PrintCollection( const string& strTypeName, const OclMeta::ObjectVector& vecElements )
  	{
  		char chBuffer[ 100 ];
  		sprintf( chBuffer, "%d", vecElements.size() );
! 		return strTypeName + " { size: " + string( chBuffer ) + "; } ";
  		/*
! 		string strObject = strTypeName + " { " + string( chBuffer ) + " , [ ";
  		for ( int i = 0 ; i < vecElements.size() ; i++ ) {
  			strObject = vecElements[ i ].Print();
--- 19,29 ----
  //##############################################################################################################################################
  
! 	std::string PrintCollection( const std::string& strTypeName, const OclMeta::ObjectVector& vecElements )
  	{
  		char chBuffer[ 100 ];
  		sprintf( chBuffer, "%d", vecElements.size() );
! 		return strTypeName + " { size: " + std::string( chBuffer ) + "; } ";
  		/*
! 		std::string strObject = strTypeName + " { " + std::string( chBuffer ) + " , [ ";
  		for ( int i = 0 ; i < vecElements.size() ; i++ ) {
  			strObject = vecElements[ i ].Print();
***************
*** 39,47 ****
  	{
  		int i = 0;
! 		OclMeta::ObjectVector::iterator j = find( vecObjects.begin(), vecObjects.end(), object );
  		while ( j != vecObjects.end() ) {
  			i++;
  			vecObjects.erase( j );
! 			j = find( vecObjects.begin(), vecObjects.end(), object );
  		}
  		return i;
--- 39,47 ----
  	{
  		int i = 0;
! 		OclMeta::ObjectVector::iterator j = std::find( vecObjects.begin(), vecObjects.end(), object );
  		while ( j != vecObjects.end() ) {
  			i++;
  			vecObjects.erase( j );
! 			j = std::find( vecObjects.begin(), vecObjects.end(), object );
  		}
  		return i;
***************
*** 54,58 ****
  //##############################################################################################################################################
  
! 	String::String( OclMeta::TypeManager* pManager, const string& strTypeName, const string& value )
  		: Any( pManager, strTypeName ), m_Value( value )
  	{
--- 54,58 ----
  //##############################################################################################################################################
  
! 	String::String( OclMeta::TypeManager* pManager, const std::string& strTypeName, const std::string& value )
  		: Any( pManager, strTypeName ), m_Value( value )
  	{
***************
*** 60,74 ****
  
  
! 	String::String( OclMeta::TypeManager* pManager, const string& value )
  		: Any( pManager, "ocl::String" ), m_Value( value )
  	{
  	}
  
! 	void String::GetValue( string& value ) const
  	{
  		value = m_Value;
  	}
  
! 	void String::SetValue( const string& value )
  	{
  		m_Value = value;
--- 60,74 ----
  
  
! 	String::String( OclMeta::TypeManager* pManager, const std::string& value )
  		: Any( pManager, "ocl::String" ), m_Value( value )
  	{
  	}
  
! 	void String::GetValue( std::string& value ) const
  	{
  		value = m_Value;
  	}
  
! 	void String::SetValue( const std::string& value )
  	{
  		m_Value = value;
***************
*** 98,102 ****
  	}
  
! 	string String::Print() const
  	{
  		return "ocl::String { \"" + m_Value + "\" }";
--- 98,102 ----
  	}
  
! 	std::string String::Print() const
  	{
  		return "ocl::String { \"" + m_Value + "\" }";
***************
*** 109,128 ****
  //##############################################################################################################################################
  
! 	Enumeration::Enumeration( OclMeta::TypeManager* pManager, const string& strTypeName, const string& value )
  		: Any( pManager, strTypeName ), m_Value( value )
  	{
  	}
  
! 	Enumeration::Enumeration( OclMeta::TypeManager* pManager, const string& value )
  		: Any( pManager, "ocl::Enumeration" ), m_Value( value )
  	{
  	}
  
! 	void Enumeration::GetValue( string& value ) const
  	{
  		value = m_Value;
  	}
  
! 	void Enumeration::SetValue( const string& value )
  	{
  		m_Value = value;
--- 109,128 ----
  //##############################################################################################################################################
  
! 	Enumeration::Enumeration( OclMeta::TypeManager* pManager, const std::string& strTypeName, const std::string& value )
  		: Any( pManager, strTypeName ), m_Value( value )
  	{
  	}
  
! 	Enumeration::Enumeration( OclMeta::TypeManager* pManager, const std::string& value )
  		: Any( pManager, "ocl::Enumeration" ), m_Value( value )
  	{
  	}
  
! 	void Enumeration::GetValue( std::string& value ) const
  	{
  		value = m_Value;
  	}
  
! 	void Enumeration::SetValue( const std::string& value )
  	{
  		m_Value = value;
***************
*** 152,156 ****
  	}
  
! 	string Enumeration::Print() const
  	{
  		return "ocl::Enumeration { #" + m_Value + " }";
--- 152,156 ----
  	}
  
! 	std::string Enumeration::Print() const
  	{
  		return "ocl::Enumeration { #" + m_Value + " }";
***************
*** 163,167 ****
  //##############################################################################################################################################
  
! 	Boolean::Boolean( OclMeta::TypeManager* pManager, const string& strTypeName, bool value )
  		: Any( pManager, strTypeName ), m_Value( value )
  	{
--- 163,167 ----
  //##############################################################################################################################################
  
! 	Boolean::Boolean( OclMeta::TypeManager* pManager, const std::string& strTypeName, bool value )
  		: Any( pManager, strTypeName ), m_Value( value )
  	{
***************
*** 206,210 ****
  	}
  
! 	string Boolean::Print() const
  	{
  		return ( m_Value ) ? "ocl::Boolean { true }" : "ocl::Boolean { false }";
--- 206,210 ----
  	}
  
! 	std::string Boolean::Print() const
  	{
  		return ( m_Value ) ? "ocl::Boolean { true }" : "ocl::Boolean { false }";
***************
*** 217,221 ****
  //##############################################################################################################################################
  
! 	Real::Real( OclMeta::TypeManager* pManager, const string& strTypeName, double value )
  		: Any( pManager, strTypeName ), m_Value( value )
  	{
--- 217,221 ----
  //##############################################################################################################################################
  
! 	Real::Real( OclMeta::TypeManager* pManager, const std::string& strTypeName, double value )
  		: Any( pManager, strTypeName ), m_Value( value )
  	{
***************
*** 262,270 ****
  	}
  
! 	string Real::Print() const
  	{
  		char chBuffer[ 100 ];
  		sprintf( chBuffer, "%f", m_Value );
! 		return "ocl::Real { " + string( chBuffer ) + " }";
  	}
  
--- 262,270 ----
  	}
  
! 	std::string Real::Print() const
  	{
  		char chBuffer[ 100 ];
  		sprintf( chBuffer, "%f", m_Value );
! 		return "ocl::Real { " + std::string( chBuffer ) + " }";
  	}
  
***************
*** 275,279 ****
  //##############################################################################################################################################
  
! 	Integer::Integer( OclMeta::TypeManager* pManager, const string& strTypeName, long value )
  		: Real( pManager, strTypeName, (double) value )
  	{
--- 275,279 ----
  //##############################################################################################################################################
  
! 	Integer::Integer( OclMeta::TypeManager* pManager, const std::string& strTypeName, long value )
  		: Real( pManager, strTypeName, (double) value )
  	{
***************
*** 314,318 ****
  	}
  
! 	string Integer::Print() const
  	{
  		double lValue;
--- 314,318 ----
  	}
  
! 	std::string Integer::Print() const
  	{
  		double lValue;
***************
*** 320,324 ****
  		char chBuffer[ 100 ];
  		sprintf( chBuffer, "%d", (long) lValue );
! 		return "ocl::Integer { " + string( chBuffer ) + " }";
  	}
  
--- 320,324 ----
  		char chBuffer[ 100 ];
  		sprintf( chBuffer, "%d", (long) lValue );
! 		return "ocl::Integer { " + std::string( chBuffer ) + " }";
  	}
  
***************
*** 329,333 ****
  //##############################################################################################################################################
  
! 	Type::Type( OclMeta::TypeManager* pManager, const string& strTypeName, const string& value )
  		: Any( pManager, strTypeName ), m_Value( value )
  	{
--- 329,333 ----
  //##############################################################################################################################################
  
! 	Type::Type( OclMeta::TypeManager* pManager, const std::string& strTypeName, const std::string& value )
  		: Any( pManager, strTypeName ), m_Value( value )
  	{
***************
*** 335,349 ****
  
  
! 	Type::Type( OclMeta::TypeManager* pManager, const string& value )
  		: Any( pManager, "ocl::Type" ), m_Value( value )
  	{
  	}
  
! 	void Type::GetValue( string& value ) const
  	{
  		value = m_Value;
  	}
  
! 	void Type::SetValue( const string& value )
  	{
  		m_Value = value;
--- 335,349 ----
  
  
! 	Type::Type( OclMeta::TypeManager* pManager, const std::string& value )
  		: Any( pManager, "ocl::Type" ), m_Value( value )
  	{
  	}
  
! 	void Type::GetValue( std::string& value ) const
  	{
  		value = m_Value;
  	}
  
! 	void Type::SetValue( const std::string& value )
  	{
  		m_Value = value;
***************
*** 373,377 ****
  	}
  
! 	string Type::Print() const
  	{
  		return "ocl::Type { \"" + m_Value + "\" }";
--- 373,377 ----
  	}
  
! 	std::string Type::Print() const
  	{
  		return "ocl::Type { \"" + m_Value + "\" }";
***************
*** 422,434 ****
  //##############################################################################################################################################
  
! 	Set::Set( OclMeta::TypeManager* pManager, const string& strTypeName )
  		: Collection( pManager, strTypeName )
  	{
  	}
  
! 	Set::Set( OclMeta::TypeManager* pManager, const string& strTypeName, const OclMeta::ObjectVector& vecObjects )
  		: Collection( pManager, strTypeName )
  	{
! 		for ( int i = 0 ; i < vecObjects.size() ; i++ )
  			AddObject( vecObjects[ i ] );
  	}
--- 422,434 ----
  //##############################################################################################################################################
  
! 	Set::Set( OclMeta::TypeManager* pManager, const std::string& strTypeName )
  		: Collection( pManager, strTypeName )
  	{
  	}
  
! 	Set::Set( OclMeta::TypeManager* pManager, const std::string& strTypeName, const OclMeta::ObjectVector& vecObjects )
  		: Collection( pManager, strTypeName )
  	{
! 		for ( unsigned int i = 0 ; i < vecObjects.size() ; i++ )
  			AddObject( vecObjects[ i ] );
  	}
***************
*** 442,446 ****
  		: Collection( pManager, "ocl::Set" )
  	{
! 		for ( int i = 0 ; i < vecObjects.size() ; i++ )
  			AddObject( vecObjects[ i ] );
  	}
--- 442,446 ----
  		: Collection( pManager, "ocl::Set" )
  	{
! 		for ( unsigned int i = 0 ; i < vecObjects.size() ; i++ )
  			AddObject( vecObjects[ i ] );
  	}
***************
*** 458,462 ****
  	void Set::SetValue( const OclMeta::ObjectVector& value )
  	{
! 		for ( int i = 0 ; i < value.size() ; i++ )
  			AddObject( value[ i ] );
  	}
--- 458,462 ----
  	void Set::SetValue( const OclMeta::ObjectVector& value )
  	{
! 		for ( unsigned int i = 0 ; i < value.size() ; i++ )
  			AddObject( value[ i ] );
  	}
***************
*** 468,473 ****
  			if ( m_vecObjects.size() != vecObjects.size() )
  				return false;
! 			for ( int i = 0 ; i < m_vecObjects.size() ; i++ )
! 				if ( find( vecObjects.begin(), vecObjects.end(), m_vecObjects[ i ] ) == vecObjects.end() )
  					return false;
  			return true;
--- 468,473 ----
  			if ( m_vecObjects.size() != vecObjects.size() )
  				return false;
! 			for ( unsigned int i = 0 ; i < m_vecObjects.size() ; i++ )
! 				if ( std::find( vecObjects.begin(), vecObjects.end(), m_vecObjects[ i ] ) == vecObjects.end() )
  					return false;
  			return true;
***************
*** 489,493 ****
  	void Set::AddObject( const OclMeta::Object& object )
  	{
! 		OclMeta::ObjectVector::iterator i = find( m_vecObjects.begin(), m_vecObjects.end(), object );
  			if ( i == m_vecObjects.end() )
  				m_vecObjects.push_back( object );
--- 489,493 ----
  	void Set::AddObject( const OclMeta::Object& object )
  	{
! 		OclMeta::ObjectVector::iterator i = std::find( m_vecObjects.begin(), m_vecObjects.end(), object );
  			if ( i == m_vecObjects.end() )
  				m_vecObjects.push_back( object );
***************
*** 499,503 ****
  	}
  
! 	string Set::Print() const
  	{
  		return PrintCollection( GetTypeName(), m_vecObjects );
--- 499,503 ----
  	}
  
! 	std::string Set::Print() const
  	{
  		return PrintCollection( GetTypeName(), m_vecObjects );
***************
*** 510,519 ****
  //##############################################################################################################################################
  
! 	Bag::Bag( OclMeta::TypeManager* pManager, const string& strTypeName )
  		: Collection( pManager, strTypeName )
  	{
  	}
  
! 	Bag::Bag( OclMeta::TypeManager* pManager, const string& strTypeName, const OclMeta::ObjectVector& vecObjects )
  		: Collection( pManager, strTypeName )
  	{
--- 510,519 ----
  //##############################################################################################################################################
  
! 	Bag::Bag( OclMeta::TypeManager* pManager, const std::string& strTypeName )
  		: Collection( pManager, strTypeName )
  	{
  	}
  
! 	Bag::Bag( OclMeta::TypeManager* pManager, const std::string& strTypeName, const OclMeta::ObjectVector& vecObjects )
  		: Collection( pManager, strTypeName )
  	{
***************
*** 590,594 ****
  	}
  
! 	string Bag::Print() const
  	{
  		return PrintCollection( GetTypeName(), m_vecObjects );
--- 590,594 ----
  	}
  
! 	std::string Bag::Print() const
  	{
  		return PrintCollection( GetTypeName(), m_vecObjects );
***************
*** 601,610 ****
  //##############################################################################################################################################
  
! 	Sequence::Sequence( OclMeta::TypeManager* pManager, const string& strTypeName )
  		: Collection( pManager, strTypeName )
  	{
  	}
  
! 	Sequence::Sequence( OclMeta::TypeManager* pManager, const string& strTypeName, const OclMeta::ObjectVector& vecObjects )
  		: Collection( pManager, strTypeName )
  	{
--- 601,610 ----
  //##############################################################################################################################################
  
! 	Sequence::Sequence( OclMeta::TypeManager* pManager, const std::string& strTypeName )
  		: Collection( pManager, strTypeName )
  	{
  	}
  
! 	Sequence::Sequence( OclMeta::TypeManager* pManager, const std::string& strTypeName, const OclMeta::ObjectVector& vecObjects )
  		: Collection( pManager, strTypeName )
  	{
***************
*** 666,670 ****
  	}
  
! 	string Sequence::Print() const
  	{
  		return PrintCollection( GetTypeName(), m_vecObjects );
--- 666,670 ----
  	}
  
! 	std::string Sequence::Print() const
  	{
  		return PrintCollection( GetTypeName(), m_vecObjects );
***************
*** 677,681 ****
  //##############################################################################################################################################
  
! 	OrderedSet::OrderedSet( OclMeta::TypeManager* pManager, const string& strTypeName )
  		: Set( pManager, strTypeName )
  	{
--- 677,681 ----
  //##############################################################################################################################################
  
! 	OrderedSet::OrderedSet( OclMeta::TypeManager* pManager, const std::string& strTypeName )
  		: Set( pManager, strTypeName )
  	{
***************
*** 683,690 ****
  	}
  
! 	OrderedSet::OrderedSet( OclMeta::TypeManager* pManager, const string& strTypeName, const OclMeta::ObjectVector& vecObjects )
  		: Set( pManager, strTypeName )
  	{
! 		for ( int i = 0 ; i < vecObjects.size() ; i++ )
  				AddObject( vecObjects[ i ] );
  		m_pArgNode = NULL;
--- 683,690 ----
  	}
  
! 	OrderedSet::OrderedSet( OclMeta::TypeManager* pManager, const std::string& strTypeName, const OclMeta::ObjectVector& vecObjects )
  		: Set( pManager, strTypeName )
  	{
! 		for ( unsigned int i = 0 ; i < vecObjects.size() ; i++ )
  				AddObject( vecObjects[ i ] );
  		m_pArgNode = NULL;
***************
*** 700,704 ****
  		: Set( pManager, "ocl::OrderedSet" )
  	{
! 		for ( int i = 0 ; i < vecObjects.size() ; i++ )
  			AddObject( vecObjects[ i ] );
  		m_pArgNode = NULL;
--- 700,704 ----
  		: Set( pManager, "ocl::OrderedSet" )
  	{
! 		for ( unsigned int i = 0 ; i < vecObjects.size() ; i++ )
  			AddObject( vecObjects[ i ] );
  		m_pArgNode = NULL;
***************
*** 717,721 ****
  	void OrderedSet::SetValue( const OclMeta::ObjectVector& value )
  	{
! 		for ( int i = 0 ; i < value.size() ; i++ )
  			AddObject( value[ i ] );
  	}
--- 717,721 ----
  	void OrderedSet::SetValue( const OclMeta::ObjectVector& value )
  	{
! 		for ( unsigned int i = 0 ; i < value.size() ; i++ )
  			AddObject( value[ i ] );
  	}
***************
*** 727,731 ****
  			if ( m_vecObjects.size() != vecObjects.size() )
  				return false;
! 			for ( int i = 0 ; i < m_vecObjects.size() ; i++ )
  			{
  				if ( m_vecObjects[ i ] != vecObjects[ i ] )
--- 727,731 ----
  			if ( m_vecObjects.size() != vecObjects.size() )
  				return false;
! 			for ( unsigned int i = 0 ; i < m_vecObjects.size() ; i++ )
  			{
  				if ( m_vecObjects[ i ] != vecObjects[ i ] )
***************
*** 750,754 ****
  	void OrderedSet::AddObject( const OclMeta::Object& object )
  	{
! 		OclMeta::ObjectVector::iterator i = find( m_vecObjects.begin(), m_vecObjects.end(), object );
  			if ( i == m_vecObjects.end() )
  				m_vecObjects.push_back( object );
--- 750,754 ----
  	void OrderedSet::AddObject( const OclMeta::Object& object )
  	{
! 		OclMeta::ObjectVector::iterator i = std::find( m_vecObjects.begin(), m_vecObjects.end(), object );
  			if ( i == m_vecObjects.end() )
  				m_vecObjects.push_back( object );
***************
*** 760,764 ****
  	}
  
! 	string OrderedSet::Print() const
  	{
  		return PrintCollection( GetTypeName(), m_vecObjects );
--- 760,764 ----
  	}
  
! 	std::string OrderedSet::Print() const
  	{
  		return PrintCollection( GetTypeName(), m_vecObjects );

Index: OCLObjectExBasic.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLObjectExBasic.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** OCLObjectExBasic.h	13 Sep 2004 14:14:53 -0000	1.4
--- OCLObjectExBasic.h	13 Oct 2004 15:17:54 -0000	1.5
***************
*** 36,45 ****
  
  	#define DECL_STRING( varName, var2Name )			\
! 		string varName;										\
  		if ( ! var2Name.IsUndefined() )			\
  			( ( OclBasic::String* ) var2Name.GetImplementation() )->GetValue( varName )
  
  	#define DECL_ENUMERATION( varName, var2Name )			\
! 		string varName;											\
  		if ( ! var2Name.IsUndefined() )			\
  			( ( OclBasic::Enumeration* ) var2Name.GetImplementation() )->GetValue( varName )
--- 36,45 ----
  
  	#define DECL_STRING( varName, var2Name )			\
! 		std::string varName;										\
  		if ( ! var2Name.IsUndefined() )			\
  			( ( OclBasic::String* ) var2Name.GetImplementation() )->GetValue( varName )
  
  	#define DECL_ENUMERATION( varName, var2Name )			\
! 		std::string varName;											\
  		if ( ! var2Name.IsUndefined() )			\
  			( ( OclBasic::Enumeration* ) var2Name.GetImplementation() )->GetValue( varName )
***************
*** 56,60 ****
  
  	#define DECL_TYPE( varName, var2Name )			\
! 		string varName;										\
  		if ( ! var2Name.IsUndefined() )			\
  			( ( OclBasic::Type* ) var2Name.GetImplementation() )->GetValue( varName )
--- 56,60 ----
  
  	#define DECL_TYPE( varName, var2Name )			\
! 		std::string varName;										\
  		if ( ! var2Name.IsUndefined() )			\
  			( ( OclBasic::Type* ) var2Name.GetImplementation() )->GetValue( varName )
***************
*** 158,171 ****
  	{
  		private :
! 			string m_Value;
  
  		protected :
! 			String( OclMeta::TypeManager* pManager, const string& strTypeName, const string& value );
  		public :
! 			String( OclMeta::TypeManager* pManager, const string& value );
  			virtual Any* Clone() const;
  
! 			void GetValue( string& value ) const;
! 			void SetValue( const string& value );
  
  			virtual bool Equals( const Any& object ) const;
--- 158,171 ----
  	{
  		private :
! 			std::string m_Value;
  
  		protected :
! 			String( OclMeta::TypeManager* pManager, const std::string& strTypeName, const std::string& value );
  		public :
! 			String( OclMeta::TypeManager* pManager, const std::string& value );
  			virtual Any* Clone() const;
  
! 			void GetValue( std::string& value ) const;
! 			void SetValue( const std::string& value );
  
  			virtual bool Equals( const Any& object ) const;
***************
*** 173,177 ****
  			bool operator!=( const String& object ) const;
  
! 			virtual string Print() const;
  	};
  
--- 173,177 ----
  			bool operator!=( const String& object ) const;
  
! 			virtual std::string Print() const;
  	};
  
***************
*** 190,204 ****
  	{
  		private :
! 			string m_Value;
  
  
  		protected :
! 			Enumeration( OclMeta::TypeManager* pManager, const string& strTypeName, const string& value );
  		public :
! 			Enumeration( OclMeta::TypeManager* pManager, const string& value );
  			virtual Any* Clone() const;
  
! 			void GetValue( string& value ) const;
! 			void SetValue( const string& value );
  
  			virtual bool Equals( const Any& object ) const;
--- 190,204 ----
  	{
  		private :
! 			std::string m_Value;
  
  
  		protected :
! 			Enumeration( OclMeta::TypeManager* pManager, const std::string& strTypeName, const std::string& value );
  		public :
! 			Enumeration( OclMeta::TypeManager* pManager, const std::string& value );
  			virtual Any* Clone() const;
  
! 			void GetValue( std::string& value ) const;
! 			void SetValue( const std::string& value );
  
  			virtual bool Equals( const Any& object ) const;
***************
*** 206,210 ****
  			bool operator!=( const Enumeration& object ) const;
  
! 			virtual string Print() const;
  	};
  
--- 206,210 ----
  			bool operator!=( const Enumeration& object ) const;
  
! 			virtual std::string Print() const;
  	};
  
***************
*** 226,230 ****
  
  		protected :
! 			Boolean( OclMeta::TypeManager* pManager, const string& strTypeName, bool value );
  		public :
  			Boolean( OclMeta::TypeManager* pManager, bool value );
--- 226,230 ----
  
  		protected :
! 			Boolean( OclMeta::TypeManager* pManager, const std::string& strTypeName, bool value );
  		public :
  			Boolean( OclMeta::TypeManager* pManager, bool value );
***************
*** 238,242 ****
  			bool operator!=( const Boolean& object ) const;
  
! 			virtual string Print() const;
  	};
  
--- 238,242 ----
  			bool operator!=( const Boolean& object ) const;
  
! 			virtual std::string Print() const;
  	};
  
***************
*** 258,262 ****
  
  		protected :
! 			Real( OclMeta::TypeManager* pManager, const string& strTypeName, double value );
  		public :
  			Real( OclMeta::TypeManager* pManager, double value );
--- 258,262 ----
  
  		protected :
! 			Real( OclMeta::TypeManager* pManager, const std::string& strTypeName, double value );
  		public :
  			Real( OclMeta::TypeManager* pManager, double value );
***************
*** 270,274 ****
  			bool operator!=( const Real& object ) const;
  
! 			virtual string Print() const;
  	};
  
--- 270,274 ----
  			bool operator!=( const Real& object ) const;
  
! 			virtual std::string Print() const;
  	};
  
***************
*** 287,291 ****
  	{
  		protected :
! 			Integer( OclMeta::TypeManager* pManager, const string& strTypeName, long value );
  		public :
  			Integer( OclMeta::TypeManager* pManager, long value );
--- 287,291 ----
  	{
  		protected :
! 			Integer( OclMeta::TypeManager* pManager, const std::string& strTypeName, long value );
  		public :
  			Integer( OclMeta::TypeManager* pManager, long value );
***************
*** 298,302 ****
  			bool operator!=( const Integer& object ) const;
  
! 			virtual string Print() const;
  	};
  
--- 298,302 ----
  			bool operator!=( const Integer& object ) const;
  
! 			virtual std::string Print() const;
  	};
  
***************
*** 315,328 ****
  	{
  		private :
! 			string m_Value;
  
  		protected :
! 			Type( OclMeta::TypeManager* pManager, const string& strTypeName, const string& value );
  		public :
! 			Type( OclMeta::TypeManager* pManager, const string& value );
  			virtual Any* Clone() const;
  
! 			void GetValue( string& value ) const;
! 			void SetValue( const string& value );
  
  			virtual bool Equals( const Any& object ) const;
--- 315,328 ----
  	{
  		private :
! 			std::string m_Value;
  
  		protected :
! 			Type( OclMeta::TypeManager* pManager, const std::string& strTypeName, const std::string& value );
  		public :
! 			Type( OclMeta::TypeManager* pManager, const std::string& value );
  			virtual Any* Clone() const;
  
! 			void GetValue( std::string& value ) const;
! 			void SetValue( const std::string& value );
  
  			virtual bool Equals( const Any& object ) const;
***************
*** 330,334 ****
  			bool operator!=( const Type& object ) const;
  
! 			virtual string Print() const;
  	};
  
--- 330,334 ----
  			bool operator!=( const Type& object ) const;
  
! 			virtual std::string Print() const;
  	};
  
***************
*** 362,367 ****
  
  		protected :
! 			Set( OclMeta::TypeManager* pManager, const string& strTypeName );
! 			Set( OclMeta::TypeManager* pManager, const string& strTypeName, const OclMeta::ObjectVector& vecObjects );
  		public :
  			Set( OclMeta::TypeManager* pManager );
--- 362,367 ----
  
  		protected :
! 			Set( OclMeta::TypeManager* pManager, const std::string& strTypeName );
! 			Set( OclMeta::TypeManager* pManager, const std::string& strTypeName, const OclMeta::ObjectVector& vecObjects );
  		public :
  			Set( OclMeta::TypeManager* pManager );
***************
*** 379,383 ****
  			virtual OclImplementation::ObjectIterator* GetIterator();
  
! 			virtual string Print() const;
  	};
  
--- 379,383 ----
  			virtual OclImplementation::ObjectIterator* GetIterator();
  
! 			virtual std::string Print() const;
  	};
  
***************
*** 399,404 ****
  
  		protected :
! 			Bag( OclMeta::TypeManager* pManager, const string& strTypeName );
! 			Bag( OclMeta::TypeManager* pManager, const string& strTypeName, const OclMeta::ObjectVector& vecObjects );
  		public :
  			Bag( OclMeta::TypeManager* pManager );
--- 399,404 ----
  
  		protected :
! 			Bag( OclMeta::TypeManager* pManager, const std::string& strTypeName );
! 			Bag( OclMeta::TypeManager* pManager, const std::string& strTypeName, const OclMeta::ObjectVector& vecObjects );
  		public :
  			Bag( OclMeta::TypeManager* pManager );
***************
*** 416,420 ****
  			virtual OclImplementation::ObjectIterator* GetIterator();
  
! 			virtual string Print() const;
  	};
  
--- 416,420 ----
  			virtual OclImplementation::ObjectIterator* GetIterator();
  
! 			virtual std::string Print() const;
  	};
  
***************
*** 436,441 ****
  
  		protected :
! 			Sequence( OclMeta::TypeManager* pManager, const string& strTypeName );
! 			Sequence( OclMeta::TypeManager* pManager, const string& strTypeName, const OclMeta::ObjectVector& vecObjects );
  		public :
  			Sequence( OclMeta::TypeManager* pManager );
--- 436,441 ----
  
  		protected :
! 			Sequence( OclMeta::TypeManager* pManager, const std::string& strTypeName );
! 			Sequence( OclMeta::TypeManager* pManager, const std::string& strTypeName, const OclMeta::ObjectVector& vecObjects );
  		public :
  			Sequence( OclMeta::TypeManager* pManager );
***************
*** 453,457 ****
  			virtual OclImplementation::ObjectIterator* GetIterator();
  
! 			virtual string Print() const;
  	};
  
--- 453,457 ----
  			virtual OclImplementation::ObjectIterator* GetIterator();
  
! 			virtual std::string Print() const;
  	};
  
***************
*** 474,479 ****
  
  		protected :
! 			OrderedSet( OclMeta::TypeManager* pManager, const string& strTypeName );
! 			OrderedSet( OclMeta::TypeManager* pManager, const string& strTypeName, const OclMeta::ObjectVector& vecObjects );
  		public :
  			OrderedSet( OclMeta::TypeManager* pManager );
--- 474,479 ----
  
  		protected :
! 			OrderedSet( OclMeta::TypeManager* pManager, const std::string& strTypeName );
! 			OrderedSet( OclMeta::TypeManager* pManager, const std::string& strTypeName, const OclMeta::ObjectVector& vecObjects );
  		public :
  			OrderedSet( OclMeta::TypeManager* pManager );
***************
*** 494,498 ****
  			virtual OclImplementation::ObjectIterator* GetIterator();
  
! 			virtual string Print() const;
  	};
  
--- 494,498 ----
  			virtual OclImplementation::ObjectIterator* GetIterator();
  
! 			virtual std::string Print() const;
  	};
  

Index: OCLObjectExGME.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLObjectExGME.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** OCLObjectExGME.cpp	8 Oct 2004 18:16:18 -0000	1.9
--- OCLObjectExGME.cpp	13 Oct 2004 15:17:54 -0000	1.10
***************
*** 221,225 ****
  	}
  
! 	string Object::Print() const
  	{
  		return OclCommonEx::GetObjectDescription( m_Value );
--- 221,225 ----
  	}
  
! 	std::string Object::Print() const
  	{
  		return OclCommonEx::GetObjectDescription( m_Value );
***************
*** 280,284 ****
  	}
  
! 	string ConnectionPoint::Print() const
  	{
  		return OclCommonEx::GetConnectionPointDescription( m_Value );
--- 280,284 ----
  	}
  
! 	std::string ConnectionPoint::Print() const
  	{
  		return OclCommonEx::GetConnectionPointDescription( m_Value );
***************
*** 330,334 ****
  	}
  
! 	string Project::Print() const
  	{
  		CString strName;
--- 330,334 ----
  	}
  
! 	std::string Project::Print() const
  	{
  		CString strName;

Index: OCLParserStatic.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLParserStatic.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** OCLParserStatic.cpp	18 May 2004 13:30:58 -0000	1.5
--- OCLParserStatic.cpp	13 Oct 2004 15:17:54 -0000	1.6
***************
*** 190,196 ****
  }
  
! string PrintToken( int iToken, bool bQuote )
  {
! 	string strToken;
  	switch ( iToken ) {
  		case ARROWW					: strToken = "->"; break;
--- 190,196 ----
  }
  
! std::string PrintToken( int iToken, bool bQuote )
  {
! 	std::string strToken;
  	switch ( iToken ) {
  		case ARROWW					: strToken = "->"; break;
***************
*** 300,306 ****
  }
  
! string PrintTokens( const TokenSet& setTokens )
  {
! 	string strTokens( " " );
  	for ( TokenSet::iterator i = setTokens.begin() ; i != setTokens.end() ; i++ )
  		strTokens += PrintToken( *i, true ) + " ";
--- 300,306 ----
  }
  
! std::string PrintTokens( const TokenSet& setTokens )
  {
! 	std::string strTokens( " " );
  	for ( TokenSet::iterator i = setTokens.begin() ; i != setTokens.end() ; i++ )
  		strTokens += PrintToken( *i, true ) + " ";

Index: OCLParserStatic.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLParserStatic.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** OCLParserStatic.h	14 Nov 2002 18:11:00 -0000	1.5
--- OCLParserStatic.h	13 Oct 2004 15:17:54 -0000	1.6
***************
*** 9,15 ****
  
  #include "OCLTokens.h"
! #include "set"
  
! typedef set< int > TokenSet;
  
  extern TokenSet First_name;
--- 9,17 ----
  
  #include "OCLTokens.h"
! #include <set>
  
! using namespace std;
! 
! typedef std::set< int > TokenSet;
  
  extern TokenSet First_name;
***************
*** 96,101 ****
  TokenSet 	Union( const TokenSet& setTokens1, const TokenSet& setTokens2 );
  TokenSet 	Union( const TokenSet& setTokens, int iToken );
! string 		PrintToken( int iToken, bool bQuote );
! string 		PrintTokens( const TokenSet& setTokens );
  bool 		Contains( const TokenSet& setTokens1, const TokenSet& setTokens2 );
  bool 		Contains( const TokenSet& setTokens, int iToken );
--- 98,103 ----
  TokenSet 	Union( const TokenSet& setTokens1, const TokenSet& setTokens2 );
  TokenSet 	Union( const TokenSet& setTokens, int iToken );
! std::string 		PrintToken( int iToken, bool bQuote );
! std::string 		PrintTokens( const TokenSet& setTokens );
  bool 		Contains( const TokenSet& setTokens1, const TokenSet& setTokens2 );
  bool 		Contains( const TokenSet& setTokens, int iToken );

Index: OCLSignature.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLSignature.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** OCLSignature.cpp	18 May 2004 13:30:58 -0000	1.3
--- OCLSignature.cpp	13 Oct 2004 15:17:54 -0000	1.4
***************
*** 17,21 ****
  //##############################################################################################################################################
  
! 	Feature::Feature( const string& strName, FeatureKind eKind )
  		: m_strName( strName ), m_eKind( eKind )
  	{
--- 17,21 ----
  //##############################################################################################################################################
  
! 	Feature::Feature( const std::string& strName, FeatureKind eKind )
  		: m_strName( strName ), m_eKind( eKind )
  	{
***************
*** 26,30 ****
  	}
  
! 	string Feature::GetName() const
  	{
  		return m_strName;
--- 26,30 ----
  	}
  
! 	std::string Feature::GetName() const
  	{
  		return m_strName;
***************
*** 36,40 ****
  	}
  
! 	string Feature::Print() const
  	{
  		return m_strName;
--- 36,40 ----
  	}
  
! 	std::string Feature::Print() const
  	{
  		return m_strName;
***************
*** 84,90 ****
  	}
  
! 	string ParametralFeature::Print() const
  	{
! 		string strSignature = "( ";
  		for ( int i = 0 ; i < GetParameterCount() ; i++ ) {
  			OclCommon::FormalParameter parameter = GetParameter( i );
--- 84,90 ----
  	}
  
! 	std::string ParametralFeature::Print() const
  	{
! 		std::string strSignature = "( ";
  		for ( int i = 0 ; i < GetParameterCount() ; i++ ) {
  			OclCommon::FormalParameter parameter = GetParameter( i );
***************
*** 111,115 ****
  //##############################################################################################################################################
  
! 	TypeableFeature::TypeableFeature( const string& strTypeName )
  		: m_strTypeName( strTypeName )
  	{
--- 111,115 ----
  //##############################################################################################################################################
  
! 	TypeableFeature::TypeableFeature( const std::string& strTypeName )
  		: m_strTypeName( strTypeName )
  	{
***************
*** 125,134 ****
  	}
  
! 	string TypeableFeature::GetTypeName() const
  	{
  		return m_strTypeName;
  	}
  
! 	string TypeableFeature::Print() const
  	{
  		if ( m_strTypeName.empty() )
--- 125,134 ----
  	}
  
! 	std::string TypeableFeature::GetTypeName() const
  	{
  		return m_strTypeName;
  	}
  
! 	std::string TypeableFeature::Print() const
  	{
  		if ( m_strTypeName.empty() )
***************
*** 143,152 ****
  //##############################################################################################################################################
  
! 	Attribute::Attribute( const string& strName, const string& strTypeName )
  		: Feature( strName, Feature::FK_ATTRIBUTE ), TypeableFeature( strTypeName )
  	{
  	}
  
! 	Attribute::Attribute( const string& strName )
  		: Feature( strName, Feature::FK_ATTRIBUTE ), TypeableFeature()
  	{
--- 143,152 ----
  //##############################################################################################################################################
  
! 	Attribute::Attribute( const std::string& strName, const std::string& strTypeName )
  		: Feature( strName, Feature::FK_ATTRIBUTE ), TypeableFeature( strTypeName )
  	{
  	}
  
! 	Attribute::Attribute( const std::string& strName )
  		: Feature( strName, Feature::FK_ATTRIBUTE ), TypeableFeature()
  	{
***************
*** 157,161 ****
  	}
  
! 	string Attribute::Print() const
  	{
  		return TypeableFeature::Print() + Feature::Print();
--- 157,161 ----
  	}
  
! 	std::string Attribute::Print() const
  	{
  		return TypeableFeature::Print() + Feature::Print();
***************
*** 173,182 ****
  //##############################################################################################################################################
  
! 	Association::Association( const string& strName, const string& strTypeName, const string& strAcceptable )
  		: Feature( strName, Feature::FK_ASSOCIATION ), TypeableFeature( strTypeName ), m_strAcceptable( strAcceptable )
  	{
  	}
  
! 	Association::Association( const string& strName, const string& strAcceptable )
  		: Feature( strName, Feature::FK_ASSOCIATION ), TypeableFeature(), m_strAcceptable( strAcceptable )
  	{
--- 173,182 ----
  //##############################################################################################################################################
  
! 	Association::Association( const std::string& strName, const std::string& strTypeName, const std::string& strAcceptable )
  		: Feature( strName, Feature::FK_ASSOCIATION ), TypeableFeature( strTypeName ), m_strAcceptable( strAcceptable )
  	{
  	}
  
! 	Association::Association( const std::string& strName, const std::string& strAcceptable )
  		: Feature( strName, Feature::FK_ASSOCIATION ), TypeableFeature(), m_strAcceptable( strAcceptable )
  	{
***************
*** 187,191 ****
  	}
  
! 	string Association::Print() const
  	{
  		if ( m_strAcceptable.empty() )
--- 187,191 ----
  	}
  
! 	std::string Association::Print() const
  	{
  		if ( m_strAcceptable.empty() )
***************
*** 194,198 ****
  	}
  
! 	string Association::GetAcceptableTypeName() const
  	{
  		return m_strAcceptable;
--- 194,198 ----
  	}
  
! 	std::string Association::GetAcceptableTypeName() const
  	{
  		return m_strAcceptable;
***************
*** 210,219 ****
  //##############################################################################################################################################
  
! 	Iterator::Iterator( const string& strName, const string& strTypeName, const string& strParameterType )
  		: Feature( strName, Feature::FK_ITERATOR ), TypeableFeature( strTypeName ), ParametralFeature( OclCommon::FormalParameterVector( 1, OclCommon::FormalParameter( strParameterType, true ) ) )
  	{
  	}
  
! 	Iterator::Iterator( const string& strName, const string& strParameterType )
  		: Feature( strName, Feature::FK_ITERATOR ), TypeableFeature(), ParametralFeature( OclCommon::FormalParameterVector( 1, OclCommon::FormalParameter( strParameterType, true ) ) )
  	{
--- 210,219 ----
  //##############################################################################################################################################
  
! 	Iterator::Iterator( const std::string& strName, const std::string& strTypeName, const std::string& strParameterType )
  		: Feature( strName, Feature::FK_ITERATOR ), TypeableFeature( strTypeName ), ParametralFeature( OclCommon::FormalParameterVector( 1, OclCommon::FormalParameter( strParameterType, true ) ) )
  	{
  	}
  
! 	Iterator::Iterator( const std::string& strName, const std::string& strParameterType )
  		: Feature( strName, Feature::FK_ITERATOR ), TypeableFeature(), ParametralFeature( OclCommon::FormalParameterVector( 1, OclCommon::FormalParameter( strParameterType, true ) ) )
  	{
***************
*** 224,228 ****
  	}
  
! 	string Iterator::Print() const
  	{
  		return TypeableFeature::Print() + Feature::Print() +  "( ... | " + GetParameter( 0 ).GetTypeName() + " )";
--- 224,228 ----
  	}
  
! 	std::string Iterator::Print() const
  	{
  		return TypeableFeature::Print() + Feature::Print() +  "( ... | " + GetParameter( 0 ).GetTypeName() + " )";
***************
*** 240,252 ****
  //##############################################################################################################################################
  
! 	Method::Method( const string& strName, const string& strTypeName, const StringVector& vecTypes )
  		: Feature( strName, Feature::FK_METHOD ), TypeableFeature( strTypeName ), ParametralFeature( OclCommon::FormalParameterVector() )
  	{
  		OclCommon::FormalParameterVector& vecParameters = GetParameters();
! 		for ( int i = 0 ; i < vecTypes.size() ; i++ )
  			vecParameters.push_back( OclCommon::FormalParameter( vecTypes[ i ], true ) );
  	}
  
! 	Method::Method( const string& strName, const OclCommon::FormalParameterVector& vecParameters )
  		: Feature( strName, Feature::FK_METHOD ), TypeableFeature(), ParametralFeature( vecParameters )
  	{
--- 240,252 ----
  //##############################################################################################################################################
  
! 	Method::Method( const std::string& strName, const std::string& strTypeName, const StringVector& vecTypes )
  		: Feature( strName, Feature::FK_METHOD ), TypeableFeature( strTypeName ), ParametralFeature( OclCommon::FormalParameterVector() )
  	{
  		OclCommon::FormalParameterVector& vecParameters = GetParameters();
! 		for ( unsigned int i = 0 ; i < vecTypes.size() ; i++ )
  			vecParameters.push_back( OclCommon::FormalParameter( vecTypes[ i ], true ) );
  	}
  
! 	Method::Method( const std::string& strName, const OclCommon::FormalParameterVector& vecParameters )
  		: Feature( strName, Feature::FK_METHOD ), TypeableFeature(), ParametralFeature( vecParameters )
  	{
***************
*** 257,261 ****
  	}
  
! 	string Method::Print() const
  	{
  		return  TypeableFeature::Print() + Feature::Print() + ParametralFeature::Print();
--- 257,261 ----
  	}
  
! 	std::string Method::Print() const
  	{
  		return  TypeableFeature::Print() + Feature::Print() + ParametralFeature::Print();
***************
*** 277,286 ****
  //##############################################################################################################################################
  
! 	Operator::Operator( const string& strName, const string& strOperand1Type )
  		: Feature( strName, Feature::FK_OPERATOR ), ParametralFeature( OclCommon::FormalParameterVector( 1, OclCommon::FormalParameter( strOperand1Type, true ) ) )
  	{
  	}
  
! 	Operator::Operator( const string& strName, const string& strOperand1Type, const string& strOperand2Type )
  		: Feature( strName, Feature::FK_OPERATOR ), ParametralFeature( OclCommon::FormalParameterVector() )
  	{
--- 277,286 ----
  //##############################################################################################################################################
  
! 	Operator::Operator( const std::string& strName, const std::string& strOperand1Type )
  		: Feature( strName, Feature::FK_OPERATOR ), ParametralFeature( OclCommon::FormalParameterVector( 1, OclCommon::FormalParameter( strOperand1Type, true ) ) )
  	{
  	}
  
! 	Operator::Operator( const std::string& strName, const std::string& strOperand1Type, const std::string& strOperand2Type )
  		: Feature( strName, Feature::FK_OPERATOR ), ParametralFeature( OclCommon::FormalParameterVector() )
  	{
***************
*** 294,298 ****
  	}
  
! 	string Operator::Print() const
  	{
  		return "operator[ " + Feature::Print() + " ]" + ParametralFeature::Print();
--- 294,298 ----
  	}
  
! 	std::string Operator::Print() const
  	{
  		return "operator[ " + Feature::Print() + " ]" + ParametralFeature::Print();
***************
*** 310,322 ****
  //##############################################################################################################################################
  
! 	Function::Function( const string& strName, const StringVector& vecTypes )
  		: Feature( strName, Feature::FK_METHOD ), ParametralFeature( OclCommon::FormalParameterVector() )
  	{
  		OclCommon::FormalParameterVector& vecParameters = GetParameters();
! 		for ( int i = 0 ; i < vecTypes.size() ; i++ )
  			vecParameters.push_back( OclCommon::FormalParameter( vecTypes[ i ], true ) );
  	}
  
! 	Function::Function( const string& strName, const OclCommon::FormalParameterVector& vecParameters )
  		: Feature( strName, Feature::FK_METHOD ), ParametralFeature( vecParameters )
  	{
--- 310,322 ----
  //##############################################################################################################################################
  
! 	Function::Function( const std::string& strName, const StringVector& vecTypes )
  		: Feature( strName, Feature::FK_METHOD ), ParametralFeature( OclCommon::FormalParameterVector() )
  	{
  		OclCommon::FormalParameterVector& vecParameters = GetParameters();
! 		for ( unsigned int i = 0 ; i < vecTypes.size() ; i++ )
  			vecParameters.push_back( OclCommon::FormalParameter( vecTypes[ i ], true ) );
  	}
  
! 	Function::Function( const std::string& strName, const OclCommon::FormalParameterVector& vecParameters )
  		: Feature( strName, Feature::FK_METHOD ), ParametralFeature( vecParameters )
  	{
***************
*** 327,331 ****
  	}
  
! 	string Function::Print() const
  	{
  		return Feature::Print() + ParametralFeature::Print();
--- 327,331 ----
  	}
  
! 	std::string Function::Print() const
  	{
  		return Feature::Print() + ParametralFeature::Print();

Index: OCLSignature.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLSignature.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** OCLSignature.h	7 Oct 2002 16:01:00 -0000	1.2
--- OCLSignature.h	13 Oct 2004 15:17:54 -0000	1.3
***************
*** 41,55 ****
  
  		private :
! 			string 			m_strName;
  			FeatureKind 	m_eKind;
  
  		protected :
! 									Feature( const string& strName, FeatureKind eKind );
  		public :
  			virtual 					~Feature();
  
! 					string 			GetName() const;
  					FeatureKind 	GetKind() const;
! 			virtual 	string 			Print() const;
  		protected :
  					bool			IsIdentical( const Feature& object ) const;
--- 41,55 ----
  
  		private :
! 			std::string		m_strName;
  			FeatureKind 	m_eKind;
  
  		protected :
! 									Feature( const std::string& strName, FeatureKind eKind );
  		public :
  			virtual 					~Feature();
  
! 					std::string		GetName() const;
  					FeatureKind 	GetKind() const;
! 			virtual std::string		Print() const;
  		protected :
  					bool			IsIdentical( const Feature& object ) const;
***************
*** 81,85 ****
  		protected :
  					OclCommon::FormalParameterVector& 	GetParameters();
! 			virtual 	string 							Print() const;
  					bool 							IsIdentical( const ParametralFeature& object ) const;
  	};
--- 81,85 ----
  		protected :
  					OclCommon::FormalParameterVector& 	GetParameters();
! 			virtual std::string 					Print() const;
  					bool 							IsIdentical( const ParametralFeature& object ) const;
  	};
***************
*** 98,111 ****
  	{
  		private :
! 			string	m_strTypeName;
  
  		protected :
! 							TypeableFeature( const string& strTypeName );
  							TypeableFeature();
  		public :
  			virtual 			~TypeableFeature();
  
! 					string 	GetTypeName() const;
! 			virtual 	string 	Print() const;
  	};
  
--- 98,111 ----
  	{
  		private :
! 			std::string	m_strTypeName;
  
  		protected :
! 							TypeableFeature( const std::string& strTypeName );
  							TypeableFeature();
  		public :
  			virtual 			~TypeableFeature();
  
! 					std::string 	GetTypeName() const;
! 			virtual std::string 	Print() const;
  	};
  
***************
*** 125,136 ****
  	{
  		public :
! 							Attribute( const string& strName, const string& strTypeName );
  		protected :
! 							Attribute( const string& strName );
  		public :
  			virtual 			~Attribute();
  
! 			virtual 	string 	Print() const;
! 					bool	IsIdentical( const Attribute& object ) const;
  	};
  
--- 125,136 ----
  	{
  		public :
! 							Attribute( const std::string& strName, const std::string& strTypeName );
  		protected :
! 							Attribute( const std::string& strName );
  		public :
  			virtual 			~Attribute();
  
! 			virtual std::string 	Print() const;
! 					bool			IsIdentical( const Attribute& object ) const;
  	};
  
***************
*** 150,165 ****
  	{
  		private :
! 			string	m_strAcceptable;
  
  		public :
! 							Association( const string& strName, const string& strTypeName, const string& strAcceptable );
  		protected :
! 							Association( const string& strName, const string& strAcceptable );
  		public :
  			virtual 			~Association();
  
! 			virtual 	string 	Print() const;
! 					string 	GetAcceptableTypeName() const;
! 					bool	IsIdentical( const Association& object ) const;
  	};
  
--- 150,165 ----
  	{
  		private :
! 			std::string	m_strAcceptable;
  
  		public :
! 							Association( const std::string& strName, const std::string& strTypeName, const std::string& strAcceptable );
  		protected :
! 							Association( const std::string& strName, const std::string& strAcceptable );
  		public :
  			virtual 			~Association();
  
! 			virtual std::string 	Print() const;
! 					std::string 	GetAcceptableTypeName() const;
! 					bool			IsIdentical( const Association& object ) const;
  	};
  
***************
*** 180,191 ****
  	{
  		public :
! 							Iterator( const string& strName, const string& strTypeName, const string& strParameterType );
  		protected :
! 							Iterator( const string& strName, const string& strParameterType );
  		public :
  			virtual 			~Iterator();
  
! 			virtual 	string 	Print() const;
! 					bool	IsIdentical( const Iterator& object ) const;
  	};
  
--- 180,191 ----
  	{
  		public :
! 							Iterator( const std::string& strName, const std::string& strTypeName, const std::string& strParameterType );
  		protected :
! 							Iterator( const std::string& strName, const std::string& strParameterType );
  		public :
  			virtual 			~Iterator();
  
! 			virtual std::string 	Print() const;
! 					bool			IsIdentical( const Iterator& object ) const;
  	};
  
***************
*** 206,217 ****
  	{
  		public :
! 							Method( const string& strName, const string& strTypeName, const StringVector& vecTypes );
  		protected :
! 							Method( const string& strName, const OclCommon::FormalParameterVector& vecParameters );
  		public :
  			virtual 			~Method();
  
! 			virtual 	string 	Print() const;
! 					bool	IsIdentical( const Method& object ) const;
  	};
  
--- 206,217 ----
  	{
  		public :
! 							Method( const std::string& strName, const std::string& strTypeName, const StringVector& vecTypes );
  		protected :
! 							Method( const std::string& strName, const OclCommon::FormalParameterVector& vecParameters );
  		public :
  			virtual 			~Method();
  
! 			virtual std::string 	Print() const;
! 					bool			IsIdentical( const Method& object ) const;
  	};
  
***************
*** 230,240 ****
  	{
  		public :
! 							Operator( const string& strName, const string& strOperand1Type );
! 							Operator( const string& strName, const string& strOperand1Type, const string& strOperand2Type );
  		public :
  			virtual 			~Operator();
  
! 			virtual 	string 	Print() const;
! 					bool	IsIdentical( const Operator& object ) const;
  	};
  
--- 230,240 ----
  	{
  		public :
! 							Operator( const std::string& strName, const std::string& strOperand1Type );
! 							Operator( const std::string& strName, const std::string& strOperand1Type, const std::string& strOperand2Type );
  		public :
  			virtual 			~Operator();
  
! 			virtual std::string 	Print() const;
! 					bool			IsIdentical( const Operator& object ) const;
  	};
  
***************
*** 253,264 ****
  	{
  		public :
! 							Function( const string& strName, const StringVector& vecTypes );
  		protected :
! 							Function( const string& strName, const OclCommon::FormalParameterVector& vecParameters );
  		public :
  			virtual 			~Function();
  
! 			virtual 	string 	Print() const;
! 					bool	IsIdentical( const Function& object ) const;
  	};
  
--- 253,264 ----
  	{
  		public :
! 							Function( const std::string& strName, const StringVector& vecTypes );
  		protected :
! 							Function( const std::string& strName, const OclCommon::FormalParameterVector& vecParameters );
  		public :
  			virtual 			~Function();
  
! 			virtual std::string 	Print() const;
! 					bool			IsIdentical( const Function& object ) const;
  	};
  

Index: OCLTree.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLTree.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -C2 -d -r1.28 -r1.29
*** OCLTree.cpp	8 Oct 2004 18:16:18 -0000	1.28
--- OCLTree.cpp	13 Oct 2004 15:17:54 -0000	1.29
***************
*** 13,16 ****
--- 13,17 ----
  #include "OCLFeatureImplementation.h"
  #include "OCLParserStatic.h"
+ #include "OCLException.h"
  
  namespace OclTree
***************
*** 36,43 ****
  	#define EVALCATCH( iLinee, strSigg ) 										\
  		catch ( OclCommon::Exception ex ) {									\
! 			AddViolation( context, iLinee, strSigg, ex.GetMessage() );		\
  		}																		\
  		catch ( char* ex ) {													\
! 			AddViolation( context, iLinee, strSigg, string( ex ) + " " ); 		\
  		}																		\
  		catch ( ... ) {															\
--- 37,44 ----
  	#define EVALCATCH( iLinee, strSigg ) 										\
  		catch ( OclCommon::Exception ex ) {									\
! 			AddViolation( context, iLinee, strSigg, ex.GGetMessage() );		\
  		}																		\
  		catch ( char* ex ) {													\
! 			AddViolation( context, iLinee, strSigg, std::string( ex ) + " " ); 		\
  		}																		\
  		catch ( ... ) {															\
***************
*** 74,78 ****
  	}
  
! 	bool TreeNode::ParseTypeSeq( TypeContext& context, const Position& position, string& strType, TypeSeq& vecType ) const
  	{
  		TypeSeq vecSavedType = vecType;
--- 75,79 ----
  	}
  
! 	bool TreeNode::ParseTypeSeq( TypeContext& context, const Position& position, std::string& strType, TypeSeq& vecType ) const
  	{
  		TypeSeq vecSavedType = vecType;
***************
*** 83,87 ****
  		}
  		bool bValid = true;
! 		for ( int i = 0 ; i < vecType.size() ; i++ ) {
  			OclMeta::Type* pType = NULL;
  			try {
--- 84,88 ----
  		}
  		bool bValid = true;
! 		for ( unsigned int i = 0 ; i < vecType.size() ; i++ ) {
  			OclMeta::Type* pType = NULL;
  			try {
***************
*** 116,120 ****
  		OclMeta::TypeManager* pManager = m_pManager->GetTypeManager();
  		if ( ! pManager->IsTypeA( vecTypeFrom, vecTypeTo ) && ! pManager ->IsTypeA( vecTypeTo, vecTypeFrom ) ) {
! 			string strCType, strSType;
  			OclCommon::Convert( vecTypeFrom, strSType );
  			OclCommon::Convert( vecTypeTo, strCType );
--- 117,121 ----
  		OclMeta::TypeManager* pManager = m_pManager->GetTypeManager();
  		if ( ! pManager->IsTypeA( vecTypeFrom, vecTypeTo ) && ! pManager ->IsTypeA( vecTypeTo, vecTypeFrom ) ) {
! 			std::string strCType, strSType;
  			OclCommon::Convert( vecTypeFrom, strSType );
  			OclCommon::Convert( vecTypeTo, strCType );
***************
*** 129,136 ****
  		m_vecType.clear();
  
! 		for ( int i = 0 ; i < vecTypeReturn.size() - 1 ; i++ )
  			m_vecType.push_back( vecTypeReturn[ i ] );
  
! 		string strLastType = vecTypeReturn[ vecTypeReturn.size() - 1 ];
  
  		if ( strLastType == TYPE_AGGREGATED_OBJECT ) {
--- 130,137 ----
  		m_vecType.clear();
  
! 		for ( unsigned int i = 0 ; i < vecTypeReturn.size() - 1 ; i++ )
  			m_vecType.push_back( vecTypeReturn[ i ] );
  
! 		std::string strLastType = vecTypeReturn[ vecTypeReturn.size() - 1 ];
  
  		if ( strLastType == TYPE_AGGREGATED_OBJECT ) {
***************
*** 189,193 ****
  	}
  
! 	OclMeta::Feature* TreeNode::CheckAmbiguity( const vector<OclMeta::Type*>& vecTypes, const vector<OclSignature::Feature*>& vecSignatures, vector<int>& vecAmbiguities, int& iPrecedence, OclCommon::ExceptionPool& exAmbiguity )
  	{
  		OclCommon::Exception exception;
--- 190,194 ----
  	}
  
! 	OclMeta::Feature* TreeNode::CheckAmbiguity( const std::vector<OclMeta::Type*>& vecTypes, const std::vector<OclSignature::Feature*>& vecSignatures, std::vector<int>& vecAmbiguities, int& iPrecedence, OclCommon::ExceptionPool& exAmbiguity )
  	{
  		OclCommon::Exception exception;
***************
*** 273,277 ****
  	}
  
! 	void TreeNode::AddViolation( ObjectContext& context, int iLine, const string& strSignature, const string& strMessage )
  	{
  		if ( ! context.m_bEnableTracking )
--- 274,278 ----
  	}
  
! 	void TreeNode::AddViolation( ObjectContext& context, int iLine, const std::string& strSignature, const std::string& strMessage )
  	{
  		if ( ! context.m_bEnableTracking )
***************
*** 292,296 ****
  
  		ObjectContextStack::StateItemVector vecItems = context.oCtx.GetState();
! 		for ( int i = 0 ; i < vecItems.size() ; i++ ) {
  //			ObjectContextStack::StateItem itemx = vecItems[i];
  			string nam = vecItems[ i ].name;
--- 293,297 ----
  
  		ObjectContextStack::StateItemVector vecItems = context.oCtx.GetState();
! 		for ( unsigned int i = 0 ; i < vecItems.size() ; i++ ) {
  //			ObjectContextStack::StateItem itemx = vecItems[i];
  			string nam = vecItems[ i ].name;
***************
*** 324,328 ****
  	}
  
! 	OclMeta::Object TreeNode::CheckFalseResult( ObjectContext& context, OclMeta::Object spObject, int iLine, const string& strSignature )
  	{
  		if ( spObject.IsUndefined() )
--- 325,329 ----
  	}
  
! 	OclMeta::Object TreeNode::CheckFalseResult( ObjectContext& context, OclMeta::Object spObject, int iLine, const std::string& strSignature )
  	{
  		if ( spObject.IsUndefined() )
***************
*** 336,342 ****
  	}
  
! 	OclMeta::Object TreeNode::EvaluateCast( ObjectContext& context, OclMeta::Object spObject, int iLine, const string& strSignature, const string& strTypeName, bool bOnlyTest )
  	{
! 		string strTypeName2 = ( strTypeName.empty() ) ? m_vecType[ 0 ] : strTypeName;
  		if ( spObject.IsUndefined() )
  			return spObject;
--- 337,343 ----
  	}
  
! 	OclMeta::Object TreeNode::EvaluateCast( ObjectContext& context, OclMeta::Object spObject, int iLine, const std::string& strSignature, const std::string& strTypeName, bool bOnlyTest )
  	{
! 		std::string strTypeName2 = ( strTypeName.empty() ) ? m_vecType[ 0 ] : strTypeName;
  		if ( spObject.IsUndefined() )
  			return spObject;
***************
*** 379,383 ****
  	}
  
! 	string ObjectNode::Print( const string& strTabs ) const
  	{
  		return GetTreeManager()->m_pOAdaptor->Print( strTabs, (ObjectNode*)this );
--- 380,384 ----
  	}
  
! 	std::string ObjectNode::Print( const std::string& strTabs ) const
  	{
  		return GetTreeManager()->m_pOAdaptor->Print( strTabs, (ObjectNode*)this );
***************
*** 414,422 ****
  	{
  		if ( ! m_bTester && ! m_bSelfTester )
! 			for ( int i = 0; i < m_vecNodes.size() ; i++ )
  				delete m_vecNodes[ i ];
  	}
  
! 	string CollectionNode::Print( const string& strTabs ) const
  	{
  		return GetTreeManager()->m_pCAdaptor->Print( strTabs, (CollectionNode*)this );
--- 415,423 ----
  	{
  		if ( ! m_bTester && ! m_bSelfTester )
! 			for ( unsigned int i = 0; i < m_vecNodes.size() ; i++ )
  				delete m_vecNodes[ i ];
  	}
  
! 	std::string CollectionNode::Print( const std::string& strTabs ) const
  	{
  		return GetTreeManager()->m_pCAdaptor->Print( strTabs, (CollectionNode*)this );
***************
*** 456,462 ****
  	}
  
! 	string DeclarationNode::Print( const string& strTabs ) const
  	{
! 		string strOut = strTabs + "<Declaration name=\"" + m_strName + "\" type=\"" + m_strType + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<Variable>\r\n";
--- 457,463 ----
  	}
  
! 	std::string DeclarationNode::Print( const std::string& strTabs ) const
  	{
! 		std::string strOut = strTabs + "<Declaration name=\"" + m_strName + "\" type=\"" + m_strType + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<Variable>\r\n";
***************
*** 548,554 ****
  	}
  
! 	string TypeCastNode::Print( const string& strTabs ) const
  	{
! 		string strOut = strTabs + "<TypeCast type=\"" + m_strType + "\" dynamic=\"" + ( ( m_bIsDynamic ) ? "true" : "false" ) + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<This>\r\n";
--- 549,555 ----
  	}
  
! 	std::string TypeCastNode::Print( const std::string& strTabs ) const
  	{
! 		std::string strOut = strTabs + "<TypeCast type=\"" + m_strType + "\" dynamic=\"" + ( ( m_bIsDynamic ) ? "true" : "false" ) + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<This>\r\n";
***************
*** 631,637 ****
  	}
  
! 	string IfThenElseNode::Print( const string& strTabs ) const
  	{
! 		string strOut = strTabs + "<IfThenElse>\r\n";
  
  		strOut += strTabs + TABSTR + "<IfExpression>\r\n";
--- 632,638 ----
  	}
  
! 	std::string IfThenElseNode::Print( const std::string& strTabs ) const
  	{
! 		std::string strOut = strTabs + "<IfThenElse>\r\n";
  
  		strOut += strTabs + TABSTR + "<IfExpression>\r\n";
***************
*** 672,676 ****
  		if ( bThenElseValid ) {
  			if ( ! ( m_pThenNode->m_vecType[ 0 ] == m_pElseNode->m_vecType[ 0 ] ) ) {
! 				string strType1, strType2;
  				OclCommon::Convert( m_pThenNode->m_vecType, strType1 );
  				OclCommon::Convert( m_pElseNode->m_vecType, strType2 );
--- 673,677 ----
  		if ( bThenElseValid ) {
  			if ( ! ( m_pThenNode->m_vecType[ 0 ] == m_pElseNode->m_vecType[ 0 ] ) ) {
! 				std::string strType1, strType2;
  				OclCommon::Convert( m_pThenNode->m_vecType, strType1 );
  				OclCommon::Convert( m_pElseNode->m_vecType, strType2 );
***************
*** 720,726 ****
  	}
  
! 	string OperatorNode::Print( const string& strTabs ) const
  	{
! 		string strOut = strTabs + "<Operator name=\"" + m_strName + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<Operand1>\r\n";
--- 721,727 ----
  	}
  
! 	std::string OperatorNode::Print( const std::string& strTabs ) const
  	{
! 		std::string strOut = strTabs + "<Operator name=\"" + m_strName + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<Operand1>\r\n";
***************
*** 764,768 ****
  					m_strAssignVarName = pVariable->m_strName;
  					if ( ! GetTreeManager()->GetTypeManager()->IsTypeA( m_pOperandNode2->m_vecType, m_pOperandNode1->m_vecType ) ) {
! 						string strVarType, strValType;
  						OclCommon::Convert( m_pOperandNode1->m_vecType , strVarType );
  						OclCommon::Convert( m_pOperandNode2->m_vecType , strValType );
--- 765,769 ----
  					m_strAssignVarName = pVariable->m_strName;
  					if ( ! GetTreeManager()->GetTypeManager()->IsTypeA( m_pOperandNode2->m_vecType, m_pOperandNode1->m_vecType ) ) {
! 						std::string strVarType, strValType;
  						OclCommon::Convert( m_pOperandNode1->m_vecType , strVarType );
  						OclCommon::Convert( m_pOperandNode2->m_vecType , strValType );
***************
*** 1084,1094 ****
  	}
  
! 	string IteratorNode::Print( const string& strTabs ) const
  	{
! 		string strOut = strTabs + "<Iterator name=\"" + m_strName + "\">\r\n";
  
  		if ( m_vecDeclarators.size() > 0 ) {
  			strOut += strTabs + TABSTR + "<Declarators type=\"" + m_strDeclType + "\">\r\n" + strTabs + TABSTR + TABSTR;
! 			for ( int i = 0 ; i < m_vecDeclarators.size() ; i++ )
  				strOut += m_vecDeclarators[ i ] + " ";
  			strOut += "\r\n" + strTabs + TABSTR + "</Declarators>\r\n";
--- 1085,1095 ----
  	}
  
! 	std::string IteratorNode::Print( const std::string& strTabs ) const
  	{
! 		std::string strOut = strTabs + "<Iterator name=\"" + m_strName + "\">\r\n";
  
  		if ( m_vecDeclarators.size() > 0 ) {
  			strOut += strTabs + TABSTR + "<Declarators type=\"" + m_strDeclType + "\">\r\n" + strTabs + TABSTR + TABSTR;
! 			for ( unsigned int i = 0 ; i < m_vecDeclarators.size() ; i++ )
  				strOut += m_vecDeclarators[ i ] + " ";
  			strOut += "\r\n" + strTabs + TABSTR + "</Declarators>\r\n";
***************
*** 1208,1221 ****
  			char chBuffer[ 20 ];
  			sprintf( chBuffer, "!iter%d", context.m_vecImplicits.size() );
! 			m_vecDeclarators.push_back( string( chBuffer ) );
! 			context.m_vecImplicits.push_back( string( chBuffer ) );
  		}
  
  		// Check and Add Declarators
  
! 		vector< bool > vecDeclDone( m_vecDeclarators.size(), true );
  
  		if ( ! m_vecTypeDecl.empty() ) {
! 			for ( int i = 0 ; i < m_vecDeclarators.size() ; i++ ) {
  				vecDeclDone[ i ] = context.m_ctxTypes.AddVariable( m_vecDeclarators[ i ], m_vecTypeDecl, true );
  				if ( ! vecDeclDone[ i ] )
--- 1209,1222 ----
  			char chBuffer[ 20 ];
  			sprintf( chBuffer, "!iter%d", context.m_vecImplicits.size() );
! 			m_vecDeclarators.push_back( std::string( chBuffer ) );
! 			context.m_vecImplicits.push_back( std::string( chBuffer ) );
  		}
  
  		// Check and Add Declarators
  
! 		std::vector< bool > vecDeclDone( m_vecDeclarators.size(), true );
  
  		if ( ! m_vecTypeDecl.empty() ) {
! 			for ( unsigned int i = 0 ; i < m_vecDeclarators.size() ; i++ ) {
  				vecDeclDone[ i ] = context.m_ctxTypes.AddVariable( m_vecDeclarators[ i ], m_vecTypeDecl, true );
  				if ( ! vecDeclDone[ i ] )
***************
*** 1268,1272 ****
  
  		if ( ! m_vecTypeDecl.empty() ) {
! 			for ( int i = 0 ; i < m_vecDeclarators.size() ; i++ )
  				if ( vecDeclDone[ i ] )
  					context.m_ctxTypes.RemoveVariable( m_vecDeclarators[ i ] );
--- 1269,1273 ----
  
  		if ( ! m_vecTypeDecl.empty() ) {
! 			for ( unsigned int i = 0 ; i < m_vecDeclarators.size() ; i++ )
  				if ( vecDeclDone[ i ] )
  					context.m_ctxTypes.RemoveVariable( m_vecDeclarators[ i ] );
***************
*** 1342,1346 ****
  		OclSignature::Iterator signature( m_strName, m_pThisNode->m_vecType[ 0 ], m_pArgumentNode->m_vecType[ 0 ] );
  
! 		string strDecl = m_vecDeclarators[ iDeclNum ];
  		context.oCtx.AddVariable( strDecl, OclMeta::Object::UNDEFINED, true );
  
--- 1343,1347 ----
  		OclSignature::Iterator signature( m_strName, m_pThisNode->m_vecType[ 0 ], m_pArgumentNode->m_vecType[ 0 ] );
  
! 		std::string strDecl = m_vecDeclarators[ iDeclNum ];
  		context.oCtx.AddVariable( strDecl, OclMeta::Object::UNDEFINED, true );
  
***************
*** 1358,1362 ****
  			vecArguments[ iDeclNum ] = objectIter;
  
! 			if ( iDeclNum == m_vecDeclarators.size() - 1 ) {
  				EVALTRY {
  					OclMeta::Object spAccu = m_pArgumentNode->Evaluate( context ); // evaluate the argument
--- 1359,1363 ----
  			vecArguments[ iDeclNum ] = objectIter;
  
! 			if ( iDeclNum == (int)m_vecDeclarators.size() - 1 ) {
  				EVALTRY {
  					OclMeta::Object spAccu = m_pArgumentNode->Evaluate( context ); // evaluate the argument
***************
*** 1396,1400 ****
  		if ( ! m_bTester && ! m_bSelfTester ) {
  			delete m_pThisNode;
! 			for ( int i = 0 ; i < m_vecArguments.size() ; i++ )
  				delete m_vecArguments[ i ];
  		}
--- 1397,1401 ----
  		if ( ! m_bTester && ! m_bSelfTester ) {
  			delete m_pThisNode;
! 			for ( unsigned int i = 0 ; i < m_vecArguments.size() ; i++ )
  				delete m_vecArguments[ i ];
  		}
***************
*** 1405,1414 ****
  	}
  
! 	string MethodNode::Print( const string& strTabs ) const
  	{
  		if ( m_pIterator )
  			return m_pIterator->Print( strTabs );
  
! 		string strOut = strTabs + "<Method name=\"" + m_strName + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<This>\r\n";
--- 1406,1415 ----
  	}
  
! 	std::string MethodNode::Print( const std::string& strTabs ) const
  	{
  		if ( m_pIterator )
  			return m_pIterator->Print( strTabs );
  
! 		std::string strOut = strTabs + "<Method name=\"" + m_strName + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<This>\r\n";
***************
*** 1417,1426 ****
  
  		if ( ! m_vecArguments.empty() ) {
! 			for ( int i = 0 ; i < m_vecArguments.size() ; i++ ) {
  				char chNum[ 100 ];
  				sprintf( chNum, "%d", i );
! 				strOut += strTabs + TABSTR + "<Argument_" + string( chNum ) + ">\r\n";
  				strOut += m_vecArguments[ i ]->Print( strTabs + TABSTR + TABSTR );
! 				strOut += strTabs + TABSTR + "</Argument_" + string( chNum ) + ">\r\n";
  			}
  		}
--- 1418,1427 ----
  
  		if ( ! m_vecArguments.empty() ) {
! 			for ( unsigned int i = 0 ; i < m_vecArguments.size() ; i++ ) {
  				char chNum[ 100 ];
  				sprintf( chNum, "%d", i );
! 				strOut += strTabs + TABSTR + "<Argument_" + std::string( chNum ) + ">\r\n";
  				strOut += m_vecArguments[ i ]->Print( strTabs + TABSTR + TABSTR );
! 				strOut += strTabs + TABSTR + "</Argument_" + std::string( chNum ) + ">\r\n";
  			}
  		}
***************
*** 1475,1479 ****
  
  				bool bArgumentsValid = true;
! 				for ( int i = 0 ; i < m_vecArguments.size() ; i++ )
  					bArgumentsValid = m_vecArguments[ i ]->Check( context ) && bArgumentsValid;
  
--- 1476,1480 ----
  
  				bool bArgumentsValid = true;
! 				for ( unsigned int i = 0 ; i < m_vecArguments.size() ; i++ )
  					bArgumentsValid = m_vecArguments[ i ]->Check( context ) && bArgumentsValid;
  
***************
*** 1519,1524 ****
  				char chBuffer[ 20 ];
  				sprintf( chBuffer, "!iter%d", contextIterator.m_vecImplicits.size() );
! 				contextIterator.m_ctxTypes.AddVariable( string( chBuffer ), vecType, true );
! 				contextIterator.m_vecImplicits.push_back( string( chBuffer ) );
  
  				// Check the iterator
--- 1520,1525 ----
  				char chBuffer[ 20 ];
  				sprintf( chBuffer, "!iter%d", contextIterator.m_vecImplicits.size() );
! 				contextIterator.m_ctxTypes.AddVariable( std::string( chBuffer ), vecType, true );
! 				contextIterator.m_vecImplicits.push_back( std::string( chBuffer ) );
  
  				// Check the iterator
***************
*** 1528,1532 ****
  				// Remove the newly created implicit iterator
  
! 				contextIterator.m_ctxTypes.RemoveVariable( string( chBuffer ) );
  				StringVector::iterator it = contextIterator.m_vecImplicits.end();
  				contextIterator.m_vecImplicits.erase( it-- );
--- 1529,1533 ----
  				// Remove the newly created implicit iterator
  
! 				contextIterator.m_ctxTypes.RemoveVariable( std::string( chBuffer ) );
  				StringVector::iterator it = contextIterator.m_vecImplicits.end();
  				contextIterator.m_vecImplicits.erase( it-- );
***************
*** 1535,1545 ****
  
  			if ( bMethodValid ) {
! 				vector<OclMeta::Type*> vecTypes( 2, pType );
  
  				OclSignature::Method sigMethod( m_strName, pType->GetName(), StringVector( 1, vecTypeMethod[ 0 ] ) );
  				OclSignature::Iterator sigIterator( m_strName, pType->GetName(), vecTypeMethod[ 0 ] );
! 				vector<OclSignature::Feature*> vecSignatures( 2, &sigMethod ); vecSignatures[ 1 ] = &sigIterator;
  
! 				vector<int> vecCodes( 3, EX_METHOD_AMBIGUOUS ); vecCodes[ 1 ] = EX_ITERATOR_AMBIGUOUS; vecCodes[ 2 ] = EX_METHOD_ITERATOR_AMBIGUOUS;
  
  				OclCommon::ExceptionPool poolResult;
--- 1536,1546 ----
  
  			if ( bMethodValid ) {
! 				std::vector<OclMeta::Type*> vecTypes( 2, pType );
  
  				OclSignature::Method sigMethod( m_strName, pType->GetName(), StringVector( 1, vecTypeMethod[ 0 ] ) );
  				OclSignature::Iterator sigIterator( m_strName, pType->GetName(), vecTypeMethod[ 0 ] );
! 				std::vector<OclSignature::Feature*> vecSignatures( 2, &sigMethod ); vecSignatures[ 1 ] = &sigIterator;
  
! 				std::vector<int> vecCodes( 3, EX_METHOD_AMBIGUOUS ); vecCodes[ 1 ] = EX_ITERATOR_AMBIGUOUS; vecCodes[ 2 ] = EX_METHOD_ITERATOR_AMBIGUOUS;
  
  				OclCommon::ExceptionPool poolResult;
***************
*** 1586,1596 ****
  			}
  			if ( bIteratorValid ) {
! 				vector<OclMeta::Type*> vecTypes( 2, pType );
  
  				OclSignature::Iterator sigIterator( m_strName, pType->GetName(), vecTypeIterator[ 0 ] );
  				OclSignature::Method sigMethod( m_strName, pType->GetName(), StringVector( 1, vecTypeIterator[ 0 ] ) );
! 				vector<OclSignature::Feature*> vecSignatures( 2, &sigIterator ); vecSignatures[ 1 ] = &sigMethod;
  
! 				vector<int> vecCodes( 3, EX_ITERATOR_AMBIGUOUS ); vecCodes[ 1 ] = EX_METHOD_AMBIGUOUS; vecCodes[ 2 ] = EX_METHOD_ITERATOR_AMBIGUOUS;
  
  				OclCommon::ExceptionPool poolResult;
--- 1587,1597 ----
  			}
  			if ( bIteratorValid ) {
! 				std::vector<OclMeta::Type*> vecTypes( 2, pType );
  
  				OclSignature::Iterator sigIterator( m_strName, pType->GetName(), vecTypeIterator[ 0 ] );
  				OclSignature::Method sigMethod( m_strName, pType->GetName(), StringVector( 1, vecTypeIterator[ 0 ] ) );
! 				std::vector<OclSignature::Feature*> vecSignatures( 2, &sigIterator ); vecSignatures[ 1 ] = &sigMethod;
  
! 				std::vector<int> vecCodes( 3, EX_ITERATOR_AMBIGUOUS ); vecCodes[ 1 ] = EX_METHOD_AMBIGUOUS; vecCodes[ 2 ] = EX_METHOD_ITERATOR_AMBIGUOUS;
  
  				OclCommon::ExceptionPool poolResult;
***************
*** 1643,1649 ****
  	{
  		LevelCounter level(&m_stackLevel);
! 		string lastFuncName = "";
! 		static string currFuncName = "";
! 		string *szivas = &currFuncName;
  
  		if (m_stackLevel <= 1)
--- 1644,1650 ----
  	{
  		LevelCounter level(&m_stackLevel);
! 		std::string lastFuncName = "";
! 		static std::string currFuncName = "";
! 		std::string *szivas = &currFuncName;
  
  		if (m_stackLevel <= 1)
***************
*** 1656,1660 ****
  
  		StringVector vecTypes;
! 		for ( int i = 0 ; i < m_vecArguments.size() ; i++ )
  			vecTypes.push_back( m_vecArguments[ i ]->m_vecType[ 0 ] );
  		OclSignature::Method signature( m_strName, m_pThisNode->m_vecType[ 0 ], vecTypes );
--- 1657,1661 ----
  
  		StringVector vecTypes;
! 		for ( unsigned int i = 0 ; i < m_vecArguments.size() ; i++ )
  			vecTypes.push_back( m_vecArguments[ i ]->m_vecType[ 0 ] );
  		OclSignature::Method signature( m_strName, m_pThisNode->m_vecType[ 0 ], vecTypes );
***************
*** 1662,1666 ****
  		if (m_stackLevel >= MAX_CONSTR_FUNC_LEVEL)
  		{
! 			string message = "possibly infinite loop broken";
  			AddViolation(context, iLineFeatureName, signature.Print(), message);
  			return OclMeta::Object::UNDEFINED;
--- 1663,1667 ----
  		if (m_stackLevel >= MAX_CONSTR_FUNC_LEVEL)
  		{
! 			std::string message = "possibly infinite loop broken";
  			AddViolation(context, iLineFeatureName, signature.Print(), message);
  			return OclMeta::Object::UNDEFINED;
***************
*** 1738,1742 ****
  	{
  		if ( ! m_bTester && ! m_bSelfTester ) {
! 			for ( int i = 0 ; i < m_vecArguments.size() ; i++ )
  				delete m_vecArguments[ i ];
  		}
--- 1739,1743 ----
  	{
  		if ( ! m_bTester && ! m_bSelfTester ) {
! 			for ( unsigned int i = 0 ; i < m_vecArguments.size() ; i++ )
  				delete m_vecArguments[ i ];
  		}
***************
*** 1744,1761 ****
  	}
  
! 	string FunctionNode::Print( const string& strTabs ) const
  	{
  		if ( m_pMethod )
  			return m_pMethod->Print( strTabs );
  
! 		string strOut = strTabs + "<Function name=\"" + m_strName + "\">\r\n";
  
  		if ( ! m_vecArguments.empty() ) {
! 			for ( int i = 0 ; i < m_vecArguments.size() ; i++ ) {
  				char chNum[ 100 ];
  				sprintf( chNum, "%d", i );
! 				strOut += strTabs + TABSTR + "<Argument_" + string( chNum ) + ">\r\n";
  				strOut += m_vecArguments[ i ]->Print( strTabs + TABSTR + TABSTR );
! 				strOut += strTabs + TABSTR + "</Argument_" + string( chNum ) + ">\r\n";
  			}
  		}
--- 1745,1762 ----
  	}
  
! 	std::string FunctionNode::Print( const std::string& strTabs ) const
  	{
  		if ( m_pMethod )
  			return m_pMethod->Print( strTabs );
  
! 		std::string strOut = strTabs + "<Function name=\"" + m_strName + "\">\r\n";
  
  		if ( ! m_vecArguments.empty() ) {
! 			for ( unsigned int i = 0 ; i < m_vecArguments.size() ; i++ ) {
  				char chNum[ 100 ];
  				sprintf( chNum, "%d", i );
! 				strOut += strTabs + TABSTR + "<Argument_" + std::string( chNum ) + ">\r\n";
  				strOut += m_vecArguments[ i ]->Print( strTabs + TABSTR + TABSTR );
! 				strOut += strTabs + TABSTR + "</Argument_" + std::string( chNum ) + ">\r\n";
  			}
  		}
***************
*** 1784,1788 ****
  
  		bool bArgumentsValid = true;
! 		for ( int i = 0 ; i < m_vecArguments.size() ; i++ )
  			bArgumentsValid = m_vecArguments[ i ]->Check( contextFunction ) && bArgumentsValid;
  
--- 1785,1789 ----
  
  		bool bArgumentsValid = true;
! 		for ( unsigned int i = 0 ; i < m_vecArguments.size() ; i++ )
  			bArgumentsValid = m_vecArguments[ i ]->Check( contextFunction ) && bArgumentsValid;
  
***************
*** 1860,1864 ****
  		int iLineFeatureName = m_mapPositions[ LID_FEATURE_NAME ].iLine;
  		StringVector vecTypes;
! 		for ( int i = 0 ; i < m_vecArguments.size() ; i++ )
  			vecTypes.push_back( m_vecArguments[ i ]->m_vecType[ 0 ] );
  		OclSignature::Function signature( m_strName, vecTypes );
--- 1861,1865 ----
  		int iLineFeatureName = m_mapPositions[ LID_FEATURE_NAME ].iLine;
  		StringVector vecTypes;
! 		for ( unsigned int i = 0 ; i < m_vecArguments.size() ; i++ )
  			vecTypes.push_back( m_vecArguments[ i ]->m_vecType[ 0 ] );
  		OclSignature::Function signature( m_strName, vecTypes );
***************
*** 1909,1915 ****
  	}
  
! 	string AssociationNode::Print( const string& strTabs ) const
  	{
! 		string strOut = strTabs + "<Association name=\"" + m_strName + "\" class=\"" + m_strAcceptable + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<This>\r\n";
--- 1910,1916 ----
  	}
  
! 	std::string AssociationNode::Print( const std::string& strTabs ) const
  	{
! 		std::string strOut = strTabs + "<Association name=\"" + m_strName + "\" class=\"" + m_strAcceptable + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<This>\r\n";
***************
*** 2062,2066 ****
  	}
  
! 	string AttributeNode::Print( const string& strTabs ) const
  	{
  		if ( m_pAssociation )
--- 2063,2067 ----
  	}
  
! 	std::string AttributeNode::Print( const std::string& strTabs ) const
  	{
  		if ( m_pAssociation )
***************
*** 2069,2073 ****
  			return m_pCollector->Print( strTabs );
  
! 		string strOut = strTabs + "<Attribute name=\"" + m_strName + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<This>\r\n";
--- 2070,2074 ----
  			return m_pCollector->Print( strTabs );
  
! 		std::string strOut = strTabs + "<Attribute name=\"" + m_strName + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<This>\r\n";
***************
*** 2125,2135 ****
  				// Create Feature Call Check
  
! 				vector<OclMeta::Type*> vecTypes( 2, pType );
  
  				OclSignature::Attribute sigAttribute( m_strName, pType->GetName() );
  				OclSignature::Association sigAssociation( m_strName, pType->GetName(), "" );
! 				vector<OclSignature::Feature*> vecSignatures( 2, &sigAttribute ); vecSignatures[ 1 ] = &sigAssociation;
  
! 				vector<int> vecCodes( 3, EX_ATTRIBUTE_AMBIGUOUS ); vecCodes[ 1 ] = EX_ASSOCIATION_AMBIGUOUS; vecCodes[ 2 ] = EX_ATTRIBUTE_ASSOCIATION_AMBIGUOUS;
  
  				OclCommon::ExceptionPool poolResult;
--- 2126,2136 ----
  				// Create Feature Call Check
  
! 				std::vector<OclMeta::Type*> vecTypes( 2, pType );
  
  				OclSignature::Attribute sigAttribute( m_strName, pType->GetName() );
  				OclSignature::Association sigAssociation( m_strName, pType->GetName(), "" );
! 				std::vector<OclSignature::Feature*> vecSignatures( 2, &sigAttribute ); vecSignatures[ 1 ] = &sigAssociation;
  
! 				std::vector<int> vecCodes( 3, EX_ATTRIBUTE_AMBIGUOUS ); vecCodes[ 1 ] = EX_ASSOCIATION_AMBIGUOUS; vecCodes[ 2 ] = EX_ATTRIBUTE_ASSOCIATION_AMBIGUOUS;
  
  				OclCommon::ExceptionPool poolResult;
***************
*** 2174,2184 ****
  				OclMeta::Type* pTypeInner = GetTreeManager()->GetTypeManager()->GetType( m_pThisNode->m_vecType[ 1 ] );
  
! 				vector<OclMeta::Type*> vecTypes( 2, pType ); vecTypes[ 1 ] = pTypeInner;
  
  				OclSignature::Attribute sigAttribute( m_strName, pType->GetName() );
  				OclSignature::Attribute sigAttributeInner( m_strName, pTypeInner->GetName() );
! 				vector<OclSignature::Feature*> vecSignatures( 2, &sigAttribute ); vecSignatures[ 1 ] = &sigAttributeInner;
  
! 				vector<int> vecCodes( 3, EX_ATTRIBUTE_AMBIGUOUS ); vecCodes[ 2 ] = EX_ATTRIBUTE_INNERATTRIBUTE_AMBIGUOUS;
  
  				OclCommon::ExceptionPool poolResult;
--- 2175,2185 ----
  				OclMeta::Type* pTypeInner = GetTreeManager()->GetTypeManager()->GetType( m_pThisNode->m_vecType[ 1 ] );
  
! 				std::vector<OclMeta::Type*> vecTypes( 2, pType ); vecTypes[ 1 ] = pTypeInner;
  
  				OclSignature::Attribute sigAttribute( m_strName, pType->GetName() );
  				OclSignature::Attribute sigAttributeInner( m_strName, pTypeInner->GetName() );
! 				std::vector<OclSignature::Feature*> vecSignatures( 2, &sigAttribute ); vecSignatures[ 1 ] = &sigAttributeInner;
  
! 				std::vector<int> vecCodes( 3, EX_ATTRIBUTE_AMBIGUOUS ); vecCodes[ 2 ] = EX_ATTRIBUTE_INNERATTRIBUTE_AMBIGUOUS;
  
  				OclCommon::ExceptionPool poolResult;
***************
*** 2203,2213 ****
  							context.m_setDependencies.insert( OclMeta::Dependency( sigAttributeInner.Print(), m_mapPositions[ LID_FEATURE_NAME ] ) );
  						int iPiece = 0; char chBuffer[ 500 ];
! 						string strDeclarator = "-" + m_strName;
  						sprintf( chBuffer, "%d", iPiece );
! 						while ( context.m_ctxTypes.ExistsVariable( strDeclarator + string( chBuffer ) ) )
  							sprintf( chBuffer, "%d", ++iPiece );
  
  						VariableNode* pVariableNode = GetTreeManager()->CreateVariable();
! 						pVariableNode->m_strName = strDeclarator + string( chBuffer );
  						pVariableNode->m_vecType = TypeSeq( 1, pTypeInner->GetName() );
  
--- 2204,2214 ----
  							context.m_setDependencies.insert( OclMeta::Dependency( sigAttributeInner.Print(), m_mapPositions[ LID_FEATURE_NAME ] ) );
  						int iPiece = 0; char chBuffer[ 500 ];
! 						std::string strDeclarator = "-" + m_strName;
  						sprintf( chBuffer, "%d", iPiece );
! 						while ( context.m_ctxTypes.ExistsVariable( strDeclarator + std::string( chBuffer ) ) )
  							sprintf( chBuffer, "%d", ++iPiece );
  
  						VariableNode* pVariableNode = GetTreeManager()->CreateVariable();
! 						pVariableNode->m_strName = strDeclarator + std::string( chBuffer );
  						pVariableNode->m_vecType = TypeSeq( 1, pTypeInner->GetName() );
  
***************
*** 2223,2227 ****
  						m_pCollector->m_strCallOperator = "->";
  						m_pCollector->m_strName = "collect";
! 						m_pCollector->m_vecDeclarators = StringVector( 1, string( chBuffer ) );
  						m_pCollector->m_mapPositions = m_mapPositions;
  						m_pCollector->m_pArgumentNode = pAttributeNode;
--- 2224,2228 ----
  						m_pCollector->m_strCallOperator = "->";
  						m_pCollector->m_strName = "collect";
! 						m_pCollector->m_vecDeclarators = StringVector( 1, std::string( chBuffer ) );
  						m_pCollector->m_mapPositions = m_mapPositions;
  						m_pCollector->m_pArgumentNode = pAttributeNode;
***************
*** 2289,2298 ****
  	}
  
! 	string VariableNode::Print( const string& strTabs ) const
  	{
  		if ( m_pAttribute )
  			return m_pAttribute->Print( strTabs );
  
! 		string strOut = strTabs + "<Variable name=\"" + m_strName + "\">\r\n";
  		strOut += strTabs + "</Variable>\r\n";
  		return strOut;
--- 2290,2299 ----
  	}
  
! 	std::string VariableNode::Print( const std::string& strTabs ) const
  	{
  		if ( m_pAttribute )
  			return m_pAttribute->Print( strTabs );
  
! 		std::string strOut = strTabs + "<Variable name=\"" + m_strName + "\">\r\n";
  		strOut += strTabs + "</Variable>\r\n";
  		return strOut;
***************
*** 2336,2340 ****
  			delete m_pType;
  			m_pType = NULL;
! 			if ( m_strName.find( ":" ) != string::npos ) {
  				ADDEX( contextType.m_poolExceptions );
  				return false;
--- 2337,2341 ----
  			delete m_pType;
  			m_pType = NULL;
! 			if ( m_strName.find( ":" ) != std::string::npos ) {
  				ADDEX( contextType.m_poolExceptions );
  				return false;
***************
*** 2411,2422 ****
  	}
  
! 	string ContextNode::Print( const string& strTabs ) const
  	{
! 		string strOut = strTabs + "<Context type=\"" +( ( m_bClassifier ) ? "Classifier" : "Operation" ) + "\" stereotype=\"" + m_strStereotype + "\">\r\n";
  		if ( m_bClassifier )
  			strOut += strTabs + TABSTR + ( ( ! m_strName.empty() ) ? m_strName : "self" ) + " : " + m_strType + "\r\n";
  		else {
  			strOut += strTabs + TABSTR + m_strType + "::" + m_strName + "( ";
! 			for ( int i = 0 ; i < m_vecParameters.size() ; i++ ) {
  				strOut += m_vecParameters[ i ].GetName() + " : " + m_vecParameters[ i ].GetTypeName();
  				if ( i != m_vecParameters.size() - 1 )
--- 2412,2423 ----
  	}
  
! 	std::string ContextNode::Print( const std::string& strTabs ) const
  	{
! 		std::string strOut = strTabs + "<Context type=\"" +( ( m_bClassifier ) ? "Classifier" : "Operation" ) + "\" stereotype=\"" + m_strStereotype + "\">\r\n";
  		if ( m_bClassifier )
  			strOut += strTabs + TABSTR + ( ( ! m_strName.empty() ) ? m_strName : "self" ) + " : " + m_strType + "\r\n";
  		else {
  			strOut += strTabs + TABSTR + m_strType + "::" + m_strName + "( ";
! 			for ( unsigned int i = 0 ; i < m_vecParameters.size() ; i++ ) {
  				strOut += m_vecParameters[ i ].GetName() + " : " + m_vecParameters[ i ].GetTypeName();
  				if ( i != m_vecParameters.size() - 1 )
***************
*** 2465,2472 ****
  
  		TypeSeq vecType;
! 		for ( int i = 0 ; i < m_vecParameters.size() ; i++ ) {
  			vecType.clear();
! 			string strType = m_vecParameters[ i ].GetTypeName();
! 			string strName = m_vecParameters[ i ].GetName();
  			if ( ParseTypeSeq( context, m_mapPositions[ LID_PARAMETER_TYPE + i ], strType, vecType ) )
  				m_vecParameters[ i ] = OclCommon::FormalParameter( strName, strType, m_vecParameters[ i ].IsRequired() );
--- 2466,2473 ----
  
  		TypeSeq vecType;
! 		for ( unsigned int i = 0 ; i < m_vecParameters.size() ; i++ ) {
  			vecType.clear();
! 			std::string strType = m_vecParameters[ i ].GetTypeName();
! 			std::string strName = m_vecParameters[ i ].GetName();
  			if ( ParseTypeSeq( context, m_mapPositions[ LID_PARAMETER_TYPE + i ], strType, vecType ) )
  				m_vecParameters[ i ] = OclCommon::FormalParameter( strName, strType, m_vecParameters[ i ].IsRequired() );
***************
*** 2520,2526 ****
  	}
  
! 	string Constraint::Print( const string& strTabs ) const
  	{
! 		string strOut = strTabs + strTabs + "<Constraint name=\"" + m_strName + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<Context>\r\n";
--- 2521,2527 ----
  	}
  
! 	std::string Constraint::Print( const std::string& strTabs ) const
  	{
! 		std::string strOut = strTabs + strTabs + "<Constraint name=\"" + m_strName + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<Context>\r\n";
***************
*** 2547,2551 ****
  				if ( ! GetTreeManager()->GetTypeManager()->IsTypeA( m_pExpression->m_vecType, m_pContext->m_vecTypeReturn ) ) {
  					if ( m_pContext->m_strStereotype == "defattribute" || m_pContext->m_strStereotype == "defmethod" ) {
! 						string strEType, strDType;
  						OclCommon::Convert( m_pExpression->m_vecType, strEType );
  						OclCommon::Convert( m_pContext->m_vecTypeReturn, strDType );
--- 2548,2552 ----
  				if ( ! GetTreeManager()->GetTypeManager()->IsTypeA( m_pExpression->m_vecType, m_pContext->m_vecTypeReturn ) ) {
  					if ( m_pContext->m_strStereotype == "defattribute" || m_pContext->m_strStereotype == "defmethod" ) {
! 						std::string strEType, strDType;
  						OclCommon::Convert( m_pExpression->m_vecType, strEType );
  						OclCommon::Convert( m_pContext->m_vecTypeReturn, strDType );
***************
*** 2570,2574 ****
  			context.m_bEnableTracking = true;
  			if ( spResult.IsUndefined() ) {
! 				string strMyself = ( m_pContext->m_strStereotype == "defattribute" || m_pContext->m_strStereotype == "defmethod" ) ? "Definition " : "Constraint ";
  				AddViolation( context, iLineNodeStart, "At root expression", strMyself + "evaluated to undefined object." );
  			}
--- 2571,2575 ----
  			context.m_bEnableTracking = true;
  			if ( spResult.IsUndefined() ) {
! 				std::string strMyself = ( m_pContext->m_strStereotype == "defattribute" || m_pContext->m_strStereotype == "defmethod" ) ? "Definition " : "Constraint ";
  				AddViolation( context, iLineNodeStart, "At root expression", strMyself + "evaluated to undefined object." );
  			}
***************
*** 2585,2591 ****
  //##############################################################################################################################################
  
! 	string ObjectNodeAdaptor::Print( const string& strTabs, ObjectNode* pNode ) const
  	{
! 		string strOut = strTabs + "<Object type=\"" + pNode->m_strType + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<Value>\r\n";
--- 2586,2592 ----
  //##############################################################################################################################################
  
! 	std::string ObjectNodeAdaptor::Print( const std::string& strTabs, ObjectNode* pNode ) const
  	{
! 		std::string strOut = strTabs + "<Object type=\"" + pNode->m_strType + "\">\r\n";
  
  		strOut += strTabs + TABSTR + "<Value>\r\n";
***************
*** 2614,2618 ****
  			else {
  				if ( pNode->m_strType == "ocl::Type" ) {
! 					string strValue = pNode->m_strValue;
  					TypeSeq vecType;
  					bool bIsType = pNode->ParseTypeSeq( context, pNode->m_mapPositions[ LID_NODE_START ], strValue, vecType );
--- 2615,2619 ----
  			else {
  				if ( pNode->m_strType == "ocl::Type" ) {
! 					std::string strValue = pNode->m_strValue;
  					TypeSeq vecType;
  					bool bIsType = pNode->ParseTypeSeq( context, pNode->m_mapPositions[ LID_NODE_START ], strValue, vecType );
***************
*** 2659,2672 ****
  //##############################################################################################################################################
  
! 	string CollectionNodeAdaptor::Print( const string& strTabs, CollectionNode* pNode ) const
  	{
! 		string strOut = strTabs + "<Collection type=\"" + pNode->m_strType + "\">\r\n";
  
! 		for ( int i = 0 ; i < pNode->m_vecNodes.size() ; i++ ) {
  			char chNum[ 100 ];
  			sprintf( chNum, "%d", i );
! 			strOut += strTabs + TABSTR + "<Element_" + string( chNum ) + ">\r\n";
  			strOut += pNode->m_vecNodes[ i ]->Print( strTabs + TABSTR + TABSTR );
! 			strOut += strTabs + TABSTR + "</Element_" + string( chNum ) + ">\r\n";
  		}
  
--- 2660,2673 ----
  //##############################################################################################################################################
  
! 	std::string CollectionNodeAdaptor::Print( const std::string& strTabs, CollectionNode* pNode ) const
  	{
! 		std::string strOut = strTabs + "<Collection type=\"" + pNode->m_strType + "\">\r\n";
  
! 		for ( unsigned int i = 0 ; i < pNode->m_vecNodes.size() ; i++ ) {
  			char chNum[ 100 ];
  			sprintf( chNum, "%d", i );
! 			strOut += strTabs + TABSTR + "<Element_" + std::string( chNum ) + ">\r\n";
  			strOut += pNode->m_vecNodes[ i ]->Print( strTabs + TABSTR + TABSTR );
! 			strOut += strTabs + TABSTR + "</Element_" + std::string( chNum ) + ">\r\n";
  		}
  
***************
*** 2703,2707 ****
  		bool bArgumentsValid = true;
  		TypeSeq vecAggregatedType;
! 		for ( int i = 0 ; i < pNode->m_vecNodes.size() ; i++ ) {
  			bArgumentsValid = pNode->m_vecNodes[ i ]->Check( context )  && bArgumentsValid;
  			if ( bArgumentsValid ) {
--- 2704,2708 ----
  		bool bArgumentsValid = true;
  		TypeSeq vecAggregatedType;
! 		for ( unsigned int i = 0 ; i < pNode->m_vecNodes.size() ; i++ ) {
  			bArgumentsValid = pNode->m_vecNodes[ i ]->Check( context )  && bArgumentsValid;
  			if ( bArgumentsValid ) {
***************
*** 2728,2732 ****
  	{
  		OclMeta::ObjectVector vecObjects;
! 		for ( int i = 0 ; i < pNode->m_vecNodes.size() ; i++ )
  			vecObjects.push_back( pNode->m_vecNodes[ i ]->Evaluate( context ) );
  
--- 2729,2733 ----
  	{
  		OclMeta::ObjectVector vecObjects;
! 		for ( unsigned int i = 0 ; i < pNode->m_vecNodes.size() ; i++ )
  			vecObjects.push_back( pNode->m_vecNodes[ i ]->Evaluate( context ) );
  

Index: OCLTree.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLTree.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** OCLTree.h	14 May 2004 15:54:19 -0000	1.14
--- OCLTree.h	13 Oct 2004 15:17:54 -0000	1.15
***************
*** 53,57 ****
  			OclCommon::ExceptionPool	m_poolExceptions;
  			StringVector					m_vecImplicits;
! 			string							m_strStereotype;
  			OclMeta::DependencySet		m_setDependencies;
  
--- 53,57 ----
  			OclCommon::ExceptionPool	m_poolExceptions;
  			StringVector					m_vecImplicits;
! 			std::string						m_strStereotype;
  			OclMeta::DependencySet		m_setDependencies;
  
***************
*** 85,90 ****
  	struct Violation {
  		bool						bIsException;
! 		string						strMessage;
! 		string						strSignature;
  		Position					position;
  		StringVector				vecVariables;
--- 85,90 ----
  	struct Violation {
  		bool						bIsException;
! 		std::string						strMessage;
! 		std::string						strSignature;
  		Position					position;
  		StringVector				vecVariables;
***************
*** 92,96 ****
  	};
  
! 	typedef vector< Violation >	ViolationVector;
  */
  	struct ObjectContext {
--- 92,96 ----
  	};
  
! 	typedef std::vector< Violation >	ViolationVector;
  */
  	struct ObjectContext {
***************
*** 105,109 ****
  	};
  
! 	typedef vector< TreeNode* > TreeNodeVector;
  
  //##############################################################################################################################################
--- 105,109 ----
  	};
  
! 	typedef std::vector< TreeNode* > TreeNodeVector;
  
  //##############################################################################################################################################
***************
*** 135,143 ****
  					NodeKind				GetKind() const;
  
! 			virtual 	string 					Print( const string& strTabs ) const = 0;
  					bool					Check( TypeContext& context );
  			virtual 	OclMeta::Object 		Evaluate( ObjectContext& context ) = 0;
  
! 			 		bool 					ParseTypeSeq( TypeContext& context, const Position& position, string& strType, TypeSeq& vecType ) const;
  			 		bool					CastType( TypeContext& context, const Position& position, const TypeSeq& vecTypeFrom, const TypeSeq& vecTypeTo ) const;
  			 		VariableNode*			CreateThis( TypeContext& context, int iImplicitPos ) const;
--- 135,143 ----
  					NodeKind				GetKind() const;
  
! 			virtual std::string 			Print( const std::string& strTabs ) const = 0;
  					bool					Check( TypeContext& context );
  			virtual 	OclMeta::Object 		Evaluate( ObjectContext& context ) = 0;
  
! 			 		bool 					ParseTypeSeq( TypeContext& context, const Position& position, std::string& strType, TypeSeq& vecType ) const;
  			 		bool					CastType( TypeContext& context, const Position& position, const TypeSeq& vecTypeFrom, const TypeSeq& vecTypeTo ) const;
  			 		VariableNode*			CreateThis( TypeContext& context, int iImplicitPos ) const;
***************
*** 145,155 ****
  
  			 		TypeSeq				GetParametralTypeSeq( const TypeSeq& vecType1, const TypeSeq& vecType2, const TypeSeq& vecTypeReturn );
! 			 		OclMeta::Feature* 	CheckAmbiguity( const vector<OclMeta::Type*>& vecTypes, const vector<OclSignature::Feature*>& vecSignatures, vector<int>& vecAmbiguities, int& iPrecedence, OclCommon::ExceptionPool& exAmbiguity );
  
! 			 		void 					AddViolation( ObjectContext& context, int iLine, const string& strSignature, const string& strMessage = "" );
  					void					AddViolation(ObjectContext& context, Violation &violation);
  			 		bool					IsBooleanReturned();
! 					OclMeta::Object 		CheckFalseResult( ObjectContext& context, OclMeta::Object spObject, int iLine, const string& strSignature );
! 					OclMeta::Object 		EvaluateCast( ObjectContext& context, OclMeta::Object spObject, int iLine, const string& strSignature, const string& strTypeName = "", bool bOnlyTest = true );
  
  			protected :
--- 145,155 ----
  
  			 		TypeSeq				GetParametralTypeSeq( const TypeSeq& vecType1, const TypeSeq& vecType2, const TypeSeq& vecTypeReturn );
! 			 		OclMeta::Feature* 	CheckAmbiguity( const std::vector<OclMeta::Type*>& vecTypes, const std::vector<OclSignature::Feature*>& vecSignatures, std::vector<int>& vecAmbiguities, int& iPrecedence, OclCommon::ExceptionPool& exAmbiguity );
  
! 			 		void 					AddViolation( ObjectContext& context, int iLine, const std::string& strSignature, const std::string& strMessage = "" );
  					void					AddViolation(ObjectContext& context, Violation &violation);
  			 		bool					IsBooleanReturned();
! 					OclMeta::Object 		CheckFalseResult( ObjectContext& context, OclMeta::Object spObject, int iLine, const std::string& strSignature );
! 					OclMeta::Object 		EvaluateCast( ObjectContext& context, OclMeta::Object spObject, int iLine, const std::string& strSignature, const std::string& strTypeName = "", bool bOnlyTest = true );
  
  			protected :
***************
*** 171,181 ****
  		: public TreeNode
  	{
! 		public :			string	m_strType;
! 						string 	m_strValue;
  						bool 	m_bCallable;
  
  													ObjectNode( TreeManager* pManager );
  
! 					virtual 	string 					Print( const string& strTabs ) const;
  					virtual 	bool					CheckImplementation( TypeContext& context );
  					virtual 	OclMeta::Object 		Evaluate( ObjectContext& context );
--- 171,181 ----
  		: public TreeNode
  	{
! 		public :		std::string		m_strType;
! 						std::string 	m_strValue;
  						bool 	m_bCallable;
  
  													ObjectNode( TreeManager* pManager );
  
! 					virtual 	std::string				Print( const std::string& strTabs ) const;
  					virtual 	bool					CheckImplementation( TypeContext& context );
  					virtual 	OclMeta::Object 		Evaluate( ObjectContext& context );
***************
*** 195,199 ****
  		: public TreeNode
  	{
! 		public :		string 			m_strType;
  					TreeNodeVector 	m_vecNodes;
  
--- 195,199 ----
  		: public TreeNode
  	{
! 		public :	std::string 	m_strType;
  					TreeNodeVector 	m_vecNodes;
  
***************
*** 201,205 ****
  													~CollectionNode();
  
! 					virtual 	string 					Print( const string& strTabs ) const;
  					virtual 	bool 					CheckImplementation( TypeContext& context );
  					virtual 	OclMeta::Object 		Evaluate( ObjectContext& context );
--- 201,205 ----
  													~CollectionNode();
  
! 					virtual 	std::string 			Print( const std::string& strTabs ) const;
  					virtual 	bool 					CheckImplementation( TypeContext& context );
  					virtual 	OclMeta::Object 		Evaluate( ObjectContext& context );
***************
*** 219,224 ****
  		: public TreeNode
  	{
! 		public :		string 				m_strType;
! 					string 				m_strName;
  					TreeNode* 		m_pValueNode;
  					TreeNode* 		m_pInnerNode;
--- 219,224 ----
  		: public TreeNode
  	{
! 		public :	std::string 				m_strType;
! 					std::string 				m_strName;
  					TreeNode* 		m_pValueNode;
  					TreeNode* 		m_pInnerNode;
***************
*** 228,232 ****
  													~DeclarationNode();
  
! 					virtual 	string 					Print( const string& strTabs ) const;
  					virtual 	OclMeta::Object 		Evaluate( ObjectContext& context );
  
--- 228,232 ----
  													~DeclarationNode();
  
! 					virtual 	std::string 			Print( const std::string& strTabs ) const;
  					virtual 	OclMeta::Object 		Evaluate( ObjectContext& context );
  
***************
*** 248,259 ****
  		: public TreeNode
  	{
! 		public :		string 				m_strType;
  					TreeNode* 		m_pThisNode;
! 					bool				m_bIsDynamic;
  
  													TypeCastNode( TreeManager* pManager );
  													~TypeCastNode();
  
! 					virtual 	string 					Print( const string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool					CheckImplementation( TypeContext& context );
--- 248,259 ----
  		: public TreeNode
  	{
! 		public :	std::string 	m_strType;
  					TreeNode* 		m_pThisNode;
! 					bool			m_bIsDynamic;
  
  													TypeCastNode( TreeManager* pManager );
  													~TypeCastNode();
  
! 					virtual 	std::string 		Print( const std::string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool					CheckImplementation( TypeContext& context );
***************
*** 282,286 ****
  													~IfThenElseNode();
  
! 					virtual 	string 					Print( const string& strTabs ) const;
  					virtual 	bool					CheckImplementation( TypeContext& context );
  					virtual 	OclMeta::Object 		Evaluate( ObjectContext& context );
--- 282,286 ----
  													~IfThenElseNode();
  
! 					virtual 	std::string 			Print( const std::string& strTabs ) const;
  					virtual 	bool					CheckImplementation( TypeContext& context );
  					virtual 	OclMeta::Object 		Evaluate( ObjectContext& context );
***************
*** 301,313 ****
  	{
  		public :
! 					string			m_strName;
  					TreeNode* 	m_pOperandNode1;
  					TreeNode* 	m_pOperandNode2;
! 					string 			m_strAssignVarName;
  
  													OperatorNode( TreeManager* pManager );
  													~OperatorNode();
  
! 					virtual 	string 					Print( const string& strTabs ) const;
  					virtual 	void					CheckInitialize();
  					virtual 	bool					CheckImplementation( TypeContext& context );
--- 301,313 ----
  	{
  		public :
! 					std::string	m_strName;
  					TreeNode* 	m_pOperandNode1;
  					TreeNode* 	m_pOperandNode2;
! 					std::string 			m_strAssignVarName;
  
  													OperatorNode( TreeManager* pManager );
  													~OperatorNode();
  
! 					virtual 	std::string 			Print( const std::string& strTabs ) const;
  					virtual 	void					CheckInitialize();
  					virtual 	bool					CheckImplementation( TypeContext& context );
***************
*** 356,378 ****
  
  		public :
! 					string 						m_strName;
  					TreeNode* 				m_pThisNode;
! 					TreeNode*					m_pArgumentNode;
  
! 					StringVector 				m_vecDeclarators;
! 					string						m_strDeclType;
  					TypeSeq					m_vecTypeDecl;
  
! 					string 						m_strAccuType;
! 					string 						m_strAccuName;
! 					TypeSeq 					m_vecTypeAccu;
  					TreeNode* 				m_pAccuNode;
  
! 					string						m_strCallOperator;
  
  												IteratorNode( TreeManager* pManager );
  												~IteratorNode();
  
! 					virtual 	string 				Print( const string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool				CheckImplementation( TypeContext& context );
--- 356,378 ----
  
  		public :
! 					std::string 			m_strName;
  					TreeNode* 				m_pThisNode;
! 					TreeNode*				m_pArgumentNode;
  
! 					StringVector 			m_vecDeclarators;
! 					std::string				m_strDeclType;
  					TypeSeq					m_vecTypeDecl;
  
! 					std::string 			m_strAccuType;
! 					std::string 			m_strAccuName;
! 					TypeSeq 				m_vecTypeAccu;
  					TreeNode* 				m_pAccuNode;
  
! 					std::string				m_strCallOperator;
  
  												IteratorNode( TreeManager* pManager );
  												~IteratorNode();
  
! 					virtual 	std::string 		Print( const std::string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool				CheckImplementation( TypeContext& context );
***************
*** 399,406 ****
  			static int	m_stackLevel;
  
! 		public :		string 						m_strName;
  					TreeNode* 				m_pThisNode;
  					TreeNodeVector			m_vecArguments;
! 					string						m_strCallOperator;
  
  					IteratorNode*				m_pIterator;
--- 399,406 ----
  			static int	m_stackLevel;
  
! 		public :	std::string 			m_strName;
  					TreeNode* 				m_pThisNode;
  					TreeNodeVector			m_vecArguments;
! 					std::string				m_strCallOperator;
  
  					IteratorNode*				m_pIterator;
***************
*** 409,413 ****
  												~MethodNode();
  
! 					virtual 	string 				Print( const string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool				CheckImplementation( TypeContext& context );
--- 409,413 ----
  												~MethodNode();
  
! 					virtual 	std::string 		Print( const std::string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool				CheckImplementation( TypeContext& context );
***************
*** 428,432 ****
  		: public TreeNode
  	{
! 		public :		string 						m_strName;
  					TreeNodeVector			m_vecArguments;
  
--- 428,432 ----
  		: public TreeNode
  	{
! 		public :	std::string				m_strName;
  					TreeNodeVector			m_vecArguments;
  
***************
*** 436,440 ****
  												~FunctionNode();
  
! 					virtual 	string 				Print( const string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool				CheckImplementation( TypeContext& context );
--- 436,440 ----
  												~FunctionNode();
  
! 					virtual 	std::string 		Print( const std::string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool				CheckImplementation( TypeContext& context );
***************
*** 455,467 ****
  		: public TreeNode
  	{
! 		public :		string 						m_strName;
! 					string						m_strAcceptable;
  					TreeNode*					m_pThisNode;
! 					string 						m_strCallOperator;
  
  												AssociationNode( TreeManager* pManager );
  												~AssociationNode();
  
! 					virtual 	string 				Print( const string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool				CheckImplementation( TypeContext& context );
--- 455,467 ----
  		: public TreeNode
  	{
! 		public :	std::string 				m_strName;
! 					std::string					m_strAcceptable;
  					TreeNode*					m_pThisNode;
! 					std::string 				m_strCallOperator;
  
  												AssociationNode( TreeManager* pManager );
  												~AssociationNode();
  
! 					virtual 	std::string 		Print( const std::string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool				CheckImplementation( TypeContext& context );
***************
*** 484,490 ****
  		: public TreeNode
  	{
! 		public :		string 						m_strName;
  					TreeNode*					m_pThisNode;
! 					string 						m_strCallOperator;
  
  					AssociationNode*			m_pAssociation;
--- 484,490 ----
  		: public TreeNode
  	{
! 		public :	std::string 				m_strName;
  					TreeNode*					m_pThisNode;
! 					std::string 				m_strCallOperator;
  
  					AssociationNode*			m_pAssociation;
***************
*** 494,498 ****
  												~AttributeNode();
  
! 					virtual 	string 				Print( const string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool				CheckImplementation( TypeContext& context );
--- 494,498 ----
  												~AttributeNode();
  
! 					virtual 	std::string 		Print( const std::string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool				CheckImplementation( TypeContext& context );
***************
*** 513,517 ****
  		: public TreeNode
  	{
! 		public :		string 						m_strName;
  
  					AttributeNode*			m_pAttribute;
--- 513,517 ----
  		: public TreeNode
  	{
! 		public :	std::string 			m_strName;
  
  					AttributeNode*			m_pAttribute;
***************
*** 521,525 ****
  												~VariableNode();
  
! 					virtual 	string 				Print( const string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool				CheckImplementation( TypeContext& context );
--- 521,525 ----
  												~VariableNode();
  
! 					virtual 	std::string 		Print( const std::string& strTabs ) const;
  					virtual 	void				CheckInitialize();
  					virtual 	bool				CheckImplementation( TypeContext& context );
***************
*** 540,556 ****
  		: public TreeNode
  	{
! 		public :			string 								m_strName;
! 						string 								m_strType;
  						bool								m_bClassifier;
! 						string								m_strStereotype;
  						OclMeta::DependencySet			m_setDependencies;
  
  						OclCommon::FormalParameterVector 	m_vecParameters;
! 						string										m_strReturnType;
! 						TypeSeq									m_vecTypeReturn;
  
  													ContextNode( TreeManager* pManager );
  
! 					virtual 	string 					Print( const string& strTabs ) const;
  					virtual 	void					CheckInitialize();
  					virtual 	bool					CheckImplementation( TypeContext& context );
--- 540,556 ----
  		: public TreeNode
  	{
! 		public :		std::string 						m_strName;
! 						std::string 						m_strType;
  						bool								m_bClassifier;
! 						std::string							m_strStereotype;
  						OclMeta::DependencySet			m_setDependencies;
  
  						OclCommon::FormalParameterVector 	m_vecParameters;
! 						std::string							m_strReturnType;
! 						TypeSeq								m_vecTypeReturn;
  
  													ContextNode( TreeManager* pManager );
  
! 					virtual 	std::string 			Print( const std::string& strTabs ) const;
  					virtual 	void					CheckInitialize();
  					virtual 	bool					CheckImplementation( TypeContext& context );
***************
*** 571,576 ****
  		: public TreeNode
  	{
! 		public :			string 				m_strName;
! 						ContextNode* 		m_pContext;
  						TreeNode* 		m_pExpression;
  
--- 571,576 ----
  		: public TreeNode
  	{
! 		public :		std::string 	m_strName;
! 						ContextNode* 	m_pContext;
  						TreeNode* 		m_pExpression;
  
***************
*** 578,582 ****
  					virtual							~Constraint();
  
! 					virtual 	string 					Print( const string& strTabs ) const;
  					virtual 	bool					CheckImplementation( TypeContext& context );
  					virtual 	OclMeta::Object 		Evaluate( ObjectContext& context );
--- 578,582 ----
  					virtual							~Constraint();
  
! 					virtual 	std::string 			Print( const std::string& strTabs ) const;
  					virtual 	bool					CheckImplementation( TypeContext& context );
  					virtual 	OclMeta::Object 		Evaluate( ObjectContext& context );
***************
*** 598,602 ****
  					virtual 							~ObjectNodeAdaptor() {}
  
! 					virtual string 					Print( const string& strTabs, ObjectNode* pNode ) const;
  					virtual bool 					Check( TypeContext& context, ObjectNode* pNode ) const;
  					virtual OclMeta::Object 		Evaluate( ObjectContext& context, ObjectNode* pNode ) const;
--- 598,602 ----
  					virtual 							~ObjectNodeAdaptor() {}
  
! 					virtual std::string 			Print( const std::string& strTabs, ObjectNode* pNode ) const;
  					virtual bool 					Check( TypeContext& context, ObjectNode* pNode ) const;
  					virtual OclMeta::Object 		Evaluate( ObjectContext& context, ObjectNode* pNode ) const;
***************
*** 619,623 ****
  			virtual 								~CollectionNodeAdaptor() {}
  
! 			virtual string 						Print( const string& strTabs, CollectionNode* pNode ) const;
  			virtual bool 						Check( TypeContext& context, CollectionNode* pNode ) const;
  			virtual OclMeta::Object	 		Evaluate( ObjectContext& context, CollectionNode* pNode ) const;
--- 619,623 ----
  			virtual 								~CollectionNodeAdaptor() {}
  
! 			virtual std::string 				Print( const std::string& strTabs, CollectionNode* pNode ) const;
  			virtual bool 						Check( TypeContext& context, CollectionNode* pNode ) const;
  			virtual OclMeta::Object	 		Evaluate( ObjectContext& context, CollectionNode* pNode ) const;

Index: OCLType.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLType.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** OCLType.cpp	18 May 2004 13:30:58 -0000	1.7
--- OCLType.cpp	13 Oct 2004 15:17:54 -0000	1.8
***************
*** 28,36 ****
  
  	template < class TItem >
! 	TItem* DisposeVector( vector<TItem*>& vecArg, int iGetPos = -1 )
  	{
  		TItem* pItem = NULL;
! 		for ( int i = 0 ; i < vecArg.size() ; i++ )
! 			if ( i == iGetPos )
  				pItem = vecArg[ i ];
  			else
--- 28,36 ----
  
  	template < class TItem >
! 	TItem* DisposeVector( std::vector<TItem*>& vecArg, int iGetPos = -1 )
  	{
  		TItem* pItem = NULL;
! 		for ( unsigned int i = 0 ; i < vecArg.size() ; i++ )
! 			if ( (int) i == iGetPos )
  				pItem = vecArg[ i ];
  			else
***************
*** 73,77 ****
  
  	// recursion corrected: terge
! 	bool GetCallResult( const CallResultMap& mapArg, string/*const OclSignature::Feature*/& feature, CallResult& callResult )
  	{
  		CallResultMap::const_iterator i = mapArg.find( feature/*.Print()*/ );
--- 73,77 ----
  
  	// recursion corrected: terge
! 	bool GetCallResult( const CallResultMap& mapArg, std::string/*const OclSignature::Feature*/& feature, CallResult& callResult )
  	{
  		CallResultMap::const_iterator i = mapArg.find( feature/*.Print()*/ );
***************
*** 84,92 ****
  
  	template < class TParametralFeature, class TParametralSignature >
! 	void FilterParametralFeature( TypeManager* pManager, const TParametralSignature& signature, vector<TParametralFeature*>& vecArg, int iCodeAmbig, int iCodeExist, CallResult& callResult)
  	{
  		int iPos = -1;
  		int iMatch = -1;
! 		for ( int j = 0 ; j < vecArg.size() ; j++ ) {
  			int iMatch2 = 0;
  			try {
--- 84,92 ----
  
  	template < class TParametralFeature, class TParametralSignature >
! 	void FilterParametralFeature( TypeManager* pManager, const TParametralSignature& signature, std::vector<TParametralFeature*>& vecArg, int iCodeAmbig, int iCodeExist, CallResult& callResult)
  	{
  		int iPos = -1;
  		int iMatch = -1;
! 		for ( unsigned int j = 0 ; j < vecArg.size() ; j++ ) {
  			int iMatch2 = 0;
  			try {
***************
*** 99,103 ****
  				if ( iMatch == -1 || iMatch2 < iMatch ) {
  					iMatch = iMatch2;
! 					iPos = j;
  				}
  				else if ( iMatch == iMatch2 && ! vecArg[ j ]->IsIdentical( *vecArg[ iPos ] ) ) {
--- 99,103 ----
  				if ( iMatch == -1 || iMatch2 < iMatch ) {
  					iMatch = iMatch2;
! 					iPos = (int) j;
  				}
  				else if ( iMatch == iMatch2 && ! vecArg[ j ]->IsIdentical( *vecArg[ iPos ] ) ) {
***************
*** 121,125 ****
  
  	template < class TTypeableFeature, class TTypeableSignature >
! 	void FilterTypeableFeature( const TTypeableSignature& signature, vector<TTypeableFeature*>& vecArg, int iCodeAmbig, int iCodeExist, CallResult& callResult )
  	{
  		if ( vecArg.size() > 1 ) {
--- 121,125 ----
  
  	template < class TTypeableFeature, class TTypeableSignature >
! 	void FilterTypeableFeature( const TTypeableSignature& signature, std::vector<TTypeableFeature*>& vecArg, int iCodeAmbig, int iCodeExist, CallResult& callResult )
  	{
  		if ( vecArg.size() > 1 ) {
***************
*** 139,145 ****
  
  	template< class TFeature , class TFeatureSignature >
! 	bool FilterBaseType( TypeManager* pManager, const StringVector& vecSuperTypes, const TFeatureSignature& signature, vector<TFeature*>& vecArg, int iCodeExist, CallResult& callResult )
  	{
! 		for ( int i = 0 ; i < vecSuperTypes.size() ; i++ ) {
  			try {
  				Type* pType = pManager->GetType( vecSuperTypes[ i ] );
--- 139,145 ----
  
  	template< class TFeature , class TFeatureSignature >
! 	bool FilterBaseType( TypeManager* pManager, const StringVector& vecSuperTypes, const TFeatureSignature& signature, std::vector<TFeature*>& vecArg, int iCodeExist, CallResult& callResult )
  	{
! 		for ( unsigned int i = 0 ; i < vecSuperTypes.size() ; i++ ) {
  			try {
  				Type* pType = pManager->GetType( vecSuperTypes[ i ] );
***************
*** 229,233 ****
  	}
  
! 	Type* TypeManager::GetType( const string& strName )
  	{
  		TypeResultMap::iterator i = m_mapTypes.find( strName );
--- 229,233 ----
  	}
  
! 	Type* TypeManager::GetType( const std::string& strName )
  	{
  		TypeResultMap::iterator i = m_mapTypes.find( strName );
***************
*** 271,275 ****
  	}
  
! 	int TypeManager::IsTypeAR( const string& strName1, const string& strName2, int iLevel )
  	{
  		Type* pType1 = GetType( strName1 );
--- 271,275 ----
  	}
  
! 	int TypeManager::IsTypeAR( const std::string& strName1, const std::string& strName2, int iLevel )
  	{
  		Type* pType1 = GetType( strName1 );
***************
*** 278,282 ****
  		const StringVector& vecSuperTypes = pType1->GetSuperTypeNames();
  		int iIsA = -1;
! 		for ( int i = 0 ; i < vecSuperTypes.size() ; i++ ) {
  			int iIsA2 = IsTypeAR( vecSuperTypes[ i ], strName2, iLevel + 1 );
  			if ( iIsA2 != -1 && ( iIsA == -1 || iIsA2 < iIsA ) )
--- 278,282 ----
  		const StringVector& vecSuperTypes = pType1->GetSuperTypeNames();
  		int iIsA = -1;
! 		for ( unsigned int i = 0 ; i < vecSuperTypes.size() ; i++ ) {
  			int iIsA2 = IsTypeAR( vecSuperTypes[ i ], strName2, iLevel + 1 );
  			if ( iIsA2 != -1 && ( iIsA == -1 || iIsA2 < iIsA ) )
***************
*** 286,290 ****
  	}
  
! 	int TypeManager::IsTypeA( const string& strName1, const string& strName2 )
  	{
  		Type* pType2 = GetType( strName2 );
--- 286,290 ----
  	}
  
! 	int TypeManager::IsTypeA( const std::string& strName1, const std::string& strName2 )
  	{
  		Type* pType2 = GetType( strName2 );
***************
*** 292,296 ****
  	}
  
! 	int TypeManager::GetTypeDistance( const string& strName )
  	{
  		Type* pType = GetType( ( strName.empty() ) ? "ocl::Any" : strName );
--- 292,296 ----
  	}
  
! 	int TypeManager::GetTypeDistance( const std::string& strName )
  	{
  		Type* pType = GetType( ( strName.empty() ) ? "ocl::Any" : strName );
***************
*** 299,303 ****
  			return 0;
  		int iDistance = -1;
! 		for ( int i = 0 ; i < vecSuperTypes.size() ; i++ ) {
  			int iDistance2 = GetTypeDistance( vecSuperTypes[ i ] );
  			if ( iDistance == -1 || iDistance2 < iDistance )
--- 299,303 ----
  			return 0;
  		int iDistance = -1;
! 		for ( unsigned int i = 0 ; i < vecSuperTypes.size() ; i++ ) {
  			int iDistance2 = GetTypeDistance( vecSuperTypes[ i ] );
  			if ( iDistance == -1 || iDistance2 < iDistance )
***************
*** 307,311 ****
  	}
  
! 	string TypeManager::GetTypeBaseR( const string& strName1, const string& strName2 )
  	{
  		if ( strName1 == "ocl::Any" )
--- 307,311 ----
  	}
  
! 	std::string TypeManager::GetTypeBaseR( const std::string& strName1, const std::string& strName2 )
  	{
  		if ( strName1 == "ocl::Any" )
***************
*** 313,320 ****
  		StringVector vecTypes;
  		const StringVector& vecSuperTypes = GetType( strName1 )->GetSuperTypeNames();
! 		for ( int i = 0 ; i < vecSuperTypes.size() ; i++ )
  			vecTypes.push_back( GetTypeBase( vecSuperTypes[ i ], strName2 ) );
  		int iIsA = -1;
! 		string strResult = "ocl::Any";
  		for ( i = 0 ; i < vecTypes.size() ; i++ ) {
  			int iIsA2 = GetTypeDistance( vecTypes[ i ] );
--- 313,320 ----
  		StringVector vecTypes;
  		const StringVector& vecSuperTypes = GetType( strName1 )->GetSuperTypeNames();
! 		for ( unsigned int i = 0 ; i < vecSuperTypes.size() ; i++ )
  			vecTypes.push_back( GetTypeBase( vecSuperTypes[ i ], strName2 ) );
  		int iIsA = -1;
! 		std::string strResult = "ocl::Any";
  		for ( i = 0 ; i < vecTypes.size() ; i++ ) {
  			int iIsA2 = GetTypeDistance( vecTypes[ i ] );
***************
*** 327,331 ****
  	}
  
! 	string TypeManager::GetTypeBase( const string& strName1, const string& strName2 )
  	{
  		if ( IsTypeA( strName1, strName2 ) >= 0 )
--- 327,331 ----
  	}
  
! 	std::string TypeManager::GetTypeBase( const std::string& strName1, const std::string& strName2 )
  	{
  		if ( IsTypeA( strName1, strName2 ) >= 0 )
***************
*** 333,338 ****
  		if ( IsTypeA( strName2, strName1 ) >= 0 )
  				return strName1;
! 		string strBase1 = GetTypeBaseR( strName1, strName2 );
! 		string strBase2 = GetTypeBaseR( strName2, strName1 );
  		if ( strBase1 == "ocl::Any" )
  				return strBase2;
--- 333,338 ----
  		if ( IsTypeA( strName2, strName1 ) >= 0 )
  				return strName1;
! 		std::string strBase1 = GetTypeBaseR( strName1, strName2 );
! 		std::string strBase2 = GetTypeBaseR( strName2, strName1 );
  		if ( strBase1 == "ocl::Any" )
  				return strBase2;
***************
*** 347,351 ****
  			return GetTypeBase( vecType2, vecType1 );
  		TypeSeq vecType;
! 		for ( int i = 0 ; i < vecType1.size() ; i++ )
  			vecType.push_back( GetTypeBase( vecType1[ i ], vecType2[ i ] ) );
  		return vecType;
--- 347,351 ----
  			return GetTypeBase( vecType2, vecType1 );
  		TypeSeq vecType;
! 		for ( unsigned int i = 0 ; i < vecType1.size() ; i++ )
  			vecType.push_back( GetTypeBase( vecType1[ i ], vecType2[ i ] ) );
  		return vecType;
***************
*** 357,361 ****
  		if ( vecType2.size() < vecType1.size() )
  			return false;
! 		for ( int i = 0 ; i < vecType1.size() ; i++ )
  			if ( IsTypeA( vecType1[ i ], vecType2[ i ] ) < 0 )
  				return false;
--- 357,361 ----
  		if ( vecType2.size() < vecType1.size() )
  			return false;
! 		for ( unsigned int i = 0 ; i < vecType1.size() ; i++ )
  			if ( IsTypeA( vecType1[ i ], vecType2[ i ] ) < 0 )
  				return false;
***************
*** 367,371 ****
  		CallResult callResult;
  		callResult.uResult.pException = NULL;
! 		string signo = signature.Print();
  
  		if ( GetCallResult( m_mapOperators, signo/*signature*/, callResult ) )
--- 367,371 ----
  		CallResult callResult;
  		callResult.uResult.pException = NULL;
! 		std::string signo = signature.Print();
  
  		if ( GetCallResult( m_mapOperators, signo/*signature*/, callResult ) )
***************
*** 392,396 ****
  		CallResult callResult;
  		callResult.uResult.pException = NULL;
! 		string signo = signature.Print();
  
  		if ( GetCallResult( m_mapFunctions, signo/*signature*/, callResult ) )
--- 392,396 ----
  		CallResult callResult;
  		callResult.uResult.pException = NULL;
! 		std::string signo = signature.Print();
  
  		if ( GetCallResult( m_mapFunctions, signo/*signature*/, callResult ) )
***************
*** 448,452 ****
  //##############################################################################################################################################
  
! 	Type::Type( const string& strName, const StringVector& vecSuperTypes, OclImplementation::AttributeFactory* pAttributeFactory, OclImplementation::AssociationFactory* pAssociationFactory, OclImplementation::MethodFactory* pMethodFactory, bool bDynamic )
  		: m_strName( strName ), m_vecSuperTypes( vecSuperTypes ), m_pAttributeFactory( pAttributeFactory ), m_pAssociationFactory( pAssociationFactory ), m_pMethodFactory( pMethodFactory ), m_bDynamic( bDynamic )
  	{
--- 448,452 ----
  //##############################################################################################################################################
  
! 	Type::Type( const std::string& strName, const StringVector& vecSuperTypes, OclImplementation::AttributeFactory* pAttributeFactory, OclImplementation::AssociationFactory* pAssociationFactory, OclImplementation::MethodFactory* pMethodFactory, bool bDynamic )
  		: m_strName( strName ), m_vecSuperTypes( vecSuperTypes ), m_pAttributeFactory( pAttributeFactory ), m_pAssociationFactory( pAssociationFactory ), m_pMethodFactory( pMethodFactory ), m_bDynamic( bDynamic )
  	{
***************
*** 468,472 ****
  	}
  
! 	string Type::GetName() const
  	{
  		return m_strName;
--- 468,472 ----
  	}
  
! 	std::string Type::GetName() const
  	{
  		return m_strName;
***************
*** 491,495 ****
  	{
  		CallResult callResult;
! 		string signo = signature.Print();
  
  		if ( GetCallResult( m_mapAttributes, signo/*signature*/, callResult ) )
--- 491,495 ----
  	{
  		CallResult callResult;
! 		std::string signo = signature.Print();
  
  		if ( GetCallResult( m_mapAttributes, signo/*signature*/, callResult ) )
***************
*** 506,510 ****
  	{
  		CallResult callResult;
! 		string signo = signature.Print();
  
  		if ( GetCallResult( m_mapAssociations, signo/*signature*/, callResult ) )
--- 506,510 ----
  	{
  		CallResult callResult;
! 		std::string signo = signature.Print();
  
  		if ( GetCallResult( m_mapAssociations, signo/*signature*/, callResult ) )
***************
*** 521,525 ****
  	{
  		CallResult callResult;
! 		string signo = signature.Print();
  
  		if ( GetCallResult( m_mapMethods, signo/*signature*/, callResult ) )
--- 521,525 ----
  	{
  		CallResult callResult;
! 		std::string signo = signature.Print();
  
  		if ( GetCallResult( m_mapMethods, signo/*signature*/, callResult ) )
***************
*** 633,637 ****
  //##############################################################################################################################################
  
! 	CompoundType::CompoundType( const string& strName, const StringVector& vecSuperTypes, OclImplementation::AttributeFactory* pAttributeFactory, OclImplementation::AssociationFactory* pAssociationFactory, OclImplementation::MethodFactory* pMethodFactory, OclImplementation::IteratorFactory* pIteratorFactory, bool bDynamic )
  		: Type( strName, vecSuperTypes, pAttributeFactory, pAssociationFactory, pMethodFactory, bDynamic ), m_pIteratorFactory( pIteratorFactory )
  	{
--- 633,637 ----
  //##############################################################################################################################################
  
! 	CompoundType::CompoundType( const std::string& strName, const StringVector& vecSuperTypes, OclImplementation::AttributeFactory* pAttributeFactory, OclImplementation::AssociationFactory* pAssociationFactory, OclImplementation::MethodFactory* pMethodFactory, OclImplementation::IteratorFactory* pIteratorFactory, bool bDynamic )
  		: Type( strName, vecSuperTypes, pAttributeFactory, pAssociationFactory, pMethodFactory, bDynamic ), m_pIteratorFactory( pIteratorFactory )
  	{
***************
*** 655,659 ****
  		// recursion corrected: terge
  		char signoStr[100];
! 		string signo = signature.Print();
  		itoa(level, signoStr, 10);  
  		signo += signoStr;
--- 655,659 ----
  		// recursion corrected: terge
  		char signoStr[100];
! 		std::string signo = signature.Print();
  		itoa(level, signoStr, 10);  
  		signo += signoStr;

Index: OCLType.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLType.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** OCLType.h	23 Apr 2004 19:10:13 -0000	1.3
--- OCLType.h	13 Oct 2004 15:17:54 -0000	1.4
***************
*** 21,25 ****
  	class TypeManager;
  
! 	typedef vector< Type* > TypeVector;
  
  	union UCallResult
--- 21,25 ----
  	class TypeManager;
  
! 	typedef std::vector< Type* > TypeVector;
  
  	union UCallResult
***************
*** 47,52 ****
  	};
  
! 	typedef map< string , CallResult > CallResultMap;
! 	typedef map< string , TypeResult > TypeResultMap;
  
  //##############################################################################################################################################
--- 47,52 ----
  	};
  
! 	typedef std::map< std::string , CallResult > CallResultMap;
! 	typedef std::map< std::string , TypeResult > TypeResultMap;
  
  //##############################################################################################################################################
***************
*** 82,90 ****
  			void 		ClearGlobals();
  
! 			Type* 		GetType( const string& strName );
  
! 			int 			GetTypeDistance( const string& strName );
! 			int 			IsTypeA( const string& strName1, const string& strName2 );
! 			string 		GetTypeBase( const string& strName1, const string& strName2 );
  			bool 		IsTypeA( const TypeSeq& vecType1, const TypeSeq& vecType2 );
  			TypeSeq 	GetTypeBase( const TypeSeq& vecType1, const TypeSeq& vecType2 );
--- 82,90 ----
  			void 		ClearGlobals();
  
! 			Type* 		GetType( const std::string& strName );
  
! 			int 			GetTypeDistance( const std::string& strName );
! 			int 			IsTypeA( const std::string& strName1, const std::string& strName2 );
! 			std::string 	GetTypeBase( const std::string& strName1, const std::string& strName2 );
  			bool 		IsTypeA( const TypeSeq& vecType1, const TypeSeq& vecType2 );
  			TypeSeq 	GetTypeBase( const TypeSeq& vecType1, const TypeSeq& vecType2 );
***************
*** 96,101 ****
  
  		private :
! 			int 			IsTypeAR( const string& strName1, const string& strName2, int iLevel );
! 			string 		GetTypeBaseR( const string& strName1, const string& strName2 );
  	};
  
--- 96,101 ----
  
  		private :
! 			int 			IsTypeAR( const std::string& strName1, const std::string& strName2, int iLevel );
! 			std::string 	GetTypeBaseR( const std::string& strName1, const std::string& strName2 );
  	};
  
***************
*** 114,118 ****
  		private :
  			bool 											m_bDynamic;
! 			string 											m_strName;
  			StringVector									m_vecSuperTypes;
  			CallResultMap									m_mapAttributes;
--- 114,118 ----
  		private :
  			bool 											m_bDynamic;
! 			std::string 									m_strName;
  			StringVector									m_vecSuperTypes;
  			CallResultMap									m_mapAttributes;
***************
*** 125,133 ****
  
  		public :
! 											Type( const string& strName, const StringVector& vecSuperTypes, OclImplementation::AttributeFactory* pAttributeFactory, OclImplementation::AssociationFactory* pAssociationFactory, OclImplementation::MethodFactory* pMethodFactory, bool bDynamic );
  			virtual 							~Type();
  
  					bool 					IsDynamic() const;
! 					string 					GetName() const;
  					const StringVector& 	GetSuperTypeNames() const;
  			virtual	bool					IsCompound() const;
--- 125,133 ----
  
  		public :
! 											Type( const std::string& strName, const StringVector& vecSuperTypes, OclImplementation::AttributeFactory* pAttributeFactory, OclImplementation::AssociationFactory* pAssociationFactory, OclImplementation::MethodFactory* pMethodFactory, bool bDynamic );
  			virtual 							~Type();
  
  					bool 					IsDynamic() const;
! 					std::string 			GetName() const;
  					const StringVector& 	GetSuperTypeNames() const;
  			virtual	bool					IsCompound() const;
***************
*** 165,169 ****
  
  		public :
! 											CompoundType( const string& strName, const StringVector& vecSuperTypes, OclImplementation::AttributeFactory* pAttributeFactory, OclImplementation::AssociationFactory* pAssociationFactory, OclImplementation::MethodFactory* pMethodFactory, OclImplementation::IteratorFactory* pIteratorFactory, bool bDynamic );
  			virtual 							~CompoundType();
  
--- 165,169 ----
  
  		public :
! 											CompoundType( const std::string& strName, const StringVector& vecSuperTypes, OclImplementation::AttributeFactory* pAttributeFactory, OclImplementation::AssociationFactory* pAssociationFactory, OclImplementation::MethodFactory* pMethodFactory, OclImplementation::IteratorFactory* pIteratorFactory, bool bDynamic );
  			virtual 							~CompoundType();
  

Index: OCLTypeExBasic.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLTypeExBasic.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** OCLTypeExBasic.cpp	13 Sep 2004 14:14:53 -0000	1.17
--- OCLTypeExBasic.cpp	13 Oct 2004 15:17:54 -0000	1.18
***************
*** 83,87 ****
  	void TAny_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 83,87 ----
  	void TAny_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 208,212 ****
  				return;
  			}
! 			if ( iFrom >= strThis.length() ) {
  				ThrowException( "Argument 'from' equals to or is greater than size of string." );
  				return;
--- 208,212 ----
  				return;
  			}
! 			if ( iFrom >= (int) strThis.length() ) {
  				ThrowException( "Argument 'from' equals to or is greater than size of string." );
  				return;
***************
*** 221,229 ****
  				return;
  			}
! 			if ( iTo > strThis.length() ) {
  				ThrowException( "Argument 'to' is greater than size of string." );
  				return;
  			}
! 			string res = strThis.substr( iFrom, iTo-iFrom );
  			SetResult( CREATE_STRING( GetTypeManager(), res ) );
  		}
--- 221,229 ----
  				return;
  			}
! 			if ( iTo > (int) strThis.length() ) {
  				ThrowException( "Argument 'to' is greater than size of string." );
  				return;
  			}
! 			std::string res = strThis.substr( iFrom, iTo-iFrom );
  			SetResult( CREATE_STRING( GetTypeManager(), res ) );
  		}
***************
*** 236,240 ****
  			DECL_STRING( strThis, GetThis() );
  			Trim( strThis );
! 			int i = 0;
  			if (strThis[ i ] == '-'  ||  strThis[ i ] == '+')
  				i++;
--- 236,240 ----
  			DECL_STRING( strThis, GetThis() );
  			Trim( strThis );
! 			unsigned int i = 0;
  			if (strThis[ i ] == '-'  ||  strThis[ i ] == '+')
  				i++;
***************
*** 274,278 ****
  	void TString_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 274,278 ----
  	void TString_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 286,290 ****
  	void TString_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 286,290 ----
  	void TString_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 610,614 ****
  	void TReal_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 610,614 ----
  	void TReal_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 813,817 ****
  	void TInteger_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 813,817 ----
  	void TInteger_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 883,887 ****
  		{
  			DECL_COLLECTION( collThis, GetThis() );
! 			SetResult( CREATE_BOOLEAN( GetTypeManager(), find( collThis.begin(), collThis.end(), GetArgument( 0 ) ) != collThis.end() ) );
  		}
  	};
--- 883,887 ----
  		{
  			DECL_COLLECTION( collThis, GetThis() );
! 			SetResult( CREATE_BOOLEAN( GetTypeManager(), std::find( collThis.begin(), collThis.end(), GetArgument( 0 ) ) != collThis.end() ) );
  		}
  	};
***************
*** 892,896 ****
  		{
  			DECL_COLLECTION( collThis, GetThis() );
! 			SetResult( CREATE_BOOLEAN( GetTypeManager(), find( collThis.begin(), collThis.end(), GetArgument( 0 ) ) == collThis.end() ) );
  		}
  	};
--- 892,896 ----
  		{
  			DECL_COLLECTION( collThis, GetThis() );
! 			SetResult( CREATE_BOOLEAN( GetTypeManager(), std::find( collThis.begin(), collThis.end(), GetArgument( 0 ) ) == collThis.end() ) );
  		}
  	};
***************
*** 902,906 ****
  			DECL_COLLECTION( collThis, GetThis() );
  			long lResult = 0;
! 			for ( int i = 0 ; i < collThis.size() ; i++ )
  				if ( collThis[ i ] == GetArgument( 0 ) )
  					lResult++;
--- 902,906 ----
  			DECL_COLLECTION( collThis, GetThis() );
  			long lResult = 0;
! 			for ( unsigned int i = 0 ; i < collThis.size() ; i++ )
  				if ( collThis[ i ] == GetArgument( 0 ) )
  					lResult++;
***************
*** 916,920 ****
  			DECL_ITERATOR( spIterator, GetArgument( 0 ) );
  			while ( spIterator->HasNext() ) {
! 				OclMeta::ObjectVector::iterator i = find( collThis.begin(), collThis.end(), spIterator->GetNext() );
  				if ( i == collThis.end() ) {
  					SetResult( CREATE_BOOLEAN( GetTypeManager(), false ) );
--- 916,920 ----
  			DECL_ITERATOR( spIterator, GetArgument( 0 ) );
  			while ( spIterator->HasNext() ) {
! 				OclMeta::ObjectVector::iterator i = std::find( collThis.begin(), collThis.end(), spIterator->GetNext() );
  				if ( i == collThis.end() ) {
  					SetResult( CREATE_BOOLEAN( GetTypeManager(), false ) );
***************
*** 934,938 ****
  			DECL_ITERATOR( spIterator, GetArgument( 0 ) );
  			while ( spIterator->HasNext() )
! 				if ( find( collThis.begin(), collThis.end(), spIterator->GetNext() ) != collThis.end() ) {
  					SetResult( CREATE_BOOLEAN( GetTypeManager(), false ) );
  					return;
--- 934,938 ----
  			DECL_ITERATOR( spIterator, GetArgument( 0 ) );
  			while ( spIterator->HasNext() )
! 				if ( std::find( collThis.begin(), collThis.end(), spIterator->GetNext() ) != collThis.end() ) {
  					SetResult( CREATE_BOOLEAN( GetTypeManager(), false ) );
  					return;
***************
*** 1077,1081 ****
  		{
  			if ( bResult ) {
! 				if ( find( vecObjects.begin(), vecObjects.end(), GetSubResult() ) != vecObjects.end() ) {
  					bResult = false;
  					SetDoStop( true );
--- 1077,1081 ----
  		{
  			if ( bResult ) {
! 				if ( std::find( vecObjects.begin(), vecObjects.end(), GetSubResult() ) != vecObjects.end() ) {
  					bResult = false;
  					SetDoStop( true );
***************
*** 1166,1176 ****
  	{
  		private :
! 			typedef map<long, OclMeta::Object> TintMap;
  			TintMap intMap;
  			bool isInt;
! 			typedef map<double, OclMeta::Object> TrealMap;
  			TrealMap realMap;
  			bool isReal;
! 			typedef map<string, OclMeta::Object> TstringMap;
  			TstringMap stringMap;
  			bool isString;
--- 1166,1176 ----
  	{
  		private :
! 			typedef std::map<long, OclMeta::Object> TintMap;
  			TintMap intMap;
  			bool isInt;
! 			typedef std::map<double, OclMeta::Object> TrealMap;
  			TrealMap realMap;
  			bool isReal;
! 			typedef std::map<std::string, OclMeta::Object> TstringMap;
  			TstringMap stringMap;
  			bool isString;
***************
*** 1197,1201 ****
  			}
  			OclMeta::Object store = GetSubOriResult();
! 			string keytype = keyObj.GetTypeName();
  
  			if (keytype == "ocl::Integer")
--- 1197,1201 ----
  			}
  			OclMeta::Object store = GetSubOriResult();
! 			std::string keytype = keyObj.GetTypeName();
  
  			if (keytype == "ocl::Integer")
***************
*** 1261,1265 ****
  	void TCollection_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 1261,1265 ----
  	void TCollection_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 1273,1277 ****
  	void TCollection_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 1273,1277 ----
  	void TCollection_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 1358,1362 ****
  	void TCollection_IteratorFactory::GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 1358,1362 ----
  	void TCollection_IteratorFactory::GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 1414,1418 ****
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				if ( find( collThis.begin(), collThis.end(), object ) == collThis.end() )
  					collThis.push_back( object );
  			}
--- 1414,1418 ----
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				if ( std::find( collThis.begin(), collThis.end(), object ) == collThis.end() )
  					collThis.push_back( object );
  			}
***************
*** 1442,1447 ****
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				if ( find( collThis.begin(), collThis.end(), object ) != collThis.end() )
! 					if ( find( collOut.begin(), collOut.end(), object ) == collOut.end() ) // unnecessary
  						collOut.push_back( object );
  			}
--- 1442,1447 ----
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				if ( std::find( collThis.begin(), collThis.end(), object ) != collThis.end() )
! 					if ( std::find( collOut.begin(), collOut.end(), object ) == collOut.end() ) // unnecessary
  						collOut.push_back( object );
  			}
***************
*** 1457,1461 ****
  			DECL_ITERATOR( spIterator, GetArgument( 1 ) );
  			while ( spIterator->HasNext() ) {
! 				OclMeta::ObjectVector::iterator i =  find( collThis.begin(), collThis.end(), spIterator->GetNext() );
  				if ( i != collThis.end() )
  					collThis.erase( i );
--- 1457,1461 ----
  			DECL_ITERATOR( spIterator, GetArgument( 1 ) );
  			while ( spIterator->HasNext() ) {
! 				OclMeta::ObjectVector::iterator i =  std::find( collThis.begin(), collThis.end(), spIterator->GetNext() );
  				if ( i != collThis.end() )
  					collThis.erase( i );
***************
*** 1475,1485 ****
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				if ( find( collThis.begin(), collThis.end(), object ) == collThis.end() )
  					collOut.push_back( object );
  				else
  					collTemp.push_back( object );
  			}
! 			for ( int i = 0 ; i < collThis.size() ; i++ )
! 				if ( find( collTemp.begin(), collTemp.end(), collThis[ i ] ) == collTemp.end() )
  					collOut.push_back( collThis[ i ] );
  			SetResult( CREATE_SET( GetTypeManager(), collOut ) );
--- 1475,1485 ----
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				if ( std::find( collThis.begin(), collThis.end(), object ) == collThis.end() )
  					collOut.push_back( object );
  				else
  					collTemp.push_back( object );
  			}
! 			for ( unsigned int i = 0 ; i < collThis.size() ; i++ )
! 				if ( std::find( collTemp.begin(), collTemp.end(), collThis[ i ] ) == collTemp.end() )
  					collOut.push_back( collThis[ i ] );
  			SetResult( CREATE_SET( GetTypeManager(), collOut ) );
***************
*** 1495,1499 ****
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				if ( find( collThis.begin(), collThis.end(), object ) == collThis.end() )
  					collThis.push_back( object );
  			}
--- 1495,1499 ----
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				if ( std::find( collThis.begin(), collThis.end(), object ) == collThis.end() )
  					collThis.push_back( object );
  			}
***************
*** 1523,1528 ****
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				if ( ! ( find( collThis.begin(), collThis.end(), object ) == collThis.end() ) )
! 					if ( find( collOut.begin(), collOut.end(), object ) == collOut.end() )
  						collOut.push_back( object );
  			}
--- 1523,1528 ----
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				if ( ! ( std::find( collThis.begin(), collThis.end(), object ) == collThis.end() ) )
! 					if ( std::find( collOut.begin(), collOut.end(), object ) == collOut.end() )
  						collOut.push_back( object );
  			}
***************
*** 1538,1542 ****
  			DECL_ITERATOR( spIterator, GetArgument( 0 ) );
  			while ( spIterator->HasNext() ) {
! 				OclMeta::ObjectVector::iterator i =  find( collThis.begin(), collThis.end(), spIterator->GetNext() );
  				if ( i != collThis.end() )
  					collThis.erase( i );
--- 1538,1542 ----
  			DECL_ITERATOR( spIterator, GetArgument( 0 ) );
  			while ( spIterator->HasNext() ) {
! 				OclMeta::ObjectVector::iterator i =  std::find( collThis.begin(), collThis.end(), spIterator->GetNext() );
  				if ( i != collThis.end() )
  					collThis.erase( i );
***************
*** 1556,1566 ****
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				if ( find( collThis.begin(), collThis.end(), object ) == collThis.end() )
  					collOut.push_back( object );
  				else
  					collTemp.push_back( object );
  			}
! 			for ( int i = 0 ; i < collThis.size() ; i++ )
! 				if ( find( collTemp.begin(), collTemp.end(), collThis[ i ] ) == collTemp.end() )
  					collOut.push_back( collThis[ i ] );
  			SetResult( CREATE_SET( GetTypeManager(), collOut ) );
--- 1556,1566 ----
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				if ( std::find( collThis.begin(), collThis.end(), object ) == collThis.end() )
  					collOut.push_back( object );
  				else
  					collTemp.push_back( object );
  			}
! 			for ( unsigned int i = 0 ; i < collThis.size() ; i++ )
! 				if ( std::find( collTemp.begin(), collTemp.end(), collThis[ i ] ) == collTemp.end() )
  					collOut.push_back( collThis[ i ] );
  			SetResult( CREATE_SET( GetTypeManager(), collOut ) );
***************
*** 1573,1577 ****
  		{
  			DECL_COLLECTION( collThis, GetThis() );
! 			if ( find( collThis.begin(), collThis.end(), GetArgument( 0 ) ) == collThis.end() )
  				collThis.push_back( GetArgument( 0 ) );
  			SetResult( CREATE_SET( GetTypeManager(), collThis ) );
--- 1573,1577 ----
  		{
  			DECL_COLLECTION( collThis, GetThis() );
! 			if ( std::find( collThis.begin(), collThis.end(), GetArgument( 0 ) ) == collThis.end() )
  				collThis.push_back( GetArgument( 0 ) );
  			SetResult( CREATE_SET( GetTypeManager(), collThis ) );
***************
*** 1584,1588 ****
  		{
  			DECL_COLLECTION( collThis, GetThis() );
! 			OclMeta::ObjectVector::iterator i = find( collThis.begin(), collThis.end(), GetArgument( 0 ) );
  			if ( i  != collThis.end() )
  				collThis.erase( i );
--- 1584,1588 ----
  		{
  			DECL_COLLECTION( collThis, GetThis() );
! 			OclMeta::ObjectVector::iterator i = std::find( collThis.begin(), collThis.end(), GetArgument( 0 ) );
  			if ( i  != collThis.end() )
  				collThis.erase( i );
***************
*** 1606,1610 ****
  			if ( ! GetSubResult().IsUndefined() ) {
  				DECL_BOOLEAN( bArg, GetSubResult() );
! 				if ( bArg && find( m_vecSelecteds.begin(), m_vecSelecteds.end(), GetArgument( 0 ) ) == m_vecSelecteds.end() )
  					m_vecSelecteds.push_back( GetArgument( 0 ) );
  			}
--- 1606,1610 ----
  			if ( ! GetSubResult().IsUndefined() ) {
  				DECL_BOOLEAN( bArg, GetSubResult() );
! 				if ( bArg && std::find( m_vecSelecteds.begin(), m_vecSelecteds.end(), GetArgument( 0 ) ) == m_vecSelecteds.end() )
  					m_vecSelecteds.push_back( GetArgument( 0 ) );
  			}
***************
*** 1638,1642 ****
  			if ( ! GetSubResult().IsUndefined() ) {
  				DECL_BOOLEAN( bArg, GetSubResult() );
! 				if ( ! bArg && find( m_vecSelecteds.begin(), m_vecSelecteds.end(), GetArgument( 0 ) ) == m_vecSelecteds.end() )
  					m_vecSelecteds.push_back( GetArgument( 0 ) );
  			}
--- 1638,1642 ----
  			if ( ! GetSubResult().IsUndefined() ) {
  				DECL_BOOLEAN( bArg, GetSubResult() );
! 				if ( ! bArg && std::find( m_vecSelecteds.begin(), m_vecSelecteds.end(), GetArgument( 0 ) ) == m_vecSelecteds.end() )
  					m_vecSelecteds.push_back( GetArgument( 0 ) );
  			}
***************
*** 1685,1689 ****
  	void TSet_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 1685,1689 ----
  	void TSet_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 1755,1759 ****
  	void TSet_IteratorFactory::GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 1755,1759 ----
  	void TSet_IteratorFactory::GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 1792,1796 ****
  			DECL_COLLECTION( collThis, GetArgument( 0 ) );
  			DECL_COLLECTION( collArg, GetArgument( 1 ) );
! 			for ( int i = 0 ; i < collArg.size() ; i++ )
  				collThis.push_back( collArg[ i ] );
  			SetResult( CREATE_SEQUENCE( GetTypeManager(), collThis) );
--- 1792,1796 ----
  			DECL_COLLECTION( collThis, GetArgument( 0 ) );
  			DECL_COLLECTION( collArg, GetArgument( 1 ) );
! 			for ( unsigned int i = 0 ; i < collArg.size() ; i++ )
  				collThis.push_back( collArg[ i ] );
  			SetResult( CREATE_SEQUENCE( GetTypeManager(), collThis) );
***************
*** 1804,1808 ****
  			DECL_COLLECTION( collThis, GetThis() );
  			DECL_COLLECTION( collArg, GetArgument( 0 ) );
! 			for ( int i = 0 ; i < collArg.size() ; i++ )
  				collThis.push_back( collArg[ i ] );
  			SetResult( CREATE_SEQUENCE( GetTypeManager(), collThis) );
--- 1804,1808 ----
  			DECL_COLLECTION( collThis, GetThis() );
  			DECL_COLLECTION( collArg, GetArgument( 0 ) );
! 			for ( unsigned int i = 0 ; i < collArg.size() ; i++ )
  				collThis.push_back( collArg[ i ] );
  			SetResult( CREATE_SEQUENCE( GetTypeManager(), collThis) );
***************
*** 1840,1844 ****
  				return;
  			}
! 			if ( lFrom >= collThis.size() ) {
  				ThrowException( "Argument 'from' equals to or is greater than size of Sequence." );
  				return;
--- 1840,1844 ----
  				return;
  			}
! 			if ( lFrom >= (int) collThis.size() ) {
  				ThrowException( "Argument 'from' equals to or is greater than size of Sequence." );
  				return;
***************
*** 1846,1850 ****
  			if ( GetArgumentCount() == 1 ) {
  				OclMeta::ObjectVector collOut;
! 				for ( long i = lFrom ; i < collThis.size() ; i++ )
  					collOut.push_back( collThis[ i ] );
  				SetResult( CREATE_SEQUENCE( GetTypeManager(), collOut ) );
--- 1846,1850 ----
  			if ( GetArgumentCount() == 1 ) {
  				OclMeta::ObjectVector collOut;
! 				for ( unsigned long i = lFrom ; i < collThis.size() ; i++ )
  					collOut.push_back( collThis[ i ] );
  				SetResult( CREATE_SEQUENCE( GetTypeManager(), collOut ) );
***************
*** 1856,1860 ****
  				return;
  			}
! 			if ( lTo >= collThis.size() ) {
  				ThrowException( "Argument 'to' equals to or is greater than size of Sequence." );
  				return;
--- 1856,1860 ----
  				return;
  			}
! 			if ( lTo >= (int) collThis.size() ) {
  				ThrowException( "Argument 'to' equals to or is greater than size of Sequence." );
  				return;
***************
*** 1877,1881 ****
  				return;
  			}
! 			if ( lAt >= collThis.size() ) {
  				ThrowException( "Argument 'from' equals to or is greater than size of Sequence." );
  				return;
--- 1877,1881 ----
  				return;
  			}
! 			if ( lAt >= (int) collThis.size() ) {
  				ThrowException( "Argument 'from' equals to or is greater than size of Sequence." );
  				return;
***************
*** 1893,1897 ****
  			if ( lAt < 0 )
  				lAt = 0;
! 			if ( lAt >= collThis.size() ) {
  				collThis.push_back( GetArgument( 1 ) );
  				SetResult( CREATE_SEQUENCE( GetTypeManager(), collThis ) );
--- 1893,1897 ----
  			if ( lAt < 0 )
  				lAt = 0;
! 			if ( lAt >= (int) collThis.size() ) {
  				collThis.push_back( GetArgument( 1 ) );
  				SetResult( CREATE_SEQUENCE( GetTypeManager(), collThis ) );
***************
*** 1899,1903 ****
  			}
  			OclMeta::ObjectVector vecOut;
! 			for ( int i = 0 ; i < collThis.size() ; i++ ) {
  				if ( i == lAt )
  					vecOut.push_back( GetArgument( 1 ) );
--- 1899,1903 ----
  			}
  			OclMeta::ObjectVector vecOut;
! 			for ( int i = 0 ; i < (int) collThis.size() ; i++ ) {
  				if ( i == lAt )
  					vecOut.push_back( GetArgument( 1 ) );
***************
*** 1913,1917 ****
  		{
  			DECL_COLLECTION( collThis, GetThis() );
! 			for ( int i = 0 ; i < collThis.size() ; i ++ )
  				if ( collThis[ i ] == GetArgument( 0 ) ) {
  					SetResult( CREATE_INTEGER( GetTypeManager(), i ) );
--- 1913,1917 ----
  		{
  			DECL_COLLECTION( collThis, GetThis() );
! 			for ( int i = 0 ; i < (int) collThis.size() ; i ++ )
  				if ( collThis[ i ] == GetArgument( 0 ) ) {
  					SetResult( CREATE_INTEGER( GetTypeManager(), i ) );
***************
*** 1966,1970 ****
  			do {
  				bFound = false;
! 				OclMeta::ObjectVector::iterator i = find( collThis.begin(), collThis.end(), GetArgument( 0 ) );
  				if ( i  != collThis.end() ) {
  					collThis.erase( i );
--- 1966,1970 ----
  			do {
  				bFound = false;
! 				OclMeta::ObjectVector::iterator i = std::find( collThis.begin(), collThis.end(), GetArgument( 0 ) );
  				if ( i  != collThis.end() ) {
  					collThis.erase( i );
***************
*** 2070,2074 ****
  	void TSequence_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 2070,2074 ----
  	void TSequence_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 2162,2166 ****
  	void TSequence_IteratorFactory::GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 2162,2166 ----
  	void TSequence_IteratorFactory::GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 2214,2218 ****
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				OclMeta::ObjectVector::iterator i = find( collThis.begin(), collThis.end(), object );
  				if ( i != collThis.end() ) {
  					collOut.push_back( object );
--- 2214,2218 ----
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				OclMeta::ObjectVector::iterator i = std::find( collThis.begin(), collThis.end(), object );
  				if ( i != collThis.end() ) {
  					collOut.push_back( object );
***************
*** 2233,2237 ****
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				OclMeta::ObjectVector::iterator i = find( collThis.begin(), collThis.end(), object );
  				if ( i != collThis.end() ) {
  					collOut.push_back( object );
--- 2233,2237 ----
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				OclMeta::ObjectVector::iterator i = std::find( collThis.begin(), collThis.end(), object );
  				if ( i != collThis.end() ) {
  					collOut.push_back( object );
***************
*** 2265,2269 ****
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				OclMeta::ObjectVector::iterator i = find( collThis.begin(), collThis.end(), object );
  				if ( i != collThis.end() ) {
  					collOut.push_back( object );
--- 2265,2269 ----
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				OclMeta::ObjectVector::iterator i = std::find( collThis.begin(), collThis.end(), object );
  				if ( i != collThis.end() ) {
  					collOut.push_back( object );
***************
*** 2284,2288 ****
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				OclMeta::ObjectVector::iterator i = find( collThis.begin(), collThis.end(), object );
  				if ( i != collThis.end() ) {
  					collOut.push_back( object );
--- 2284,2288 ----
  			while ( spIterator->HasNext() ) {
  				OclMeta::Object object = spIterator->GetNext();
! 				OclMeta::ObjectVector::iterator i = std::find( collThis.begin(), collThis.end(), object );
  				if ( i != collThis.end() ) {
  					collOut.push_back( object );
***************
*** 2312,2316 ****
  			do {
  				bFound = false;
! 				OclMeta::ObjectVector::iterator i = find( collThis.begin(), collThis.end(), GetArgument( 0 ) );
  				if ( i  != collThis.end() ) {
  					collThis.erase( i );
--- 2312,2316 ----
  			do {
  				bFound = false;
! 				OclMeta::ObjectVector::iterator i = std::find( collThis.begin(), collThis.end(), GetArgument( 0 ) );
  				if ( i  != collThis.end() ) {
  					collThis.erase( i );
***************
*** 2416,2420 ****
  	void TBag_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 2416,2420 ----
  	void TBag_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 2470,2474 ****
  	void TBag_IteratorFactory::GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 2470,2474 ----
  	void TBag_IteratorFactory::GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 2533,2537 ****
  				return;
  			}
! 			if ( lFrom >= collThis.size() ) {
  				ThrowException( "Argument 'from' equals to or is greater than size of OrderedSet." );
  				return;
--- 2533,2537 ----
  				return;
  			}
! 			if ( lFrom >= (int) collThis.size() ) {
  				ThrowException( "Argument 'from' equals to or is greater than size of OrderedSet." );
  				return;
***************
*** 2539,2543 ****
  			if ( GetArgumentCount() == 1 ) {
  				OclMeta::ObjectVector collOut;
! 				for ( long i = lFrom ; i < collThis.size() ; i++ )
  					collOut.push_back( collThis[ i ] );
  				SetResult( CREATE_ORDEREDSET( GetTypeManager(), collOut ) );
--- 2539,2543 ----
  			if ( GetArgumentCount() == 1 ) {
  				OclMeta::ObjectVector collOut;
! 				for ( unsigned long i = lFrom ; i < collThis.size() ; i++ )
  					collOut.push_back( collThis[ i ] );
  				SetResult( CREATE_ORDEREDSET( GetTypeManager(), collOut ) );
***************
*** 2549,2553 ****
  				return;
  			}
! 			if ( lTo >= collThis.size() ) {
  				ThrowException( "Argument 'to' equals to or is greater than size of OrderedSet." );
  				return;
--- 2549,2553 ----
  				return;
  			}
! 			if ( lTo >= (int) collThis.size() ) {
  				ThrowException( "Argument 'to' equals to or is greater than size of OrderedSet." );
  				return;
***************
*** 2570,2574 ****
  				return;
  			}
! 			if ( lAt >= collThis.size() ) {
  				ThrowException( "Argument 'from' equals to or is greater than size of OrederedSet." );
  				return;
--- 2570,2574 ----
  				return;
  			}
! 			if ( lAt >= (int) collThis.size() ) {
  				ThrowException( "Argument 'from' equals to or is greater than size of OrederedSet." );
  				return;
***************
*** 2586,2590 ****
  			if ( lAt < 0 )
  				lAt = 0;
! 			if ( lAt >= collThis.size() ) {
  				collThis.push_back( GetArgument( 1 ) );
  				SetResult( CREATE_ORDEREDSET( GetTypeManager(), collThis ) );
--- 2586,2590 ----
  			if ( lAt < 0 )
  				lAt = 0;
! 			if ( lAt >= (int) collThis.size() ) {
  				collThis.push_back( GetArgument( 1 ) );
  				SetResult( CREATE_ORDEREDSET( GetTypeManager(), collThis ) );
***************
*** 2592,2596 ****
  			}
  			OclMeta::ObjectVector vecOut;
! 			for ( int i = 0 ; i < collThis.size() ; i++ ) {
  				if ( i == lAt )
  					vecOut.push_back( GetArgument( 1 ) );
--- 2592,2596 ----
  			}
  			OclMeta::ObjectVector vecOut;
! 			for ( int i = 0 ; i < (int) collThis.size() ; i++ ) {
  				if ( i == lAt )
  					vecOut.push_back( GetArgument( 1 ) );
***************
*** 2606,2610 ****
  		{
  			DECL_COLLECTION( collThis, GetThis() );
! 			for ( int i = 0 ; i < collThis.size() ; i ++ )
  				if ( collThis[ i ] == GetArgument( 0 ) ) {
  					SetResult( CREATE_INTEGER( GetTypeManager(), i ) );
--- 2606,2610 ----
  		{
  			DECL_COLLECTION( collThis, GetThis() );
! 			for ( int i = 0 ; i < (int) collThis.size() ; i ++ )
  				if ( collThis[ i ] == GetArgument( 0 ) ) {
  					SetResult( CREATE_INTEGER( GetTypeManager(), i ) );
***************
*** 2736,2740 ****
  	void TOrderedSet_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 2736,2740 ----
  	void TOrderedSet_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 2805,2809 ****
  	void TOrderedSet_IteratorFactory::GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 2805,2809 ----
  	void TOrderedSet_IteratorFactory::GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 2840,2844 ****
  	void OperatorFactory::GetFeatures( const OclSignature::Operator& signature, OclMeta::OperatorVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
--- 2840,2844 ----
  	void OperatorFactory::GetFeatures( const OclSignature::Operator& signature, OclMeta::OperatorVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
***************
*** 3140,3144 ****
  	void FunctionFactory::GetFeatures( const OclSignature::Function& signature, OclMeta::FunctionVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
--- 3140,3144 ----
  	void FunctionFactory::GetFeatures( const OclSignature::Function& signature, OclMeta::FunctionVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
***************
*** 3219,3223 ****
  	}
  
! 	void TypeFactory::GetTypes( const string& strName, vector<OclMeta::Type*>& vecTypes )
  	{
  		if ( strName == "ocl::Any" || strName == "Any" ) {
--- 3219,3223 ----
  	}
  
! 	void TypeFactory::GetTypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes )
  	{
  		if ( strName == "ocl::Any" || strName == "Any" ) {

Index: OCLTypeExBasic.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLTypeExBasic.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** OCLTypeExBasic.h	13 Sep 2004 14:14:53 -0000	1.3
--- OCLTypeExBasic.h	13 Oct 2004 15:17:54 -0000	1.4
***************
*** 206,210 ****
  	{
  		public :
! 			virtual void GetTypes( const string& strName, vector<OclMeta::Type*>& vecTypes );
  	};
  
--- 206,210 ----
  	{
  		public :
! 			virtual void GetTypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes );
  	};
  

Index: OCLTypeExGMECM.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLTypeExGMECM.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** OCLTypeExGMECM.cpp	13 Sep 2004 14:14:53 -0000	1.27
--- OCLTypeExGMECM.cpp	13 Oct 2004 15:17:54 -0000	1.28
***************
*** 25,31 ****
  	{
  		protected :
! 			string GetKind( int iArgumentPos, const string& strMetaKind, bool bCanBeEmpty = false )
  			{
! 				string strKind;
  				if ( iArgumentPos != -1 && GetArgumentCount() > iArgumentPos ) {
  					if ( GetArgument( iArgumentPos ).GetTypeName() == "ocl::String" ) {
--- 25,31 ----
  	{
  		protected :
! 			std::string GetKind( int iArgumentPos, const std::string& strMetaKind, bool bCanBeEmpty = false )
  			{
! 				std::string strKind;
  				if ( iArgumentPos != -1 && GetArgumentCount() > iArgumentPos ) {
  					if ( GetArgument( iArgumentPos ).GetTypeName() == "ocl::String" ) {
***************
*** 62,66 ****
  			DECL_STRING( strThis, GetThis() );
  			Trim( strThis );
! 			for ( int i = 0 ; i < strThis.length() ; i ++ )
  				if ( strThis[ i ] < '0' || strThis[ i ] > '9' )
  					ThrowException( "String cannot be converted to ocl::Integer." );
--- 62,66 ----
  			DECL_STRING( strThis, GetThis() );
  			Trim( strThis );
! 			for ( unsigned int i = 0 ; i < strThis.length() ; i ++ )
  				if ( strThis[ i ] < '0' || strThis[ i ] > '9' )
  					ThrowException( "String cannot be converted to ocl::Integer." );
***************
*** 111,115 ****
  		((OclBasic::TString_MethodFactory) *this ).GetFeatures( signature, vecFeatures );
  
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		TS vecType;
--- 111,115 ----
  		((OclBasic::TString_MethodFactory) *this ).GetFeatures( signature, vecFeatures );
  
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		TS vecType;
***************
*** 175,179 ****
  		((OclBasic::TCollection_MethodFactory) *this ).GetFeatures( signature, vecFeatures );
  
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		TS vecType;
--- 175,179 ----
  		((OclBasic::TCollection_MethodFactory) *this ).GetFeatures( signature, vecFeatures );
  
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		TS vecType;
***************
*** 219,223 ****
  			if ( ! spThis.p )
  				ThrowException( "Object is null." );
! 			string strKind = GetKind( 0, "gme::Object" );
  
  			OclCommonEx::ObjectVector vecObjects;
--- 219,223 ----
  			if ( ! spThis.p )
  				ThrowException( "Object is null." );
! 			std::string strKind = GetKind( 0, "gme::Object" );
  
  			OclCommonEx::ObjectVector vecObjects;
***************
*** 225,229 ****
  
  			OclMeta::ObjectVector setOut;
! 			for ( int i = 0 ; i < vecObjects.size() ; i++ )
  				setOut.push_back( CREATE_GMEOBJECT( GetTypeManager(), vecObjects[ i ].p ) );
  
--- 225,229 ----
  
  			OclMeta::ObjectVector setOut;
! 			for ( unsigned int i = 0 ; i < vecObjects.size() ; i++ )
  				setOut.push_back( CREATE_GMEOBJECT( GetTypeManager(), vecObjects[ i ].p ) );
  
***************
*** 247,251 ****
  	void TProject_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 247,251 ----
  	void TProject_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 259,263 ****
  	void TProject_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 259,263 ----
  	void TProject_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 385,389 ****
  	void TObject_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 385,389 ----
  	void TObject_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 409,413 ****
  	void TObject_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 409,413 ----
  	void TObject_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 539,546 ****
  	{
  		private :
! 			string m_strObjType;
  
  		public :
! 			TFolder_Models_Atoms( const string& strObjType )
  				: m_strObjType( strObjType )
  			{
--- 539,546 ----
  	{
  		private :
! 			std::string m_strObjType;
  
  		public :
! 			TFolder_Models_Atoms( const std::string& strObjType )
  				: m_strObjType( strObjType )
  			{
***************
*** 552,556 ****
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				string strKind = GetKind( 0, ( m_strObjType == "OBJTYPE_MODEL" ) ? "gme::Model" : "gme::Atom" );
  
  				CComPtr<IMgaProject> spProject;
--- 552,556 ----
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				std::string strKind = GetKind( 0, ( m_strObjType == "OBJTYPE_MODEL" ) ? "gme::Model" : "gme::Atom" );
  
  				CComPtr<IMgaProject> spProject;
***************
*** 576,580 ****
  	void TFolder_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
--- 576,580 ----
  	void TFolder_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
***************
*** 691,695 ****
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
--- 691,695 ----
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				std::string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
***************
*** 697,701 ****
  						ThrowException( "Role cannot be empty. Use gme::FCO::connectedFCOs( ocl::Type ) instead." );
  				}
! 				string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				OclMeta::ObjectVector setOut;
--- 697,701 ----
  						ThrowException( "Role cannot be empty. Use gme::FCO::connectedFCOs( ocl::Type ) instead." );
  				}
! 				std::string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				OclMeta::ObjectVector setOut;
***************
*** 740,744 ****
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
--- 740,744 ----
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				std::string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
***************
*** 746,750 ****
  						ThrowException( "Role cannot be empty. Use gme::FCO::bagConnectedFCOs( ocl::Type ) instead." );
  				}
! 				string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				OclMeta::ObjectVector setOut;
--- 746,750 ----
  						ThrowException( "Role cannot be empty. Use gme::FCO::bagConnectedFCOs( ocl::Type ) instead." );
  				}
! 				std::string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				OclMeta::ObjectVector setOut;
***************
*** 791,795 ****
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
--- 791,795 ----
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				std::string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
***************
*** 797,806 ****
  						ThrowException( "Role cannot be empty. Use gme::FCO::reverseConnectedFCOs( ocl::Type ) instead." );
  				}
! 				string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				OclCommonEx::FCOVector vecFCOs;
  				OclCommonEx::GetAssociationEnds( spThis, strRole, strKind, vecFCOs );
  				OclMeta::ObjectVector setOut;
! 				for ( int i = 0 ; i < vecFCOs.size() ; i++ )
  					setOut.push_back( CREATE_GMEOBJECT( GetTypeManager(), CComPtr<IMgaFCO>( vecFCOs[ i ].p ) ) );
  				SetResult( CREATE_SET( GetTypeManager(), setOut ) );
--- 797,806 ----
  						ThrowException( "Role cannot be empty. Use gme::FCO::reverseConnectedFCOs( ocl::Type ) instead." );
  				}
! 				std::string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				OclCommonEx::FCOVector vecFCOs;
  				OclCommonEx::GetAssociationEnds( spThis, strRole, strKind, vecFCOs );
  				OclMeta::ObjectVector setOut;
! 				for ( unsigned int i = 0 ; i < vecFCOs.size() ; i++ )
  					setOut.push_back( CREATE_GMEOBJECT( GetTypeManager(), CComPtr<IMgaFCO>( vecFCOs[ i ].p ) ) );
  				SetResult( CREATE_SET( GetTypeManager(), setOut ) );
***************
*** 824,828 ****
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
--- 824,828 ----
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				std::string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
***************
*** 830,834 ****
  						ThrowException( "Role cannot be empty. Use gme::FCO::bagReverseConnectedFCOs( ocl::Type ) instead." );
  				}
! 				string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				OclMeta::ObjectVector setOut;
--- 830,834 ----
  						ThrowException( "Role cannot be empty. Use gme::FCO::bagReverseConnectedFCOs( ocl::Type ) instead." );
  				}
! 				std::string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				OclMeta::ObjectVector setOut;
***************
*** 880,884 ****
  				if ( ! spPeer.p )
  					ThrowException( "Argument is null." );
! 				string strRole;
  				if ( m_iKindPos != 1 && GetArgumentCount() > 1 ) {
  					DECL_STRING2( strRole, GetArgument( 1 ) );
--- 880,884 ----
  				if ( ! spPeer.p )
  					ThrowException( "Argument is null." );
! 				std::string strRole;
  				if ( m_iKindPos != 1 && GetArgumentCount() > 1 ) {
  					DECL_STRING2( strRole, GetArgument( 1 ) );
***************
*** 886,890 ****
  						ThrowException( "Role cannot be empty. Use gme::FCO::isConnectedTo( gme::FCO, ocl::Type ) instead." );
  				}
! 				string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				CComPtr<IMgaConnPoints> spStartCPs;
--- 886,890 ----
  						ThrowException( "Role cannot be empty. Use gme::FCO::isConnectedTo( gme::FCO, ocl::Type ) instead." );
  				}
! 				std::string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				CComPtr<IMgaConnPoints> spStartCPs;
***************
*** 930,934 ****
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
--- 930,934 ----
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				std::string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
***************
*** 936,940 ****
  						ThrowException( "Role cannot be empty. Use gme::FCO::attachingConnPoints( ocl::Type ) instead." );
  				}
! 				string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				OclMeta::ObjectVector setOut;
--- 936,940 ----
  						ThrowException( "Role cannot be empty. Use gme::FCO::attachingConnPoints( ocl::Type ) instead." );
  				}
! 				std::string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				OclMeta::ObjectVector setOut;
***************
*** 972,976 ****
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
--- 972,976 ----
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				std::string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
***************
*** 978,982 ****
  						ThrowException( "Role cannot be empty. Use gme::FCO::attachingConnections( ocl::Type ) instead." );
  				}
! 				string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				OclMeta::ObjectVector setOut;
--- 978,982 ----
  						ThrowException( "Role cannot be empty. Use gme::FCO::attachingConnections( ocl::Type ) instead." );
  				}
! 				std::string strKind = GetKind( m_iKindPos, "gme::Connection" );
  
  				OclMeta::ObjectVector setOut;
***************
*** 1005,1009 ****
  			if ( ! spThis.p )
  				ThrowException( "Object is null." );
! 			string strKind = GetKind( 0, "gme::Reference" );
  
  			OclMeta::ObjectVector setOut;
--- 1005,1009 ----
  			if ( ! spThis.p )
  				ThrowException( "Object is null." );
! 			std::string strKind = GetKind( 0, "gme::Reference" );
  
  			OclMeta::ObjectVector setOut;
***************
*** 1027,1031 ****
  			if ( ! spThis.p )
  				ThrowException( "Object is null." );
! 			string strKind = GetKind( 0, "gme::Set" );
  
  			OclMeta::ObjectVector setOut;
--- 1027,1031 ----
  			if ( ! spThis.p )
  				ThrowException( "Object is null." );
! 			std::string strKind = GetKind( 0, "gme::Set" );
  
  			OclMeta::ObjectVector setOut;
***************
*** 1234,1238 ****
  	void TFCO_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 1234,1238 ----
  	void TFCO_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 1246,1250 ****
  	void TFCO_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
--- 1246,1250 ----
  	void TFCO_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
***************
*** 1542,1546 ****
  			if ( ! spThis.p )
  				ThrowException( "Object is null." );
! 			string strRole;
  			if ( GetArgumentCount() > 0 ) {
  				DECL_STRING2( strRole, GetArgument( 0 ) );
--- 1542,1546 ----
  			if ( ! spThis.p )
  				ThrowException( "Object is null." );
! 			std::string strRole;
  			if ( GetArgumentCount() > 0 ) {
  				DECL_STRING2( strRole, GetArgument( 0 ) );
***************
*** 1587,1591 ****
  	void TConnection_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 1587,1591 ----
  	void TConnection_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 1622,1626 ****
  			if ( ! spThis.p )
  				ThrowException( "Object is null." );
! 			string strKind = GetKind( 0, "gme::Connection" );
  
  			OclMeta::ObjectVector setOut;
--- 1622,1626 ----
  			if ( ! spThis.p )
  				ThrowException( "Object is null." );
! 			std::string strKind = GetKind( 0, "gme::Connection" );
  
  			OclMeta::ObjectVector setOut;
***************
*** 1657,1661 ****
  	void TReference_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
--- 1657,1661 ----
  	void TReference_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
***************
*** 1692,1699 ****
  	{
  		private :
! 			string m_strObjType;
  
  		public :
! 			TModel_Models_Atoms( const string& strObjType )
  				: m_strObjType( strObjType )
  			{
--- 1692,1699 ----
  	{
  		private :
! 			std::string m_strObjType;
  
  		public :
! 			TModel_Models_Atoms( const std::string& strObjType )
  				: m_strObjType( strObjType )
  			{
***************
*** 1705,1709 ****
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				string strKind = GetKind( 0, ( m_strObjType == "OBJTYPE_MODEL" ) ? "gme::Model" : "gme::Atom" );
  
  				CComPtr<IMgaProject> spProject;
--- 1705,1709 ----
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				std::string strKind = GetKind( 0, ( m_strObjType == "OBJTYPE_MODEL" ) ? "gme::Model" : "gme::Atom" );
  
  				CComPtr<IMgaProject> spProject;
***************
*** 1744,1748 ****
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
--- 1744,1748 ----
  				if ( ! spThis.p )
  					ThrowException( "Object is null." );
! 				std::string strRole;
  				if ( m_iKindPos != 0 && GetArgumentCount() > 0 ) {
  					DECL_STRING2( strRole, GetArgument( 0 ) );
***************
*** 1750,1754 ****
  						ThrowException( "Role cannot be empty. Use the approriate method without argument." );
  				}
! 				string strKind = GetKind( m_iKindPos, "gme::" + ( ( m_eType == OBJTYPE_NULL ) ? "Object" : OclCommonEx::ObjectTypeToString( m_eType ) ) );
  
  				OclMeta::ObjectVector setOut;
--- 1750,1754 ----
  						ThrowException( "Role cannot be empty. Use the approriate method without argument." );
  				}
! 				std::string strKind = GetKind( m_iKindPos, "gme::" + ( ( m_eType == OBJTYPE_NULL ) ? "Object" : OclCommonEx::ObjectTypeToString( m_eType ) ) );
  
  				OclMeta::ObjectVector setOut;
***************
*** 1768,1772 ****
  	void TModel_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 1768,1772 ----
  	void TModel_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 1935,1939 ****
  	void TSet_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 1935,1939 ----
  	void TSet_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 2052,2056 ****
  	void TConnectionPoint_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 2052,2056 ----
  	void TConnectionPoint_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 2064,2068 ****
  	void TConnectionPoint_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 2064,2068 ----
  	void TConnectionPoint_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 2111,2118 ****
  	{
  		private :
! 			string 	m_strName;
  
  		public :
! 			FCODerived_Attribute( const string strName )
  				: m_strName( strName )
  			{
--- 2111,2118 ----
  	{
  		private :
! 			std::string 	m_strName;
  
  		public :
! 			FCODerived_Attribute( const std::string strName )
  				: m_strName( strName )
  			{
***************
*** 2170,2174 ****
  				attval_enum eType;
  				COMTHROW( MGACOLL_ITER->get_ValueType( &eType ) );
! 				string strReturnType;
  				switch ( eType ) {
  					case ATTVAL_STRING 		: strReturnType = "ocl::String"; break;
--- 2170,2174 ----
  				attval_enum eType;
  				COMTHROW( MGACOLL_ITER->get_ValueType( &eType ) );
! 				std::string strReturnType;
  				switch ( eType ) {
  					case ATTVAL_STRING 		: strReturnType = "ocl::String"; break;
***************
*** 2195,2201 ****
  	}
  
! 	void TypeFactory::GetTypes( const string& strName, vector<OclMeta::Type*>& vecTypes )
  	{
! 		bool bHasNamespace = strName.find( "::" ) != string::npos;
  
  		GetDynamicTypes( strName, vecTypes );
--- 2195,2201 ----
  	}
  
! 	void TypeFactory::GetTypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes )
  	{
! 		bool bHasNamespace = strName.find( "::" ) != std::string::npos;
  
  		GetDynamicTypes( strName, vecTypes );
***************
*** 2293,2297 ****
  	}
  
! 	void TypeFactory::GetStereotypes( const string& strName, vector<OclMeta::Type*>& vecTypes )
  	{
  		if ( strName == "gme::Object" || strName == "Object" ) {
--- 2293,2297 ----
  	}
  
! 	void TypeFactory::GetStereotypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes )
  	{
  		if ( strName == "gme::Object" || strName == "Object" ) {
***************
*** 2366,2374 ****
  	}
  
! 	void TypeFactory::GetDynamicTypes( const string& strName, vector<OclMeta::Type*>& vecTypes )
  	{
  		int iPos = strName.find( "::" );
! 		string strNS = ( iPos == string::npos ) ? "" : strName.substr( 0, iPos );
! 		string strN = ( iPos == string::npos ) ? strName : strName.substr( iPos + 2 );
  		bool bLookUpInMeta = strNS == "meta" || strNS.empty();
  		if ( bLookUpInMeta ) {
--- 2366,2374 ----
  	}
  
! 	void TypeFactory::GetDynamicTypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes )
  	{
  		int iPos = strName.find( "::" );
! 		std::string strNS = ( iPos == std::string::npos ) ? "" : strName.substr( 0, iPos );
! 		std::string strN = ( iPos == std::string::npos ) ? strName : strName.substr( iPos + 2 );
  		bool bLookUpInMeta = strNS == "meta" || strNS.empty();
  		if ( bLookUpInMeta ) {
***************
*** 2377,2384 ****
  			COMTHROW( m_spProject->get_RootMeta( &spMetaProject ) );
  			OclCommonEx::GetMetaObjects( spMetaProject, strN, OBJTYPE_NULL, vecMetas );
! 			for ( int i = 0 ; i < vecMetas.size() ; i++ ) {
  				objtype_enum eType = OclCommonEx::GetObjectType( vecMetas[ i ].p );
! 				string strSuperType = "gme::" + OclCommonEx::ObjectTypeToString( eType );
! 				string strType = "meta::" + OclCommonEx::GetObjectName( vecMetas[ i ].p );
  				CComQIPtr<IMgaMetaFCO> spMetaFCO = vecMetas[ i ].p;
  				vecTypes.push_back( new OclMeta::Type( strType, StringVector( 1, strSuperType ), ( ! spMetaFCO.p ) ? new OclImplementation::AttributeFactory() : new TFCODerived_AttributeFactory( spMetaFCO.p ), new OclImplementation::AssociationFactory(), new OclImplementation::MethodFactory(), false ) );
--- 2377,2384 ----
  			COMTHROW( m_spProject->get_RootMeta( &spMetaProject ) );
  			OclCommonEx::GetMetaObjects( spMetaProject, strN, OBJTYPE_NULL, vecMetas );
! 			for ( unsigned int i = 0 ; i < vecMetas.size() ; i++ ) {
  				objtype_enum eType = OclCommonEx::GetObjectType( vecMetas[ i ].p );
! 				std::string strSuperType = "gme::" + OclCommonEx::ObjectTypeToString( eType );
! 				std::string strType = "meta::" + OclCommonEx::GetObjectName( vecMetas[ i ].p );
  				CComQIPtr<IMgaMetaFCO> spMetaFCO = vecMetas[ i ].p;
  				vecTypes.push_back( new OclMeta::Type( strType, StringVector( 1, strSuperType ), ( ! spMetaFCO.p ) ? new OclImplementation::AttributeFactory() : new TFCODerived_AttributeFactory( spMetaFCO.p ), new OclImplementation::AssociationFactory(), new OclImplementation::MethodFactory(), false ) );

Index: OCLTypeExGMECM.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLTypeExGMECM.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** OCLTypeExGMECM.h	8 Nov 2002 16:57:00 -0000	1.4
--- OCLTypeExGMECM.h	13 Oct 2004 15:17:54 -0000	1.5
***************
*** 230,237 ****
  							TypeFactory( CComPtr<IMgaProject> spProject );
  
! 			virtual  void 	GetTypes( const string& strName, vector<OclMeta::Type*>& vecTypes );
  		private :
! 					void 	GetStereotypes( const string& strName, vector<OclMeta::Type*>& vecTypes );
! 					void 	GetDynamicTypes( const string& strName, vector<OclMeta::Type*>& vecTypes );
  	};
  
--- 230,237 ----
  							TypeFactory( CComPtr<IMgaProject> spProject );
  
! 			virtual  void 	GetTypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes );
  		private :
! 					void 	GetStereotypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes );
! 					void 	GetDynamicTypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes );
  	};
  

Index: OCLTypeExGMEEC.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLTypeExGMEEC.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** OCLTypeExGMEEC.cpp	13 Sep 2004 14:14:53 -0000	1.21
--- OCLTypeExGMEEC.cpp	13 Oct 2004 15:17:54 -0000	1.22
***************
*** 25,29 ****
  		( ( OclBasic::TString_MethodFactory ) *this ).GetFeatures( signature, vecFeatures );
  
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		TS vecType;
--- 25,29 ----
  		( ( OclBasic::TString_MethodFactory ) *this ).GetFeatures( signature, vecFeatures );
  
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		TS vecType;
***************
*** 65,69 ****
  		( ( OclBasic::TCollection_MethodFactory ) *this ).GetFeatures( signature, vecFeatures );
  
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		TS vecType;
--- 65,69 ----
  		( ( OclBasic::TCollection_MethodFactory ) *this ).GetFeatures( signature, vecFeatures );
  
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		TS vecType;
***************
*** 91,95 ****
  	void TProject_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 91,95 ----
  	void TProject_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 102,106 ****
  	void TProject_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 102,106 ----
  	void TProject_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 128,132 ****
  	void TObject_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 128,132 ----
  	void TObject_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 152,156 ****
  	void TObject_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams; TS vecType;
--- 152,156 ----
  	void TObject_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams; TS vecType;
***************
*** 201,205 ****
  	void TFolder_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
--- 201,205 ----
  	void TFolder_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
***************
*** 280,284 ****
  	void TFCO_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 280,284 ----
  	void TFCO_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 292,296 ****
  	void TFCO_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		if ( ( strName == "roleName" ) && iCount == 0 ) {
--- 292,296 ----
  	void TFCO_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		if ( ( strName == "roleName" ) && iCount == 0 ) {
***************
*** 582,586 ****
  	void TConnection_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 582,586 ----
  	void TConnection_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 611,615 ****
  	void TReference_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
--- 611,615 ----
  	void TReference_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
***************
*** 645,649 ****
  	void TModel_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
--- 645,649 ----
  	void TModel_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  
***************
*** 791,795 ****
  	void TSet_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 791,795 ----
  	void TSet_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 812,816 ****
  	void TConnectionPoint_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		TS vecType;
  
--- 812,816 ----
  	void TConnectionPoint_AttributeFactory::GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		TS vecType;
  
***************
*** 824,828 ****
  	void TConnectionPoint_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
--- 824,828 ----
  	void TConnectionPoint_MethodFactory::GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures )
  	{
! 		std::string strName = signature.GetName();
  		int iCount = signature.GetParameterCount();
  		FPV vecParams;
***************
*** 878,882 ****
  	}
  
! 	void TFCODerived_AttributeFactory::GetAttributeObjects( const string& strName, CComPtr<IMgaFCO> spFCO, OclMeta::AttributeVector& vecFeatures, OclCommonEx::FCOVector& vecExamined )
  	{
  		if ( OclCommonEx::ContainsObject( spFCO, vecExamined ) )
--- 878,882 ----
  	}
  
! 	void TFCODerived_AttributeFactory::GetAttributeObjects( const std::string& strName, CComPtr<IMgaFCO> spFCO, OclMeta::AttributeVector& vecFeatures, OclCommonEx::FCOVector& vecExamined )
  	{
  		if ( OclCommonEx::ContainsObject( spFCO, vecExamined ) )
***************
*** 886,893 ****
  		OclCommonEx::FCOVector vecAttributes;
  		OclCommonEx::GetAssociationEnds( spFCO, "dst", "HasAttribute", vecAttributes );
! 		for ( int i = 0 ; i < vecAttributes.size() ; i++ ) {
  			if ( strName == OclCommonEx::GetObjectName( vecAttributes[ i ].p ) ) {
! 				string strKind = OclCommonEx::GetObjectKind( vecAttributes[ i ].p );
! 				string strReturnType;
  				if ( strKind == "EnumAttribute" )
  					strReturnType = "ocl::Enumeration";
--- 886,893 ----
  		OclCommonEx::FCOVector vecAttributes;
  		OclCommonEx::GetAssociationEnds( spFCO, "dst", "HasAttribute", vecAttributes );
! 		for ( unsigned int i = 0 ; i < vecAttributes.size() ; i++ ) {
  			if ( strName == OclCommonEx::GetObjectName( vecAttributes[ i ].p ) ) {
! 				std::string strKind = OclCommonEx::GetObjectKind( vecAttributes[ i ].p );
! 				std::string strReturnType;
  				if ( strKind == "EnumAttribute" )
  					strReturnType = "ocl::Enumeration";
***************
*** 937,943 ****
  	}
  
! 	void TypeFactory::GetTypes( const string& strName, vector<OclMeta::Type*>& vecTypes )
  	{
! 		bool bHasNamespace = strName.find( "::" ) != string::npos;
  
  		GetDynamicTypes( strName, vecTypes );
--- 937,943 ----
  	}
  
! 	void TypeFactory::GetTypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes )
  	{
! 		bool bHasNamespace = strName.find( "::" ) != std::string::npos;
  
  		GetDynamicTypes( strName, vecTypes );
***************
*** 1035,1039 ****
  	}
  
! 	void TypeFactory::GetStereotypes( const string& strName, vector<OclMeta::Type*>& vecTypes )
  	{
  		if ( strName == "gme::Object" || strName == "Object" ) {
--- 1035,1039 ----
  	}
  
! 	void TypeFactory::GetStereotypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes )
  	{
  		if ( strName == "gme::Object" || strName == "Object" ) {
***************
*** 1115,1121 ****
  	}
  
! 	void TypeFactory::GetDynamicTypes( const string& strName, vector<OclMeta::Type*>& vecTypes )
  	{
! 		string strRealName = strName;
  		if ( strName.size() > 6 && strName.substr( 0, 6 ) == "meta::" )
  			strRealName = strName.substr( 6 );
--- 1115,1121 ----
  	}
  
! 	void TypeFactory::GetDynamicTypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes )
  	{
! 		std::string strRealName = strName;
  		if ( strName.size() > 6 && strName.substr( 0, 6 ) == "meta::" )
  			strRealName = strName.substr( 6 );
***************
*** 1131,1135 ****
  		COMTHROW( m_spProject->AllFCOs( spFilter, &spFCOs ) );
  		MGACOLL_ITERATE( IMgaFCO, spFCOs ) {
! 			string strStereotype = OclCommonEx::GetObjectKind( MGACOLL_ITER.p );
  			if ( strStereotype == "Atom" || strStereotype == "Model" || strStereotype == "Connection" || strStereotype == "Reference" || strStereotype == "Set" || strStereotype == "Folder" || strStereotype == "FCO" ) {
  
--- 1131,1135 ----
  		COMTHROW( m_spProject->AllFCOs( spFilter, &spFCOs ) );
  		MGACOLL_ITERATE( IMgaFCO, spFCOs ) {
! 			std::string strStereotype = OclCommonEx::GetObjectKind( MGACOLL_ITER.p );
  			if ( strStereotype == "Atom" || strStereotype == "Model" || strStereotype == "Connection" || strStereotype == "Reference" || strStereotype == "Set" || strStereotype == "Folder" || strStereotype == "FCO" ) {
  
***************
*** 1140,1144 ****
  					OclImplementation::AttributeFactory* pAttFactory = NULL;
  					OclImplementation::AssociationFactory* pAssFactory = new OclImplementation::AssociationFactory();
! 					string strSupertype;
  
  					if ( strStereotype == "Atom" ) {
--- 1140,1144 ----
  					OclImplementation::AttributeFactory* pAttFactory = NULL;
  					OclImplementation::AssociationFactory* pAssFactory = new OclImplementation::AssociationFactory();
! 					std::string strSupertype;
  
  					if ( strStereotype == "Atom" ) {

Index: OCLTypeExGMEEC.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OCLTypeExGMEEC.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** OCLTypeExGMEEC.h	8 Nov 2002 16:57:00 -0000	1.4
--- OCLTypeExGMEEC.h	13 Oct 2004 15:17:54 -0000	1.5
***************
*** 212,216 ****
  			 virtual	void 	GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures );
  		private :
! 					void	GetAttributeObjects( const string& strName, CComPtr<IMgaFCO> spFCO, OclMeta::AttributeVector& vecFeatures, OclCommonEx::FCOVector& vecExamined  );
  	};
  
--- 212,216 ----
  			 virtual	void 	GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures );
  		private :
! 					void	GetAttributeObjects( const std::string& strName, CComPtr<IMgaFCO> spFCO, OclMeta::AttributeVector& vecFeatures, OclCommonEx::FCOVector& vecExamined  );
  	};
  
***************
*** 230,237 ****
  		 					TypeFactory( CComPtr<IMgaProject> spProject );
  
! 			virtual  void 	GetTypes( const string& strName, vector<OclMeta::Type*>& vecTypes );
  		private :
! 					void 	GetStereotypes( const string& strName, vector<OclMeta::Type*>& vecTypes );
! 					void 	GetDynamicTypes( const string& strName, vector<OclMeta::Type*>& vecTypes );
  	};
  
--- 230,237 ----
  		 					TypeFactory( CComPtr<IMgaProject> spProject );
  
! 			virtual  void 	GetTypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes );
  		private :
! 					void 	GetStereotypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes );
! 					void 	GetDynamicTypes( const std::string& strName, std::vector<OclMeta::Type*>& vecTypes );
  	};
  

Index: OclConstraint.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OclConstraint.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** OclConstraint.cpp	14 Jun 2004 20:28:23 -0000	1.6
--- OclConstraint.cpp	13 Oct 2004 15:17:54 -0000	1.7
***************
*** 14,18 ****
  namespace Ocl
  {
! 	Constraint::Stereotype StringToStereotype( const string& str )
  	{
  		if ( str == "inv" )
--- 14,18 ----
  namespace Ocl
  {
! 	Constraint::Stereotype StringToStereotype( const std::string& str )
  	{
  		if ( str == "inv" )
***************
*** 45,49 ****
  	}
  
! 	Constraint::Constraint( OclTree::TreeManager* pManager, const string& strName, const string& strText, bool bDynamic )
  		: m_pManager( pManager ), m_pCtxConstraint( NULL ), m_pConstraint( NULL ), m_strText( strText ), m_strName( strName ), m_eState( CS_UNREGISTERED ), m_bDynamic( bDynamic ), m_bContextSucceeded( false )
  	{
--- 45,49 ----
  	}
  
! 	Constraint::Constraint( OclTree::TreeManager* pManager, const std::string& strName, const std::string& strText, bool bDynamic )
  		: m_pManager( pManager ), m_pCtxConstraint( NULL ), m_pConstraint( NULL ), m_strText( strText ), m_strName( strName ), m_eState( CS_UNREGISTERED ), m_bDynamic( bDynamic ), m_bContextSucceeded( false )
  	{
***************
*** 72,76 ****
  	}
  
! 	Constraint::State Constraint::Define( const string& strName, const string& strText, bool bDynamic )
  	{
  		if ( ! strName.empty() || ! strText.empty() && m_eState <= CS_DEFINED ) {
--- 72,76 ----
  	}
  
! 	Constraint::State Constraint::Define( const std::string& strName, const std::string& strText, bool bDynamic )
  	{
  		if ( ! strName.empty() || ! strText.empty() && m_eState <= CS_DEFINED ) {
***************
*** 86,90 ****
  	}
  
! 	string Constraint::GetDefinedName() const
  	{
  		return m_strName;
--- 86,90 ----
  	}
  
! 	std::string Constraint::GetDefinedName() const
  	{
  		return m_strName;
***************
*** 106,110 ****
  	}
  
! 	string Constraint::GetText() const
  	{
  		return m_strText;
--- 106,110 ----
  	}
  
! 	std::string Constraint::GetText() const
  	{
  		return m_strText;
***************
*** 135,139 ****
  	}
  
! 	string Constraint::GetName() const
  	{
  		if ( m_pCtxConstraint )
--- 135,139 ----
  	}
  
! 	std::string Constraint::GetName() const
  	{
  		if ( m_pCtxConstraint )
***************
*** 170,174 ****
  	}
  
! 	string Constraint::GetContextType() const
  	{
  		if ( m_bContextSucceeded )
--- 170,174 ----
  	}
  
! 	std::string Constraint::GetContextType() const
  	{
  		if ( m_bContextSucceeded )
***************
*** 179,188 ****
  	}
  
! 	string Constraint::GetFullName() const
  	{
  		return GetContextType() + "::" + GetName();
  	}
  
! 	string Constraint::GetReturnType() const
  	{
  		if ( m_bContextSucceeded || m_eState >= CS_CHECK_SUCCEEDED ) {
--- 179,188 ----
  	}
  
! 	std::string Constraint::GetFullName() const
  	{
  		return GetContextType() + "::" + GetName();
  	}
  
! 	std::string Constraint::GetReturnType() const
  	{
  		if ( m_bContextSucceeded || m_eState >= CS_CHECK_SUCCEEDED ) {
***************
*** 262,266 ****
  	}
  
! 	string Constraint::Print() const
  	{
  		if ( m_eState >= CS_CHECK_SUCCEEDED )
--- 262,266 ----
  	}
  
! 	std::string Constraint::Print() const
  	{
  		if ( m_eState >= CS_CHECK_SUCCEEDED )
***************
*** 269,273 ****
  	}
  
! 	string Constraint::PrintTree() const
  	{
  		if ( m_eState >= CS_PARSE_SUCCEEDED )
--- 269,273 ----
  	}
  
! 	std::string Constraint::PrintTree() const
  	{
  		if ( m_eState >= CS_PARSE_SUCCEEDED )

Index: OclConstraint.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OclConstraint.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** OclConstraint.h	14 Jun 2004 20:28:23 -0000	1.5
--- OclConstraint.h	13 Oct 2004 15:17:54 -0000	1.6
***************
*** 61,66 ****
  			OclTree::Constraint*						m_pConstraint;
  
! 			string 										m_strText;
! 			string 										m_strName;
  			State 										m_eState;
  			bool 										m_bDynamic;
--- 61,66 ----
  			OclTree::Constraint*						m_pConstraint;
  
! 			std::string 										m_strText;
! 			std::string 										m_strName;
  			State 										m_eState;
  			bool 										m_bDynamic;
***************
*** 74,101 ****
  																Constraint();
  																Constraint( OclTree::TreeManager* pManager );
! 																Constraint( OclTree::TreeManager* pManager, const string& strName, const string& strText, bool bDynamic = false );
  			virtual 												~Constraint();
  
  					State 										Register( OclTree::TreeManager* pManager );
! 					State 										Define( const string& strName, const string& strText = "", bool bDynamic = false );
  
! 					string 										GetDefinedName() const;
  					State 										GetState() const;
  					bool										IsValid() const;
  					bool										IsDefined() const;
! 					string 										GetText() const;
  					bool 										IsDynamic() const;
  
  					State 										ParseContext();
  
! 					string 										GetName() const;
! 					Stereotype 								GetStereotype() const;
  
  					State 										CheckContext();
  
! 					string 										GetContextType() const;
! 					string 										GetReturnType() const;
  					OclCommon::FormalParameterVector 	GetFormalParameters() const;
! 					virtual string							GetFullName() const;	
  
  					State Parse();
--- 74,101 ----
  																Constraint();
  																Constraint( OclTree::TreeManager* pManager );
! 																Constraint( OclTree::TreeManager* pManager, const std::string& strName, const std::string& strText, bool bDynamic = false );
  			virtual 												~Constraint();
  
  					State 										Register( OclTree::TreeManager* pManager );
! 					State 										Define( const std::string& strName, const std::string& strText = "", bool bDynamic = false );
  
! 					std::string 								GetDefinedName() const;
  					State 										GetState() const;
  					bool										IsValid() const;
  					bool										IsDefined() const;
! 					std::string									GetText() const;
  					bool 										IsDynamic() const;
  
  					State 										ParseContext();
  
! 					std::string									GetName() const;
! 					Stereotype 									GetStereotype() const;
  
  					State 										CheckContext();
  
! 					std::string 								GetContextType() const;
! 					std::string 								GetReturnType() const;
  					OclCommon::FormalParameterVector 	GetFormalParameters() const;
! 					virtual std::string							GetFullName() const;	
  
  					State Parse();
***************
*** 104,109 ****
  
  					OclMeta::DependencySet 					GetDependencySet() const;
! 					string 										PrintTree() const;
! 					string 										Print() const;
  
  					State										SetDependencyResult( const OclMeta::DependencySet& setDependenies = OclMeta::DependencySet() );
--- 104,109 ----
  
  					OclMeta::DependencySet 					GetDependencySet() const;
! 					std::string 								PrintTree() const;
! 					std::string 								Print() const;
  
  					State										SetDependencyResult( const OclMeta::DependencySet& setDependenies = OclMeta::DependencySet() );

Index: OclObjectExGME.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OclObjectExGME.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** OclObjectExGME.h	14 Jun 2004 20:28:23 -0000	1.3
--- OclObjectExGME.h	13 Oct 2004 15:17:54 -0000	1.4
***************
*** 128,132 ****
  					bool 	operator!=( const Object& object ) const;
  
! 			virtual string 	Print() const;
  			virtual IUnknown* GetObject() const;
  	};
--- 128,132 ----
  					bool 	operator!=( const Object& object ) const;
  
! 			virtual std::string 	Print() const;
  			virtual IUnknown* GetObject() const;
  	};
***************
*** 159,163 ****
  					bool 	operator!=( const ConnectionPoint& object ) const;
  
! 			virtual string 	Print() const;
  	};
  
--- 159,163 ----
  					bool 	operator!=( const ConnectionPoint& object ) const;
  
! 			virtual std::string 	Print() const;
  	};
  
***************
*** 189,193 ****
  					bool 	operator!=( const Project& object ) const;
  
! 			virtual string 	Print() const;
  	};
  
--- 189,193 ----
  					bool 	operator!=( const Project& object ) const;
  
! 			virtual std::string 	Print() const;
  	};
  

Index: OclViolation.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/OclViolation.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** OclViolation.h	14 Jun 2004 20:28:23 -0000	1.3
--- OclViolation.h	13 Oct 2004 15:17:54 -0000	1.4
***************
*** 3,11 ****
  
  #include "OCLCommon.h"
! 
  // cannot use _com_ptr_t instead of IUnknown *
  // because of incluse mess
  // CComPtr does not work in vectors
! class PtrVector : public vector<IUnknown *>
  {
  public:
--- 3,13 ----
  
  #include "OCLCommon.h"
! #include "unknwn.h"
  // cannot use _com_ptr_t instead of IUnknown *
  // because of incluse mess
  // CComPtr does not work in vectors
! 
! namespace std {
! class PtrVector : public vector<IUnknown *> //z!
  {
  public:
***************
*** 100,103 ****
--- 102,106 ----
  
  };
+ }; // namespace std
  
  namespace OclTree
***************
*** 105,118 ****
  	struct Violation {
  		bool						bIsException;
! 		string						strMessage;
! 		string						strSignature;
! 		string						methodName;
  		Position					position;
  		StringVector				vecVariables;
  		StringVector				vecObjects;
! 		PtrVector					vecObjectsPtr;
  	};
  
! 	typedef vector< Violation >	ViolationVector;
  }
  
--- 108,121 ----
  	struct Violation {
  		bool						bIsException;
! 		std::string					strMessage;
! 		std::string					strSignature;
! 		std::string					methodName;
  		Position					position;
  		StringVector				vecVariables;
  		StringVector				vecObjects;
! 		std::PtrVector				vecObjectsPtr;
  	};
  
! 	typedef std::vector< Violation >	ViolationVector;
  }
  

Index: StdAfx.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/ConstraintManager/StdAfx.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** StdAfx.h	18 May 2004 13:30:58 -0000	1.7
--- StdAfx.h	13 Oct 2004 15:17:54 -0000	1.8
***************
*** 35,41 ****
  #define XASSERT(x) if(!(x)) COMTHROW( ((x), -1))
  
! #include <stl_config.h>
! #undef __SGI_STL_NO_ARROW_OPERATOR
! #define __SGI_STL_INTERNAL_RELOPS
  
  //{{AFX_INSERT_LOCATION}}
--- 35,39 ----
  #define XASSERT(x) if(!(x)) COMTHROW( ((x), -1))
  
! #include <stl_user_config.h>
  
  //{{AFX_INSERT_LOCATION}}



More information about the GME-commit mailing list