Bug 98022 - JJ: Support 'Implementation' visibility in code generators
Summary: JJ: Support 'Implementation' visibility in code generators
Status: RESOLVED WORKSFORME
Alias: None
Product: umbrello
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR wishlist
Target Milestone: ---
Assignee: Umbrello Development Group
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-01-27 21:48 UTC by Marcos Mayorga
Modified: 2007-02-19 21:57 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
Added the new scope item, and replaced enum uml::scope for a class uml::scope (102.25 KB, patch)
2005-02-02 23:47 UTC, Marcos Mayorga
Details
Image 1/4 to picts directory (372 bytes, image/png)
2005-02-02 23:48 UTC, Marcos Mayorga
Details
Image 2/4 to picts directory (391 bytes, image/png)
2005-02-02 23:49 UTC, Marcos Mayorga
Details
Image 3/4 to picts directory (392 bytes, image/png)
2005-02-02 23:50 UTC, Marcos Mayorga
Details
Image 4/4 to picts directory (309 bytes, image/png)
2005-02-02 23:51 UTC, Marcos Mayorga
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marcos Mayorga 2005-01-27 21:48:02 UTC
Version:           1.3.90 (using KDE 3.3.91 (beta1), compiled sources)
Compiler:          gcc version 3.3.4 (Debian 1:3.3.4-13)
OS:                Linux (i686) release 2.6.8.1

In the visibility selector, in class properties dialog, which actually is composed by public, protected and private options, need 'Implementation option' which means that the class is not visible to the specification (header in c++). The code generator will write the class declaration in a implementation file. 
The same for attributes and operations, the code generator would write the declarations in the implementation file (cpp for c++) rather than in the spec file. (.h)
The same for dependency relationships (in this case two optins: public,implementation), the code generator would write the include directive in the cpp when 'implementation' and in the header when 'public'
Comment 1 Marcos Mayorga 2005-02-02 23:47:16 UTC
Created attachment 9399 [details]
Added the new scope item, and replaced enum uml::scope for a class uml::scope  

code generators need to be updated later.
I hope you understand and are happy with this improvement, and then apply it to
the repository. (I say that because I haven't received any feedback since I
posted the bug)
Comment 2 Marcos Mayorga 2005-02-02 23:48:38 UTC
Created attachment 9400 [details]
Image 1/4 to picts directory
Comment 3 Marcos Mayorga 2005-02-02 23:49:32 UTC
Created attachment 9401 [details]
Image 2/4 to picts directory
Comment 4 Marcos Mayorga 2005-02-02 23:50:29 UTC
Created attachment 9402 [details]
Image 3/4 to picts directory
Comment 5 Marcos Mayorga 2005-02-02 23:51:10 UTC
Created attachment 9403 [details]
Image 4/4 to picts directory
Comment 6 Oliver Kellogg 2005-02-03 07:12:38 UTC
Looks interesting. (umbrello-1.5)
Comment 7 Jonathan Riddell 2005-02-13 21:36:03 UTC
Is this part of the UML spec at all?  (That doesn't mean we shouldn't accept it, just that we should be careful to do it to the spec if it does).
Comment 8 Marcos Mayorga 2005-02-14 08:11:02 UTC
I don't know if UML spec say anything about it. My intention was to do a clone of Rational Rose functionality which is very useful, nevertheless i will consult the spec to know what it says. 
Comment 9 Marcos Mayorga 2005-10-01 23:14:29 UTC
For a dependency relationship, methods and attributes:
I think the best is to leave the three well-known visibility options, and, separately, when the selected item is 'private', a checkbox can be used to specify 'implementation'.
 
Regards
Comment 10 Oliver Kellogg 2005-10-02 16:48:02 UTC
> ------- Additional Comment #1 From Marcos Mayorga
> Created an attachment (id=9399) 
> Added the new scope item, and replaced enum uml::scope for a class uml::scope   
> code generators need to be updated later. 
> I hope you understand and are happy with this improvement, and then apply it
> to the repository.

Looks okay to me.
Could you also attach the required new pixmaps,

