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