X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=mop.lisp;h=0771543be9f0cc3bb3a91ddc3db84f6a15e96988;hb=ea10aaba169e5af04df30b4dc1937c913404d816;hp=093861f76c609d8cbae6d3060e0e173c63b43b60;hpb=4a772392fd77659637f19c6d0b69584974a40074;p=hyperobject.git diff --git a/mop.lisp b/mop.lisp index 093861f..0771543 100644 --- a/mop.lisp +++ b/mop.lisp @@ -104,7 +104,7 @@ :lookup nil :lookup-keys nil)) -(defmethod print-object ((obj subobject) (s stream)) +(defmethod print-object ((obj subobject) s) (print-unreadable-object (obj s :type t) (format s "~S" (name-slot obj)))) @@ -118,7 +118,7 @@ (link-parameters :type list :initform nil :initarg :link-parameters :reader link-parameters))) -(defmethod print-object ((obj hyperlink) (s stream)) +(defmethod print-object ((obj hyperlink) s) (print-unreadable-object (obj s :type t :identity t) (format s "~S" (name obj)))) @@ -218,7 +218,8 @@ (defmethod finalize-inheritance :after ((cl hyperobject-class)) "Initialize a hyperobject class. Calculates all class slots" (finalize-subobjects cl) - (finalize-compute-cached cl)) + (finalize-compute-cached cl) + (init-hyperobject-class cl)) (eval-when (:compile-toplevel :load-toplevel :execute) (when (>= (length (generic-function-lambda-list @@ -401,6 +402,13 @@ SQL name" (or (eq type 'string) (and (listp type) (some #'(lambda (x) (eq x 'string)) type)))) +(defun value-type-is-a-string (type) + (or (eq type 'string) + (eq type 'cdata) + (and (listp type) (some #'(lambda (x) (or (eq x 'string) + (eq x 'cdata))) + type)))) + (defun base-value-type (value-type) (if (atom value-type) value-type