Provides a wrapper for the definitions of the CLOS MOP that are used in AspectL, and exists to ease porting AspectL to several Common Lisp implementations. It also defines a few MOP-related utility functions.
| *GENERIC-FUNCTION* | CLASS-DIRECT-DEFAULT-INITARGS |
| CLASS-DIRECT-SLOTS | CLASS-DIRECT-SUBCLASSES |
| CLASS-DIRECT-SUPERCLASSES | CLASS-NAME |
| CLASS-PROTOTYPE | CLASS-SLOTS |
| COMPUTE-EFFECTIVE-SLOT-DEFINITION | CREATE-METHOD |
| DEFMETHOD* | DIRECT-SLOT-DEFINITION |
| DIRECT-SLOT-DEFINITION-CLASS | EFFECTIVE-SLOT-DEFINITION |
| EFFECTIVE-SLOT-DEFINITION-CLASS | ENSURE-CLASS |
| FINALIZE-INHERITANCE | FIND-METHOD-COMBINATION |
| FORWARD-REFERENCED-CLASS | FUNCALLABLE-STANDARD-CLASS |
| GENERIC-FUNCTION-METHOD-CLASS | GENERIC-FUNCTION-METHODS |
| GENERIC-FUNCTION-NAME | INITIALIZE-CLASS-METAOBJECT |
| MAKE-METHOD-LAMBDA | METHOD-GENERIC-FUNCTION |
| METHOD-SPECIALIZERS | REINITIALIZE-CLASS-METAOBJECT |
| REMOVE-DIRECT-SUBCLASS | REMOVE-METHOD |
| SLOT-BOUNDP-USING-CLASS | SLOT-DEFINITION |
| SLOT-DEFINITION-ALLOCATION | SLOT-DEFINITION-INITARGS |
| SLOT-DEFINITION-INITFORM | SLOT-DEFINITION-INITFUNCTION |
| SLOT-DEFINITION-NAME | SLOT-DEFINITION-READERS |
| SLOT-DEFINITION-TYPE | SLOT-DEFINITION-WRITERS |
| SLOT-MAKUNBOUND-USING-CLASS | SLOT-VALUE-USING-CLASS |
| STANDARD-CLASS | STANDARD-DIRECT-SLOT-DEFINITION |
| STANDARD-EFFECTIVE-SLOT-DEFINITION | STANDARD-GENERIC-FUNCTION |
| STANDARD-METHOD | STANDARD-SLOT-DEFINITION |
| THE-CLASS | THE-DIRECT-SLOT-DEFINITION |
| THE-EFFECTIVE-SLOT-DEFINITION | VALIDATE-SUPERCLASS |
(DEFMETHOD* NAME &REST ARGS) [macro] |
(INITIALIZE-CLASS-METAOBJECT CALL-NEXT CLASS METACLASS REQUIRED-SUPERCLASS &KEY DIRECT-SUPERCLASSES &REST INITARGS) [function] |
| Description |
Can be used in an initialize-instace method specialized on a metaclass. Ensures that the required superclass will become part of the class's class precedence list, just below standard-object, by appending it to the list of direct superclasses if required. Correctly handles forward referenced classes. If used, reinitalize-instance must also be specialized and call reinitialize-class-metaobject accordingly. Should be used as follows, with appropriate replacements for 'metaclass' and 'required-superclass': (defmethod initialize-instance :around ((class metaclass) &rest initargs) (declare (dynamic-extent initargs)) (apply #'initialize-class-metaobject #'call-next-method class (find-class 'metaclass) (find-class 'required-superclass) initargs)) | |
| Calls |
(SETF GETHASH), APPEND, APPLY, FIND-CLASS, REMHASH, REMOVE, SOME and TYPEP | |
| Location | al-clos-mop.lisp |
(REINITIALIZE-CLASS-METAOBJECT CALL-NEXT CLASS METACLASS REQUIRED-SUPERCLASS &KEY (DIRECT-SUPERCLASSES NIL) &REST INITARGS) [function] |
(THE-CLASS CLASS) [function] |
| Description |
If class is a class, return it. If it is a symbol, find the class. | |
| Calls |
http://www.lispworks.com/reference/HyperSpec/Body/f_find_c.htm |
This documentation was generated 29 Dec 2005 from the original sources by Albert v.0.4.9.