-#+(or sbcl cmu scl)
-(defmethod compute-effective-slot-definition :around ((cl hyperobject-class) dsds)
- (let* ((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 dsd 'sql-type) sql-type)
- (setf (slot-value dsd 'type) (value-type-to-lisp-type value-type))
- (let ((ia (compute-effective-slot-definition-initargs
- cl #+lispworks name dsds)))
- (apply
- #'make-instance 'hyperobject-esd
- :value-type value-type
- :sql-type sql-type
- :length length
- :print-formatter (slot-value dsd 'print-formatter)
- :subobject (slot-value dsd 'subobject)
- :hyperlink (slot-value dsd 'hyperlink)
- :hyperlink-parameters (slot-value dsd 'hyperlink-parameters)
- :description (slot-value dsd 'description)
- :user-name (slot-value dsd 'user-name)
- :index (slot-value dsd 'index)
- :value-constraint (slot-value dsd 'value-constraint)
- :null-allowed (slot-value dsd 'null-allowed)
- ia)))))
-
-(defmethod compute-effective-slot-definition :around ((cl hyperobject-class)
- #+(or lispworks allegro) name
- dsds)