¿Cómo utilizo el código generado por el DSL?
Esta página explica cómo comenzar con el código generado por el DSL en un proyecto de flo-lang. Describe todas las diferentes interfaces que se generan y revisa la clase de dominio central que se utiliza para interactuar con el dominio mismo.
¿Qué código se genera?
Hay una serie de clases generadas por el DSL que facilitan la interacción entre el modelo de dominio y el código de la aplicación. En los casos de uso típicos, las clases más importantes de las que debe estar al tanto son:
-
La clase '<ABC>ModelDomain', que tiene la siguiente estructura de nomenclatura: '<ABC>Domain', donde <ABC> es el nombre del modelo DSL. Esta clase ofrece acceso a todas las características del dominio y debe ser construida como parte del proceso de inicialización de la aplicación.
-
La clase 'ModelOperations', que tiene la siguiente estructura de nomenclatura: '<ABC>ModelOperations', donde <ABC> es el nombre del modelo DSL. Esta clase proporciona información útil sobre el dominio y sirve como un punto de entrada para que otros componentes de IPF interactúen con ella. En consecuencia, este componente debe ser registrado en el contexto de Spring.
-
Puertos-para cada componente DSL (Solicitud de Dominio Externo, Función de Dominio,Decision etc) se pondrá a disposición un único puerto coincidente. Se espera que los clientes proporcionen implementaciones de adaptadores de estas interfaces, que luego pueden ser registradas utilizando los métodos de adaptador proporcionados por el dominio.
Al observar la clase de dominio del modelo, proporcionará el mecanismo para registrar un adaptador con el dominio.
Para que el dominio se inicialice correctamente, todos los adaptadores definidos en el flujo deben ser proporcionados al mismo al inicio. Por lo tanto, se realiza una verificación de validación por parte del dominio durante el inicio, y la aplicación no podrá iniciarse si detecta que falta algún adaptador. |
¿Dónde se encuentra el Código Generado?
Todo el código generado por el DSL se encuentra dentro del target carpeta del módulo 'domain' en su solución. Observe cómo cada modelo reside en su propio paquete separado (por ejemplo, a_simple_decision), como se muestra en la captura de pantalla a continuación: