Author: thn
Date: 2011-03-09 10:25:56-0800
New Revision: 19107

Modified:
   trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileUML.java

Log:
UML2: substitute our own standard profile with the built-in UML2 standard 
profile and primitive types

Modified: trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileUML.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileUML.java?view=diff&pathrev=19107&r1=19106&r2=19107
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileUML.java      
(original)
+++ trunk/src/argouml-app/src/org/argouml/profile/internal/ProfileUML.java      
2011-03-09 10:25:56-0800
@@ -130,7 +130,7 @@
                 profileReference =
                     new CoreProfileReference(PROFILE_UML14_FILE);
             } else {
-                //TODO: reference should be handled better
+                //TODO: this profile isn't used anymore, see getModel()
                 CoreProfileReference.setProfileDirectory("uml22");
                 profileReference =
                     new CoreProfileReference(PROFILE_UML22_FILE);
@@ -143,11 +143,21 @@
 
     private Collection getModel() {
         if (model == null) {
-            profileModelLoader = new ResourceModelLoader();
-            try {
-                model = profileModelLoader.loadModel(profileReference);
-           } catch (ProfileException e) {
-                LOG.error("Error loading UML profile", e);
+            if (Model.getFacade().getUmlVersion().charAt(0) == '1') {
+                profileModelLoader = new ResourceModelLoader();
+                try {
+                    model = profileModelLoader.loadModel(profileReference);
+                } catch (ProfileException e) {
+                    LOG.error("Error loading UML profile", e);
+                }
+            } else {
+                // We have our own UML2 profile, but it is not used. Instead,
+                // by the following line the build-in eclipse UML2 standard
+                // profile and primitive types implementation are used.
+                model = Model.getUmlFactory().getExtentPackages(
+                        
"pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml");
+                model.addAll(Model.getUmlFactory().getExtentPackages(
+                        "pathmap://UML_PROFILES/Standard.profile.uml"));
             }
 
             if (model == null) {
@@ -496,19 +506,33 @@
         return new DefaultTypeStrategy() {
             private Collection model = getModel();
             public Object getDefaultAttributeType() {
-                return ModelUtils.findTypeInModel("Integer", model.iterator()
-                        .next());
+                return getDefaultType();
             }
 
             public Object getDefaultParameterType() {
-                return ModelUtils.findTypeInModel("Integer", model.iterator()
-                        .next());
+                return getDefaultType();
             }
 
             public Object getDefaultReturnType() {
                 return null;
             }
 
+            private Object getDefaultType() {
+                if (Model.getFacade().getUmlVersion().charAt(0) == '1') {
+                    return ModelUtils.findTypeInModel("Integer", model
+                            .iterator().next());
+                } else {
+                    // why Integer, better let's use String
+                    // TODO: has nothing to do with tagged values
+                    for (Object t : 
Model.getExtensionMechanismsHelper().getCommonTaggedValueTypes()) {
+                        if ("String".equals(Model.getFacade().getName(t))) {
+                            return t;
+                        }
+                    }
+                }
+                // this must not happen
+                return null;
+            }
         };
     }
 }

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

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to