Author: euluis
Date: 2008-03-04 16:56:01-0800
New Revision: 14178

Modified:
   trunk/src/model-mdr/src/org/argouml/model/mdr/XmiReferenceResolverImpl.java

Log:
issue 4946: solved part of the problem with user defined profiles; added some 
launch configurations to facilitate tests in eclipse

Modified: 
trunk/src/model-mdr/src/org/argouml/model/mdr/XmiReferenceResolverImpl.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/model-mdr/src/org/argouml/model/mdr/XmiReferenceResolverImpl.java?view=diff&rev=14178&p1=trunk/src/model-mdr/src/org/argouml/model/mdr/XmiReferenceResolverImpl.java&p2=trunk/src/model-mdr/src/org/argouml/model/mdr/XmiReferenceResolverImpl.java&r1=14177&r2=14178
==============================================================================
--- trunk/src/model-mdr/src/org/argouml/model/mdr/XmiReferenceResolverImpl.java 
(original)
+++ trunk/src/model-mdr/src/org/argouml/model/mdr/XmiReferenceResolverImpl.java 
2008-03-04 16:56:01-0800
@@ -80,6 +80,9 @@
         "/org/argouml/profile/profiles/";
     private static final String PROFILE_BASE_URL = 
         "http://argouml.org/profiles/uml14";;
+
+    private static final String USER_PROFILE_BASE_URL = 
+        "http://argouml.org/user-profiles/";;
     
     private Map<String, Object> idToObjects = 
         Collections.synchronizedMap(new HashMap<String, Object>());
@@ -182,7 +185,8 @@
             if (systemId.contains(PROFILE_RESOURCE_PATH))
                 systemId = PROFILE_BASE_URL + getSuffix(systemId);
             else if (systemId.contains("file:/")) {
-                // user defined profile - systemId is OK
+                // user defined profile - replace path with corresponding label
+                systemId = USER_PROFILE_BASE_URL + modelPublicId;
             } else 
                 systemId = PROFILE_BASE_URL + modelPublicId;
         } else if (systemId == topSystemId) {
@@ -273,7 +277,7 @@
         // Several tries to construct a URL that really exists.
         if (modelUrl == null) {
             // If systemId is a valid URL, simply use it
-            modelUrl = this.getValidURL(fixupURL(systemId));
+            modelUrl = getValidURL(fixupURL(systemId));
             if (modelUrl == null) {
                 // Try to find suffix in module list.
                 String modelUrlAsString = findModuleURL(suffix);
@@ -283,7 +287,7 @@
                 }
                 if (modelUrl == null) {
                     // search the classpath
-                    modelUrl = this.findModelUrlOnClasspath(systemId);
+                    modelUrl = findModelUrlOnClasspath(systemId);
                 }
                 if (modelUrl == null) {
                     // Give up and let superclass deal with it.
@@ -358,6 +362,13 @@
                 return fixupURL(urlString);
             }
         }
+        if (modelsPublicIds.contains(moduleName)) {
+            if (LOG.isDebugEnabled())
+                LOG.debug("Couldn't find user model (\"" + moduleName 
+                    + "\") in modulesPath, attempt " 
+                    + "to use a model stored within the zargo file.");
+            return moduleName;
+        }
         return null;
     }
 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to