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

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: thn
Date: 2010-12-03 01:03:30-0800
New Revision: 18863

Modified:
   trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ModelManagementHelperEUMLImpl.java
   trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java
   trunk/src/argouml-core-model/src/org/argouml/model/ModelManagementHelper.java

Log:
UML2 only: provide a method for getting root elements that are related to a given model object.

Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ModelManagementHelperEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ModelManagementHelperEUMLImpl.java?view=diff&pathrev=18863&r1=18862&r2=18863
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ModelManagementHelperEUMLImpl.java	(original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/ModelManagementHelperEUMLImpl.java	2010-12-03 01:03:30-0800
@@ -202,7 +202,20 @@
         path.add(modelImpl.getFacade().getName(element));
         return path;
     }
-    
+
+    public List<Object> getRootElements(Object model) {
+        if (model instanceof Model) {
+            List<Object> contents = new ArrayList<Object>();
+            contents.addAll(((Model) model).eResource().getContents());
+            if (!contents.contains(model)) {
+                contents.add(model);
+            }
+            return contents;
+        }
+        throw new IllegalArgumentException(
+                "model must be instance of Model"); //$NON-NLS-1$
+    }
+
     public boolean isCyclicOwnership(Object parent, Object child) {
         // TODO: Auto-generated method stub
         return false;

Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java?view=diff&pathrev=18863&r1=18862&r2=18863
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java	(original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/ModelManagementHelperMDRImpl.java	2010-12-03 01:03:30-0800
@@ -427,6 +427,13 @@
     }
     
 
+    public List<Object> getRootElements(Object model) {
+        List<Object> contents = new ArrayList<Object>();
+        contents.add(model);
+        return contents;
+    }
+
+    
     public boolean isCyclicOwnership(Object parent, Object child) {
         return (getOwnerShipPath(parent).contains(child) || parent == child);
     }

Modified: trunk/src/argouml-core-model/src/org/argouml/model/ModelManagementHelper.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model/src/org/argouml/model/ModelManagementHelper.java?view=diff&pathrev=18863&r1=18862&r2=18863
==============================================================================
--- trunk/src/argouml-core-model/src/org/argouml/model/ModelManagementHelper.java	(original)
+++ trunk/src/argouml-core-model/src/org/argouml/model/ModelManagementHelper.java	2010-12-03 01:03:30-0800
@@ -185,6 +185,21 @@
      */
     List<String> getPathList(Object element);
     
+    /**
+     * Find the root elements in the context of a given model. The model itself
+     * also belongs to the list, so the resulting list cannot be empty.
+     * <p>
+     * Note: in UML 1.x, the model itself is the only element that is returned.
+     * But in UML 2.x, e.g., stereotype applications are also included.
+     * <p>
+     * 
+     * @param model
+     *                is the model the root elements belong to.
+     * @return A List of elements as described above.
+     * @throws IllegalArgumentException
+     *                 if model isn't a Model object.
+     */
+    List<Object> getRootElements(Object model);
 
     /**
      * Checks if a child for some ownership relationship (as in a

------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2687493

To unsubscribe from this discussion, e-mail: [[email protected]].
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.