I'm working with hibernate and have been wanting to have AndroMDA generate classes of the form:
// the superclass does not use @hibernate.class public abstract Superclass { /** @hibernate.id ... */ .... } /** @hibernate.class */ public Subclass extends Superclass { // id is inherited from superclass .... } This works great for Hibernate and XDoclet, but AndroMDA 2.1.1 doesn't deal with inheritance. So I added the following code to AndroMDAGenTask.processModelElementWithOneTemplate(): ... velocityContext.put("class", modelElement); // new code if (modelElement instanceof Classifier) { String superTypes = null; for (Iterator it = ((Classifier) modelElement).getGeneralization().iterator(); it.hasNext();) { Generalization g = (Generalization) it.next(); if (superTypes == null) { superTypes = g.getParent().getName(); } else { // this should never get hit with a class. Does Classifier map to a Java // class, or is it a super of both interface and class? superTypes += ","+g.getParent().getName(); } } velocityContext.put("supertypes", superTypes); } ... Smells like a gross hack to me (the Velocity context would get pretty cluttered pretty quick), but maybe I'm being too hard on myself. Any Velocity pros want to comment? Anyway, I have these additions if anyone is interested, there may be more to come. thanks, -b ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ _______________________________________________ Andromda-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/andromda-devel