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