X-Git-Url: http://git.kpe.io/?p=hyperobject.git;a=blobdiff_plain;f=mop.lisp;h=43a2f82708b67bfb6f3fed53826d1566c9c051cd;hp=093861f76c609d8cbae6d3060e0e173c63b43b60;hb=HEAD;hpb=4a772392fd77659637f19c6d0b69584974a40074 diff --git a/mop.lisp b/mop.lisp index 093861f..43a2f82 100644 --- a/mop.lisp +++ b/mop.lisp @@ -11,8 +11,6 @@ ;;;; in Text, HTML, and XML formats. This includes hyperlinking ;;;; capability and sub-objects. ;;;; -;;;; $Id$ -;;;; ;;;; This file is Copyright (c) 2000-2006 by Kevin M. Rosenberg ;;;; ************************************************************************* @@ -22,10 +20,10 @@ (defclass hyperobject-class (standard-class) ( ;; slots initialized in defclass - (user-name :initarg :user-name :type string :initform nil + (user-name :initarg :user-name :initform nil :accessor user-name :documentation "User name for class") - (user-name-plural :initarg :user-name-plural :type string :initform nil + (user-name-plural :initarg :user-name-plural :initform nil :accessor user-name-plural :documentation "Plural user name for class") (default-print-slots :initarg :default-print-slots :type list :initform nil @@ -104,7 +102,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 +116,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 +216,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 +400,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 @@ -533,7 +539,7 @@ SQL name" (setf (documentation cl 'type) (format nil "Hyperobject~A~A~A~A" (aif (user-name cl) - (format nil ": ~A" it "")) + (format nil ": ~A" it) "") (aif (description cl) (format nil "~%Class description: ~A" it) "") (aif (subobjects cl)