[Newbies] Adding instance variables during runtime

Mathieu mathk.sue at gmail.com
Tue Dec 12 05:40:45 UTC 2006


Look at Class>>addInstVarName:

Point addInstVarName: 'x'.

Warakorn Paphrawat a écrit :
> 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
> 



More information about the Beginners mailing list