Surely if you have a wrapper class which only holds a reference to a single object that has all of the data, and that has accessors, then the wrapper can only use the accessors? The data object could have a flag that causes all of the accessors to throw an exception when it is set.
Or am I missing something? On 10/2/08, Randal L. Schwartz <[EMAIL PROTECTED]> wrote: > > >>>>> "Sean" == Sean Allen <[EMAIL PROTECTED]> writes: > > Sean> If you wanted to take a mutable object and make it immutable and be > able > Sean> to go back again to mutable, how could you do that? > > Squeak doesn't have that sort of capability. The immutability of a few > classes is because the VM recognizes them specially, and not available > at the programmer level without modifying the VM. > > Other Smalltalk VMs are different. I think both VisualWorks and GemStone/S > have primitive bits on an object to be informed when a mutation might be > attempted. > > You can simulate that *mostly* in Squeak by using a "proxy" object that > intercepts all messages and looks for the dangerous ones, but that's gonna > be > a bit hard to do, and won't be aware of any new code that might call the > mutating primitives directly. (*Any* method can call a primitive.) > > -- > Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 > <[EMAIL PROTECTED]> <URL:http://www.stonehenge.com/merlyn/> > Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc. > See http://methodsandmessages.vox.com/ for Smalltalk and Seaside > discussion > _______________________________________________ > Beginners mailing list > Beginners@lists.squeakfoundation.org > http://lists.squeakfoundation.org/mailman/listinfo/beginners >
_______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners