[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