> umbrello/pics/CVimplementation_meth.png
> umbrello/pics/CVimplementation_signal.png
> umbrello/pics/CVimplementation_slot.png
> umbrello/pics/CVimplementation_var.png
Comment 11 Oliver Kellogg 2005-10-02 16:49:24 UTC
Oh, stupid me. Here they are already :-)
Comment 12 Oliver Kellogg 2005-10-02 22:48:04 UTC
SVN commit 466510 by okellogg:

CCBUG:98022 - Apply attachment (id=9399) from Marcos Mayorga.
Also renamed 'Scope' to 'Visibility' as the former was a longstanding
 misnomer in Umbrello.
> code generators need to be updated later.



 M  +4 -4      adaimport.cpp  
 M  +4 -4      association.cpp  
 M  +4 -4      association.h  
 M  +14 -14    associationwidget.cpp  
 M  +3 -3      associationwidget.h  
 M  +5 -10     attribute.cpp  
 M  +7 -7      attribute.h  
 M  +5 -5      classifier.cpp  
 M  +1 -1      classifier.h  
 M  +2 -2      classifiercodedocument.cpp  
 M  +2 -2      classifiercodedocument.h  
 M  +32 -32    classifierwidget.cpp  
 M  +9 -9      classifierwidget.h  
 M  +8 -19     classparser/cpptree2uml.cpp  
 M  +1 -1      classparser/cpptree2uml.h  
 M  +5 -5      codegenerators/adawriter.cpp  
 M  +4 -4      codegenerators/aswriter.cpp  
 M  +7 -6      codegenerators/classifierinfo.cpp  
 M  +2 -1      codegenerators/cppheaderclassdeclarationblock.cpp  
 M  +1 -1      codegenerators/cppheadercodeaccessormethod.cpp  
 M  +22 -22    codegenerators/cppheadercodedocument.cpp  
 M  +17 -17    codegenerators/cppsourcecodeclassfielddeclarationblock.cpp  
 M  +54 -50    codegenerators/cppwriter.cpp  
 M  +11 -11    codegenerators/cppwriter.h  
 M  +5 -5      codegenerators/idlwriter.cpp  
 M  +1 -1      codegenerators/javaclassdeclarationblock.cpp  
 M  +6 -5      codegenerators/javaclassifiercodedocument.cpp  
 M  +1 -1      codegenerators/javaclassifiercodedocument.h  
 M  +1 -1      codegenerators/javacodeaccessormethod.cpp  
 M  +2 -2      codegenerators/javacodeclassfielddeclarationblock.cpp  
 M  +2 -2      codegenerators/javacodeoperation.cpp  
 M  +27 -27    codegenerators/javawriter.cpp  
 M  +6 -6      codegenerators/javawriter.h  
 M  +8 -8      codegenerators/perlwriter.cpp  
 M  +24 -24    codegenerators/php5writer.cpp  
 M  +16 -16    codegenerators/phpwriter.cpp  
 M  +4 -4      codegenerators/pythonwriter.cpp  
 M  +26 -26    codegenerators/rubyclassifiercodedocument.cpp  
 M  +1 -1      codegenerators/rubyclassifiercodedocument.h  
 M  +1 -1      codegenerators/rubycodeaccessormethod.cpp  
 M  +2 -2      codegenerators/rubycodeclassfielddeclarationblock.cpp  
 M  +2 -2      codegenerators/rubycodeoperation.cpp  
 M  +16 -16    codegenerators/rubywriter.cpp  
 M  +2 -2      codegenerators/rubywriter.h  
 M  +4 -4      codegenerators/sqlwriter.cpp  
 M  +52 -52    codegenerators/tclwriter.cpp  
 M  +4 -4      codegenerators/tclwriter.h  
 M  +8 -8      codegenerators/xmlschemawriter.cpp  
 M  +2 -2      codeparameter.cpp  
 M  +1 -1      codeparameter.h  
 M  +30 -16    dialogs/assocrolepage.cpp  
 M  +2 -2      dialogs/assocrolepage.h  
 M  +17 -9     dialogs/classgenpage.cpp  
 M  +1 -1      dialogs/classgenpage.h  
 M  +1 -1      dialogs/classifierlistpage.cpp  
 M  +10 -10    dialogs/classoptionspage.cpp  
 M  +1 -1      dialogs/classoptionspage.h  
 M  +1 -1      dialogs/selectopdlg.cpp  
 M  +7 -7      dialogs/settingsdlg.cpp  
 M  +1 -1      dialogs/settingsdlg.h  
 M  +19 -11    dialogs/umlattributedialog.cpp  
 M  +1 -1      dialogs/umlattributedialog.h  
 M  +20 -12    dialogs/umloperationdialog.cpp  
 M  +1 -1      dialogs/umloperationdialog.h  
 M  +12 -8     dialogs/umlroleproperties.cpp  
 M  +176 -135  dialogs/umlrolepropertiesbase.ui  
 M  +2 -2      dialogs/umlviewdialog.cpp  
 M  +1 -1      entity.cpp  
 M  +5 -10     entityattribute.cpp  
 M  +6 -6      entityattribute.h  
 M  +3 -3      idlimport.cpp  
 M  +3 -3      import_utils.cpp  
 M  +2 -2      import_utils.h  
 M  +2 -2      linkwidget.cpp  
 M  +4 -4      listpopupmenu.cpp  
 M  +2 -2      listpopupmenu.h  
 M  +1 -1      messagewidget.cpp  
 M  +0 -15     model_utils.cpp  
 M  +7 -17     model_utils.h  
 M  +1 -1      nativeimportbase.cpp  
 M  +1 -1      nativeimportbase.h  
 M  +10 -16    operation.cpp  
 M  +5 -5      operation.h  
 M  +3 -3      optionstate.h  
 AM            pics/CVimplementation_meth.png  
 AM            pics/CVimplementation_signal.png  
 AM            pics/CVimplementation_slot.png  
 AM            pics/CVimplementation_var.png  
 M  +4 -0      pics/Makefile.am  
 M  +9 -4      refactoring/refactoringassistant.cpp  
 M  +1 -0      refactoring/refactoringassistant.h  
 M  +4 -4      uml.cpp  
 M  +7 -7      umllistview.cpp  
 M  +15 -11    umllistviewitem.cpp  
 M  +48 -0     umlnamespace.cpp  
 M  +25 -7     umlnamespace.h  
 M  +20 -16    umlobject.cpp  
 M  +8 -8      umlobject.h  
 M  +3 -20     umlrole.cpp  
 M  +0 -14     umlrole.h  
 M  +6 -6      umlview.cpp  
 M  +1 -1      umlwidget.cpp  
