svn commit: r15585 - trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: tfmorris
Date: 2008-08-19 09:44:30-0700
New Revision: 15585

Modified:
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CollaborationsHelperMDRImpl.java
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorFactoryMDRImpl.java
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorHelperMDRImpl.java
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ExtensionMechanismsFactoryMDRImpl.java
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java

Log:
Issue 4994: Last batch of basic extent related changes.  Where possible methods will use the extent that contains the argument(s) that they are passed.

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CollaborationsHelperMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CollaborationsHelperMDRImpl.java?view=diff&rev=15585&p1=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CollaborationsHelperMDRImpl.java&p2=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CollaborationsHelperMDRImpl.java&r1=15584&r2=15585
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CollaborationsHelperMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CollaborationsHelperMDRImpl.java	2008-08-19 09:44:30-0700
@@ -374,9 +374,9 @@
     //    [see below for AssociationRole]
     //    )
     private boolean isNamedOrUnique(ClassifierRole role, Classifier base) {
-        Collection<ClassifierRole> roles =
-                modelImpl.getUmlPackage().getCollaborations()
-                        .getAClassifierRoleBase().getClassifierRole(base);
+        Collection<ClassifierRole> roles = ((org.omg.uml.UmlPackage) (base)
+                .refOutermostPackage()).getCollaborations()
+                .getAClassifierRoleBase().getClassifierRole(base);
         if (roles.isEmpty()) {
             return true;
         }
@@ -405,9 +405,9 @@
     //                  p = q) ) )
     //    )
     private boolean isNamedOrUnique(AssociationRole role, UmlAssociation base) {
-        Collection<AssociationRole> roles =
-                modelImpl.getUmlPackage().getCollaborations()
-                        .getABaseAssociationRole().getAssociationRole(base);
+        Collection<AssociationRole> roles = ((org.omg.uml.UmlPackage) (base)
+                .refOutermostPackage()).getCollaborations()
+                .getABaseAssociationRole().getAssociationRole(base);
         if (roles.isEmpty()) {
             return true;
         }
@@ -551,10 +551,10 @@
         // An Association can only have a single unnamed ClassifierRole, so
         Collection<UmlAssociation> listToRemove = new ArrayList<UmlAssociation>();
         for (UmlAssociation association : ret) {
-            Collection<AssociationRole> associationRoles =
-                    modelImpl.getUmlPackage().getCollaborations()
-                            .getABaseAssociationRole().getAssociationRole(
-                                    association);
+            Collection<AssociationRole> associationRoles = 
+                ((org.omg.uml.UmlPackage) (association)
+                    .refOutermostPackage()).getCollaborations()
+                    .getABaseAssociationRole().getAssociationRole(association);
             if (associationRoles.isEmpty()) {
                 continue;
             }
@@ -602,10 +602,10 @@
         // TODO: This probably belongs in a critic instead of here
         Collection<Classifier> listToRemove = new ArrayList<Classifier>();
         for (Classifier classifier : returnList) {
-            Collection<ClassifierRole> classifierRoles =
-                    modelImpl.getUmlPackage().getCollaborations()
-                            .getAClassifierRoleBase().getClassifierRole(
-                                    classifier);
+            Collection<ClassifierRole> classifierRoles = 
+                ((org.omg.uml.UmlPackage) (classifier)
+                    .refOutermostPackage()).getCollaborations()
+                    .getAClassifierRoleBase().getClassifierRole(classifier);
             if (classifierRoles.isEmpty()) {
                 continue;
             }
@@ -783,7 +783,8 @@
     public void removeSuccessor(Object handle, Object mess) {
         try {
             if (handle instanceof Message && mess instanceof Message) {
-                modelImpl.getUmlPackage().getCollaborations()
+                ((org.omg.uml.UmlPackage) ((Message) handle)
+                        .refOutermostPackage()).getCollaborations()
                         .getAPredecessorSuccessor().remove((Message) handle,
                                 (Message) mess);
                 return;

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorFactoryMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorFactoryMDRImpl.java?view=diff&rev=15585&p1=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorFactoryMDRImpl.java&p2=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorFactoryMDRImpl.java&r1=15584&r2=15585
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorFactoryMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorFactoryMDRImpl.java	2008-08-19 09:44:30-0700
@@ -29,6 +29,7 @@
 
 import org.argouml.model.CommonBehaviorFactory;
 import org.argouml.model.Model;
+import org.omg.uml.UmlPackage;
 import org.omg.uml.behavioralelements.activitygraphs.ActionState;
 import org.omg.uml.behavioralelements.collaborations.CollaborationInstanceSet;
 import org.omg.uml.behavioralelements.collaborations.InteractionInstanceSet;
@@ -317,8 +318,10 @@
     public Signal buildSignal(Object element) {
         if ((element instanceof BehavioralFeature)) {
             Signal signal = buildSignalInt(element);
-            getCbPackage().getAContextRaisedSignal().add(
-                    (BehavioralFeature) element, signal);
+            BehavioralFeature bf = (BehavioralFeature) element;
+            ((UmlPackage) bf.refOutermostPackage()).getCommonBehavior()
+                    .getAContextRaisedSignal().add((BehavioralFeature) element,
+                            signal);
             return signal;
         } else if (element instanceof Reception) {
             Signal signal = buildSignalInt(element);
@@ -529,9 +532,13 @@
 
         // Delete Stimuli which have this as a Sender or Receiver
         modelImpl.getUmlHelper().deleteCollection(
-                getCbPackage().getAStimulusSender().getStimulus((Instance) elem));
+                ((UmlPackage) ((Instance) elem).refOutermostPackage())
+                        .getCommonBehavior().getAStimulusSender().getStimulus(
+                                (Instance) elem));
         modelImpl.getUmlHelper().deleteCollection(
-                getCbPackage().getAReceiverStimulus().getStimulus((Instance) elem));
+                ((UmlPackage) ((Instance) elem).refOutermostPackage())
+                        .getCommonBehavior().getAReceiverStimulus()
+                        .getStimulus((Instance) elem));
 
     }
 

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorHelperMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorHelperMDRImpl.java?view=diff&rev=15585&p1=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorHelperMDRImpl.java&p2=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorHelperMDRImpl.java&r1=15584&r2=15585
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorHelperMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CommonBehaviorHelperMDRImpl.java	2008-08-19 09:44:30-0700
@@ -160,7 +160,8 @@
         try {
             if (handle instanceof Signal
                     && context instanceof BehavioralFeature) {
-                modelImpl.getUmlPackage().getCommonBehavior()
+                ((org.omg.uml.UmlPackage) ((Signal) handle)
+                        .refOutermostPackage()).getCommonBehavior()
                         .getAContextRaisedSignal().remove(
                                 (BehavioralFeature) context, (Signal) handle);
                 return;
@@ -232,8 +233,8 @@
     private void addContext(Object handle, Object behavorialFeature) {
         if (handle instanceof Signal
                 && behavorialFeature instanceof BehavioralFeature) {
-            modelImpl.getUmlPackage().getCommonBehavior().
-                    getAContextRaisedSignal().add(
+            ((org.omg.uml.UmlPackage) ((Signal) handle).refOutermostPackage())
+                    .getCommonBehavior().getAContextRaisedSignal().add(
                             (BehavioralFeature) behavorialFeature,
                             (Signal) handle);
             return;

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java?view=diff&rev=15585&p1=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java&p2=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java&r1=15584&r2=15585
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java	2008-08-19 09:44:30-0700
@@ -30,6 +30,7 @@
 import java.util.List;
 
 import javax.jmi.reflect.InvalidObjectException;
+import javax.jmi.reflect.RefObject;
 
 import org.apache.log4j.Logger;
 import org.argouml.model.CoreFactory;
@@ -212,12 +213,15 @@
 
 
     public UmlClass createClass() {
-        UmlClass myClass = getCorePackage().getUmlClass().createUmlClass();
+        return createClass(modelImpl.getUmlPackage());
+    }
+
+    public UmlClass createClass(org.omg.uml.UmlPackage extent) {
+        UmlClass myClass = extent.getCore().getUmlClass().createUmlClass();
         super.initialize(myClass);
         return myClass;
     }
 
-
     public Comment createComment() {
         Comment myComment = getCorePackage().getComment().createComment();
         super.initialize(myComment);
@@ -264,8 +268,10 @@
 
 
     public ElementResidence buildElementResidence(Object me, Object component) {
-        ElementResidence myElementResidence = getCorePackage().
-        getElementResidence().createElementResidence();
+        ElementResidence myElementResidence = 
+            ((org.omg.uml.UmlPackage) ((ModelElement) me)
+                .refOutermostPackage()).getCore().getElementResidence()
+                .createElementResidence();
         super.initialize(myElementResidence);
         myElementResidence.setContainer((Component) component);
         myElementResidence.setResident((ModelElement) me);
@@ -754,17 +760,30 @@
     
 
     public UmlClass buildClass() {
+        return buildClass((Object) null);
+    }
+
+
+    private static void initClass(UmlClass cl) {
+        cl.setName("");
+        cl.setAbstract(false);
+        cl.setActive(false);
+        cl.setRoot(false);
+        cl.setLeaf(false);
+        cl.setSpecification(false);
+        cl.setVisibility(VisibilityKindEnum.VK_PUBLIC);
+    }
+    
+    public UmlClass buildClass(final Object owner) {
         ModelCommand command = new ModelCommand() {
             private UmlClass cl;
             public UmlClass execute() {
-                cl = createClass();
-                cl.setName("");
-                cl.setAbstract(false);
-                cl.setActive(false);
-                cl.setRoot(false);
-                cl.setLeaf(false);
-                cl.setSpecification(false);
-                cl.setVisibility(VisibilityKindEnum.VK_PUBLIC);
+                if (owner == null) {
+                    cl = createClass();
+                } else {
+                    cl = createClass(getExtent(owner));
+                }
+                initClass(cl);
                 return cl;
             }
             
@@ -784,12 +803,7 @@
                 return false;
             }
         };
-        return (UmlClass) org.argouml.model.Model.execute(command);
-    }
-
-
-    public UmlClass buildClass(Object owner) {
-        UmlClass clazz = buildClass();
+        UmlClass clazz = (UmlClass) org.argouml.model.Model.execute(command);
         if (owner instanceof Namespace) {
             modelImpl.getCoreHelper().setNamespace(clazz, owner);
         }
@@ -797,6 +811,11 @@
     }
 
 
+    private org.omg.uml.UmlPackage getExtent(Object element) {
+        return (org.omg.uml.UmlPackage) ((RefObject) element)
+                .refOutermostPackage();
+    }
+    
     public UmlClass buildClass(String name) {
         UmlClass clazz = buildClass();
         clazz.setName(name);

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java?view=diff&rev=15585&p1=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java&p2=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java&r1=15584&r2=15585
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreHelperMDRImpl.java	2008-08-19 09:44:30-0700
@@ -2310,7 +2310,8 @@
     public Collection<ElementResidence> getElementResidence(Object handle) {
         try {
             if (handle instanceof ModelElement) {
-                return modelImpl.getUmlPackage().getCore()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle)
+                        .refOutermostPackage()).getCore()
                         .getAResidentElementResidence().getElementResidence(
                                 (ModelElement) handle);
             }
@@ -2445,14 +2446,15 @@
     public void addRaisedSignal(Object handle, Object sig) {
         if (sig instanceof Signal) {
             if (handle instanceof Message) {
-                modelImpl.getUmlPackage().getCommonBehavior().
-                        getAContextRaisedSignal().add(
+                ((org.omg.uml.UmlPackage) ((Signal) sig)
+                        .refOutermostPackage()).getCommonBehavior()
+                        .getAContextRaisedSignal().add(
                                 (BehavioralFeature) handle, (Signal) sig);
                 return;
             }
             if (handle instanceof Operation) {
-                modelImpl.getUmlPackage().getCommonBehavior().
-                        getAContextRaisedSignal().add(
+                ((org.omg.uml.UmlPackage) ((Signal) sig).refOutermostPackage())
+                        .getCommonBehavior().getAContextRaisedSignal().add(
                                 (BehavioralFeature) handle, (Signal) sig);
                 return;
             }

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ExtensionMechanismsFactoryMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ExtensionMechanismsFactoryMDRImpl.java?view=diff&rev=15585&p1=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ExtensionMechanismsFactoryMDRImpl.java&p2=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ExtensionMechanismsFactoryMDRImpl.java&r1=15584&r2=15585
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ExtensionMechanismsFactoryMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ExtensionMechanismsFactoryMDRImpl.java	2008-08-19 09:44:30-0700
@@ -196,15 +196,21 @@
     }
 
 
-    public Stereotype buildStereotype(String text, Object ns) {
-        if (!(ns instanceof Namespace)) {
+    public Stereotype buildStereotype(String text, Object namespace) {
+        if (!(namespace instanceof Namespace)) {
             throw new IllegalArgumentException(
                     "Namespace is wrong type - text:" + text + ",ns:"
-                            + ns);
+                            + namespace);
         }
-        Stereotype stereo = buildStereotype(text);
-        stereo.setNamespace((Namespace) ns);
-        return stereo;
+        Namespace ns = (Namespace) namespace;
+        org.omg.uml.UmlPackage umlPkg = ((org.omg.uml.UmlPackage) ns
+                .refOutermostPackage());
+        Stereotype stereotype = umlPkg.getCore().getStereotype()
+                .createStereotype();
+        super.initialize(stereotype);
+        stereotype.setName(text);
+        stereotype.setNamespace(ns);
+        return stereotype;
     }
 
 
@@ -313,8 +319,7 @@
             throw new IllegalArgumentException("namespace");
         }
 
-        Stereotype st = buildStereotype(null);
-        ((Namespace) ns).getOwnedElement().add(st);
+        Stereotype st = buildStereotype(null, ns);
         doCopyStereotype((Stereotype) source, st);
         return st;
     }

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java?view=diff&rev=15585&p1=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java&p2=trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java&r1=15584&r2=15585
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/FacadeMDRImpl.java	2008-08-19 09:44:30-0700
@@ -1294,7 +1294,7 @@
     public Collection getAssociationEnds(Object handle) {
         try {
             if (handle instanceof Classifier) {
-                return modelImpl.getUmlPackage().getCore()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getCore()
                         .getAParticipantAssociation().getAssociation(
                                 (Classifier) handle);
             }
@@ -1308,7 +1308,7 @@
     public Collection getAssociationRoles(Object handle) {
         try {
             if (handle instanceof UmlAssociation) {
-                return modelImpl.getUmlPackage().getCollaborations()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getCollaborations()
                         .getABaseAssociationRole().getAssociationRole(
                                 (UmlAssociation) handle);
             }
@@ -1500,12 +1500,12 @@
     public Collection getClassifierRoles(Object handle) {
         try {
             if (handle instanceof Feature) {
-                return modelImpl.getUmlPackage().getCollaborations()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getCollaborations()
                         .getAClassifierRoleAvailableFeature()
                         .getClassifierRole((Feature) handle);
             }
             if (handle instanceof Classifier) {
-                return modelImpl.getUmlPackage().getCollaborations()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getCollaborations()
                         .getAClassifierRoleBase().getClassifierRole(
                                 (Classifier) handle);
             }
@@ -1543,12 +1543,12 @@
     public Collection getClassifiersInState(Object handle) {
         try {
             if (handle instanceof Classifier) {
-                return modelImpl.getUmlPackage().getActivityGraphs()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getActivityGraphs()
                         .getATypeClassifierInState().getClassifierInState(
                                 (Classifier) handle);
             }
             if (handle instanceof State) {
-                return modelImpl.getUmlPackage().getActivityGraphs()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getActivityGraphs()
                         .getAClassifierInStateInState().getClassifierInState(
                                 (State) handle);
             }
@@ -1574,9 +1574,10 @@
     public Collection getClientDependencies(Object handle) {
         try {
             if (handle instanceof ModelElement) {
-                return modelImpl.getUmlPackage().getCore()
-                        .getAClientClientDependency().getClientDependency(
-                                (ModelElement) handle);
+                ModelElement me = (ModelElement) handle;
+                return ((org.omg.uml.UmlPackage) me.refOutermostPackage())
+                        .getCore().getAClientClientDependency()
+                        .getClientDependency((ModelElement) handle);
             }
         } catch (InvalidObjectException e) {
             throw new InvalidElementException(e);
@@ -1641,9 +1642,10 @@
     public Collection getElementResidences(Object handle) {
         try {
             if (handle instanceof ModelElement) {
-                return modelImpl.getUmlPackage().getCore()
-                    .getAResidentElementResidence().getElementResidence(
-                        (ModelElement) handle);
+                ModelElement me = (ModelElement) handle;
+                return ((org.omg.uml.UmlPackage) me.refOutermostPackage())
+                        .getCore().getAResidentElementResidence()
+                        .getElementResidence((ModelElement) handle);
             }
             return illegalArgumentCollection(handle);
         } catch (InvalidObjectException e) {
@@ -1655,9 +1657,11 @@
     public Collection getElementImports2(Object handle) {
         try {
             if (handle instanceof ModelElement) {
-                return modelImpl.getUmlPackage().getModelManagement()
-                    .getAImportedElementElementImport().getElementImport(
-                        (ModelElement) handle);
+                ModelElement me = (ModelElement) handle;
+                return ((org.omg.uml.UmlPackage) me.refOutermostPackage())
+                        .getModelManagement()
+                        .getAImportedElementElementImport().getElementImport(
+                                (ModelElement) handle);
             }
             return illegalArgumentCollection(handle);
         } catch (InvalidObjectException e) {
@@ -1742,9 +1746,10 @@
             if (!(handle instanceof Stereotype)) {
                 return illegalArgumentCollection(handle);
             }
-            return modelImpl.getUmlPackage().getCore()
-                    .getAStereotypeExtendedElement()
-                        .getExtendedElement((Stereotype) handle);
+            Stereotype stereotype = (Stereotype) handle;
+            return ((org.omg.uml.UmlPackage) stereotype.refOutermostPackage())
+                    .getCore().getAStereotypeExtendedElement()
+                    .getExtendedElement(stereotype);
         } catch (InvalidObjectException e) {
             throw new InvalidElementException(e);
         }
@@ -1757,9 +1762,9 @@
                 return ((UseCase) handle).getExtend();
             }
             if (handle instanceof ExtensionPoint) {
-                return modelImpl.getUmlPackage().getUseCases()
-                        .getAExtensionPointExtend().getExtend(
-                                (ExtensionPoint) handle);
+                ExtensionPoint ep = (ExtensionPoint) handle;
+                return ((org.omg.uml.UmlPackage) ep.refOutermostPackage())
+                        .getUseCases().getAExtensionPointExtend().getExtend(ep);
             }
         } catch (InvalidObjectException e) {
             throw new InvalidElementException(e);
@@ -1771,8 +1776,9 @@
     public Collection getExtenders(Object handle) {
         try {
             if (handle instanceof UseCase) {
-                return modelImpl.getUmlPackage().getUseCases()
-                    .getABaseExtender().getExtender((UseCase) handle);
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle)
+                        .refOutermostPackage()).getUseCases()
+                        .getABaseExtender().getExtender((UseCase) handle);
             }
             return illegalArgumentCollection(handle);
         } catch (InvalidObjectException e) {
@@ -1938,7 +1944,8 @@
     public Collection getIncluders(Object handle) {
         try {
             if (handle instanceof UseCase) {
-                return modelImpl.getUmlPackage().getUseCases()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle)
+                        .refOutermostPackage()).getUseCases()
                         .getAIncluderAddition().getIncluder((UseCase) handle);
             }
         } catch (InvalidObjectException e) {
@@ -2005,7 +2012,8 @@
     public Collection getInstances(Object handle) {
         try {
             if (handle instanceof Classifier) {
-                return modelImpl.getUmlPackage().getCommonBehavior()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle)
+                        .refOutermostPackage()).getCommonBehavior()
                         .getAInstanceClassifier().getInstance(
                                 (Classifier) handle);
             }
@@ -2073,7 +2081,8 @@
                 return ((AssociationRole) handle).getMessage();
             }
             if (handle instanceof Action) {
-                return modelImpl.getUmlPackage().getCollaborations()
+                return ((org.omg.uml.UmlPackage) ((Action) handle)
+                        .refOutermostPackage()).getCollaborations()
                         .getAActionMessage().getMessage(((Action) handle));
             }
         } catch (InvalidObjectException e) {
@@ -2085,7 +2094,8 @@
     public Collection getSuccessors(Object handle) {
         try {
             if (handle instanceof Message) {
-                return modelImpl.getUmlPackage().getCollaborations()
+                return ((org.omg.uml.UmlPackage) ((Message) handle)
+                        .refOutermostPackage()).getCollaborations()
                         .getAPredecessorSuccessor().getSuccessor(
                                 (Message) handle);
             }
@@ -2098,7 +2108,8 @@
     public Collection getActivatedMessages(Object handle) {
         try {
             if (handle instanceof Message) {
-                return modelImpl.getUmlPackage().getCollaborations()
+                return ((org.omg.uml.UmlPackage) ((Message) handle)
+                        .refOutermostPackage()).getCollaborations()
                         .getAMessageActivator().getMessage((Message) handle);
             }
         } catch (InvalidObjectException e) {
@@ -2110,7 +2121,8 @@
     public Collection getReceivedMessages(Object handle) {
         try {
             if (handle instanceof ClassifierRole) {
-                return modelImpl.getUmlPackage().getCollaborations()
+                return ((org.omg.uml.UmlPackage) ((ClassifierRole) handle)
+                        .refOutermostPackage()).getCollaborations()
                         .getAReceiverMessage().getMessage(
                                 (ClassifierRole) handle);
             }
@@ -2123,7 +2135,8 @@
     public Collection getSentMessages(Object handle) {
         try {
             if (handle instanceof ClassifierRole) {
-                return modelImpl.getUmlPackage().getCollaborations()
+                return ((org.omg.uml.UmlPackage) ((ClassifierRole) handle)
+                        .refOutermostPackage()).getCollaborations()
                         .getAMessageSender()
                         .getMessage((ClassifierRole) handle);
             }
@@ -2181,6 +2194,8 @@
                     elements.add(obj);
                 }
             }
+        } else {
+            LOG.warn("No default extent in getRootElements");
         }
         return elements;
     }
@@ -2295,12 +2310,14 @@
     public Collection getCollaborations(Object handle) {
         try {
             if (handle instanceof Operation) {
-                return modelImpl.getUmlPackage().getCollaborations()
+                return ((org.omg.uml.UmlPackage) ((Operation) handle)
+                        .refOutermostPackage()).getCollaborations()
                         .getARepresentedOperationCollaboration()
                         .getCollaboration((Operation) handle);
             }
             if (handle instanceof Classifier) {
-                return modelImpl.getUmlPackage().getCollaborations()
+                return ((org.omg.uml.UmlPackage) ((Classifier) handle)
+                        .refOutermostPackage()).getCollaborations()
                         .getARepresentedClassifierCollaboration()
                         .getCollaboration((Classifier) handle);
             }
@@ -2545,7 +2562,8 @@
     public Collection getContexts(Object handle) {
         try {
             if (handle instanceof Signal) {
-                return modelImpl.getUmlPackage().getCommonBehavior()
+                return ((org.omg.uml.UmlPackage) ((Signal) handle)
+                        .refOutermostPackage()).getCommonBehavior()
                         .getAContextRaisedSignal().getContext((Signal) handle);
             }
         } catch (InvalidObjectException e) {
@@ -2558,7 +2576,8 @@
     public Collection getCreateActions(Object handle) {
         try {
             if (handle instanceof Classifier) {
-                return modelImpl.getUmlPackage().getCommonBehavior()
+                return ((org.omg.uml.UmlPackage) ((Classifier) handle)
+                        .refOutermostPackage()).getCommonBehavior()
                         .getACreateActionInstantiation().getCreateAction(
                                 (Classifier) handle);
             }
@@ -2657,7 +2676,8 @@
     public Collection getLinks(Object handle) {
         try {
             if (handle instanceof UmlAssociation) {
-                return modelImpl.getUmlPackage().getCommonBehavior()
+                return ((org.omg.uml.UmlPackage) ((UmlAssociation) handle)
+                        .refOutermostPackage()).getCommonBehavior()
                         .getAAssociationLink().getLink((UmlAssociation) handle);
             }
         } catch (InvalidObjectException e) {
@@ -2670,7 +2690,8 @@
     public Collection getLinkEnds(Object handle) {
         try {
             if (handle instanceof AssociationEnd) {
-                return modelImpl.getUmlPackage().getCommonBehavior()
+                return ((org.omg.uml.UmlPackage) ((AssociationEnd) handle)
+                        .refOutermostPackage()).getCommonBehavior()
                         .getAAssociationEndLinkEnd().getLinkEnd(
                                 (AssociationEnd) handle);
             }
@@ -2699,7 +2720,8 @@
     public Collection getMethods(Object handle) {
         try {
             if (handle instanceof Operation) {
-                return modelImpl.getUmlPackage().getCore()
+                return ((org.omg.uml.UmlPackage) ((Operation) handle)
+                        .refOutermostPackage()).getCore()
                         .getASpecificationMethod()
                         .getMethod((Operation) handle);
             }
@@ -2737,7 +2759,8 @@
     public Collection getObjectFlowStates(Object handle) {
         try {
             if (handle instanceof Classifier) {
-                return modelImpl.getUmlPackage().getActivityGraphs()
+                return ((org.omg.uml.UmlPackage) ((Classifier) handle)
+                        .refOutermostPackage()).getActivityGraphs()
                         .getATypeObjectFlowState().getObjectFlowState(
                                 (Classifier) handle);
             }
@@ -2766,7 +2789,8 @@
     public Collection getOccurrences(Object handle) {
         try {
             if (handle instanceof Operation) {
-                return modelImpl.getUmlPackage().getStateMachines()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle)
+                        .refOutermostPackage()).getStateMachines()
                         .getAOccurrenceOperation().getOccurrence(
                                 (Operation) handle);
             }
@@ -3067,7 +3091,8 @@
                 return ((ObjectFlowState) handle).getParameter();
             }
             if (handle instanceof Classifier) {
-                return modelImpl.getUmlPackage().getCore()
+                return ((org.omg.uml.UmlPackage) ((Classifier) handle)
+                        .refOutermostPackage()).getCore()
                         .getATypedParameterType().getTypedParameter(
                                 (Classifier) handle);
             }
@@ -3113,7 +3138,8 @@
     public Collection getRaisedSignals(Object handle) {
         try {
             if (handle instanceof BehavioralFeature) {
-                return modelImpl.getUmlPackage().getCommonBehavior()
+                return ((org.omg.uml.UmlPackage) ((BehavioralFeature) handle)
+                        .refOutermostPackage()).getCommonBehavior()
                         .getAContextRaisedSignal().getRaisedSignal(
                                 (BehavioralFeature) handle);
             }
@@ -3127,7 +3153,8 @@
     public Collection getReceptions(Object handle) {
         try {
             if (handle instanceof Signal) {
-                return modelImpl.getUmlPackage().getCommonBehavior()
+                return ((org.omg.uml.UmlPackage) ((Signal) handle)
+                        .refOutermostPackage()).getCommonBehavior()
                         .getASignalReception().getReception((Signal) handle);
             }
         } catch (InvalidObjectException e) {
@@ -3336,7 +3363,8 @@
     public Object getState(Object handle) {
         try {
             if (handle instanceof Transition) {
-                return modelImpl.getUmlPackage().getStateMachines()
+                return ((org.omg.uml.UmlPackage) ((Transition) handle)
+                        .refOutermostPackage()).getStateMachines()
                         .getAStateInternalTransition().getState(
                                 (Transition) handle);
             }
@@ -3350,7 +3378,8 @@
     public Collection getStates(Object handle) {
         try {
             if (handle instanceof Event) {
-                return modelImpl.getUmlPackage().getStateMachines()
+                return ((org.omg.uml.UmlPackage) ((Event) handle)
+                        .refOutermostPackage()).getStateMachines()
                         .getAStateDeferrableEvent().getState((Event) handle);
             }
             return illegalArgumentCollection(handle);
@@ -3375,12 +3404,12 @@
     public Collection getStimuli(Object handle) {
         try {
             if (isALink(handle)) {
-                return modelImpl.getUmlPackage().getCommonBehavior()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getCommonBehavior()
                         .getAStimulusCommunicationLink().getStimulus(
                                 (Link) handle);
             }
             if (isAAction(handle)) {
-                return modelImpl.getUmlPackage().getCommonBehavior()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getCommonBehavior()
                         .getADispatchActionStimulus().getStimulus(
                                 (Action) handle);
             }
@@ -3393,7 +3422,7 @@
     public Collection getReceivedStimuli(Object handle) {
         try {
             if (handle instanceof Instance) {
-                return modelImpl.getUmlPackage().getCommonBehavior()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getCommonBehavior()
                         .getAReceiverStimulus().getStimulus((Instance) handle);
             }
             return illegalArgumentCollection(handle);
@@ -3406,7 +3435,7 @@
     public Collection getSentStimuli(Object handle) {
         try {
             if (handle instanceof Instance) {
-                return modelImpl.getUmlPackage().getCommonBehavior()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getCommonBehavior()
                         .getAStimulusSender().getStimulus((Instance) handle);
             }
             return illegalArgumentCollection(handle);
@@ -3455,8 +3484,9 @@
     public Collection getSupplierDependencies(Object handle) {
         try {
             if (handle instanceof ModelElement) {
-                return modelImpl.getUmlPackage().getCore()
-                        .getASupplierSupplierDependency()
+                ModelElement me = (ModelElement) handle;                
+                return ((org.omg.uml.UmlPackage) me.refOutermostPackage())
+                        .getCore().getASupplierSupplierDependency()
                         .getSupplierDependency((ModelElement) handle);
             }
         } catch (InvalidObjectException e) {
@@ -3484,7 +3514,7 @@
                 return ((Guard) handle).getTransition();
             }
             if (handle instanceof Action) {
-                return modelImpl.getUmlPackage().getStateMachines()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getStateMachines()
                         .getATransitionEffect().getTransition((Action) handle);
             }
         } catch (InvalidObjectException e) {
@@ -3540,7 +3570,7 @@
     public Collection getTypedValues(Object handle) {
         try {
             if (handle instanceof TagDefinition) {
-                return modelImpl.getUmlPackage().getCore()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getCore()
                         .getATypeTypedValue().getTypedValue(
                                 (TagDefinition) handle);
             }
@@ -3666,7 +3696,7 @@
             } else if (isACompositeState(handle)) {
                 return ((CompositeState) handle).getInternalTransition();
             } else if (isAEvent(handle)) {
-                return modelImpl.getUmlPackage().getStateMachines()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getStateMachines()
                         .getATransitionTrigger().getTransition((Event) handle);
             }
             return illegalArgumentCollection(handle);
@@ -3754,7 +3784,7 @@
     public Object getAction(Object handle) {
         try {
             if (handle instanceof Message) {
-                return modelImpl.getUmlPackage().getCollaborations()
+                return ((org.omg.uml.UmlPackage) ((ModelElement) handle).refOutermostPackage()).getCollaborations()
                         .getAActionMessage().getAction((Message) handle);
             }
             if (handle instanceof Argument) {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.