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
Warakorn
---------------------------------
Want to start your own business? Learn how on Yahoo! Small Business.