[GME-commit] GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep AspectRep.cpp,1.11,1.12 AspectRep.h,1.8,1.9 ConnectionRep.cpp,1.7,1.8 Dumper.cpp,1.24,1.25 Dumper.h,1.7,1.8 FCO.cpp,1.10,1.11

gme-commit at list.isis.vanderbilt.edu gme-commit at list.isis.vanderbilt.edu
Thu Aug 19 14:29:55 CDT 2004


Update of /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep
In directory braindrain:/tmp/cvs-serv6427/Rep

Modified Files:
	AspectRep.cpp AspectRep.h ConnectionRep.cpp Dumper.cpp 
	Dumper.h FCO.cpp 
Log Message:
Notification (warning) about similar aspect names, improved handling.

Attribute values are valid (thus considered) from now on if status >= HERE ( status might be DERIVED1, DERIVED2, ...)

Silent mode for the name selection dialog box.


CVS User: zolmol

Index: AspectRep.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/AspectRep.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** AspectRep.cpp	30 Jul 2004 00:10:23 -0000	1.11
--- AspectRep.cpp	19 Aug 2004 18:29:52 -0000	1.12
***************
*** 34,37 ****
--- 34,43 ----
  
  
+ bool AspNamePriorityComp::operator()( const Type& p1, const Type& p2) const
+ {
+ 	return p1.second < p2.second;
+ }
+ 
+ 
  AspectRep::AspectRep( BON::FCO& ptr, BON::FCO& resp_ptr)
  	: Any( ptr)

Index: AspectRep.h
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/AspectRep.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** AspectRep.h	30 Jul 2004 00:10:23 -0000	1.8
--- AspectRep.h	19 Aug 2004 18:29:52 -0000	1.9
***************
*** 26,29 ****
--- 26,36 ----
  };
  
