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.