svn commit: r17096 - trunk/src/argouml-app: src/org/argouml/notation/providers/java src/org/argouml/notation/providers/uml tests/org/argouml/notation/providers/java

Michiel van der Wulp <[email protected]>
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: mvw
Date: 2009-04-11 10:11:22-0700
New Revision: 17096

Modified:
   trunk/src/argouml-app/src/org/argouml/notation/providers/java/ModelElementNameNotationJava.java
   trunk/src/argouml-app/src/org/argouml/notation/providers/uml/NotationUtilityUml.java
   trunk/src/argouml-app/tests/org/argouml/notation/providers/java/TestModelElementNameNotationJava.java

Log:
Remove the use of deprecated methods and added some tests.

Modified: trunk/src/argouml-app/src/org/argouml/notation/providers/java/ModelElementNameNotationJava.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/notation/providers/java/ModelElementNameNotationJava.java?view=diff&pathrev=17096&r1=17095&r2=17096
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/notation/providers/java/ModelElementNameNotationJava.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/notation/providers/java/ModelElementNameNotationJava.java	2009-04-11 10:11:22-0700
@@ -33,7 +33,6 @@
 import org.argouml.application.events.ArgoEventTypes;
 import org.argouml.application.events.ArgoHelpEvent;
 import org.argouml.i18n.Translator;
-import org.argouml.kernel.ProjectManager;
 import org.argouml.model.Model;
 import org.argouml.notation.NotationSettings;
 import org.argouml.notation.providers.ModelElementNameNotation;
@@ -167,8 +166,8 @@
         if (path != null) {
             Object nspe =
                 Model.getModelManagementHelper().getElement(
-                        path,
-                        Model.getFacade().getModel(modelElement));
+                    path,
+                    Model.getFacade().getRoot(modelElement));
 
             if (nspe == null || !(Model.getFacade().isANamespace(nspe))) {
                 String msg = 
@@ -176,10 +175,8 @@
                 throw new ParseException(Translator.localize(msg), 
                         0);
             }
-            Object model =
-                ProjectManager.getManager().getCurrentProject().getRoot();
-            if (!Model.getCoreHelper().getAllPossibleNamespaces(
-                    modelElement, model).contains(nspe)) {
+            if (!Model.getCoreHelper().isValidNamespace(
+                    modelElement, nspe)) {
                 String msg = 
                         "parsing.error.model-element-name.namespace-invalid";
                 throw new ParseException(Translator.localize(msg), 

Modified: trunk/src/argouml-app/src/org/argouml/notation/providers/uml/NotationUtilityUml.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/notation/providers/uml/NotationUtilityUml.java?view=diff&pathrev=17096&r1=17095&r2=17096
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/notation/providers/uml/NotationUtilityUml.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/notation/providers/uml/NotationUtilityUml.java	2009-04-11 10:11:22-0700
@@ -388,10 +388,7 @@
                 throw new ParseException(Translator.localize(msg), 
                         0);
             }
-            Object model =
-                ProjectManager.getManager().getCurrentProject().getRoot();
-            if (!Model.getCoreHelper().getAllPossibleNamespaces(me, model)
-                        .contains(nspe)) {
+            if (!Model.getCoreHelper().isValidNamespace(me, nspe)) {
                 String msg = 
                         "parsing.error.model-element-name.namespace-invalid";
                 throw new ParseException(Translator.localize(msg), 

Modified: trunk/src/argouml-app/tests/org/argouml/notation/providers/java/TestModelElementNameNotationJava.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/tests/org/argouml/notation/providers/java/TestModelElementNameNotationJava.java?view=diff&pathrev=17096&r1=17095&r2=17096
==============================================================================
--- trunk/src/argouml-app/tests/org/argouml/notation/providers/java/TestModelElementNameNotationJava.java	(original)
+++ trunk/src/argouml-app/tests/org/argouml/notation/providers/java/TestModelElementNameNotationJava.java	2009-04-11 10:11:22-0700
@@ -1,5 +1,5 @@
 // $Id$
-// Copyright (c) 2007-2008 The Regents of the University of California. All
+// Copyright (c) 2007-2009 The Regents of the University of California. All
 // Rights Reserved. Permission to use, copy, modify, and distribute this
 // software and its documentation without fee, and without a written
 // agreement is hereby granted, provided that the above copyright notice
@@ -24,8 +24,6 @@
 
 package org.argouml.notation.providers.java;
 
-import java.util.HashMap;
-
 import junit.framework.TestCase;
 
 import org.argouml.kernel.ProjectManager;
@@ -49,6 +47,54 @@
         new InitProfileSubsystem().init();
         theClass = Model.getCoreFactory().buildClass("TheClass", getModel());
     }
+    
+    /**
+     * Test if we can parse a class path and set it abstract.
+     */
+    public void testParsingPath() {
+        Object pack1 = Model.getModelManagementFactory().buildPackage("p1");
+        Model.getCoreHelper().setNamespace(pack1, getModel());
+        Object pack2 = Model.getModelManagementFactory().buildPackage("p2");
+        Model.getCoreHelper().setNamespace(pack2, pack1);
+        Model.getCoreHelper().setNamespace(theClass, pack2);
+        Model.getCoreHelper().setAbstract(theClass, false);
+        assertFalse("Could not build a non-abstract class", 
+                Model.getFacade().isAbstract(theClass));
+        ModelElementNameNotation notation = 
+            new ModelElementNameNotationJava(theClass);
+        notation.parse(theClass, "abstract p1.p2.TheClass");
+        assertTrue("Could not parse abstract class with path", 
+                Model.getFacade().isAbstract(theClass));
+        notation.parse(theClass, "TheClass");
+        assertTrue("Abstract class misbehavior",
+                Model.getFacade().isAbstract(theClass)); 
+    }
+
+    /**
+     * Test that we parse a class path and modify its location.
+     */
+    public void testParsingPathAndModify() {
+        Model.getCoreHelper().setName(getModel(), "root-model");
+        Object mod1 = Model.getModelManagementFactory().createModel();
+        Model.getCoreHelper().setName(mod1, "mod1");
+        Model.getCoreHelper().setNamespace(mod1, getModel());
+        Object pack1 = Model.getModelManagementFactory().buildPackage("p1");
+        Model.getCoreHelper().setNamespace(pack1, mod1);
+        Object pack2 = Model.getModelManagementFactory().buildPackage("p2");
+        Model.getCoreHelper().setNamespace(pack2, pack1);
+        Model.getCoreHelper().setNamespace(theClass, pack2);
+        Model.getCoreHelper().setAbstract(theClass, false);
+        ModelElementNameNotation notation = 
+            new ModelElementNameNotationJava(theClass);
+        notation.parse(theClass, "abstract mod1.p1.p2.TheClass");
+        assertTrue("Could not parse abstract class with path", 
+                Model.getFacade().isAbstract(theClass));
+        Object pack3 = Model.getModelManagementFactory().buildPackage("p3");
+        Model.getCoreHelper().setNamespace(pack3, pack1);
+        notation.parse(theClass, " mod1.p1.p3.TheClass  ");
+        assertTrue("Could not move a class into another package",
+                Model.getFacade().getOwnedElements(pack3).contains(theClass));
+    }
 
     public void testToStringForRealization() {
         Object theInterface = Model.getCoreFactory().buildInterface(

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

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.