Ärger mit Changesets

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Ärger mit Changesets

Chris Burkert-2
Hi,

ich habe ein Changesets das eine (schon vorhandene) Klasse A (um
eine KlassenVariable erweitert) und eine neue, abgeleitete Klasse
B einführt. Z.B. so:

"------------------------------------------------------------"
Object subclass: #A
        instanceVariableNames: ''
        classVariableNames: 'KlassenVariable'
        poolDictionaries: ''
        category: 'Beispiel'

A subclass: #B
        instanceVariableNames: ''
        classVariableNames: ''
        poolDictionaries: ''
        category: 'Beispiel'
"------------------------------------------------------------"


Dazu noch folgende Klassen-Methoden:


"------------------------------------------------------------"
A class>>initialize
        KlassenVariable := Set new.

A class>>add: object
        KlassenVariable add: object.

B class>>initialize
        super add: 'Beispiel'
"------------------------------------------------------------"


Wie man sieht, muss also im Changeset 'B class>>initialize'
_nach_ 'A class>>initialize' ausgeführt werden, damit 'Beispiel'
in KlassenVariable enthalten ist.

Ein FileOut des Changesets macht es jedoch genau falsch herum.
Auch wenn ich das dann manuell mit einem Editor korrigiere, in
ein neues Image einlese (FileIn) und wieder ausgebe (FileOut),
wird die Reihenfolge wieder falsch herum gemacht.

Erklärungen/Lösungen? Was bestimmt die Reihenfolge der Elemente
eines Changesets?

mfg
            Chris Burkert
--
http://www.chrisburkert.de/


Reply | Threaded
Open this post in threaded view
|

Re: Ärger mit Changesets

Michael Rueger-6
Chris Burkert wrote:

> Erklärungen/Lösungen? Was bestimmt die Reihenfolge der Elemente eines
> Changesets?

Das kommt davon, wenn man Variablen direkt verwendet ;-)

Eine Loesung ist lazy initialization:

A>>klassenVariable
        ^KlassenVariable ifNil: [KlassenVariable := Set new].

B>>initialize
        self klassenVariable add: 'dingens'

Michael