[Mobies-commit] [commit] r4187 - UDM/trunk/src/UdmBase

ksmyth at redhat3.isis.vanderbilt.edu ksmyth at redhat3.isis.vanderbilt.edu
Thu Aug 29 16:06:14 CDT 2013


Author: ksmyth
Date: Thu Aug 29 16:06:14 2013
New Revision: 4187

Log:
Put multiple associations for assocation classes in xsd

Modified:
   UDM/trunk/src/UdmBase/DTDGen.cpp

Modified: UDM/trunk/src/UdmBase/DTDGen.cpp
==============================================================================
--- UDM/trunk/src/UdmBase/DTDGen.cpp	Tue Aug 27 13:33:07 2013	(r4186)
+++ UDM/trunk/src/UdmBase/DTDGen.cpp	Thu Aug 29 16:06:14 2013	(r4187)
@@ -733,14 +733,11 @@
 			associations = Uml::AncestorAssociationTargetRoles(c);
 
 		set< ::Uml::Class> ccl = ::Uml::AncestorClasses(c);
-		::Uml::Association ass;
+		set< ::Uml::Association> assocations;
 		for(set< ::Uml::Class>::iterator iii = ccl.begin(); iii != ccl.end(); iii++) {
 
 			if(::Uml::Association(iii->association())) {
-				if(ass) {
-					throw udm_exception("Class " + c.getPath2("::", false) + " has multiple associations"); 
-				}
-				else ass = iii->association();
+				assocations.insert(iii->association());
 			}
 		}
 
@@ -895,8 +892,8 @@
 			++j;
 		}
 
-		if(ass) {
-			set< ::Uml::AssociationRole> rs(ass.roles());
+		for(set< ::Uml::Association>::iterator assocIt = assocations.begin(); assocIt != assocations.end(); assocIt++) {
+			set< ::Uml::AssociationRole> rs(assocIt->roles());
 			set< ::Uml::AssociationRole>::iterator j = rs.begin();
 			while( j != rs.end() ) {
 				name = ::Uml::MakeRoleName(*j);


More information about the Mobies-commit mailing list