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

Reply via email to