svn commit: r17081 - trunk/src: argouml-core-model-euml/src/org/argouml/model/euml argouml-core-model-mdr/src/org/argouml/model/mdr argouml-core-model/src/org/argouml/model
Tom Morris <[email protected]>
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: tfmorris
Date: 2009-04-08 15:51:54-0700
New Revision: 17081
Modified:
trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java
trunk/src/argouml-core-model/src/org/argouml/model/CoreFactory.java
Log:
Add buildTemplateParameter
Modified: trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java?view=diff&pathrev=17081&r1=17080&r2=17081
==============================================================================
--- trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java (original)
+++ trunk/src/argouml-core-model-euml/src/org/argouml/model/euml/CoreFactoryEUMLImpl.java 2009-04-08 15:51:54-0700
@@ -1174,4 +1174,29 @@
return UMLFactory.eINSTANCE.createUsage();
}
+ public Object buildTemplateArgument(Object binding, Object argument) {
+ // TODO: Auto-generated method stub
+ throw new NotYetImplementedException();
+
+ }
+
+ public Object buildTemplateParameter(Object template, Object parameter,
+ Object defaultElement) {
+ // TODO: Auto-generated method stub
+ throw new NotYetImplementedException();
+
+ }
+
+ public Object createTemplateArgument(Object extent) {
+ // TODO: Auto-generated method stub
+ throw new NotYetImplementedException();
+
+ }
+
+ public Object createTemplateParameter(Object extent) {
+ // TODO: Auto-generated method stub
+ throw new NotYetImplementedException();
+
+ }
+
}
Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java?view=diff&pathrev=17081&r1=17080&r2=17081
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java (original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/CoreFactoryMDRImpl.java 2009-04-08 15:51:54-0700
@@ -389,7 +389,12 @@
public TemplateArgument createTemplateArgument() {
- TemplateArgument obj = getCorePackage().getTemplateArgument()
+ return createTemplateArgument(modelImpl.getUmlPackage());
+ }
+
+ private TemplateArgument createTemplateArgument(
+ org.omg.uml.UmlPackage extent) {
+ TemplateArgument obj = extent.getCore().getTemplateArgument()
.createTemplateArgument();
super.initialize(obj);
return obj;
@@ -397,7 +402,12 @@
public TemplateParameter createTemplateParameter() {
- TemplateParameter myTemplateParameter = getCorePackage()
+ return createTemplateParameter(modelImpl.getUmlPackage());
+ }
+
+ private TemplateParameter createTemplateParameter(
+ org.omg.uml.UmlPackage extent) {
+ TemplateParameter myTemplateParameter = extent.getCore()
.getTemplateParameter().createTemplateParameter();
super.initialize(myTemplateParameter);
return myTemplateParameter;
@@ -1121,6 +1131,47 @@
ta.setModelElement((ModelElement) element);
return ta;
}
+
+ public TemplateArgument buildTemplateArgument(Object binding,
+ Object element) {
+ if (!(binding instanceof Binding && element instanceof ModelElement)) {
+ throw new IllegalArgumentException();
+ }
+ TemplateArgument ta = createTemplateArgument(getExtent(binding));
+ ta.setModelElement((ModelElement) element);
+ ta.setBinding((Binding) binding);
+ return ta;
+ }
+
+ public Object buildTemplateParameter(Object template, Object parameter,
+ Object defaultElement) {
+ if (!(template instanceof ModelElement)) {
+ throw new IllegalArgumentException(
+ "Template must be a model element");
+ }
+ if (!(parameter instanceof ModelElement)) {
+ if (parameter == null) {
+ parameter = createClass(getExtent(template));
+ } else {
+ throw new IllegalArgumentException(
+ "Parameter must be a model element");
+ }
+ }
+ if (defaultElement != null
+ && !(defaultElement instanceof ModelElement)) {
+ throw new IllegalArgumentException(
+ "Default element must be a model element");
+ }
+
+ TemplateParameter templateParam =
+ createTemplateParameter(getExtent(template));
+ templateParam.setParameter((ModelElement) parameter);
+ if (defaultElement != null) {
+ templateParam.setDefaultElement((ModelElement) defaultElement);
+ }
+ templateParam.setTemplate((ModelElement) template);
+ return templateParam;
+ }
public Usage buildUsage(Object client, Object supplier) {
Modified: trunk/src/argouml-core-model/src/org/argouml/model/CoreFactory.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model/src/org/argouml/model/CoreFactory.java?view=diff&pathrev=17081&r1=17080&r2=17081
==============================================================================
--- trunk/src/argouml-core-model/src/org/argouml/model/CoreFactory.java (original)
+++ trunk/src/argouml-core-model/src/org/argouml/model/CoreFactory.java 2009-04-08 15:51:54-0700
@@ -701,6 +701,36 @@
Object buildTemplateArgument(Object element);
/**
+ * Build a TemplateArgument which has the given element as its modelElement.
+ * <p>
+ * <em>NOTE:</em> Although it's not shown in the UML 1.4 spec, a
+ * TemplateArgument is a value (like MultiplicityRange), not a ModelElement
+ * and can not be reused in multiple instances. The UML diagrams don't show
+ * it as a composition, but it effectively is.
+ *
+ * @param binding Binding which will own this Template Argument
+ * @param argument
+ * ModelElement to be used as argument
+ * @return newly created TemplateArgument
+ */
+ Object buildTemplateArgument(Object binding, Object argument);
+
+ /**
+ * Build a TemplateParameter which has the given template and parameter and
+ *
+ * @param template ModelElement which will be template
+ * @param parameter ModelElement which will be parameter. The only two two
+ * things of significance are its type and name
+ * @param defaultElement an optional default Model Element which will be
+ * used if not value is given in a Binding. Null if not used.
+ *
+ * @param element ModelElement to be used as argument
+ * @return newly created TemplateParameter
+ */
+ Object buildTemplateParameter(Object template, Object parameter,
+ Object defaultElement);
+
+ /**
* Builds a usage between some client and a supplier. If client
* and supplier do not have the same model, an
* {@link IllegalArgumentException} is thrown.
@@ -743,7 +773,7 @@
Object buildConstraint(String name, Object bexpr);
/**
- * Build binding between a supplier templated element and its parameterized
+ * Build binding between a supplier template element and its parameterized
* client using the given list or arguments to fill the template.
*
* @param client
@@ -811,7 +841,7 @@
/**
* Create a generalization in the given extent.
*
- * @extent the extent in which the generalization should be created
+ * @param extent the extent in which the generalization should be created
* @return A generalization.
*/
Object createGeneralization(Object extent);
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=1603658
To unsubscribe from this discussion, e-mail: [[email protected]].