X-Git-Url: https://git.hcoop.net/clinton/lisp-on-lines.git/blobdiff_plain/6d0d8dfb8b53d8e7e39b2569943adbaed4babeaa..e1645f63189477f1b39a173a41fcbbfefb5e88a6:/src/mewa.lisp diff --git a/src/mewa.lisp b/src/mewa.lisp index 1b7d9e2..7c712ef 100644 --- a/src/mewa.lisp +++ b/src/mewa.lisp @@ -115,8 +115,6 @@ Attributes are the metadata used to display, validate, and otherwise manipulate (defmethod find-attribute-class-for-type ((type (eql ',type))) ',name)))) - - (define-layered-class display-attribute (attribute) () @@ -263,11 +261,10 @@ otherwise, (setf find-attribute)" (when (slot-boundp instance (attribute.name attribute)) (slot-value instance (attribute.name attribute))))))) -(define-layered-function (setf attribute-value) (value instance attribute)) +(define-layered-function (setf attribute-value) (value instance attribute)) (define-layered-method (setf attribute-value) (value instance (attribute standard-attribute)) - (with-slots (setter slot-name) attribute (cond ((and (slot-boundp attribute 'setter) setter) @@ -280,6 +277,7 @@ otherwise, (setf find-attribute)" (error "Cannot set ~A in ~A" attribute instance))))) + ;;;; ** Default Attributes