Macro Defmetaclass
(
defmetaclass &rest < args > )
Macro for easy metaclass definition. It takes all the options
DEFCLASS takes, plus the following:
- :VALIDATE-SUPERCLASSES, classes for which VALIDATE-SUPERCLASS
methods (with METACLASS in the subclass position) will be created.
- :VALIDATE-SUBCLASSES, a list of classes for which
VALIDATE-SUPERCLASS methods (with METACLASS in the superclass
position) will be created.
- :SLOT-FIXTURES, a list of classes from which
EFFECTIVE-SLOT-DEFINITION and DIRECT-SLOT-DEFINITION should
inherit. This class should already exist at the time DEFMETACLASS is
called.
DEFMETACLASS apart from creating the metaclass defines some additional things:
- The classes <METACLASS>-DIRECT-SLOT-DEFINITION and
<METACLASS>-EFFECTIVE-SLOT-DEFINITION (where <METACLASS> should be
substituted by METACLASS), which inherit from the fixtures and
STANDARD-CLASS-DIRECT-SLOT-DEFINITION and
STANDARD-CLASS-EFFECTIVE-SLOT-DEFINITION, respectively.
- The methods DB-CLASS-{DIRECT|EFFECTIVE}-SLOT-DEFINITION.