X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=mop.lisp;h=b34541c11d7982647d1638cda566bd52fb438b38;hb=7f6cbd20ca01e6f29b4fa7d68a0908864e400320;hp=2ef3ed2a4e92865eaf65be670ba08b974da25863;hpb=6a0e0d001afa97e19a59eb9ce790ee94db4b819a;p=hyperobject.git diff --git a/mop.lisp b/mop.lisp index 2ef3ed2..b34541c 100644 --- a/mop.lisp +++ b/mop.lisp @@ -11,7 +11,7 @@ ;;;; in Text, HTML, and XML formats. This includes hyperlinking ;;;; capability and sub-objects. ;;;; -;;;; $Id: mop.lisp,v 1.66 2003/04/29 09:25:55 kevin Exp $ +;;;; $Id: mop.lisp,v 1.69 2003/05/06 22:19:09 kevin Exp $ ;;;; ;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg ;;;; @@ -244,13 +244,17 @@ (defmethod compute-effective-slot-definition :around ((cl hyperobject-class) #+ho-normal-cesd name dsds) #+ho-normal-cesd (declare (ignore name)) - (let ((esd (call-next-method)) - (value-type (canonicalize-value-type (slot-value (car dsds) 'value-type)))) + (let* ((esd (call-next-method)) + (dsd (car dsds)) + (value-type (canonicalize-value-type (slot-value dsd 'value-type)))) (multiple-value-bind (sql-type length) (value-type-to-sql-type value-type) (setf (slot-value esd 'sql-type) sql-type) (setf (slot-value esd 'length) length) (setf (slot-value esd 'type) (value-type-to-lisp-type value-type)) (setf (slot-value esd 'value-type) value-type) + (dolist (name '(print-formatter subobject hyperlink hyperlink-parameters description user-name + value-constraint index null-allowed)) + (setf (slot-value esd name) (slot-value dsd name))) esd))) @@ -261,6 +265,10 @@ #+ho-normal-esdc (setq cl:*features* (delete :ho-normal-esdc cl:*features*)) +(defun lisp-type-is-a-string (type) + (or (eq type 'string) + (and (listp type) (some #'(lambda (x) (eq x 'string)) type)))) + (defun value-type-to-lisp-type (value-type) (case (if (atom value-type) value-type