Author: thn Date: 2011-05-10 10:28:55-0700 New Revision: 19392 Modified: trunk/src/argouml-app/src/org/argouml/uml/StereotypeUtility.java
Log: UML2: just check applied profiles for stereotypes (don't search outside profiles) Modified: trunk/src/argouml-app/src/org/argouml/uml/StereotypeUtility.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/StereotypeUtility.java?view=diff&pathrev=19392&r1=19391&r2=19392 ============================================================================== --- trunk/src/argouml-app/src/org/argouml/uml/StereotypeUtility.java (original) +++ trunk/src/argouml-app/src/org/argouml/uml/StereotypeUtility.java 2011-05-10 10:28:55-0700 @@ -122,46 +122,49 @@ Set<List> paths = new HashSet<List>(); Set<Object> availableStereotypes = new TreeSet<Object>( new PathComparator()); - Collection models = ProjectManager.getManager().getCurrentProject() - .getModels(); - Collection topLevelModels = ProjectManager.getManager() - .getCurrentProject().getModels(); + if (Model.getFacade().getUmlVersion().charAt(0) == '1') { - // adds all stereotypes defined at the top level namespaces - Collection topLevelStereotypes = getTopLevelStereotypes(topLevelModels); + Collection models = ProjectManager.getManager().getCurrentProject() + .getModels(); - Collection validTopLevelStereotypes = new ArrayList(); - - addAllUniqueModelElementsFrom( - availableStereotypes, - paths, - Model.getExtensionMechanismsHelper().getAllPossibleStereotypes( - models, modelElement)); - for (Object stereotype : topLevelStereotypes) { - if (Model.getExtensionMechanismsHelper().isValidStereotype( - modelElement, stereotype)) { - validTopLevelStereotypes.add(stereotype); - } - } + Collection topLevelModels = ProjectManager.getManager() + .getCurrentProject().getModels(); - addAllUniqueModelElementsFrom(availableStereotypes, paths, - validTopLevelStereotypes); + // adds all stereotypes defined at the top level namespaces + Collection topLevelStereotypes = getTopLevelStereotypes(topLevelModels); - // adds all stereotypes defined at the profiles applied to the - // current namespace - Object namespace = Model.getFacade().getNamespace(modelElement); - if (namespace != null) { - while (true) { - getApplicableStereotypesInNamespace(modelElement, paths, - availableStereotypes, namespace); - Object newNamespace = Model.getFacade().getNamespace(namespace); + Collection validTopLevelStereotypes = new ArrayList(); - if (newNamespace == null) { - break; + addAllUniqueModelElementsFrom(availableStereotypes, paths, + Model.getExtensionMechanismsHelper() + .getAllPossibleStereotypes(models, modelElement)); + for (Object stereotype : topLevelStereotypes) { + if (Model.getExtensionMechanismsHelper().isValidStereotype( + modelElement, stereotype)) { + validTopLevelStereotypes.add(stereotype); } + } + + addAllUniqueModelElementsFrom(availableStereotypes, paths, + validTopLevelStereotypes); - namespace = newNamespace; + // adds all stereotypes defined at the profiles applied to the + // current namespace + Object namespace = Model.getFacade().getNamespace(modelElement); + if (namespace != null) { + while (true) { + getApplicableStereotypesInNamespace(modelElement, paths, + availableStereotypes, namespace); + Object newNamespace = Model.getFacade().getNamespace( + namespace); + + if (newNamespace == null) { + break; + } + + namespace = newNamespace; + } } } ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2733782 To unsubscribe from this discussion, e-mail: [[email protected]].
