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]].

Reply via email to