Message-Id: <890328-124856-1291@Xerox> Date: Fri, 24 Mar 89 14:28:33 EST From: Gadi Reply-To: friedman@aramis.rutgers.edu To: Commonloops.pa@xerox.com Subject: Changing slot class Message-Id: Is a rough draft of Chapter 3 available yet? No. There are old drafts, but you don't want them. I would like to know if it will be possible to change the class of a slot from STANDARD-SLOT-DESCRIPTION. I Would like to be able to maintain more information about my slots, such as a cardinality, and valueclass, prevous value, etc. I know I can store Instances in my slots that will contain all the information, but I will have to write all my own access functions. Gadi Well, the metaclass has control of the slots, so it is fairly straight forward to add features onto the slot descriptions. Basically, you need a metaclass that uses the new slot descriptions: (defclass new-class (standard-class) ()) (defclass new-slotd (standard-slot-description) (... your new slots ...)) (defmethod make-slotd ((class new-class) &rest keywords-and-options) (apply #'*make-instance 'new-slotd keywords-and-options)) (defmethod legal-slotd-option-p ((class new-class) key) ...) Now classes you define with new-class as their metaclass will have the new kind of slot description. This can basically give your slots "facets" that are shared by each instance of a class. Each instance, will still have only a local slot value in the instance. If you want to let each instance have a set of facets for each slot, you'll have to do a bit more work.