-(defun persistentp (object)
- (slot-value object 'clsql-sys::view-database))
-
-(define-layered-class description ()
- ((description-type
- :initarg :type
- :accessor description-type
- :initform 'viewer
- :special t)
- (description-layers
- :initarg :layers
- :accessor description-layers
- :initform nil
- :special t)
- (described-object
- :layered-accessor object
- :initform nil
- :special t)
- (description-default-attributes
- :accessor default-attributes
- :initarg :default-attributes
- :initform nil
- :special t)
- (description-attributes
- :accessor attributes
- :initarg :attributes
- :initform nil
- :special t)
- (description-properties
- :accessor description-properties
- :initarg :properties
- :initform '()
- :special t)
- (description-default-properties
- :accessor default-properties
- :initarg :default-properties
- :initform '()
- :special t)))
-
-(defmethod attributes :around ((description description))
- "Add any default properties to the attributes"
-
- (let ((default-properties (default-properties description))) (if (and (listp default-properties)
- (not (null default-properties)))
- (let ((a (mapcar #'(lambda (att)
- (append (ensure-list att) default-properties))
- (call-next-method))))
-
-
- a)
- (call-next-method))))
-
-(defmethod print-object ((self description) stream)
- (print-unreadable-object (self stream :type t)
- (with-slots (description-type) self
- (format stream "~A" description-type))))
-