La classe CONN
 

Paramètre :


Modificateur obligatoire : CHILD (Il doit également être le premier modificateur.)

Modificateurs facultatifs : PREF, SUF, SEP, NULL.

Algorithme :
CONN exécute la règle indiquée par CHILD pour chaque occurrence enfant. Si au moins une occurrence enfant produit un résultat, CONN exécute les règles spécifiées par PREF et SUF. Si au moins deux occurrences enfant produisent un résultat, il exécute la règle indiquée par SEP. Ensuite, il construit la chaîne résultante en concaténant le résultat de PREF, puis le résultat de CHILD pour chaque occurrence enfant dont il a un résultat, en insérant le résultat de SEP entre chaque paire de résultats existants, et finalement le résultat de SUF. Si la chaîne résultante est vide, CONN exécute la règle indiquée par NULL et retourne le résultat de NULL.

Note : pour les modificateurs PREF, SUF, SEP et NULL , l’occurrence courante est l’occurrence parent. Pour le modificateurs CHILD , l’occurrence courante est l’occurrence enfant.

Exemple 1

pukeyColumns    CONN PrimaryuniquekeyColumns,
                CHILD = name
                SEP = ", "
                PREF = "PRIMARY KEY ("
                SUF = ") CONSTRAINT $name;"
                NULL = "()";

name            ATTR ObjectPhysicalname;
 

Note : le modificateur CHILD est obligatoire et doit survenir avant tout autre modificateur. La fonction du référentiel PrimaryuniquekeyColumns retourne les colonnes associées à une clé primaire ou une clé unique; la fonction du référentiel ObjectPhysicalname retourne le nom physique de n'importe quel objet (ici le nom d'une colonne). Si la clé primaire ou unique est nommée "empl_prim_key" et est composée des colonnes "dept_no" et "empl_no", le résultat sera :

PRIMARY KEY (dept_no, empl_no) CONSTRAINT empl_prim_key
 

Exemple 2
pukeyColumns    CONN "org.modelsphere.sms.or.db.DbORPrimaryUnique.fColumns",
                CHILD = name
                SEP = ", "
                PREF = "PRIMARY KEY ("
                SUF = ") CONSTRAINT $name;"
                NULL = "()";

name            ATTR "org.modelsphere.sms.db.DbSMSSemanticalObject.fPhysicalName";

Le même exemple que le précédent, mais en utilisant des méta-champs et méta-connecteurs de l'API au lieu des fonctions du référentiel.