Creación de JET (Java Emitter Templates) de EMFT (Eclipse Modeling Framework Technologies) para generar código personalizado

El entorno de trabajo utiliza plantillas JET de EMFT al generar código pureQuery. Puede alterar temporalmente la transformación JET predeterminada por su cuenta.

Acerca de esta tarea

La alteración temporal de la transformación JET predeterminada del entorno de trabajo para producir código pureQuery implica la creación de un proyecto JET de EMFT, la creación de plantillas y la indicación al entorno de trabajo que utilice la transformación JET.

Importante: No es necesario que cree documentos XML para utilizar como modelos de entrada para la transformación JET. Al generar el código pureQuery personalizado, los asistentes crean el XML automáticamente, basándose en el objeto en el que basa el código. El XML es transitorio y no se guarda.
Sin embargo debe conocer el formato del XML que los asistentes crean. Encontrará el esquema en el plugin com.ibm.datatools.javatool.transform.codegen. Además, puede consultar los siguientes ejemplos de documentos XML que se basan en este esquema:

Para generar el código personalizado, utilice los asistentes de generación de código pureQuery que corresponden a las plantillas que altera temporalmente. Por ejemplo, si altera temporalmente la plantilla GenTableBean.jet, puede generar el código personalizado utilizando el asistente para Generar código pureQuery a partir de una tabla o el asistente para Generar código pureQuery a partir de tablas.

Para obtener información acerca de JET de EMFT (que ahora se denomina Model-To-Text JET), visite www.eclipse.org.

Procedimiento

