[Mobies-commit] [commit] r3564 - GReAT/trunk/Tools/MetaGME2UMX

ksmyth at redhat1.isis.vanderbilt.edu ksmyth at redhat1.isis.vanderbilt.edu
Thu Nov 18 17:09:02 CST 2010


Author: ksmyth
Date: Thu Nov 18 17:09:02 2010
New Revision: 3564

Log:
Be able to specify refport parent reverse rolename

Modified:
   GReAT/trunk/Tools/MetaGME2UMX/MetaGME2UML.h
   GReAT/trunk/Tools/MetaGME2UMX/MetaGME2UML_2.cpp

Modified: GReAT/trunk/Tools/MetaGME2UMX/MetaGME2UML.h
==============================================================================
--- GReAT/trunk/Tools/MetaGME2UMX/MetaGME2UML.h	Thu Nov 18 14:06:41 2010	(r3563)
+++ GReAT/trunk/Tools/MetaGME2UMX/MetaGME2UML.h	Thu Nov 18 17:09:02 2010	(r3564)
@@ -151,8 +151,8 @@
 
 	void CreateRefportContainersAssociations(MetaGME::ParadigmSheet ps, UmlGME::ClassDiagram cd);
 	std::set<MetaGME::Reference> GetRefportContainers(MetaGME::BaseFCO& connend, const MetaGME::Connection& connection);
-	void CreateRefportContainerAssociation(const MetaGME::Connection& connection, const std::string& assoc_rolename, const std::string& rolename, const std::set<MetaGME::Reference>& refport_containers, UmlGME::ClassDiagram& cd);
-	void CreateRefportConnection(const UmlGME::ClassBase& connection, const UmlGME::ClassBase& refport_container, const std::string& rolename);
+	void CreateRefportContainerAssociation(const MetaGME::Connection& connection, const std::string& assoc_rolename, const std::string& rolename, const std::string& rrolename, const std::set<MetaGME::Reference>& refport_containers, UmlGME::ClassDiagram& cd);
+	void CreateRefportConnection(const UmlGME::ClassBase& connection, const UmlGME::ClassBase& refport_container, const std::string& rolename, const std::string& rrolename);
 
 	void CreateEquivalenceAssociation(MetaGME::ParadigmSheet ps, UmlGME::ClassDiagram cd);
 	void CreateFolderEquivalenceAssociation(MetaGME::ParadigmSheet ps, UmlGME::ClassDiagram cd);

Modified: GReAT/trunk/Tools/MetaGME2UMX/MetaGME2UML_2.cpp
==============================================================================
--- GReAT/trunk/Tools/MetaGME2UMX/MetaGME2UML_2.cpp	Thu Nov 18 14:06:41 2010	(r3563)
+++ GReAT/trunk/Tools/MetaGME2UMX/MetaGME2UML_2.cpp	Thu Nov 18 17:09:02 2010	(r3564)
@@ -1102,22 +1102,30 @@
 
 		if (dstFco && dstrolename != "")
 		{
+			std::string dstrrolename = GetValueForName("rdRefParent", prefMap);
+			if (dstrrolename == "") {
+				dstrrolename = dstrolename + "_rev";
+			}
 			std::set<MetaGME::Reference> refport_containers = GetRefportContainers(RefByProxy(dstFco), connection);
 			if (ctodst.begin()->dstRolename() == "" && srctoc.begin()->srcRolename() == "") { // bidirectional connection
 				std::set<MetaGME::Reference> src_refport_containers = GetRefportContainers(RefByProxy(srcFco), connection);
 				std::copy(src_refport_containers.begin(), src_refport_containers.end(), set_inserter(refport_containers));
 			}
-			CreateRefportContainerAssociation(connection, dst_assoc_rolename, dstrolename, refport_containers, cd);
+			CreateRefportContainerAssociation(connection, dst_assoc_rolename, dstrolename, dstrrolename, refport_containers, cd);
 		}
 
 		if (srcFco && srcrolename != "")
 		{
+			std::string srcrrolename = GetValueForName("rsRefParent", prefMap);
+			if (srcrrolename == "") {
+				srcrrolename = srcrolename + "_rev";
+			}
 			std::set<MetaGME::Reference> refport_containers = GetRefportContainers(RefByProxy(srcFco), connection);
 			if (ctodst.begin()->dstRolename() == "" && srctoc.begin()->srcRolename() == "") { // bidirectional connection
 				std::set<MetaGME::Reference> dst_refport_containers = GetRefportContainers(RefByProxy(dstFco), connection);
 				std::copy(dst_refport_containers.begin(), dst_refport_containers.end(), set_inserter(refport_containers));
 			}
-			CreateRefportContainerAssociation(connection, src_assoc_rolename, srcrolename, refport_containers, cd);
+			CreateRefportContainerAssociation(connection, src_assoc_rolename, srcrolename, srcrrolename, refport_containers, cd);
 		}
 
 	}
