Voici un schéma du processus de génération utilisé dans RTFTemplate :
Cette étape nécéssite OBLIGATOIREMENT le contexte OU le fichier XML qui contient les champs disponibles (*.fields.xml) du modèle RTF. En effet, l'étape de transformation permet de générer les macros de boucle (#foreach, #list,...) en fonction du moteur de template sélectionné (Velocity, Freemarker,...).
Lorsque RTFTemplate sera intégré à votre application, il se peut que les listes soient vides. La génération des boucles s'effectuent par introspection des objets JAVA de votre contexte. Si votre liste est vide, RTFTemplate sera incapable de générer les champs qui sont dans une boucle.
Pour régler ce problème, le fichier XML des champs disponibles est requis lorsque vous allez intégrer RTFTemplate dans votre application. Ce fichier peut être généré à l'aide de la classe AbstractRTFUseCase (avant l'intégration de RTFTemplate). Ce fichier contient les informations des champs qui indiquent si le champs est compris dans une liste ou non.
C'est pour cette raison, qu'il est impératif de poser le contexte avec toutes les données possibles lorsque la classe AbstractRTFUseCase est implementée.
Le résulat de cette étape donne une nouvelle structure RTFDocument qui contient les macros du moteur de template sélectionné.
Chaque étape du processus peut être séléctionnée parmi les implémentations par défaut fournis par RTFTemplate (moteur de template en Velocity ou Freemarker) ou ré-implémentée. Cette configuration peut s'effectuer prgramatiquement ou à l'aide d'un descripeur XML Spring. Pour plus d'informations, cliquez ici