Ce document décrit les éléments et la structure de la transformation JET2 pour la génération de code à partir d'un JDT AST. Il sera particulièrement utile pour les développeurs souhaitant utiliser cette transformation pour générer du code Java à partir d'un JDT AST.
La transformation de JDT en code JET2 est une transformation de niveau supérieur.
| Transformation de JDT en code JET |
|
La transformation attend Map<IJavaProject,Collection<CompilationUnit>> en tant qu'élément racine. Ensuite, elle traite la collection pour chaque projet et génère les fichiers source correspondants dans le projet correspondant. Les éléments CompilationUnit sont supposés contenir toutes les informations nécessaires, c-à-d les déclarations de package, les déclarations d'importation, etc.
La transformation utilise l'extension org.eclipse.jet.modelInspectors pour traverser le JDT AST dans les canevas JET. Un analyseur (inspector) est un objet qui adapte les objets au modèle d'information XPath. Chaque analyseur définit les types d'objet qu'il est en mesure d'adapter, et seuls ces types d'objet lui sont soumis. Un analyseur est prévu pour chaque noeud AST (ASTNode) et répond aux requêtes XPath pour ce noeud. Ces analyseurs sont implémentés dans le plug-in com.ibm.xtools.transform.java.jet2.
La transformation fournit le point d'extension com.ibm.xtools.transform.java.jet2.IJavaJET2ListenerProvider qui permet aux transformations appelantes d'effectuer des actions personnalisées en cours d'exécution de la transformation. IJavaJET2ListenerProvider est une interface qui permet aux clients d'enregistrer les écouteurs auprès de la transformation Java JET2 pour chaque noeud ASTNode ainsi que org.eclipse.jet.IWriterListener pour chaque fichier écrit. La structure du point d'extension est décrite ci-après.
| Extension IJavaJET2ListenerProvider |
|
L'interface IJavaJET2ListenerProvider est définie comme suit.
| interface publique IJavaJET2ListenerProvider { public IJavaJET2Listener getJavaJET2Listener(String activityId); public IWriterListener getWriterListener(String activityId); } |
IJavaJET2Listener est un écouteur au niveau noeud qui est appelé avant et après le traitement de chaque noeud AST, cependant que IWriterListener est un écouteur au niveau fichier qui est appelé avant et après validation de chaque fichier. Les contributeurs ne peuvent fournir des écouteurs que pour les ID activité (ActivityId) qui les intéressent spécifiquement. L'ID activité est un identificateur qui peut être spécifié par les clients de la transformation Java JET2, et un contributeur peut fournir des écouteurs pour chaque ID activité, ce qui va lui permettre d'étendre toute transformation appelant la transformation Java JET2. L'interface IJavaJET2Listener est définie comme indiqué ci-après.
| interface publique IJavaJET2Listener { public void preVisit (noeud ASTNode, programme d'écriture JET2Writer); public void postVisit (noeud ASTNode, programme d'écriture JET2Writer); } |
<A définir>
<A définir>