[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