Comment 13 Oliver Kellogg 2005-10-03 20:18:06 UTC
SVN commit 466936 by okellogg:

Implement new 'Implementation' visibility for the old C++ code generator.
CCBUG:98022


 M  +283 -320  cppwriter.cpp  
 M  +1 -1      cppwriter.h  
Comment 14 Oliver Kellogg 2007-02-17 14:58:10 UTC
Candidate for Junior Job: Follow the CPPWriter example (SVN commit 466936)
for updating the further code generators.
Comment 15 Antoine Dopffer 2007-02-17 21:45:03 UTC
What should be updated ?
Only the new C++ code generator (in this case, I suppose the bug #84739 will be fixed soon) ?
Or all the other code generators ?
Comment 16 Oliver Kellogg 2007-02-17 21:55:22 UTC
> What should be updated ?

Nobody has volunteered so far to fix bug #84739, and I'm afraid it's not
an easy one to fix (IMHO. But maybe it's just my small mind.)

So that leaves us with *Writer, i.e. the old code generators.
And of those, only the ones that generate implementation files
(not sure which ones do.)
Comment 17 Oliver Kellogg 2007-02-19 21:57:06 UTC
> So that leaves us with *Writer, i.e. the old code generators. 
> And of those, only the ones that generate implementation files 

On checking, I see that only the CPPWriter generates implementation files
so as far a I'm concerned we can close this.