EMA-XPS Online
DEFINE-BEHAVIOR
DEFINE-BEHAVIOR
===============
Syntax: (define-behavior <Behavior-Name>
{:PRIMARY | :BEFORE | :AFTER}
<Behavior-spezialisierte-Lambda-Liste>
[:DOCUMENTATION <Dokumentation>]
[:EXPLANATION <Erklärung>]
<Behavior-Rumpf>)
Warnung: Der Erklärungseintrag wird durch
EMA-XPS nicht unterstützt, d.h.
:documentation und :explanation
werden ignoriert.
DEFINE-BEHAVIOR definiert ein Behavior. Ein Behavior
besteht aus einem Namen, der das Behavior näher be-
zeichnet, einem <qualifier>, der angibt, ob es sich
um ein zentrales Behavior oder ein Ergänzungs-
behavior handelt, einer Lambda-Liste, mit der die
Parameter des Verhaltens festgelegt werden und
schließlich dem Behavior-Rumpf, in dem angegeben
wird, was das Behavior tun soll. Dokumentation und
Erklärung sind optional.
Außerdem gibt es noch die besonderen Behaviors
NOTIFY-READ-DEPENDENT und NOTIFY-WRITE-DEPENDENT,die
Sie immer erstellen müssen, wenn Sie eine Lese-
oder Schreibeabhängigkeit durchführen wollen.
Folgende Syntax ist zu beachten:
syntax: (define-behavior notify-read-dependent
:primary
((<Platzhalter für Empfänger Rahmen-Typ>
(<Platzhalter für Sender Rahmen-Typ>)
Relations-Name Wert)
<Behavior-Rumpf>)
Der <qualifier> kann entweder :before, :after oder
:primary sein. :primary bezeichnet immer das
zentrale Behavior, während :before und :after
Ergänzungen sind, die vor bzw. nach der zentralen
Methode ausgeführt werden.
Die <Lambda-Liste> erlaubt folgende Einträge:
Der erste Eintrag der spezialisierten Lambda-Liste
muß ein Paar (<Variablenname> <Rahmen-Typ>) sein.
Die weiteren positionalen Parameter können durch
(<Variablenname> <Rahmen-Name>) beschrieben werden.
In den Behavior-Argument-Listen kann auch ein Rest-
Argument angegeben werden. Dies geschieht in der
Form:
(define-behavior <Behavior-Name> <qualifier>
((Arg-1 <Rahmen-Name>) &rest Arg-liste)...)
Beispiel: >(define-behavior kunde-zufrieden
:primary ((ein-kunde Kunde)
(ein-angebot Angebot))
(kb-confirm "Sind Sie mit dem Angebot
~A zufrieden?" ein-angebot))
EMA-XPS Online