Para crear y configurar plantillas JET de EMFT a fin de generar código personalizado para código pureQuery:

  1. Cree un proyecto de transformación JET de EMFT. Pulse con el botón derecho del ratón en el Explorador de paquetes y seleccione Nuevo > Proyecto. En el asistente para Nuevo proyecto, seleccione Transformaciones JET de EMFT > Proyecto de transformaciones JET de EMFT.
  2. Edite el archivo manifest.mf para el proyecto Este archivo debe especificar que está alterando temporalmente la transformación predeterminada de pureQuery

    Si desea utilizar la clase DBHelper, una clase del plugin com.ibm.datatools.javatool.transform.codegen que obtiene información acerca de la conexión de base de datos que la transformación necesita, el archivo manifest deberá especificar que tiene una dependencia del plugin com.ibm.datatools.javatool.transform.codegen. Dentro de este plugin está la documentación de esta clase.

    1. Efectúe una doble pulsación del archivo manifest.mf en el proyecto para abrir el archivo para editarlo.
    2. Pulse el separador Ampliaciones.
    3. En el campo Todas las ampliaciones, expanda org.eclipse.jet.transform y luego seleccione (transform).
    4. En el campo overrides, escriba com.ibm.datatools.javatool.transform.codegen.
    5. Opcional: Pulse el separador Dependencias y añada el plugin com.ibm.datatools.javatool.transform.codegen como plugin necesario, si desea utilizar la clase DBHelper.
    6. Guarde y cierre el archivo.
  3. En el proyecto de transformación JET de EMFT, suprima el archivo dump.jet. Además puede suprimir el archivo main.jet si desea que la transformación utilice el archivo main.jet desde la transformación com.ibm.datatools.javatool.transform.codegen.
  4. En el directorio templates del proyecto de transformación JET de EMFT, cree plantillas que alteren temporalmente plantillas de la transformación com.ibm.datatools.javatool.transform.codegen. Para alterar temporalmente una de las plantillas predeterminadas pureQuery, cree una plantilla con el mismo nombre. Si no altera temporalmente una plantilla predeterminada, el entorno de trabajo continuará utilizándola al generar el código pureQuery correspondiente.

    La tabla siguiente enumera las plantillas que están en esa transformación.

    Tabla 1. Plantillas de la transformación com.ibm.datatools.javatool.transform.codegen
    Nombre de la plantilla DBMS soportado Descripción
    GenProcedureHandler.jet Oracle Se utiliza al generar código a partir de un procedimiento almacenado que ejecuta en una base de datos Oracle.
    GenProcedureInlineJunit.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando se marcan los dos recuadros de selección Generar clase de prueba para estilo incorporado y Generar casos de prueba JUnit en el asistente para Generar código pureQuery a partir de procedimiento almacenado.

    Genera un caso de prueba JUnit que contiene métodos incorporados para llamar al procedimiento almacenado correspondiente.

    GenProcedureInlineSample.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando se marca el recuadro de selección Generar clase de prueba para estilo incorporado en el asistente para Generar código de pureQuery a partir de un procedimiento almacenado.

    Genera una clase de prueba Java que contiene métodos incorporados para llamar al procedimiento almacenado correspondiente.

    GenProcedureInterface.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando se marca el recuadro de selección Generar interfaz Java para procedimiento almacenado del asistente para Generar código de pureQuery a partir de un procedimiento almacenado.

    Genera una interfaz Java que contiene métodos anotados para llamar al procedimiento almacenado correspondiente.

    GenProcedureInterfaceJunit.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando se marcan los recuadros de selección Generar interfaz Java para procedimiento almacenado, Generar clase de prueba para interfaz Java para procedimiento almacenado y Generar casos de prueba JUnit en el asistente para Generar código pureQuery a partir de un procedimiento almacenado.

    Genera un caso de prueba JUnit que contiene métodos anotados para llamar al procedimiento almacenado correspondiente.

    GenProcedureInterfaceTest.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando se marcan los recuadros de selección Generar interfaz Java para procedimiento almacenado y Generar clase de prueba para interfaz Java para procedimiento almacenado del asistente para Generar código pureQuery a partir de un procedimiento almacenado.

    Genera una clase de prueba para probar la implementación de la interfaz correspondiente.

    GenProcedureParmBean.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando el procedimiento almacenado procesado por el asistente para Generar código pureQuery a partir de un procedimiento almacenado tiene parámetros.

    Genera un bean que contiene propiedades que representan los parámetros de un procedimiento almacenado.

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

    Genera una clase que contiene métodos estáticos que las clases de prueba llaman al ejecutarse. Estos métodos muestran en la vista Consola los resultados de ejecutar las clases de prueba.

    Esta clase también contiene código para establecer conexiones de base de datos para las clases de prueba.

    GenSQLBean.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando se pulsa Finalizar en el asistente para Generar código pureQuery a partir de una sentencia SQL o el asistente para Generar código pureQuery a partir de sentencias SQL.

    Genera código pureQuery que se basa en el tipo de sentencia o sentencias SQL que se procesan.

    GenTableBean.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando se genera un bean desde el asistente para Generar código pureQuery a partir de una tabla o el asistente para Generar código pureQuery a partir de tablas.

    Genera un bean que contiene propiedades que representan las columnas de una tabla o vista.

    GenTableInlineJunit.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando se seleccionan los dos recuadros de selección Generar clase de prueba para estilo incorporado y Generar casos de prueba JUnit en el asistente para Generar código pureQuery a partir de una tabla o el asistente para Generar código pureQuery a partir de tablas.

    Genera un caso de prueba JUnit que contiene métodos incorporados para acceder al objeto de base de datos correspondiente.

    GenTableInlineSample.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando se marca el recuadro de selección Generar clase de prueba para estilo incorporado en el asistente para Generar código pureQuery a partir de una tabla o el asistente para Generar código pureQuery a partir de tablas.

    Genera una clase de prueba Java que contiene métodos incorporados para acceder al objeto de base de datos correspondiente.

    GenTableInterface.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando se marca el recuadro de selección Generar interfaz de método anotado para tabla en el asistente para Generar código pureQuery a partir de una tabla o el asistente para Generar código pureQuery a partir de tablas.

    Genera una interfaz Java que contiene métodos anotados para acceder al objeto de base de datos correspondiente.

    GenTableInterfaceJUnit.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando se marcan los recuadros de selección Generar interfaz de método anotado para tabla, Generar clase de prueba para interfaz de método anotado para tabla y Generar casos de prueba JUnit en el asistente para Generar código pureQuery a partir de una tabla o el asistente para Generar código pureQuery a partir de tablas.

    Genera un caso de prueba JUnit para probar la implementación de la interfaz correspondiente.

    GenTableInterfaceTest.jet
    • DB2 para Linux, UNIX y Windows
    • DB2 para z/OS
    • Informix Dynamic Server
    • Oracle
    Se utiliza cuando se marcan los dos recuadros de selección Generar interfaz Java para tabla y Generar clase de prueba para interfaz Java para tabla en el asistente para Generar código pureQuery a partir de una tabla o el asistente para Generar código pureQuery a partir de tablas.

    Genera una clase de prueba para probar la implementación de la interfaz correspondiente.

  5. En la página de preferencias de transformaciones pureQuery, especifique la transformación que el entorno de trabajo debe utilizar:
    1. Seleccione Ventana > Preferencias.
    2. Seleccione Gestión de datos > Desarrollo de SQL > pureQuery > Transformaciones.
    3. En el campo ID de transformación, seleccione el nombre del proyecto de transformación JET de EMFT.

Ejemplo

El ejemplo describe los documentos XML de muestra utilizados como entrada para las plantillas JET de pureQuery.


Comentarios