ASPECTL.CLOS-MOP package

Name

ASPECTL.CLOS-MOP package  -- Exports/uses/nicknames/etc

Description

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.

Exports

*GENERIC-FUNCTION*CLASS-DIRECT-DEFAULT-INITARGS
CLASS-DIRECT-SLOTSCLASS-DIRECT-SUBCLASSES
CLASS-DIRECT-SUPERCLASSESCLASS-NAME
CLASS-PROTOTYPECLASS-SLOTS
COMPUTE-EFFECTIVE-SLOT-DEFINITIONCREATE-METHOD
DEFMETHOD*DIRECT-SLOT-DEFINITION
DIRECT-SLOT-DEFINITION-CLASSEFFECTIVE-SLOT-DEFINITION
EFFECTIVE-SLOT-DEFINITION-CLASSENSURE-CLASS
FINALIZE-INHERITANCEFIND-METHOD-COMBINATION
FORWARD-REFERENCED-CLASSFUNCALLABLE-STANDARD-CLASS
GENERIC-FUNCTION-METHOD-CLASSGENERIC-FUNCTION-METHODS
GENERIC-FUNCTION-NAMEINITIALIZE-CLASS-METAOBJECT
MAKE-METHOD-LAMBDAMETHOD-GENERIC-FUNCTION
METHOD-SPECIALIZERSREINITIALIZE-CLASS-METAOBJECT
REMOVE-DIRECT-SUBCLASSREMOVE-METHOD
SLOT-BOUNDP-USING-CLASSSLOT-DEFINITION
SLOT-DEFINITION-ALLOCATIONSLOT-DEFINITION-INITARGS
SLOT-DEFINITION-INITFORMSLOT-DEFINITION-INITFUNCTION
SLOT-DEFINITION-NAMESLOT-DEFINITION-READERS
SLOT-DEFINITION-TYPESLOT-DEFINITION-WRITERS
SLOT-MAKUNBOUND-USING-CLASSSLOT-VALUE-USING-CLASS
STANDARD-CLASSSTANDARD-DIRECT-SLOT-DEFINITION
STANDARD-EFFECTIVE-SLOT-DEFINITIONSTANDARD-GENERIC-FUNCTION
STANDARD-METHODSTANDARD-SLOT-DEFINITION
THE-CLASSTHE-DIRECT-SLOT-DEFINITION
THE-EFFECTIVE-SLOT-DEFINITIONVALIDATE-SUPERCLASS

Uses

COMMON-LISP

Package Content

Methods

DEFMETHOD*

 (DEFMETHOD* NAME &REST ARGS) [macro]
Description 

Some method objects must know about the generic functions to which they are about to be added. Usually, this can be achieved by specializing make-method-lambda, but many MOP implementations don't handle this correctly. Therefore, defmethod* is provided as an alternative to defmethod. It binds *generic-function* accordingly.

Location 

al-clos-mop.lisp

INITIALIZE-CLASS-METAOBJECT

 (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

 (REINITIALIZE-CLASS-METAOBJECT CALL-NEXT CLASS METACLASS REQUIRED-SUPERCLASS &KEY (DIRECT-SUPERCLASSES NIL) &REST INITARGS) [function]
Description 

Can be used in a reinitialize-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, initalize-instance must also be specialized and call initialize-class-metaobject accordingly. Should be used as follows, with appropriate replacements for 'metaclass' and 'required-superclass': (defmethod reinitialize-instance :around ((class metaclass) &rest initargs) (declare (dynamic-extent initargs)) (apply #'reinitialize-class-metaobject #'call-next-method class (find-class 'metaclass) (find-class 'required-superclass) initargs))

Calls 

APPLY, CLASS-DIRECT-SUBCLASSES, GETHASH, MAPC and PROG1

Location 

al-clos-mop.lisp

THE-CLASS

 (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.