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