Definieren der Configuration-Dependent-Datenparameter
Parameter werden mithilfe des *Features-Konstrukts eingeführt. Das Konstrukttag des *Features-Konstrukts identifiziert den Parameter (oder definiert den Parameternamen, der auch als Featurename bezeichnet wird).
Der Inhalt des *Features-Konstrukts kann aus einem oder mehreren *Option-Konstrukten bestehen. Die *Option-Konstrukte definieren die zulässigen Werte oder Zustände, in denen sich der Parameter befinden kann. Das Konstrukttag des Option-Konstrukts identifiziert einen zulässigen Wert oder Zustand. Dieses Konstrukttag wird auch als Optionsname bezeichnet.
Sie können beispielsweise einen Parameter mit dem Namen Today definieren, der einen Wochentag als Wert verwenden kann, wie im folgenden Codebeispiel gezeigt:
*Feature: Today
{
*Option: Sunday{}
*Option: Monday{}
*Option: Tuesday{}
*Option: Wednesday{}
*Option: Thursday{}
*Option: Friday{}
*Option: Saturday{}
}
Im vorherigen Beispiel kann der Parameter Today zu einem bestimmten Zeitpunkt nur einen Wert annehmen. Heute kann nicht sowohl sonntags als auch dienstags sein. Allerdings sind nicht alle Parameter auf exklusive Werte beschränkt. Sie können jeweils einen oder mehrere Werte annehmen. Wenn Sie beispielsweise einen Roboter haben, der mehrere Stiftfarben gleichzeitig in der Hand halten kann, können Sie einen PenColors-Parameter definieren, um die Farben zu beschreiben, die sich derzeit in der Hand befinden. Sie können PenColors (Rot UND Grün UND Gelb) angeben, und dies ist möglicherweise vollkommen gültig.
Mit der reservierten *UIType-Direktive können Sie festlegen, ob ein Parameter zu einem beliebigen Zeitpunkt nur einen einzelnen Wert (PICKONE) annehmen kann oder ob diesem Parameter zu einem bestimmten Zeitpunkt mehrere Werte zugewiesen werden können (PICKMANY). Die *UIType-Direktive wird als untergeordneter Eintrag des *Features-Konstrukts positioniert.
Hinweis GDL lässt nicht zu, dass einem Parameter "nothing" zugewiesen wird. Um also den Roboter zu beschreiben, der keine Stifte hält, müssen Sie für PICKMANY-Parameter die Option None oder Off deklarieren. Der verwendete Optionsname ist nicht wichtig. Sie können festlegen, welche Option dieser Eigenschaft zugewiesen ist, indem Sie die *NoneOption-Direktive verwenden. Die Option , die *NoneOption festlegt, ist mit keiner der anderen Optionen kompatibel.
Sie können so viele *Featurekonstrukte definieren, wie Sie Parameter haben. Alle *Featurekonstrukte müssen sich im Stammkontext befinden. Der Stammkontext hat kein übergeordnetes Konstrukt.