Package cesdi
Description
All symbols from this package should normally be explicitly qualified, such as cesdi:compute-effective-slot-definition-initargs
.
Don't (:use)
!
cesdi
provides a compute-effective-slot-definition-initargs generic function
that allows for more ergonomic initialization of effective slot definition objects.
All symbols from this package should normally be explicitly qualified, such as cesdi:compute-effective-slot-definition-initargs
.
Don't (:use)
!
Classes that inherit from this class participate in the cesdi
protocol.
(class cesdi:cesdi-mixin
) name direct-slot-definitions => effective-slot-definition
This method is at the core of cesdi
. It effectively translates from the old, awkward protocol to the new, ergonomic protocol.
This method first calls cesdi:compute-effective-slot-definition-initargs
to compute the initargs.
It then calls cesdi:effective-slot-definition-class
with the class and initargs to get the effective-slot-definition-class.
It then calls the next method to instantiate the effective-slot-definition, arranging for c2mop:effective-slot-definition-class to receive the effective-slot-definition-class through an internal special variable.
It then amends the effective-slot-definition to reflect the initargs, then returns effective-slot-definition.
(class cesdi:cesdi-mixin
) &rest initargs => slot-definition-class
Returns the value of the internal special variable bound by the above method.
class direct-slot-definitions => initargs
Computes the initargs which will be (conceptually) passed to make-instance to construct the effective slot definition object.
Each of this generic function's primary and around methods, when they return an initargs result, must do so by calling the next method and returning that value, optionally preceded by additional initargs that either introduce additional values or override existing values. These methods can inspect the partial initargs list returned by the next method, but must ignore any arguments they don't recognize.
(class cesdi:cesdi-mixin
) direct-slot-definitions => initargs
Computes and returns the standard initargs :name
, :allocation
, :initform
, :initfunction
, :type
, :initargs
and :documentation
per CLHS 7.5.3 Inheritance of Slots and Slot Options.
class &rest initargs &key &allow-other-keys => slot-definition-class
This generic function is the cesdi
counterpart to c2mop:effective-slot-definition-class.
The initargs it receives is the full list of initargs as computed by cesdi:compute-effective-slot-definition-initargs
.
This is in contrast to c2mop:effective-slot-definition-class, which receives only the standard initargs.
(class c2mop:standard-class
) &rest initargs => slot-definition-class
Returns the class c2mop:standard-effective-slot-definition.