Con este proyecto hemos desarrollado un generador de código para Java a partir de TextX y jinja 2 por python.
Para este ejemplo en particular creamos un concepto inicial que llamaremos Banda en la cual creamos diferentes entidades con sus propiedades a las que se les definie por un tipo y un nombre.
textX no impone ninguna biblioteca o proceso específico para la generación de código fuente. Por lo tanto Jinja 2 nos permite generar código en java sin ningun problema a partir de nuestros modelos de entidades que son archivos java.template como se ve en la imágen:
Para que podamos ver nuestro ejemplo como una clase en java, python nos permite utilizar un filtro que transformará el objeto dado en algún otro objeto, en este caso un javatype que relaciona el tipo de dato adecuado.
Ahora, veamos cómo podemos armar esto. Necesitamos inicializar el motor Jinja2, instanciar nuestro metamodelo, cargar nuestro modelo y luego iterar sobre las entidades de nuestro modelo y generar un archivo Java para cada entidad:
Por último el resultado de la entidad Instrumentos como código generado será así: