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!"