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