X-Git-Url: https://git.hcoop.net/clinton/lisp-on-lines.git/blobdiff_plain/46cea8c8b169e593c5ce68dfcfcbb68b7c637444..34e8e2d693c74ced15c3341b0dc36058a14f75c9:/src/mewa/mewa.lisp diff --git a/src/mewa/mewa.lisp b/src/mewa/mewa.lisp index 70cce96..80795c8 100644 --- a/src/mewa/mewa.lisp +++ b/src/mewa/mewa.lisp @@ -97,6 +97,21 @@ attributes is an alist keyed on the attribute nreeame." (dolist (def definitions) (funcall #'set-attribute model (first def) (rest def)))) + +(defmethod set-attribute-properties ((model t) attribute properties) + (let ((a (find-attribute model attribute))) + (if a + (setf (cddr a) (plist-nunion properties (cddr a))) + (error "Attribute ~A does not exist" attribute) ))) + +(defmethod perform-set-attribute-properties ((model t) definitions) + (dolist (def definitions) + (funcall #'set-attribute-properties model (car def) (cdr def)))) + + + + + (defmethod default-attributes ((model t)) "return the default attributes for a given model using the meta-model's meta-data" (append (mapcar #'(lambda (s)