[Newbies] Adding instance variables during runtime

Warakorn Paphrawat warakorn_paphrawat at yahoo.com
Tue Dec 12 05:02:00 UTC 2006

In my current little project I would like write classes in Smalltalk. However, when I am designing the classes I do not know, which instance variables the class should have.

While I am running the application, the user (or another agent) determines which instance variables should be assigned to a class.
How can I add instance variables and possibly class variables to a class, while the program is running ? Actually how can the Smalltalk code be automatically transformed (and "accepted") from the 'BEFORE' state to the 'AFTER' state.

// BEFORE //
Object subclass: #Class1
    instanceVariableNames: ''
    classVariableNames: ''
    poolDictionaries: ''
    category: 'some-category'

// AFTER //
Object subclass: #Class1
     instanceVariableNames: 'InstVar1 InstVar2 '
     classVariableNames: 'ClassVar1 ClassVar2'
     poolDictionaries: ''
     category: 'some-category'

I worked with the ClassBuilder class, but I haven't achieved this kind of automated code transformation.
Let's assume the desired variable names are available as normal strings and should be added one after another (method like: addNewInstanceVariable: aString ).

Don't worry about getter/setter methods for the new instance variables, that's another issue.

Thanks in advance

Want to start your own business? Learn how on Yahoo! Small Business.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/beginners/attachments/20061211/1c020cf0/attachment.htm

More information about the Beginners mailing list