+ class AspNamePriorityComp
+ {
+ public:
+ 	typedef std::pair< std::string, int> Type;
+ 	bool operator() ( const Type& p1, const Type& p2) const;
+ };
+ 
  class AspectRep : public Any 
  {

Index: ConnectionRep.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/ConnectionRep.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** ConnectionRep.cpp	30 Jul 2004 00:10:23 -0000	1.7
--- ConnectionRep.cpp	19 Aug 2004 18:29:52 -0000	1.8
***************
*** 45,49 ****
  	bool isabs = true; // if any of the set values is false it will change
  	bool isabs_set = false;
! 	if( m_ptr->getAttribute( IsAbstract_str)->getStatus() == BON::AS_Here)
  	{
  		isabs = isabs && m_ptr->getAttribute( IsAbstract_str)->getBooleanValue();
--- 45,49 ----
  	bool isabs = true; // if any of the set values is false it will change
  	bool isabs_set = false;
! 	if( m_ptr->getAttribute( IsAbstract_str)->getStatus() >= BON::AS_Here)
  	{
  		isabs = isabs && m_ptr->getAttribute( IsAbstract_str)->getBooleanValue();
***************
*** 54,58 ****
  	// general pref
  	bool isgenpref_set = false;
! 	if( m_ptr->getAttribute( GeneralPreferences_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrGenPref = m_ptr->getAttribute( GeneralPreferences_str)->getStringValue();
--- 54,58 ----
  	// general pref
  	bool isgenpref_set = false;
! 	if( m_ptr->getAttribute( GeneralPreferences_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrGenPref = m_ptr->getAttribute( GeneralPreferences_str)->getStringValue();
***************
*** 62,66 ****
  	// displayed name
  	bool isdispname_set = false;
! 	if( m_ptr->getAttribute( DisplayedName_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrDispName = m_ptr->getAttribute( DisplayedName_str)->getStringValue();
--- 62,66 ----
  	// displayed name
  	bool isdispname_set = false;
! 	if( m_ptr->getAttribute( DisplayedName_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrDispName = m_ptr->getAttribute( DisplayedName_str)->getStringValue();
***************
*** 70,74 ****
  	
  	bool iscolor_set = false;
! 	//if( m_ptr->getAttribute( Color_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrColor = m_ptr->getAttribute( Color_str)->getStringValue();
--- 70,74 ----
  	
  	bool iscolor_set = false;
! 	//if( m_ptr->getAttribute( Color_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrColor = m_ptr->getAttribute( Color_str)->getStringValue();
***************
*** 76,80 ****
  	}
  	bool isconnlineend_set = false;
! 	//if( m_ptr->getAttribute( ConnLineEnd_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrConnLineEnd = m_ptr->getAttribute( ConnLineEnd_str)->getStringValue();
--- 76,80 ----
  	}
  	bool isconnlineend_set = false;
! 	//if( m_ptr->getAttribute( ConnLineEnd_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrConnLineEnd = m_ptr->getAttribute( ConnLineEnd_str)->getStringValue();
***************
*** 82,86 ****
  	}
  	bool isconnlinestart_set = false;
! 	//if( m_ptr->getAttribute( ConnLineStart_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrConnLineStart = m_ptr->getAttribute( ConnLineStart_str)->getStringValue();
--- 82,86 ----
  	}
  	bool isconnlinestart_set = false;
! 	//if( m_ptr->getAttribute( ConnLineStart_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrConnLineStart = m_ptr->getAttribute( ConnLineStart_str)->getStringValue();
***************
*** 89,93 ****
  	
  	bool isconnlinetype_set = false;
! 	//if( m_ptr->getAttribute( ConnLineType_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrConnLineType = m_ptr->getAttribute( ConnLineType_str)->getStringValue();
--- 89,93 ----
  	
  	bool isconnlinetype_set = false;
! 	//if( m_ptr->getAttribute( ConnLineType_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrConnLineType = m_ptr->getAttribute( ConnLineType_str)->getStringValue();
***************
*** 96,100 ****
  
  	bool issrclabel1_set = false;
! 	if( m_ptr->getAttribute( SrcAttrLabel1_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrSrcAttrLabel1 = m_ptr->getAttribute( SrcAttrLabel1_str)->getStringValue();
--- 96,100 ----
  
  	bool issrclabel1_set = false;
! 	if( m_ptr->getAttribute( SrcAttrLabel1_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrSrcAttrLabel1 = m_ptr->getAttribute( SrcAttrLabel1_str)->getStringValue();
***************
*** 102,106 ****
  	}
  	bool issrclabel2_set = false;
! 	if( m_ptr->getAttribute( SrcAttrLabel2_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrSrcAttrLabel2 = m_ptr->getAttribute( SrcAttrLabel2_str)->getStringValue();
--- 102,106 ----
  	}
  	bool issrclabel2_set = false;
! 	if( m_ptr->getAttribute( SrcAttrLabel2_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrSrcAttrLabel2 = m_ptr->getAttribute( SrcAttrLabel2_str)->getStringValue();
***************
*** 108,112 ****
  	}
  	bool isdstlabel1_set = false;
! 	if( m_ptr->getAttribute( DstAttrLabel1_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrDstAttrLabel1 = m_ptr->getAttribute( DstAttrLabel1_str)->getStringValue();
--- 108,112 ----
  	}
  	bool isdstlabel1_set = false;
! 	if( m_ptr->getAttribute( DstAttrLabel1_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrDstAttrLabel1 = m_ptr->getAttribute( DstAttrLabel1_str)->getStringValue();
***************
*** 114,118 ****
  	}
  	bool isdstlabel2_set = false;
! 	if( m_ptr->getAttribute( DstAttrLabel2_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrDstAttrLabel2	= m_ptr->getAttribute( DstAttrLabel2_str)->getStringValue();
--- 114,118 ----
  	}
  	bool isdstlabel2_set = false;
! 	if( m_ptr->getAttribute( DstAttrLabel2_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrDstAttrLabel2	= m_ptr->getAttribute( DstAttrLabel2_str)->getStringValue();
***************
*** 131,135 ****
  		// isAbstract: true if all objects are true
  		//m_isAbstract = m_isAbstract && (*it)->getAttribute( IsAbstract_str)->getBooleanValue();
! 		if( (*it)->getAttribute( IsAbstract_str)->getStatus() == BON::AS_Here) // if set by the user
  		{
  			isabs = isabs && (*it)->getAttribute( IsAbstract_str)->getBooleanValue();
--- 131,135 ----
  		// isAbstract: true if all objects are true
  		//m_isAbstract = m_isAbstract && (*it)->getAttribute( IsAbstract_str)->getBooleanValue();
! 		if( (*it)->getAttribute( IsAbstract_str)->getStatus() >= BON::AS_Here) // if set by the user
  		{
  			isabs = isabs && (*it)->getAttribute( IsAbstract_str)->getBooleanValue();
***************
*** 139,143 ****
  #if(1)
  		// general pref
! 		if( !isgenpref_set && (*it)->getAttribute( GeneralPreferences_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrGenPref = (*it)->getAttribute( GeneralPreferences_str)->getStringValue();
--- 139,143 ----
  #if(1)
  		// general pref
! 		if( !isgenpref_set && (*it)->getAttribute( GeneralPreferences_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrGenPref = (*it)->getAttribute( GeneralPreferences_str)->getStringValue();
***************
*** 147,151 ****
  
  		// displayed name
! 		if( !isdispname_set && (*it)->getAttribute( DisplayedName_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrDispName = (*it)->getAttribute( DisplayedName_str)->getStringValue();
--- 147,151 ----
  
  		// displayed name
! 		if( !isdispname_set && (*it)->getAttribute( DisplayedName_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrDispName = (*it)->getAttribute( DisplayedName_str)->getStringValue();
***************
*** 157,161 ****
  		if ((*it)->getObjectMeta().name().find("Proxy") != std::string::npos) continue;
  
! 		if( !iscolor_set && (*it)->getAttribute( Color_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrColor = (*it)->getAttribute( Color_str)->getStringValue();
--- 157,161 ----
  		if ((*it)->getObjectMeta().name().find("Proxy") != std::string::npos) continue;
  
! 		if( !iscolor_set && (*it)->getAttribute( Color_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrColor = (*it)->getAttribute( Color_str)->getStringValue();
***************
*** 163,167 ****
  		}
  
! 		if( !isconnlineend_set && (*it)->getAttribute( ConnLineEnd_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrConnLineEnd = (*it)->getAttribute( ConnLineEnd_str)->getStringValue();
--- 163,167 ----
  		}
  
! 		if( !isconnlineend_set && (*it)->getAttribute( ConnLineEnd_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrConnLineEnd = (*it)->getAttribute( ConnLineEnd_str)->getStringValue();
***************
*** 169,178 ****
  		}
  		
! 		if( !isconnlinestart_set && (*it)->getAttribute( ConnLineStart_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrConnLineStart = (*it)->getAttribute( ConnLineStart_str)->getStringValue();
  			isconnlinestart_set = true;
  		}
! 		if( !isconnlinetype_set && (*it)->getAttribute( ConnLineType_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrConnLineType = (*it)->getAttribute( ConnLineType_str)->getStringValue();
--- 169,178 ----
  		}
  		
! 		if( !isconnlinestart_set && (*it)->getAttribute( ConnLineStart_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrConnLineStart = (*it)->getAttribute( ConnLineStart_str)->getStringValue();
  			isconnlinestart_set = true;
  		}
! 		if( !isconnlinetype_set && (*it)->getAttribute( ConnLineType_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrConnLineType = (*it)->getAttribute( ConnLineType_str)->getStringValue();
***************
*** 180,199 ****
  		}
  
! 		if( !issrclabel1_set && (*it)->getAttribute( SrcAttrLabel1_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrSrcAttrLabel1 = (*it)->getAttribute( SrcAttrLabel1_str)->getStringValue();
  			issrclabel1_set = true;
  		}
! 		if( !issrclabel2_set && (*it)->getAttribute( SrcAttrLabel2_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrSrcAttrLabel2 = (*it)->getAttribute( SrcAttrLabel2_str)->getStringValue();
  			issrclabel2_set = true;
  		}
! 		if( !isdstlabel1_set && (*it)->getAttribute( DstAttrLabel1_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrDstAttrLabel1 = (*it)->getAttribute( DstAttrLabel1_str)->getStringValue();
  			isdstlabel1_set = true;
  		}
! 		if( !isdstlabel2_set && (*it)->getAttribute( DstAttrLabel2_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrDstAttrLabel2 = (*it)->getAttribute( DstAttrLabel2_str)->getStringValue();
--- 180,199 ----
  		}
  
! 		if( !issrclabel1_set && (*it)->getAttribute( SrcAttrLabel1_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrSrcAttrLabel1 = (*it)->getAttribute( SrcAttrLabel1_str)->getStringValue();
  			issrclabel1_set = true;
  		}
! 		if( !issrclabel2_set && (*it)->getAttribute( SrcAttrLabel2_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrSrcAttrLabel2 = (*it)->getAttribute( SrcAttrLabel2_str)->getStringValue();
  			issrclabel2_set = true;
  		}
! 		if( !isdstlabel1_set && (*it)->getAttribute( DstAttrLabel1_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrDstAttrLabel1 = (*it)->getAttribute( DstAttrLabel1_str)->getStringValue();
  			isdstlabel1_set = true;
  		}
! 		if( !isdstlabel2_set && (*it)->getAttribute( DstAttrLabel2_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrDstAttrLabel2 = (*it)->getAttribute( DstAttrLabel2_str)->getStringValue();

Index: Dumper.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/Dumper.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** Dumper.cpp	30 Jul 2004 00:10:23 -0000	1.24
--- Dumper.cpp	19 Aug 2004 18:29:52 -0000	1.25
***************
*** 234,238 ****
  		{
  			ModelRep * child_mod_ptr = dynamic_cast<ModelRep *>( *child_it);
! 			if ( !child_mod_ptr) global_vars.err << MSG_ERROR << "Internal error: after dynamic cast - inheritAspConsAttr\n";
  
  			// inherit aspects
--- 234,238 ----
  		{
  			ModelRep * child_mod_ptr = dynamic_cast<ModelRep *>( *child_it);
! 			if ( !child_mod_ptr) global_vars.err << MSG_ERROR << "Internal error: after dynamic cast - inheritAspConsAttr.\n";
  
  			// inherit aspects
***************
*** 330,334 ****
  	if (!theAspectDlg)
  	{
! 		global_vars.err << MSG_ERROR << "ERROR: Aspect Dialogue cannot be created\n";
  		return true;
  	}
--- 330,334 ----
  	if (!theAspectDlg)
  	{
! 		global_vars.err << MSG_ERROR << "ERROR: Aspect Dialogue cannot be created.\n";
  		return true;
  	}
***************
*** 472,476 ****
  						{
  							regVal = old_regVal2.empty()? old_regVal1:old_regVal2;
! 							std::string n_msg = "PrimaryAspect registry information taken from the old place. Registry of: " + part.getFCOPtr()->getName() + " Registry path: " + primary_reg_path + "\n";
  							global_vars.err << MSG_ERROR << n_msg;
  							is_first_time_used_the_new_interpreter = true;
--- 472,476 ----
  						{
  							regVal = old_regVal2.empty()? old_regVal1:old_regVal2;
! 							std::string n_msg = "PrimaryAspect registry information taken from the old place. Registry of: " + part.getFCOPtr()->getName() + " Registry path: " + primary_reg_path + ".\n";
  							global_vars.err << MSG_ERROR << n_msg;
  							is_first_time_used_the_new_interpreter = true;
***************
*** 547,551 ****
  						{
  							regVal = old_regVal2.empty()?old_regVal1:old_regVal2;
! 							std::string n_msg = "KindAspect    registry information taken from the old place. Registry of: " + part.getFCOPtr()->getName() + " Registry path: " + kindasp_reg_path + "\n";
  							global_vars.err << MSG_ERROR << n_msg;
  							is_first_time_used_the_new_interpreter = true;
--- 547,551 ----
  						{
  							regVal = old_regVal2.empty()?old_regVal1:old_regVal2;
! 							std::string n_msg = "KindAspect    registry information taken from the old place. Registry of: " + part.getFCOPtr()->getName() + " Registry path: " + kindasp_reg_path + ".\n";
  							global_vars.err << MSG_ERROR << n_msg;
  							is_first_time_used_the_new_interpreter = true;
***************
*** 664,668 ****
  
  			const ModelRep * act_mod_ptr = act_part.getParentPtr();
! 			if( !act_mod_ptr) global_vars.err << MSG_ERROR << "Internal error: ZERO pointer after aspect mapping in act_part.getParentPtr\n";
  			ASSERT( act_mod_ptr);
  			std::string act_mod_name = act_mod_ptr->getName();
--- 664,668 ----
  
  			const ModelRep * act_mod_ptr = act_part.getParentPtr();
! 			if( !act_mod_ptr) global_vars.err << MSG_ERROR << "Internal error: ZERO pointer after aspect mapping in act_part.getParentPtr.\n";
  			ASSERT( act_mod_ptr);
  			std::string act_mod_name = act_mod_ptr->getName();
***************
*** 725,729 ****
  				}
  				else // not found
! 					global_vars.err << MSG_ERROR << "Error: User selected aspect not found on sheet! Aspect \"" << act_asp_name << "\" Model \"" << act_mod_name << "\" Role \"" << act_role_name << "\" Selected aspect name: \"" << (LPCTSTR) selected_kind_aspect_name << "\"\n";
  			}
  			if ( ( act_part.getFCOPtr()->getMyKind() == Any::MODEL || act_part.getFCOPtr()->getMyKind() == Any::REF) && selected_kind_aspect_name == "N/A")
--- 725,729 ----
  				}
  				else // not found
! 					global_vars.err << MSG_ERROR << "Error: User selected aspect not found on sheet! Aspect \"" << act_asp_name << "\" Model \"" << act_mod_name << "\" Role \"" << act_role_name << "\" Selected aspect name: \"" << (LPCTSTR) selected_kind_aspect_name << "\".\n";
  			}
  			if ( ( act_part.getFCOPtr()->getMyKind() == Any::MODEL || act_part.getFCOPtr()->getMyKind() == Any::REF) && selected_kind_aspect_name == "N/A")
***************
*** 838,842 ****
  				mmm += (*it_cons1)->doDump();
  				if ( last_name != "" && last_name == (*it_cons1)->getName())
! 					global_vars.err << MSG_ERROR << "Error: Duplicate global constraint name found \"" << (*it_cons1)->getPtr() << "\"\n";
  				last_name = (*it_cons1)->getName();
  			}
--- 838,842 ----
  				mmm += (*it_cons1)->doDump();
  				if ( last_name != "" && last_name == (*it_cons1)->getName())
! 					global_vars.err << MSG_ERROR << "Error: Duplicate global constraint name found \"" << (*it_cons1)->getPtr() << "\".\n";
  				last_name = (*it_cons1)->getName();
  			}
***************
*** 857,861 ****
  			mmm += (*it_cons2)->doDump();
  			if ( last_name != "" && last_name == (*it_cons2)->getName())
! 				global_vars.err << MSG_ERROR << "Error: Duplicate constraint function name found \"" << (*it_cons2)->getPtr() << "\"\n";
  			last_name = (*it_cons2)->getName();
  		}
--- 857,861 ----
  			mmm += (*it_cons2)->doDump();
  			if ( last_name != "" && last_name == (*it_cons2)->getName())
! 				global_vars.err << MSG_ERROR << "Error: Duplicate constraint function name found \"" << (*it_cons2)->getPtr() << "\".\n";
  			last_name = (*it_cons2)->getName();
  		}
***************
*** 879,883 ****
  				mmm += (*it)->doDumpAttr("");
  				if ( last_name != "" && last_name == (*it)->getName())
! 					global_vars.err << MSG_ERROR << "Error: Duplicate global attribute name found \"" << (*it)->getPtr() << "\"\n";
  				last_name = (*it)->getName();
  			}
--- 879,883 ----
  				mmm += (*it)->doDumpAttr("");
  				if ( last_name != "" && last_name == (*it)->getName())
! 					global_vars.err << MSG_ERROR << "Error: Duplicate global attribute name found \"" << (*it)->getPtr() << "\".\n";
  				last_name = (*it)->getName();
  			}
***************
*** 901,907 ****
  				this_name = (*it_b)->getName();
  				if (last_name != "" && last_name == this_name)
! 					global_vars.err << MSG_ERROR << "Error: Duplicate atom name found \"" << this_name << "\"\n";
  				else if (already_dumped[ this_name])
! 					global_vars.err << MSG_ERROR << "Error: Duplicate fco name found \"" << this_name << "\"\n";
  
  				already_dumped[ this_name] = true;
--- 901,907 ----
  				this_name = (*it_b)->getName();
  				if (last_name != "" && last_name == this_name)
! 					global_vars.err << MSG_ERROR << "Error: Duplicate atom name found \"" << this_name << "\".\n";
  				else if (already_dumped[ this_name])
! 					global_vars.err << MSG_ERROR << "Error: Duplicate fco name found \"" << this_name << "\".\n";
  
  				already_dumped[ this_name] = true;
***************
*** 928,934 ****
  				this_name = (*it_c)->getName();
  				if ( last_name != "" && last_name == this_name)
! 					global_vars.err << MSG_ERROR << "Error: Duplicate set name found \"" << this_name << "\"\n";
  				else if (already_dumped[ this_name])
! 					global_vars.err << MSG_ERROR << "Error: Duplicate fco name found \"" << this_name << "\"\n";
  
  				already_dumped[ this_name] = true;
--- 928,934 ----
  				this_name = (*it_c)->getName();
  				if ( last_name != "" && last_name == this_name)
! 					global_vars.err << MSG_ERROR << "Error: Duplicate set name found \"" << this_name << "\".\n";
  				else if (already_dumped[ this_name])
! 					global_vars.err << MSG_ERROR << "Error: Duplicate fco name found \"" << this_name << "\".\n";
  
  				already_dumped[ this_name] = true;
***************
*** 955,961 ****
  				this_name = (*it_cn)->getName();
  				if ( last_name != "" && last_name == this_name)
! 					global_vars.err << MSG_ERROR << "Error: Duplicate connection name found \"" << this_name << "\"\n";
  				else if (already_dumped[ this_name])
! 					global_vars.err << MSG_ERROR << "Error: Duplicate fco name found \"" << this_name << "\"\n";
  
  				already_dumped[ this_name] = true;
--- 955,961 ----
  				this_name = (*it_cn)->getName();
  				if ( last_name != "" && last_name == this_name)
! 					global_vars.err << MSG_ERROR << "Error: Duplicate connection name found \"" << this_name << "\".\n";
  				else if (already_dumped[ this_name])
! 					global_vars.err << MSG_ERROR << "Error: Duplicate fco name found \"" << this_name << "\".\n";
  
  				already_dumped[ this_name] = true;
***************
*** 982,988 ****
  				this_name = (*it_ref)->getName();
  				if ( last_name != "" && last_name == this_name)
! 					global_vars.err << "Error: Duplicate reference name found \"" << this_name << "\"\n";
  				else if (already_dumped[ this_name])
! 					global_vars.err << "Error: Duplicate fco name found \"" << this_name << "\"\n";
  
  				already_dumped[ this_name] = true;
--- 982,988 ----
  				this_name = (*it_ref)->getName();
  				if ( last_name != "" && last_name == this_name)
! 					global_vars.err << MSG_ERROR  << "Error: Duplicate reference name found \"" << this_name << "\".\n";
  				else if (already_dumped[ this_name])
! 					global_vars.err << MSG_ERROR  << "Error: Duplicate fco name found \"" << this_name << "\".\n";
  
  				already_dumped[ this_name] = true;
***************
*** 1009,1015 ****
  				this_name = (*it_m)->getName();
  				if ( last_name != "" && last_name == this_name)
! 					global_vars.err << "Error: Duplicate model name found \"" << this_name << "\"\n";
  				else if (already_dumped[ this_name])
! 					global_vars.err << "Error: Duplicate fco name found \"" << this_name << "\"\n";
  
  				already_dumped[ this_name] = true;
--- 1009,1015 ----
  				this_name = (*it_m)->getName();
  				if ( last_name != "" && last_name == this_name)
! 					global_vars.err << MSG_ERROR  << "Error: Duplicate model name found \"" << this_name << "\".\n";
  				else if (already_dumped[ this_name])
! 					global_vars.err << MSG_ERROR  << "Error: Duplicate fco name found \"" << this_name << "\".\n";
  
  				already_dumped[ this_name] = true;
***************
*** 1034,1040 ****
  			this_name = (*it_fd)->getName();
  			if ( last_name != "" && last_name == this_name)
! 				global_vars.err << "Error: Duplicate folder name found \"" << this_name << "\"\n";
  			else if (already_dumped[ this_name])
! 				global_vars.err << "Error: Duplicate name found \"" << this_name << "\"\n";
  
  			already_dumped[ this_name] = true;
--- 1034,1040 ----
  			this_name = (*it_fd)->getName();
  			if ( last_name != "" && last_name == this_name)
! 				global_vars.err << MSG_ERROR  << "Error: Duplicate folder name found \"" << this_name << "\".\n";
  			else if (already_dumped[ this_name])
! 				global_vars.err << MSG_ERROR  << "Error: Duplicate name found \"" << this_name << "\".\n";
  
  			already_dumped[ this_name] = true;
***************
*** 1061,1065 ****
  		if (already_dumped[ asp_name])
  		{
! 			global_vars.err << "Error: Duplicate name found \"" << asp_name << "\"\n";
  		}
  	}}	
--- 1061,1065 ----
  		if (already_dumped[ asp_name])
  		{
! 			global_vars.err << MSG_ERROR  << "Error: Duplicate name found \"" << asp_name << "\".\n";
  		}
  	}}	
***************
*** 1292,1295 ****
--- 1292,1311 ----
  
  
+ bool Dumper::checkUniqueAspectNames()
+ {
+ 	std::map< std::string, AspectRep *> names;
+ 	for( unsigned int i = 0; i < m_aspectList.size(); ++i)
+ 	{
+ 		if( names.find( m_aspectList[i]->getName()) == names.end())
+ 			names[ m_aspectList[i]->getName()] = m_aspectList[i];
+ 		else // found duplicate names
+ 			global_vars.err << MSG_WARNING << "Warning: Duplicate aspect name \"" 
+ 			<< m_aspectList[i]->getName() << "\" found. See objects: " 
+ 			<< m_aspectList[i]->getPtr() << " and " 
+ 			<< names.find( m_aspectList[i]->getName())->second->getPtr() << " ! Use SameAspect relation to connect them.\n";
+ 	}
+ 	return true;
+ }
+ 
  /*
  This method and aspect order selection assumes no two aspects have been defined 
***************
*** 1307,1341 ****
  	std::vector< AspectRep * > dlg_aspects_init_order;// aspect order used by the dlg ( m_aspectList.size(), 0);
  
! 	AspectCompare asp_less_than; // sort the aspects based on the current information
! 	std::sort( m_aspectList.begin(), m_aspectList.end(), asp_less_than);
  
  	BON::RegistryNode rn = Sheet::m_BON_Project_Root_Folder->getRegistry()->getChild( AspectRep::m_aspectRegistryRoot + aspect_order_registry_token);
  	if ( rn && rn->getValue() == "valid") // fetch priority values from the Registry
  	{
! 		std::map< int, std::string > asp_order;
  		std::set<BON::RegistryNode> ch = rn->getChildren();
  		std::set<BON::RegistryNode>::iterator i = ch.begin();
  		for( ; i != ch.end(); ++i)
  		{
! 			std::string one_aspect( (*i)->getName()); // previously getPath used
! 
! 			int val = (*i)->getIntegerValue();
! 			asp_order[ val] = one_aspect; // use a map to sort the aspects based on val
  		}
  	
! 		//unsigned int k = 0;
! 		std::map< int, std::string>::iterator it = asp_order.begin();
  		for( ; it != asp_order.end(); ++it)
  		{
! 			std::vector<AspectRep *> asp_with_this_name = findAspectBasedOnName( it->second);
! 			//if ( !asp_with_this_name.empty() && k < m_aspectList.size()) // prepare for unconsistent registry 
! 			if ( !asp_with_this_name.empty()) // prepare for unconsistent registry 
! 				dlg_aspects_init_order.push_back( *asp_with_this_name.begin());
! 				//dlg_aspects_init_order.push_back( [k++] = *asp_with_this_name.begin();
  		}
  
  		int needed = m_aspectList.size() - dlg_aspects_init_order.size();
  		
- 		//ASSERT( k <= dlg_aspects_init_order.size()); // = m_aspectList.size()
  		ASSERT( needed >= 0); // ASSERT if more elements then available aspects in m_aspectList
  			
--- 1323,1352 ----
  	std::vector< AspectRep * > dlg_aspects_init_order;// aspect order used by the dlg ( m_aspectList.size(), 0);
  
! 	std::sort( m_aspectList.begin(), m_aspectList.end(), AspectCompare());// sort the aspects based on the current information
  
  	BON::RegistryNode rn = Sheet::m_BON_Project_Root_Folder->getRegistry()->getChild( AspectRep::m_aspectRegistryRoot + aspect_order_registry_token);
  	if ( rn && rn->getValue() == "valid") // fetch priority values from the Registry
  	{
! 		// for each name there is only one priority value in the registry
! 		// so in case of duplicate (non-equivalent, but similar) aspects the priority value 
! 		// will be common
! 		std::set< AspNamePriorityComp::Type, AspNamePriorityComp> asp_order;
  		std::set<BON::RegistryNode> ch = rn->getChildren();
  		std::set<BON::RegistryNode>::iterator i = ch.begin();
  		for( ; i != ch.end(); ++i)
  		{
! 			asp_order.insert( AspNamePriorityComp::Type( (*i)->getName(), (*i)->getIntegerValue()));
  		}
  	
! 		std::set< AspNamePriorityComp::Type, AspNamePriorityComp>::iterator it = asp_order.begin();
  		for( ; it != asp_order.end(); ++it)
  		{
! 			std::vector<AspectRep *> asp_with_this_name = findAspectBasedOnName( it->first);
! 			for( unsigned int l = 0; l < asp_with_this_name.size(); ++l) // size might be 0 in case of inconsistent registry 
! 				dlg_aspects_init_order.push_back( asp_with_this_name[ l]); // set the same priority value for each similar aspect
  		}
  
  		int needed = m_aspectList.size() - dlg_aspects_init_order.size();
  		
  		ASSERT( needed >= 0); // ASSERT if more elements then available aspects in m_aspectList
  			
***************
*** 1352,1356 ****
  				if ( asp_init_it == dlg_aspects_init_order.end()) // not found, so either newly introduced aspect or the registry information has been partly deleted
  				{
- 					//dlg_aspects_init_order[ k++] = *aspvec_it;
  					dlg_aspects_init_order.push_back( *aspvec_it);
  					--needed;
--- 1363,1366 ----
***************
*** 1391,1398 ****
  			curr_asp->setPriority( i+1);// set priority values from 1
  	
! 			std::string subtoken = "/" + curr_asp->getName();
  			char idx_str[32];
  			sprintf( idx_str, "%d", i+1);
! 			Sheet::m_BON_Project_Root_Folder->getRegistry()->setValueByPath( path + subtoken, idx_str);
  		}
  
--- 1401,1408 ----
  			curr_asp->setPriority( i+1);// set priority values from 1
  	
! 			std::string subtoken = "/" + curr_asp->getName(); 
  			char idx_str[32];
  			sprintf( idx_str, "%d", i+1);
! 			Sheet::m_BON_Project_Root_Folder->getRegistry()->setValueByPath( path + subtoken, idx_str);//similar aspects will use the same priority by overwriting the values in the same regnode
  		}
  
***************
*** 1400,1408 ****
  		for( i = 0; i < m_aspectList.size(); ++i)
  		{
- 			ASSERT( m_aspectList[i]->getPriority() != 0);
  			if ( m_aspectList[i]->getPriority() == 0)
  			{
! 				global_vars.err << MSG_ERROR << "Internal error: aspect \"" << m_aspectList[i]->getName() << "\" has 0 priority value set after the dialog. Reset to 999.\n";
! 				m_aspectList[i]->setPriority( 999);
  			}
  		}
--- 1410,1418 ----
  		for( i = 0; i < m_aspectList.size(); ++i)
  		{
  			if ( m_aspectList[i]->getPriority() == 0)
  			{
! 				ASSERT(0);
! 				global_vars.err << MSG_INFO << "Internal error: aspect \"" << m_aspectList[i]->getName() << "\" has 0 priority value set after the dialog. Reset to 0x7fffffff.\n";
! 				m_aspectList[i]->setPriority( 0x7fffffff); // a big number
  			}
  		}
***************
*** 1410,1415 ****
  	}
  	// sort the aspects based on the current information
! 	AspectCompare asp_less_than2;
! 	std::sort( m_aspectList.begin(), m_aspectList.end(), asp_less_than2);
  
  	return true;
--- 1420,1424 ----
  	}
  	// sort the aspects based on the current information
! 	std::sort( m_aspectList.begin(), m_aspectList.end(), AspectCompare());
  
  	return true;
***************
*** 1423,1426 ****
--- 1432,1436 ----
  	findMaxOfMetaRefs();
  	
+ 	checkUniqueAspectNames();
  	aspectOrderSel();
  	wait.Restore();
***************
*** 1495,1499 ****
  			else {
  				if (multip < 0) {
! 					global_vars.err << MSG_ERROR << "Error: Multiplicity is negative: " << contextDesc << "\n";
  				}
  				//orexpr.Format("(%s = %d)", target, multip);
--- 1505,1509 ----
  			else {
  				if (multip < 0) {
! 					global_vars.err << MSG_ERROR << "Error: Multiplicity is negative: " << contextDesc << ".\n";
  				}
  				//orexpr.Format("(%s = %d)", target, multip);
***************
*** 1518,1522 ****
  			else {
  				if (multipmin < 0) {
! 					global_vars.err << MSG_ERROR << "Error: Minimum multiplicity is negative: " << contextDesc << "\n";
  				}
  				if (multipmin > 0) {
--- 1528,1532 ----
  			else {
  				if (multipmin < 0) {
! 					global_vars.err << MSG_ERROR << "Error: Minimum multiplicity is negative: " << contextDesc << ".\n";
  				}
  				if (multipmin > 0) {
***************
*** 1545,1552 ****
  				andexpr2 += ")";
  				if (multipmax < 0) {
! 					global_vars.err << MSG_ERROR << "Error: Maximum multiplicity is negative: " << contextDesc << "\n";
  				}
  				if (multipmax < multipmin) {
! 					global_vars.err << MSG_ERROR << "Error: Minimum multiplicity > Maximum multiplicity : " << contextDesc << "\n";
  				}
  			}
--- 1555,1562 ----
  				andexpr2 += ")";
  				if (multipmax < 0) {
! 					global_vars.err << MSG_ERROR << "Error: Maximum multiplicity is negative: " << contextDesc << ".\n";
  				}
  				if (multipmax < multipmin) {
! 					global_vars.err << MSG_ERROR << "Error: Minimum multiplicity > Maximum multiplicity : " << contextDesc << ".\n";
  				}
  			}

Index: Dumper.h
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/Dumper.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** Dumper.h	12 Jul 2004 22:01:09 -0000	1.7
--- Dumper.h	19 Aug 2004 18:29:52 -0000	1.8
***************
*** 43,46 ****
--- 43,47 ----
  	bool aspectOrderSel(); // aspect Order Selection
  	bool am(); // aSPECT mAPPING
+ 	bool checkUniqueAspectNames();
  	bool checkAll();
  	bool checkRootFolder() const;

Index: FCO.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/FCO.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** FCO.cpp	30 Jul 2004 00:10:23 -0000	1.10
--- FCO.cpp	19 Aug 2004 18:29:52 -0000	1.11
***************
*** 106,110 ****
  	bool isabs_set = false;
  	//m_isAbstract = m_isAbstract && m_ptr->getAttribute( IsAbstract_str)->getBooleanValue();
! 	if( m_ptr->getAttribute( IsAbstract_str)->getStatus() == BON::AS_Here)
  	{
  		isabs = isabs && m_ptr->getAttribute( IsAbstract_str)->getBooleanValue();
--- 106,110 ----
  	bool isabs_set = false;
  	//m_isAbstract = m_isAbstract && m_ptr->getAttribute( IsAbstract_str)->getBooleanValue();
! 	if( m_ptr->getAttribute( IsAbstract_str)->getStatus() >= BON::AS_Here)
  	{
  		isabs = isabs && m_ptr->getAttribute( IsAbstract_str)->getBooleanValue();
***************
*** 114,118 ****
  	// general pref
  	bool isgenpref_set = false;
! 	if( m_ptr->getAttribute( GeneralPreferences_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrGenPref = m_ptr->getAttribute( GeneralPreferences_str)->getStringValue();
--- 114,118 ----
  	// general pref
  	bool isgenpref_set = false;
! 	if( m_ptr->getAttribute( GeneralPreferences_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrGenPref = m_ptr->getAttribute( GeneralPreferences_str)->getStringValue();
***************
*** 122,126 ****
  	// displayed name
  	bool isdispname_set = false;
! 	if( m_ptr->getAttribute( DisplayedName_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrDispName = m_ptr->getAttribute( DisplayedName_str)->getStringValue();
--- 122,126 ----
  	// displayed name
  	bool isdispname_set = false;
! 	if( m_ptr->getAttribute( DisplayedName_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrDispName = m_ptr->getAttribute( DisplayedName_str)->getStringValue();
***************
*** 131,135 ****
  
  	bool ishotspotenabled_set = false;
! 	if( m_ptr->getAttribute( IsHotspotEnabled_str)->getStatus() == BON::AS_Here)
  	{
  		m_bAttrIsHotspotEnabled	= m_ptr->getAttribute( IsHotspotEnabled_str)->getBooleanValue();// def val: TRUE (dumped if FALSE)
--- 131,135 ----
  
  	bool ishotspotenabled_set = false;
! 	if( m_ptr->getAttribute( IsHotspotEnabled_str)->getStatus() >= BON::AS_Here)
  	{
  		m_bAttrIsHotspotEnabled	= m_ptr->getAttribute( IsHotspotEnabled_str)->getBooleanValue();// def val: TRUE (dumped if FALSE)
***************
*** 139,143 ****
  	
  	bool istypeshown_set = false;
! 	if( m_ptr->getAttribute( IsTypeShown_str)->getStatus() == BON::AS_Here)
  	{
  		m_bAttrIsTypeShown		= m_ptr->getAttribute( IsTypeShown_str)->getBooleanValue();		// def val: FALSE (dumped if TRUE)
--- 139,143 ----
  	
  	bool istypeshown_set = false;
! 	if( m_ptr->getAttribute( IsTypeShown_str)->getStatus() >= BON::AS_Here)
  	{
  		m_bAttrIsTypeShown		= m_ptr->getAttribute( IsTypeShown_str)->getBooleanValue();		// def val: FALSE (dumped if TRUE)
***************
*** 146,150 ****
  	
  	bool isnameenabled_set = false;
! 	if( m_ptr->getAttribute( IsNameEnabled_str)->getStatus() == BON::AS_Here)
  	{
  		m_bAttrIsNameEnabled	= m_ptr->getAttribute( IsNameEnabled_str)->getBooleanValue();	// def val: TRUE (dumped if FALSE)
--- 146,150 ----
  	
  	bool isnameenabled_set = false;
! 	if( m_ptr->getAttribute( IsNameEnabled_str)->getStatus() >= BON::AS_Here)
  	{
  		m_bAttrIsNameEnabled	= m_ptr->getAttribute( IsNameEnabled_str)->getBooleanValue();	// def val: TRUE (dumped if FALSE)
***************
*** 153,157 ****
  
  	bool isnamepos_set = false;
! 	//if( m_ptr->getAttribute( NamePosition_str)->getStatus() == BON::AS_Here)
  	{
  		m_iAttrNamePosition	= m_ptr->getAttribute( NamePosition_str)->getIntegerValue();// dumped anyway
--- 153,157 ----
  
  	bool isnamepos_set = false;
! 	//if( m_ptr->getAttribute( NamePosition_str)->getStatus() >= BON::AS_Here)
  	{
  		m_iAttrNamePosition	= m_ptr->getAttribute( NamePosition_str)->getIntegerValue();// dumped anyway
***************
*** 160,164 ****
  
  	bool isnamewrapnum_set = false;
! 	if( m_ptr->getAttribute( NameWrapNum_str)->getStatus() == BON::AS_Here)
  	{
  		m_iAttrNameWrapNum	= m_ptr->getAttribute( NameWrapNum_str)->getIntegerValue(); // dumped if not 0
--- 160,164 ----
  
  	bool isnamewrapnum_set = false;
! 	if( m_ptr->getAttribute( NameWrapNum_str)->getStatus() >= BON::AS_Here)
  	{
  		m_iAttrNameWrapNum	= m_ptr->getAttribute( NameWrapNum_str)->getIntegerValue(); // dumped if not 0
***************
*** 167,171 ****
  
  	bool icon_set = false;
! 	if( m_ptr->getAttribute( Icon_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrIcon = m_ptr->getAttribute( Icon_str)->getStringValue(); // dumped if not empty
--- 167,171 ----
  
  	bool icon_set = false;
! 	if( m_ptr->getAttribute( Icon_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrIcon = m_ptr->getAttribute( Icon_str)->getStringValue(); // dumped if not empty
***************
*** 174,178 ****
  
  	bool porticon_set = false;
! 	if( m_ptr->getAttribute( PortIcon_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrPortIcon = m_ptr->getAttribute( PortIcon_str)->getStringValue();
--- 174,178 ----
  
  	bool porticon_set = false;
! 	if( m_ptr->getAttribute( PortIcon_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrPortIcon = m_ptr->getAttribute( PortIcon_str)->getStringValue();
***************
*** 181,185 ****
  
  	bool subtypeicon_set = false;
! 	if( m_ptr->getAttribute( SubTypeIcon_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrSubTypeIcon = m_ptr->getAttribute( SubTypeIcon_str)->getStringValue();
--- 181,185 ----
  
  	bool subtypeicon_set = false;
! 	if( m_ptr->getAttribute( SubTypeIcon_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrSubTypeIcon = m_ptr->getAttribute( SubTypeIcon_str)->getStringValue();
***************
*** 188,192 ****
  
  	bool instanceicon_set = false;
! 	if( m_ptr->getAttribute( InstanceIcon_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrInstanceIcon = m_ptr->getAttribute( InstanceIcon_str)->getStringValue();
--- 188,192 ----
  
  	bool instanceicon_set = false;
! 	if( m_ptr->getAttribute( InstanceIcon_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrInstanceIcon = m_ptr->getAttribute( InstanceIcon_str)->getStringValue();
***************
*** 195,199 ****
  
  	bool decorator_set = false;
! 	if( m_ptr->getAttribute( Decorator_str)->getStatus() == BON::AS_Here)
  	{
  		m_sAttrDecorator = m_ptr->getAttribute( Decorator_str)->getStringValue();
--- 195,199 ----
  
  	bool decorator_set = false;
! 	if( m_ptr->getAttribute( Decorator_str)->getStatus() >= BON::AS_Here)
  	{
  		m_sAttrDecorator = m_ptr->getAttribute( Decorator_str)->getStringValue();
***************
*** 216,220 ****
  		// isAbstract: true if all objects are true
  		//m_isAbstract = m_isAbstract && (*it)->getAttribute( IsAbstract_str)->getBooleanValue();
! 		if( (*it)->getAttribute( IsAbstract_str)->getStatus() == BON::AS_Here) // if set by the user
  		{
  			isabs = isabs && (*it)->getAttribute( IsAbstract_str)->getBooleanValue();
--- 216,220 ----
  		// isAbstract: true if all objects are true
  		//m_isAbstract = m_isAbstract && (*it)->getAttribute( IsAbstract_str)->getBooleanValue();
! 		if( (*it)->getAttribute( IsAbstract_str)->getStatus() >= BON::AS_Here) // if set by the user
  		{
  			isabs = isabs && (*it)->getAttribute( IsAbstract_str)->getBooleanValue();
***************
*** 223,227 ****
  #if(1)
  		// general pref
! 		if ( !isgenpref_set && (*it)->getAttribute( GeneralPreferences_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrGenPref = (*it)->getAttribute( GeneralPreferences_str)->getStringValue();
--- 223,227 ----
  #if(1)
  		// general pref
! 		if ( !isgenpref_set && (*it)->getAttribute( GeneralPreferences_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrGenPref = (*it)->getAttribute( GeneralPreferences_str)->getStringValue();
***************
*** 230,234 ****
  
  		// displayed name
! 		if ( !isdispname_set && (*it)->getAttribute( DisplayedName_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrDispName = (*it)->getAttribute( DisplayedName_str)->getStringValue();
--- 230,234 ----
  
  		// displayed name
! 		if ( !isdispname_set && (*it)->getAttribute( DisplayedName_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrDispName = (*it)->getAttribute( DisplayedName_str)->getStringValue();
***************
*** 239,243 ****
  		if ((*it)->getObjectMeta().name().find("Proxy") != std::string::npos) continue;
  
! 		if( !ishotspotenabled_set && (*it)->getAttribute( IsHotspotEnabled_str)->getStatus() == BON::AS_Here)
  		{
  			m_bAttrIsHotspotEnabled	= m_bAttrIsHotspotEnabled || (*it)->getAttribute( IsHotspotEnabled_str)->getBooleanValue();
--- 239,243 ----
  		if ((*it)->getObjectMeta().name().find("Proxy") != std::string::npos) continue;
  
! 		if( !ishotspotenabled_set && (*it)->getAttribute( IsHotspotEnabled_str)->getStatus() >= BON::AS_Here)
  		{
  			m_bAttrIsHotspotEnabled	= m_bAttrIsHotspotEnabled || (*it)->getAttribute( IsHotspotEnabled_str)->getBooleanValue();
***************
*** 245,249 ****
  		}
  		
! 		if( !istypeshown_set && (*it)->getAttribute( IsTypeShown_str)->getStatus() == BON::AS_Here)
  		{
  			m_bAttrIsTypeShown		= m_bAttrIsTypeShown || (*it)->getAttribute( IsTypeShown_str)->getBooleanValue();
--- 245,249 ----
  		}
  		
! 		if( !istypeshown_set && (*it)->getAttribute( IsTypeShown_str)->getStatus() >= BON::AS_Here)
  		{
  			m_bAttrIsTypeShown		= m_bAttrIsTypeShown || (*it)->getAttribute( IsTypeShown_str)->getBooleanValue();
***************
*** 251,255 ****
  		}
  		
! 		if( !isnameenabled_set && (*it)->getAttribute( IsNameEnabled_str)->getStatus() == BON::AS_Here)
  		{
  			m_bAttrIsNameEnabled	= m_bAttrIsNameEnabled || (*it)->getAttribute( IsNameEnabled_str)->getBooleanValue();
--- 251,255 ----
  		}
  		
! 		if( !isnameenabled_set && (*it)->getAttribute( IsNameEnabled_str)->getStatus() >= BON::AS_Here)
  		{
  			m_bAttrIsNameEnabled	= m_bAttrIsNameEnabled || (*it)->getAttribute( IsNameEnabled_str)->getBooleanValue();
***************
*** 258,267 ****
  
  
! 		if ( !isnamepos_set && (*it)->getAttribute( NamePosition_str)->getStatus() == BON::AS_Here)
  		{
  			m_iAttrNamePosition	= (*it)->getAttribute( NamePosition_str)->getIntegerValue();
  			isnamepos_set = true;
  		}
! 		if ( !isnamewrapnum_set && (*it)->getAttribute( NameWrapNum_str)->getStatus() == BON::AS_Here)
  		{
  			m_iAttrNameWrapNum	= (*it)->getAttribute( NameWrapNum_str)->getIntegerValue();
--- 258,267 ----
  
  
! 		if ( !isnamepos_set && (*it)->getAttribute( NamePosition_str)->getStatus() >= BON::AS_Here)
  		{
  			m_iAttrNamePosition	= (*it)->getAttribute( NamePosition_str)->getIntegerValue();
  			isnamepos_set = true;
  		}
! 		if ( !isnamewrapnum_set && (*it)->getAttribute( NameWrapNum_str)->getStatus() >= BON::AS_Here)
  		{
  			m_iAttrNameWrapNum	= (*it)->getAttribute( NameWrapNum_str)->getIntegerValue();
***************
*** 270,294 ****
  
  
! 		if ( !icon_set && (*it)->getAttribute( Icon_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrIcon = (*it)->getAttribute( Icon_str)->getStringValue();
  			icon_set = true;
  		}
! 		if ( !porticon_set && (*it)->getAttribute( PortIcon_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrPortIcon = (*it)->getAttribute( PortIcon_str)->getStringValue();
  			porticon_set = true;
  		}
! 		if( !subtypeicon_set && (*it)->getAttribute( SubTypeIcon_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrSubTypeIcon = (*it)->getAttribute( SubTypeIcon_str)->getStringValue();
  			subtypeicon_set = true;
  		}
! 		if ( !instanceicon_set && (*it)->getAttribute( InstanceIcon_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrInstanceIcon = (*it)->getAttribute( InstanceIcon_str)->getStringValue();
  			instanceicon_set = true;
  		}
! 		if ( !decorator_set && (*it)->getAttribute( Decorator_str)->getStatus() == BON::AS_Here)
  		{
  			m_sAttrDecorator = (*it)->getAttribute( Decorator_str)->getStringValue();
--- 270,294 ----
  
  
! 		if ( !icon_set && (*it)->getAttribute( Icon_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrIcon = (*it)->getAttribute( Icon_str)->getStringValue();
  			icon_set = true;
  		}
! 		if ( !porticon_set && (*it)->getAttribute( PortIcon_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrPortIcon = (*it)->getAttribute( PortIcon_str)->getStringValue();
  			porticon_set = true;
  		}
! 		if( !subtypeicon_set && (*it)->getAttribute( SubTypeIcon_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrSubTypeIcon = (*it)->getAttribute( SubTypeIcon_str)->getStringValue();
  			subtypeicon_set = true;
  		}
! 		if ( !instanceicon_set && (*it)->getAttribute( InstanceIcon_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrInstanceIcon = (*it)->getAttribute( InstanceIcon_str)->getStringValue();
  			instanceicon_set = true;
  		}
! 		if ( !decorator_set && (*it)->getAttribute( Decorator_str)->getStatus() >= BON::AS_Here)
  		{
  			m_sAttrDecorator = (*it)->getAttribute( Decorator_str)->getStringValue();



More information about the GME-commit mailing list