| Summary: | java class import : method and class visibility ignored (treated as public) | ||
|---|---|---|---|
| Product: | [Applications] umbrello | Reporter: | JP Fournier <jfournier121> |
| Component: | general | Assignee: | Oliver Kellogg <okellogg> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
umbrello version = 1.5.4 - kdesdk-561582 I changed javaimport.cpp to make use of the m_currentAccess. Seems to work for me. Patch below. Not obvious to me what should be done about java's package visibility though since it doesn't seem to be defined in the Visibility enum.
regards
jp
jape@puma:~/tmp/uml/kdesdk-561582$ diff -c umbrello-561582/umbrello/javaimport.cpp umbrello/umbrello/javaimport.cpp
*** umbrello-561582/umbrello/javaimport.cpp 2006-07-15 07:24:49.000000000 -0400
--- umbrello/umbrello/javaimport.cpp 2006-07-15 08:43:00.000000000 -0400
***************
*** 315,321 ****
break;
m_srcIndex++;
}
! Import_Utils::insertMethod(m_klass, op, Uml::Visibility::Public, typeName,
m_isStatic, m_isAbstract, false /*isFriend*/,
false /*isConstructor*/, m_comment);
m_isAbstract = m_isStatic = false;
--- 315,321 ----
break;
m_srcIndex++;
}
! Import_Utils::insertMethod(m_klass, op, m_currentAccess, typeName,
m_isStatic, m_isAbstract, false /*isFriend*/,
false /*isConstructor*/, m_comment);
m_isAbstract = m_isStatic = false;
SVN commit 562844 by okellogg:
parseStmt(): Use m_currentAccess at call to Import_Utils::insertMethod().
Thanks to JP Fournier for the patch.
BUG:130794
M +1 -0 ChangeLog
M +1 -1 umbrello/javaimport.cpp
--- branches/KDE/3.5/kdesdk/umbrello/ChangeLog #562843:562844
@@ -6,6 +6,7 @@
* Cannot insert transition/association TO fork/join node in activity diagram (129914)
* Importing java subinterface before superinterface results in superinterface
not being treated as an interface (130793)
+* Java import: method and class visibility ignored (130794)
Version 1.5.3
--- branches/KDE/3.5/kdesdk/umbrello/umbrello/javaimport.cpp #562843:562844
@@ -315,7 +315,7 @@
break;
m_srcIndex++;
}
- Import_Utils::insertMethod(m_klass, op, Uml::Visibility::Public, typeName,
+ Import_Utils::insertMethod(m_klass, op, m_currentAccess, typeName,
m_isStatic, m_isAbstract, false /*isFriend*/,
false /*isConstructor*/, m_comment);
m_isAbstract = m_isStatic = false;
|
Version: (using KDE KDE 3.5.0) Compiler: gcc 3.4.4 OS: Linux When importing a java class non-public methods are displayed as public. Also the visibility of the class itself is treated as public when it is pakage visible. Steps to reproduce: - import class below - drag class to class diagram - all methods are labeled as public (+) - class is also treated as public ------------------ class Visibility { private void privateMethod() { } public void publicMethod() { } protected void protectedMethod() { } void packageMethod() { } }