Utilisation de configurations GDL non valides
Toutes les configurations possibles ne sont pas valides ou autorisées. Par exemple, un périphérique d’impression peut ne pas autoriser la mise en place d’un support rigide dans un bac d’entrée, car le média peut se bloquer. Le langage GDL vous permet également de définir des configurations non valides en définissant des combinaisons de paramètres non valides.
La directive *InvalidCombination est utilisée à cet effet. La valeur de *InvalidCombination est une LISTE qui nomme au moins deux paramètres qui ne peuvent pas être utilisés ensemble. La syntaxe utilisée pour spécifier un paramètre est en notation EBNF, comme le montre l’exemple de code suivant.
InvalidCombination_Directive :== "*InvalidCombination" S ":" S ParamSettingsList S LB
ParamSettingsList :== "LIST" S "(" S ParamSetting S "," S ParamSetting ( S "," S ParamSetting)? S ")"
ParamSetting :== ParameterName "." Value
ParameterName :== {Construct Tag of *Feature construct}
Value :== {Construct Tag of *Option construct found within the *Feature construct.}
S :== [#x20#x09]*
LB :== [#x0A] | [#x0D] | ([#x0A] [#x0D]) | ([#x0D] [#x0A])
La directive *InvalidCombination doit apparaître dans le contexte racine du fichier GDL.
Par exemple, si vous souhaitez empêcher la pluie le week-end, vous pouvez spécifier le code suivant.
*InvalidCombination: LIST(Weather.Rain, Today.Saturday)
*InvalidCombination: LIST(Weather.Rain, Today.Sunday)
Si vous souhaitez empêcher la pluie le week-end uniquement si vous êtes en bonne santé, vous pouvez spécifier le code suivant.
*InvalidCombination: LIST(Weather.Rain, Today.Saturday, Health.Well)
*InvalidCombination: LIST(Weather.Rain, Today.Sunday, Health.Well)
La directive *InvalidCombination dans l’exemple de code précédent spécifie que toute configuration qui contient la combinaison spécifique (Weather.Rain, Today.Sunday, Health.Well ou Weather.Rain, Today.Saturday, Health.Well) enfreint la directive.
La directive *InvalidCombination est un type spécifique de contrainte. Les fonctions de l’analyseur GDL déterminent si la configuration fournie enfreint l’une des contraintes définies dans le fichier GDL avant de continuer. Si une violation est détectée, la configuration est modifiée (ou résolue) pour éviter de violer la contrainte. Cette situation est appelée résolution de la contrainte. Des centaines de contraintes qui impliquent des dizaines de paramètres peuvent exister dans un seul fichier GDL. Les contraintes peuvent former un réseau complexe d’interactions, de sorte qu’une modification du paramètre d’un paramètre peut entraîner une cascade de modifications dans d’autres paramètres.
Note Vous devez vous assurer que la configuration par défaut ne viole aucune contrainte. Si c’est le cas, aucune des fonctions d’interface de l’analyseur ne réussira.
Note L’analyseur GDL accepte également un cas spécial de *InvalidCombination qui n’implique que deux paramètres.