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

Reply via email to