Package: closer-mop

Generic Function compute-effective-slot-definition

Lambda List

compute-effective-slot-definition (class name dslotds)

Arguments

The class argument is a class metaobject.
The name argument is a slot name.
The direct-slot-definitions argument is an ordered list of direct slot definition metaobjects. The most specific direct slot definition metaobject appears first in the list.

Return Value

The value returned by this generic function is an effective slot definition metaobject.

Details

This generic function determines the effective slot definition for a slot in a class. It is called by compute-slots once for each slot accessible in instances of class.

This generic function uses the supplied list of direct slot definition metaobjects to compute the inheritance of slot properties for a single slot. The returned effective slot definition represents the result of computing the inheritance. The name of the new effective slot definition is the same as the name of the direct slot definitions supplied.

The class of the effective slot definition metaobject is determined by calling effective-slot-definition-class. The effective slot definition is then created by calling make-instance. The initialization arguments passed in this call to make-instance are used to initialize the new effective slot definition metaobject. See "Initialization of Slot Definition Metaobjects" for details.

Methods

compute-effective-slot-definition (class standard-class) name direct-slot-definitions)
This method implements the inheritance and defaulting of slot options following the rules described in the "Inheritance of Slots and Options" section of the CLOS Specification.

This method can be extended, but the value returned by the extending method must be the value returned by this method.


compute-effective-slot-definition (class funcallable-standard-class) name direct-slot-definitions)
This method implements the inheritance and defaulting of slot options following the rules described in the "Inheritance of Slots and Options" section of the CLOS Specification.

This method can be extended, but the value returned by the extending method must be the value returned by this method.