Création de canevas JET (Java Emitter Templates) Eclipse Modeling Framework Technologies (EMFT) pour générer du code personnalisé

Le plan de travail utilise les canevas EMFT JET lors de la génération de code pureQuery. Vous pouvez substituer votre propre transformation à cette transformation JET par défaut.

Pourquoi et quand exécuter cette tâche

Le remplacement de la transformation JET par défaut pour la génération de code pureQuery implique la création d'un projet JET EMFT ainsi que de canevas ; par ailleurs, vous devez indiquer au plan de travail qu'il doit utiliser votre transformation JET.

Important : Il ne vous est pas nécessaire de créer des documents XML à utiliser comme modèles d'entrée pour votre transformation JET. Lorsque vous générez votre code pureQuery personnalisé, les assistants créent le code XML automatiquement, ceci en fonction de l'objet sur lequel votre code est basé. Le code XML est temporaire et n'est pas sauvegardé.
Toutefois, vous devez connaître le format du fichier XML créé par l'assistant. Le schéma se trouve dans le plug-in com.ibm.datatools.javatool.transform.codegen. Vous pouvez également afficher les documents XML d'exemple basés sur ce schéma :

Pour générer votre code personnalisé, utilisez les assistants de génération de code pureQuery qui correspondent aux canevas que vous remplacez. Par exemple, si vous remplacez le canevas GenTableBean.jet, vous pouvez générer votre code personnalisé à l'aide de l'assistant Génération du code pureQuery à partir d'une table ou de l'assistant Génération de code pureQuery à partir de tables.

Pour plus d'informations sur EMFT JET (désormais appelé Model-To-Text JET), rendez-vous sur www.eclipse.org.

Procédure

