Les modificateurs


CHILD

Classes CONN et PLUGIN FUNCTION seulement : modificateur exécuté pour chaque occurrence enfant.

Exemple
columns CONN TableColumns,
CHILD = name;


La fonction du référentiel TableColumns retourne chaque colonne d'une table. Pour chaque occurrence CHILD, la règle de nom est exécutée.




DOM

Classes ATTR et TEMPL seulement : nom du domaine.

Exemple
tableTriggerTimeAttr ATTR TriggerTime
DOM = tableTriggerTimeDomain;

tableTriggerTimeDomain CDOM ("1", "BEFORE ")
("2", "AFTER ")
(DEFAULT, "");


La fonction du référentiel TriggerTime retourne "1" pour un déclencheur before, "2" pour un déclencheur after et "3" pour un déclencheur instead of. Le résultat sera "BEFORE" ou "AFTER" si la fonction du référentiel retourne "1" ou "2"; s'il retourne "3 ' (ou une autre valeur), le résultat sera vide.




EXTERN

Classes TEMPL et GROUP seulement : le drapeau indique d’inclure cette règle dans la liste de règles apparaissant dans le menu Générer à partir de gabarits.

Exemple
projectEntryPoint TEMPL "$project;"
EXTERN
FILE = "z.sql.txt";


Dans cet exemple, la règle projectEntryPoint sera visible dans l'interface, de sorte que l'utilisateur puisse la choisir en tant que règle en voie d’exécution.




FALSE

Classe COND seulement : le modificateur exécuté lorsque la condition retourne FALSE. Si la condition est vraie (si la variable booléenne HTML est vraie), la sous-règle de htmlDisplay sera exécutée et le résultat sera <code>name</code>. Cependant, si la condition est fausse, c’est le plainDisplay qui sera exécuté.

Exemple
display COND BOOLEAN (html)
TRUE=htmlDisplay
FALSE=plainDisplay;

htmlDisplay TEMPL "<code>$name;</code>";
plainDisplay TEMPL "$name;";




FILE

Classes TEMPL et GROUP seulement : le modificateur est exécuté, puis utilisé pour créer un nouveau fichier qui contient le résultat de l’exécution de la sous-règle; la chaîne de gabarit ne doit pas contenir de codes d'édition. Le résultat doit être un nom de fichier contenant ou non le répertoire, lequel peut être relatif ou absolu. La création d'un répertoire est limitée à un niveau (c:\sub1\sub2\output.txt n'est pas une chaîne d'entrée valide au modificateur FILE).

La chaîne résultante du modificateur FILE est ajoutée dans le fichier parent résultant comme référence (comme un hyperlien de HTML). Pour sauter cette chaîne, vous pouvez utiliser un domaine.



LOWER

Classes TEMPL et ATTR seulement : le résultat de la règle TEMPL est converti en lettres minuscules. Les caractères qui ne sont pas des lettres ne sont pas affectés par ce changement.

Exemple :
lowercase TEMPL "$hello;"
LOWER;

hello TEMPL "Hello World!";


La règle 'lowercase' (minuscule) devient "hello world!"




NULL

Classes ATTR, CONN, TEMPL, COND et GROUP : le modificateur est exécuté lorsque le résultat est vide ou, comme pour CONN, lorsqu’il n'y a pas d’occurrence enfant. Exemple ci-dessous.



PREF

Classes ATTR, CONN, TEMPL, COND et GROUP : le modificateur est exécuté et ajouté en tant que préfixe au résultat, lorsque le résultat n'est pas vide ou, comme pour CONN, lorsqu’il y a au moins un enfant. Exemple ci-dessous.



SEP

Classes CONN et GROUP : le modificateur est exécuté une fois, lorsqu’il y a au moins deux occurrences (CONN) ou deux variables donnant un résultat (GROUP) et inséré entre chaque paire de chaînes résultantes. Exemple ci-dessous.



SUF

Classes ATTR, CONN, TEMPL, COND et GROUP : le modificateur est exécuté et ajouté en tant que suffixe au résultat, lorsque le résultat n'est pas vide ou, pour CONN, lorsqu’il y a au moins une occurrence enfant.

Voici l’exemple pour ces quatre derniers modificateurs :

col_min_max GROUP (col_len, col_dec)
PREF = "Note: "
SEP = " AND "
SUF = "."
NULL = "Note: length and number of decimals are undetermined.";

col_len ATTR ColumnLength
PREF = "$name;'s length is : ";

col_dec ATTR ColumnDecimal
PREF = "$name;'s nb of decimals is : ";


Les fonctions du référentiel ColumnLength et ColumnDecimal retournent la longueur du nombre des décimales d'une colonne. Si la colonne est price, la longueur est 10 et le nombre de décimales est 5, le résultat sera Note : la longueur du prix est : 10 ET nb de prix de décimales est : 5. Si la longueur est indéterminée, le résultat sera Note : nb de prix de décimales est : 5. Si tous les deux sont indéterminés, le résultat sera Note : la longueur et le nombre de décimales sont indéterminés.

L’utilisation des codes d’édition n’est pas permise dans une chaîne NULL, PREF, SEP ou SUF.



TRUE

Classe COND seulement : règle exécutée lorsque la condition retourne TRUE.

Exemple
print_expression TEMPL "$french_english;",
EXTERN;

french_english COND print_in_english,
TRUE="The table name is ",
FALSE="Le nom de la table est ";


Si la condition de print_in_english est TRUE, le résultat sera The table name is. D'autre part, si la condition est FALSE, l'expression française Le nom de la table est sera employée.




UPPER

Classes TEMPL et ATTR seulement : le résultat de la règle TEMPL est converti en lettres majuscules. Les caractères qui ne sont pas des lettres ne sont pas affectés par ce changement.

Exemple:
uppercase TEMPL "$hello;"
UPPER;

hello TEMPL "Hello World!";


La règle 'uppercase' (majuscule) devient "HELLO WORLD!"