EMA-XPS Online



syntax: (define-behavior <behavior-name>
           {:PRIMARY | :BEFORE | :AFTER}
           [:DOCUMENTATION <documentation>]
           [:EXPLANATION <explanation>]

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.
are special behaviors, which you have to use, if
you want to make a read- or write-dependent.

syntax: (define-behavior notify-read-dependent
           ((<place-holder for receiver frametype>
           (<place-holder for transmitter frametype>)
           relation-name value)

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