On Tue, Dec 23, 2003 at 07:46:56PM +0000, Piers Cawley wrote: : Will this approach allow for the removal of a property? (I'm currently : stuck for a suggested syntax...)
If a property is an enumified sort of role, then in general you don't disable a property by removing it, but by setting the value to the enum value that means "nope". For example, there isn't a "true" property, per se. There's a Boolean role/property with a boolean attribute that can have the value either true or false. When you say "but true", it first makes sure that your object "does Boolean", and then it calls the corresponding boolean accessor to set the value to true. Now, maybe some roles can be self-removing, if you set them to a particular default value, or twiddle their interface some way. But the general way to cut down the capabilities of a type is to subtype it. So removal of a role might fall out of some kind of syntax that does a force-to-subtype operation, if we support such an operation. Can't be more specific than that right now. Larry