@@ -1273,7 +1281,7 @@
 	return refport_containers;
 }
 
-void MetaGME2UML::CreateRefportContainerAssociation(const MetaGME::Connection& connection, const std::string& assoc_rolename, const std::string& rolename, const std::set<MetaGME::Reference>& refport_containers, UmlGME::ClassDiagram& cd)
+void MetaGME2UML::CreateRefportContainerAssociation(const MetaGME::Connection& connection, const std::string& assoc_rolename, const std::string& rolename, const std::string& rrolename, const std::set<MetaGME::Reference>& refport_containers, UmlGME::ClassDiagram& cd)
 {
 	if(refport_containers.size() == 0)
 	{
@@ -1288,7 +1296,7 @@
 		UmlGME::ClassBase cref = GetInterface(ref);
 		if (Udm::Object(cconnectionclass.parent()) == Udm::Object(cref.parent()))
 		{
-			CreateRefportConnection(cconnectionclass, cref, rolename);
+			CreateRefportConnection(cconnectionclass, cref, rolename, rrolename);
 			return;
 		}
 	}
@@ -1315,7 +1323,7 @@
 		refport_container.name() = (string)cref_class.name();
 		refport_container.position() = MakePosition(350,50,350,50);
 		refport_container.ref() = cref_class;
-		CreateRefportConnection(refp, refport_container, rolename);
+		CreateRefportConnection(refp, refport_container, rolename, rrolename);
 		return;
 	}
 
@@ -1324,7 +1332,7 @@
 	refport_container.position() = MakePosition(350,50,350,50);
 	refport_container.Stereotype() = "FCO";
 	refport_container.IsAbstract() = true;
-	CreateRefportConnection(refp, refport_container, rolename);
+	CreateRefportConnection(refp, refport_container, rolename, rrolename);
 
 	UmlGME::Inheritance cinh = UmlGME::Inheritance::Create(classdiagram);
 	cinh.position() = MakePosition(250,150,250,150);
@@ -1353,7 +1361,7 @@
 	}
 }
 
-void MetaGME2UML::CreateRefportConnection(const UmlGME::ClassBase& connection, const UmlGME::ClassBase& refport_container, const std::string& rolename)
+void MetaGME2UML::CreateRefportConnection(const UmlGME::ClassBase& connection, const UmlGME::ClassBase& refport_container, const std::string& rolename, const std::string& rrolename)
 {
 	UmlGME::Association cref = UmlGME::Association::Create(connection.parent());
 
@@ -1362,7 +1370,7 @@
 	cref.dstCardinality() = "0..1";
 	cref.srcCardinality() = "0..*";
 	cref.dstRolename() = rolename;
-	cref.srcRolename() = rolename + "_rev";
+	cref.srcRolename() = rrolename;
 }
 
 


More information about the Mobies-commit mailing list