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(AssociationHandler.java:106)
[andromda] at
org.omg.uml.foundation.core.AChildGeneralization$Impl.getGeneralization(Unknown Source)
[andromda] at
org.andromda.core.uml14.UMLStaticHelper.getGeneralization(UMLStaticHelper.java:268)
[andromda] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[andromda] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[andromda] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[andromda] at java.lang.reflect.Method.invoke(Method.java:324)
[andromda] at
org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:259)
[andromda] at
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:202)
[andromda] at
org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:345)
[andromda] at
org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:135)
[andromda] at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:271)
[andromda] at
org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:215)
[andromda] at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:153)
[andromda] at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:271)
[andromda] at org.apache.velocity.Template.merge(Template.java:296)
[andromda] at
org.andromda.core.anttasks.AndroMDAGenTask.processModelElementWithOneTemplate(AndroMDAGenTask.java:743)
[andromda] at
org.andromda.core.anttasks.AndroMDAGenTask.processModelElementWithCartridge(AndroMDAGenTask.java:651)
[andromda] at
org.andromda.core.anttasks.AndroMDAGenTask.processModelElementStereotype(AndroMDAGenTask.java:576)
[andromda] at
org.andromda.core.anttasks.AndroMDAGenTask.processModelElement(AndroMDAGenTask.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