HELP DEFAULT_METHOD Mark Rubinstein September 1985
Updated A.Schoter, June 1991
This document refers to part of the flavours library package. For more
details see TEACH * FLAVOURS.
Any method called DEFAULT_METHOD (as defined by *DEFMETHOD) is treated as a
special method. If a message is sent to an instance which is neither the name
of an instance variable or of a defined method then the message
"default_method" is sent with the name of the message as argument. A
basic version of this method could be defined as follows:
flavour vanilla novanilla;
defmethod default_method(message);
mishap('UNRECOGNISED MESSAGE', [^message]);
enddefmethod;
defmethod updaterof default_method(value, message);
mishap('ATTEMPT TO UPDATE UNRECONISED MESSAGE', [^value ^message])
enddefmethod;
endflavour;
In fact, vanilla_flavour has a predefined default_method that is more
sophisticated than this. If you send a message M to a flavour instance
that has no method for that message, then the system will attempt to
autoload a file M_messgage.p - if that attempt is successful then the
procedure defined in that file called M will be run as the method for
the message, if the attempt to autoload fails then the mishap as
described above is generated.
If you define your own default_method for any flavour then this
overrides the built-in vanilla default_method.
See TEACH * FLAVOURS for full details of the flavour package.
See also
HELP *DEFMETHOD, *FLAVOUR, *SYSFLAVOUR, *AUTOLOAD.
--- C.all/help/default_method ------------------------------------------
--- Copyright University of Sussex 1991. All rights reserved. ----------Author: Mark Rubinstein September 1985