Bug 142392

Summary: missing "with" on Ada code generation for aggregation
Product: [Applications] umbrello Reporter: Mark Gardinier <mark>
Component: generalAssignee: Umbrello Development Group <umbrello-devel>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: xml and code

Description Mark Gardinier 2007-03-01 23:24:09 UTC
Version:            (using KDE KDE 3.5.5)
Installed from:    Fedora RPMs

Aggregation is now generating the correct code for Ada95.  Most of the Ada95 code generation is now working.  However...

1.  Create a class
2.  Create another class
3.  Create an aggregation between the two.

The code generator correctly declares one class as an array attribute of the other.  But it fails to include the "with" for that class.
Comment 1 Mark Gardinier 2007-03-01 23:24:59 UTC
Created attachment 19858 [details]
xml and code
Comment 2 Oliver Kellogg 2007-03-02 06:44:46 UTC
SVN commit 638477 by okellogg:

findObjectsRelated(), case Uml::at_{Aggregation,Composition,Association}:
 Do not require the role B name to be non-empty.
BUG:142392


 M  +2 -1      ChangeLog  
 M  +1 -4      umbrello/codegenerator.cpp  


--- branches/KDE/3.5/kdesdk/umbrello/ChangeLog #638476:638477
@@ -17,13 +17,14 @@
 * Associations not updated during move of class on diagram (140709)
 * Crash when deleting the link between a package and a class (141602)
 * Ada95 Code Generation Errors for Aggregation (141644)
-* Unable to delete multiplicity information or lable from an association
+* Unable to delete multiplicity information or label from an association
   (141813)
 * C++ code generator does not correctly define namespaces (141876)
 * Ada code generator generates "withs" in both directions for certain
   associations (141956)
 * Ada code generator always generates methods abstract even if abstract box
   not checked (142093)
+* Mmissing "with" on Ada code generation for aggregation (142392)
 
 Version 1.5.61
 
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/codegenerator.cpp #638476:638477
@@ -573,14 +573,11 @@
             break;
         case Uml::at_Aggregation:
         case Uml::at_Composition:
-        case Uml::at_Association_Self:
         case Uml::at_Association:
             {
                 UMLObject *objA = a->getObject(Uml::A);
                 UMLObject *objB = a->getObject(Uml::B);
-                // Add related object only if the rolename is not empty.
-                if (objA == c && !a->getRoleName(Uml::B).isEmpty() &&
-                    objB->getBaseType() != Uml::ot_Datatype)
+                if (objA == c && objB->getBaseType() != Uml::ot_Datatype)
                     temp = static_cast<UMLPackage*>(objB);
             }
             break;