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