It is a bug that I had not got around to fixing yet. I just now submitted the fix for both the main stream and the 2.x development stream.
I won't go into the details of the bug, but your work-around makes total sense. Your work around will continue to work in the next AndroMDA release, but it won't be necessary. In the next release the following will work: #set ($superclass = $transform.getGeneralization($class)) Tony > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of > Bollermann Manfred > Sent: Wednesday, October 01, 2003 1:36 AM > To: '[EMAIL PROTECTED]' > Subject: [Andromda-user] Exception when checking for superclass > > > I am trying to check for a potential superclass of a class > (entity) in a VelocityScript: > > #set ($superclass = $transform.getGeneralization($class)) > > > ... and get an Exception in class UMLStaticHelper (see below). Am > I using the Transform interface incorrectly? > There is no problem if element (see code below) is of type > UmlClass$Impl. The problem occurs if > element is a dynamic proxy (referring to a > org.andromda.core.simpleuml.PClassifier class inside). > > So the following VelocityScript code works where I pass in the > actual UmlClass object: > > #set ($superclass = $transform.getGeneralization(${class.getId()})) > > > But should it be that way? Can someone help and clarify? > > > ________________________________________________________________ > public GeneralizableElement getGeneralization(Object object) { > if ((object == null) || !(object instanceof > GeneralizableElement)) { > return null; > } > > GeneralizableElement element = (GeneralizableElement) object; > Iterator i = > model > .getCore() > .getAChildGeneralization() > .getGeneralization(element) <<<<<<<<<<<<<<< Exception > .iterator(); > if (i.hasNext()) { > Generalization generalization = (Generalization) i.next(); > return generalization.getParent(); > } > > return null; > } > > > [andromda] java.lang.ClassCastException > [andromda] at > org.netbeans.mdr.handlers.AssociationHandler._handleQuery(Associat > ionHandler.java:106) > [andromda] at > org.omg.uml.foundation.core.AChildGeneralization$Impl.getGeneraliz > ation(Unknown Source) > [andromda] at > org.andromda.core.uml14.UMLStaticHelper.getGeneralization(UMLStati > cHelper.java:268) > [andromda] at > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > [andromda] at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorIm > pl.java:39) > [andromda] at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAc > cessorImpl.java:25) > [andromda] at java.lang.reflect.Method.invoke(Method.java:324) > [andromda] at > org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMetho > d.java:259) > [andromda] at > org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTRe > ference.java:202) > [andromda] at > org.apache.velocity.runtime.parser.node.ASTReference.value(ASTRefe > rence.java:345) > [andromda] at > org.apache.velocity.runtime.parser.node.ASTSetDirective.render(AST > SetDirective.java:135) > [andromda] at > org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNo > de.java:271) > [andromda] at > org.apache.velocity.runtime.directive.VelocimacroProxy.render(Velo > cimacroProxy.java:215) > [andromda] at > org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDir > ective.java:153) > [andromda] at > org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNo > de.java:271) > [andromda] at org.apache.velocity.Template.merge(Template.java:296) > [andromda] at > org.andromda.core.anttasks.AndroMDAGenTask.processModelElementWith > OneTemplate(AndroMDAGenTask.java:743) > [andromda] at > org.andromda.core.anttasks.AndroMDAGenTask.processModelElementWith > Cartridge(AndroMDAGenTask.java:651) > [andromda] at > org.andromda.core.anttasks.AndroMDAGenTask.processModelElementSter > eotype(AndroMDAGenTask.java:576) > [andromda] at > org.andromda.core.anttasks.AndroMDAGenTask.processModelElement(And > roMDAGenTask.java:536) > [andromda] at > org.andromda.core.anttasks.AndroMDAGenTask.process(AndroMDAGenTask > .java:511) > [andromda] at > org.andromda.core.anttasks.AndroMDAGenTask.execute(AndroMDAGenTask > .java:300) > [andromda] at > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193) > [andromda] at org.apache.tools.ant.Task.perform(Task.java:341) > [andromda] at org.apache.tools.ant.Target.execute(Target.java:309) > [andromda] at org.apache.tools.ant.Target.performTasks(Target.java:336) > [andromda] at > org.apache.tools.ant.Project.executeTarget(Project.java:1339) > [andromda] at > org.apache.tools.ant.Project.executeTargets(Project.java:1255) > [andromda] at org.apache.tools.ant.Main.runBuild(Main.java:609) > [andromda] at org.apache.tools.ant.Main.start(Main.java:196) > [andromda] at org.apache.tools.ant.Main.main(Main.java:235) > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Andromda-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/andromda-user ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Andromda-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/andromda-user
