[Uml-devel] [Bug 135527] Javascript wrong Code Generation
Oliver Kellogg
okellogg at users.sourceforge.net
Fri Feb 16 18:37:08 UTC 2007
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=135527
okellogg users sourceforge net changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |FIXED
------- Additional Comments From okellogg users sourceforge net 2007-02-16 19:37 -------
SVN commit 634263 by okellogg:
writeClass (aggregations, compositions): Do not generate code when `c´ is at role B.
Generate code for the role B object.
BUG:135527
M +1 -0 ChangeLog
M +10 -4 umbrello/codegenerators/jswriter.cpp
--- branches/KDE/3.5/kdesdk/umbrello/ChangeLog #634262:634263
@ -3,6 +3,7 @
* Bugs fixed from http://bugs.kde.org:
* %date% and %time% not being parsed (96612)
* Relationships for entities do not live outside of an entity relationship diagram (125146)
+* Javascript wrong Code Generation (135527)
* Javascript Code Generation creates bad format methods (135540)
* Crash when deleting the link between a package and a class (141602)
* Ada95 Code Generation Errors for Aggregation (141644)
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/codegenerators/jswriter.cpp #634262:634263
@ -155,8 +155,11 @
js << m_endl << m_indentation << "/**Aggregations: */" << m_endl;
for (UMLAssociation* a = aggregations.first(); a; a = aggregations.next())
{
- QString nm(cleanName(a->getObject(Uml::A)->getName()));
- if (a->getMulti(Uml::A).isEmpty())
+ UMLObject *b = a->getObject(Uml::B);
+ if (b == c)
+ continue; // we need to be at the "A" side and the other guy at "B"
+ QString nm(cleanName(b->getName()));
+ if (a->getMulti(Uml::B).isEmpty())
js << m_indentation << "this.m_" << nm << " = new " << nm << " ();" << m_endl;
else
js << m_indentation << "this.m_" << nm.lower() << " = new Array ();" << m_endl;
@ -168,8 +171,11 @
js << m_endl << m_indentation << "/**Compositions: */" << m_endl;
for (UMLAssociation *a = compositions.first(); a; a = compositions.next())
{
- QString nm(cleanName(a->getObject(Uml::A)->getName()));
- if(a->getMulti(Uml::A).isEmpty())
+ UMLObject *b = a->getObject(Uml::B);
+ if (b == c)
+ continue; // we need to be at the "A" side and the other guy at "B"
+ QString nm(cleanName(b->getName()));
+ if (a->getMulti(Uml::B).isEmpty())
js << m_indentation << "this.m_" << nm << " = new "<< nm << " ();" << m_endl;
else
js << m_indentation << "this.m_" << nm.lower() << " = new Array ();" << m_endl;
More information about the umbrello-devel
mailing list