Pour créer et configurer des canevas EMFT JET afin de générer du code personnalisé pour le code pureQuery :

  1. Créez un projet de transformation EMFT JET. Cliquez dans l'explorateur de packages avec le bouton droit de la souris puis sélectionnez Nouveau > Projet. Dans l'assistant Nouveau projet, sélectionnez Transformations JET EMFT > Projet de transformation JET EMFT.
  2. Modifiez le fichier manifest.mf de votre projet Ce fichier doit indiquer que vous remplacez la transformation pureQuery par défaut.

    Si vous voulez utiliser la classe DBHelper - classe du plug-in com.ibm.datatools.javatool.transform.codegen qui obtient des informations sur la connexion de base de données nécessaire pour la transformation -, le fichier manifest doit indiquer qu'il est soumis à une dépendance par rapport au plug-in com.ibm.datatools.javatool.transform.codegen. La documentation de cette classe se trouve dans ce plug-in.

    1. Cliquez deux fois sur le fichier manifest.mf dans votre projet pour ouvrir ce fichier et le modifier.
    2. Cliquez sur l'onglet Extensions.
    3. Dans la zone Toutes les extensions, développez org.eclipse.jet.transform puis sélectionnez (transform).
    4. Dans la zone de remplacement, entrez com.ibm.datatools.javatool.transform.codegen.
    5. Facultatif : Pour pouvoir utiliser la classe DBHelper, cliquez sur l'onglet Dépendances et ajoutez com.ibm.datatools.javatool.transform.codegen en tant que plug-in obligatoire.
    6. Sauvegardez et fermez le fichier.
  3. Dans votre projet de transformation EMFT JET, supprimez le fichier dump.jet. Vous pouvez également supprimer le fichier main.jet si vous souhaitez que votre transformation utilise le fichier main.jet de la transformation com.ibm.datatools.javatool.transform.codegen.
  4. Dans le répertoire templates de votre projet de transformation EMFT JET, créez les canevas qui vont remplacer les canevas contenus dans la transformation com.ibm.datatools.javatool.transform.codegen. Pour remplacer l'un des canevas pureQuery par défaut, créez un canevas portant le même nom. Si vous ne remplacez pas de canevas par défaut, le plan de travail continue de l'utiliser lorsque vous générez le code pureQuery correspondant.

    Le tableau suivant récapitule les canevas contenus dans cette transformation.

    Tableau 1. Canevas contenus dans la transformation com.ibm.datatools.javatool.transform.codegen
    Nom du canevas SGBD pris en charge Description
    GenProcedureHandler.jet Oracle Utilisé lorsque vous générez du code à partir d'une procédure mémorisée qui s'exécute sur une base de données Oracle.
    GenProcedureInlineJunit.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsque vous cochez les cases Générer une classe de test pour style interne et Générer des jeux d'essai JUnit de l'assistant Génération de code pureQuery à partir d'une procédure d'appel mémorisée.

    Génère un jeu d'essais JUnit contenant des méthodes intégrées pour l'appel de la procédure mémorisée correspondante.

    GenProcedureInlineSample.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsque vous cochez la case Générer une classe de test pour style interne de l'assistant Génération de code pureQuery à partir d'une procédure d'appel mémorisée.

    Génère une classe de test Java contenant des méthodes intégrées pour l'appel de la procédure mémorisée correspondante.

    GenProcedureInterface.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsque vous cochez la case Générer une interface Java pour la procédure mémorisée de l'assistant Génération de code pureQuery à partir d'une procédure mémorisée.

    Génère une interface Java contenant des méthodes annotées pour l'appel de la procédure mémorisée correspondante.

    GenProcedureInterfaceJunit.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsque vous cochez les cases Générer une interface Java pour la procédure mémorisée, Générer une classe de test pour l'interface Java pour la procédure mémorisée et Générer des jeux d'essai JUnit de l'assistant Génération du code pureQuery à partir d'une procédure mémorisée.

    Génère un jeu d'essai JUnit contenant des méthodes annotées pour l'appel de la procédure mémorisée correspondante.

    GenProcedureInterfaceTest.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsque vous cochez les cases Générer une interface Java pour la procédure mémorisée et Générer une classe de test pour l'interface Java pour la procédure mémorisée de l'assistant Génération du code pureQuery à partir d'une procédure mémorisée.

    Génère une classe de test permettant de tester l'implémentation de l'interface correspondante.

    GenProcedureParmBean.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsqu'une procédure mémorisée traitée par l'assistant Génération du code pureQuery à partir d'une procédure mémorisée contient des paramètres.

    Génère un bean qui contient des propriétés représentant les paramètres d'une procédure mémorisée.

    GenSampleUtil.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle

    Génère une classe contenant des méthodes statiques appelées par les classes de test lorsque celles-ci sont exécutées. Ces méthodes affichent les résultats de l'exécution des classes de test dans la console.

    Cette classe contient également du code permettant d'établir des connexions de base de données pour les classes de test.

    GenSQLBean.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsque vous cliquez sur Terminer dans l'assistant Génération de code pureQuery à partir d'une instruction SQL ou Génération du code pureQuery à partir d'instructions SQL.

    Génère un code pureQuery qui repose sur le type d'instruction SQL traité.

    GenTableBean.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsque vous générez un bean à partir de l'assistant Génération de code pureQuery à partir d'une table ou de l'assistant Génération de code pureQuery à partir des tables.

    Génère un bean qui contient des propriétés représentant les colonnes d'une table ou d'une vue.

    GenTableInlineJunit.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsque vous cochez les cases Générer une classe de test pour style interne et Générer des jeux d'essai JUnit de l'assistant Génération de code pureQuery à partir d'une table ou de l'assistant Génération de code pureQuery à partir des tables.

    Génère un jeu d'essai JUnit qui contient des méthodes intégrées permettant d'accéder à l'objet de base de données correspondant.

    GenTableInlineSample.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsque vous cochez la case Générer une classe de test pour style interne de l'assistant Génération de code pureQuery à partir d'une table ou de l'assistant Génération de code pureQuery à partir de tables.

    Génère une classe de test Java qui contient des méthodes intégrées permettant d'accéder à l'objet de base de données correspondant.

    GenTableInterface.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsque vous cochez la case Générer une interface avec méthode annotée pour la table de l'assistant Génération de code pureQuery à partir d'une table ou de l'assistant Génération de code pureQuery à partir de tables.

    Génère une interface Java qui contient des méthodes annotées permettant d'accéder à l'objet de base de données correspondant.

    GenTableInterfaceJUnit.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsque vous cochez les cases Générer une interface de méthode annotée pour la table, Générer une classe de test pour l'interface de méthode annotée de la table et Générer des jeux d'essai JUnit de l'assistantGénération de code pureQuery à partir d'une table.

    Génère un jeu d'essai JUnit permettant de tester l'implémentation de l'interface correspondante.

    GenTableInterfaceTest.jet
    • DB2 for Linux, UNIX, and Windows
    • DB2 for z/OS
    • Informix Dynamic Server
    • Oracle
    Utilisé lorsque vous cochez les cases Générer une interface Java pour la table et Générer une classe de test pour l'interface Java de la table de l'assistant Génération de code pureQuery à partir d'une table ou de l'assistant Génération de code pureQuery à partir de tables.

    Génère une classe de test permettant de tester l'implémentation de l'interface correspondante.

  5. Dans la page des préférences pour les transformations pureQuery, indiquez la transformation que le plan de travail doit utiliser :
    1. Sélectionnez Fenêtre > Préférences.
    2. Sélectionnez Gestion des données > pureQuery > Transformations.
    3. Dans la zone ID de transformation, sélectionnez le nom de votre projet de transformation JET EMFT.

Exemple

Les exemples décrivent des documents XML utilisés en entrée pour les modèles JET pureQuery.


Commentaires