;;;; in Text, HTML, and XML formats. This includes hyperlinking
;;;; capability and sub-objects.
;;;;
-;;;; $Id: mop.lisp,v 1.54 2003/04/16 19:56:33 kevin Exp $
+;;;; $Id: mop.lisp,v 1.61 2003/04/22 14:19:08 kevin Exp $
;;;;
;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg
;;;;
value-type
(car value-type))
((:string :cdata :varchar :char)
- 'string)
+ '(or null string))
(:character
- 'character)
+ '(or null character))
(:fixnum
- 'fixnum)
+ '(or null fixnum))
(:boolean
- 'boolean)
+ '(or null boolean))
(:integer
- 'integer)
+ '(or null integer))
((:float :single-float)
- 'single-float)
+ '(or null single-float))
(:double-float
- 'double-float)
+ '(or null double-float))
(otherwise
t)))
`(defmethod slot-unbound (,the-class (,the-instance ,class)
(,the-slot-name (eql ',slot-name)))
(declare (ignore ,the-class))
- (setf (slot-value ,the-instance ,the-slot-name)
- (,reader ,@keys)))))
+ (setf (slot-value ,the-instance ,the-slot-name) (,reader ,@keys)))))
+
#+lispworks
(defun intern-eql-specializer (slot)
`(eql ,slot))
-#+(or sbcl lispworks)
+#+(or sbcl cmu lispworks)
(defun ensure-lazy-reader (class-name slot-name reader &rest reader-keys)
(let ((keys nil)
(gf (ensure-generic-function 'slot-unbound)))
nil
(cdr subobj-def)))))
(unless (eq (lookup subobject) t)
- #-(or sbcl lispworks)
+ #-(or sbcl cmu lispworks)
(eval
`(hyperobject::def-lazy-reader ,(name-class subobject)
,(name-slot subobject) ,(lookup subobject)
,@(lookup-keys subobject)))
- #+(or sbcl lispworks)
+ #+(or sbcl cmu lispworks)
(apply #'ensure-lazy-reader
(name-class subobject) (name-slot subobject) (lookup subobject) (lookup-keys subobject))
)