;;;; in Text, HTML, and XML formats. This includes hyperlinking\r
;;;; capability and sub-objects.\r
;;;;\r
-;;;; $Id: mop.lisp,v 1.77 2003/06/20 08:35:21 kevin Exp $\r
+;;;; $Id: mop.lisp,v 1.80 2003/06/25 19:28:31 kevin Exp $\r
;;;;\r
;;;; This file is Copyright (c) 2000-2003 by Kevin M. Rosenberg\r
;;;; *************************************************************************\r
(version :initarg :version :initform nil\r
:accessor version\r
:documentation "Version number for class")\r
- (direct-rules :initarg :direct-rules :initform nil\r
- :accessor dirst-rules\r
- :documentation "Rules to fire on slot changes")\r
(closures :initarg :closures :initform nil\r
:accessor closures\r
:documentation "Closures to call on slot chnages")\r
(print-unreadable-object (obj s :type t :identity t)\r
(format s "~S" (name obj))))\r
\r
-#+(or cmu scl sbcl)\r
(defmethod validate-superclass ((class hyperobject-class) (superclass standard-class))\r
t)\r
\r
(when (and ,required (null value))\r
(error "hyperobject class slot ~A must have a value" name))\r
(list name `',value))\r
- #+(or allegro sbcl cmu scl)\r
+ #+(or allegro sbcl cmu scl openmcl)\r
(declare (ignore slot-name required))\r
)\r
\r
':function (compile nil method-lambda)\r
init-args-values)))))\r
\r
-#+(or allegro scl)\r
+#+(or allegro scl openmcl)\r
(progn\r
;; One entry for each class with lazy readers defined. The value is a plist mapping\r
;; slot-name to a lazy reader, each of which is a list of a function and slot-names.\r
(setf (getf (gethash (find-class class-name) *lazy-readers*) slot-name)\r
nil))\r
\r
- ) ;; #+(or allegro scl)\r
+ ) ;; #+(or allegro sc openmcll)\r
\r
\r
(defun finalize-subobjects (cl)\r
`(hyperobject::def-lazy-reader ,(name-class subobject)\r
,(name-slot subobject) ,(lookup subobject)\r
,@(lookup-keys subobject)))\r
- #+(or sbcl cmu lispworks allegro scl)\r
+ #+(or sbcl cmu lispworks allegro scl openmcl)\r
(apply #'ensure-lazy-reader \r
(name-class subobject) (name-slot subobject)\r
(lookup subobject) (lookup-keys subobject)))\r