svn commit: r15771 - trunk/src/argouml-app/src/org/argouml/language/java/generator/GeneratorJava.java

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: tfmorris
Date: 2008-09-22 15:33:41-0700
New Revision: 15771

Modified:
   trunk/src/argouml-app/src/org/argouml/language/java/generator/GeneratorJava.java

Log:
RESOLVED - issue 5388: Java & C# source tab and code generation fail if multiplicity is unspecified (null) - previously approved for beta3, but not committed

Modified: trunk/src/argouml-app/src/org/argouml/language/java/generator/GeneratorJava.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/language/java/generator/GeneratorJava.java?view=diff&rev=15771&p1=trunk/src/argouml-app/src/org/argouml/language/java/generator/GeneratorJava.java&p2=trunk/src/argouml-app/src/org/argouml/language/java/generator/GeneratorJava.java&r1=15770&r2=15771
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/language/java/generator/GeneratorJava.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/language/java/generator/GeneratorJava.java	2008-09-22 15:33:41-0700
@@ -1,5 +1,5 @@
 // $Id$
-// Copyright (c) 1996-2007 The Regents of the University of California. All
+// Copyright (c) 1996-2008 The Regents of the University of California. All
 // Rights Reserved. Permission to use, copy, modify, and distribute this
 // software and its documentation without fee, and without a written
 // agreement is hereby granted, provided that the above copyright notice
@@ -1167,8 +1167,7 @@
     private String generateConstraintEnrichedDocComment(Object me, Object ae) {
         String s = generateConstraintEnrichedDocComment(me, true, INDENT);
 
-        Object m = Model.getFacade().getMultiplicity(ae);
-        if (Model.getFacade().getUpper(m) != 1) {
+        if (isCollection(ae)) {
             // Multiplicity greater 1, that means we will generate some sort of
             // collection, so we need to specify the element type tag
             StringBuffer sDocComment = new StringBuffer(80);
@@ -1203,6 +1202,23 @@
     }
 
     /**
+     * @param element ModelElement which has the Multiplicity
+     * @return true if multiplicity is non-null and upper bound is greater
+     * than 1
+     */
+    private boolean isCollection(Object element) {
+        Object multiplicity = Model.getFacade().getMultiplicity(element);
+        if (multiplicity != null) {
+            int upper = Model.getFacade().getUpper(multiplicity);
+            // -1 is UML's special 'unlimited integer'
+            if (upper > 1 || upper == -1) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
+    /**
      * Enhance/Create the doccomment for the given model element,
      * including tags for any OCL constraints connected to the model
      * element. The tags generated are suitable for use with the ocl
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.