On Thu, Apr 22, 2010 at 7:17 PM, Satyagraha <[email protected]> wrote: > OK, I've found the root of the problem. It's to do with how ArgoUML > determines the permitted namespaces for inheriting classes, i.e. those which > are GeneralizableElements, and the rules in this case are (apparently > deliberately) very restrictive. See > http://argouml.tigris.org/issues/show_bug.cgi?id=3772 for much more > background. >
The rules that this code is implementing are the so called "well formedness rules" from the UML 1.4 specification. http://www.omg.org/spec/UML/1.4/ As a general rule we try to allow temporarily invalid models and warn the user of problems with critics specifically to allow transient things like refactorings. In some cases though, like the containment hierarchy issue that I mentioned before, there are hard limits enforced by the tools that we use (the Sun NetBeans MDR library). In this case I suspect it's rule 2.5.3.20 #4 that's being enforced: [4] The parent must be included in the Namespace of the GeneralizableElement. self.generalization->forAll(g | self.namespace.allContents->includes(g.parent) ) I suspect the constraint rule could be satisfied by having an ElementImport in the appropriate place, but perhaps we don't have this implement, or it's implemented wrong. If you believe the current behavior is incorrect (I haven't looked at the code myself), please file a bug report (or better yet, include a patch with it). Tom ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=449&dsMessageId=2593009 To unsubscribe from this discussion, e-mail: [[email protected]].
