EMA-XPS Online
DEFINE-BEHAVIOR
DEFINE-BEHAVIOR
===============
syntax: (define-behavior <behavior-name>
{:PRIMARY | :BEFORE | :AFTER}
<behavior-specialized-lambda-list>
[:DOCUMENTATION <documentation>]
[:EXPLANATION <explanation>]
<behavior-body>)
Warning: The explanation facility is not sup-
ported, hence :documentation and
:explanation are ignored.
This function defines a behavior. A behavior
exists of a name, that describes the behavior,
a <qualifier>, that specifies, whether the behavior
is a central behavior or an additional behaviour,
a lambda list, with which the parameters of the
behavior can be set and a behavior body, which
defines, what the behavior has to do. The docu-
mentation and the explanation are optional.
NOTIFY-READ-DEPENDENT and NOTIFY-WRITE-DEPENDENT
are special behaviors, which you have to use, if
you want to make a read- or write-dependent.
syntax: (define-behavior notify-read-dependent
:primary
((<place-holder for receiver frametype>
(<place-holder for transmitter frametype>)
relation-name value)
<behavior-body>)
The <qualifier> can be :before :after or :primary.
:primary specifies a central behavior. :before and
:after are additions, which will be executed before
or after the central method.
The <lambda-list> can contain the following:
The first parameter of the lambda-list has to be
(<variable-name> <frame-type>). the following
parameter can be (<variable-name> <frame-name>)
It is also possible to have a remaining argument in
the behavior-argument-lists (define-behavior
<behavior-name> <qualifier> ((arg-1 <frame-name>)
&rest arg-list)...)
example: >(define-behavior client-satisfied
:primary ((a-client client)
(an-offer offer))
(kb-confirm "Are you satisfied with
the offer: ~A ?" an-offer))
EMA-XPS Online