ChangeSet.st
author Claus Gittinger <cg@exept.de>
Tue, 15 Oct 2002 15:19:26 +0200
changeset 1169 993b9397065b
parent 1168 48ec2c3c4151
child 1174 f4794940b620
permissions -rw-r--r--
error - proceedable
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     1
"
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
     3
	      All Rights Reserved
3
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     4
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     5
 This software is furnished under a license and may be used
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     6
 only in accordance with the terms of that license and with the
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     8
 be provided or otherwise made available to, or used by, any
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     9
 other person.  No title to or ownership of the software is
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
    10
 hereby transferred.
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
    11
"
0
470788421600 Initial revision
claus
parents:
diff changeset
    12
921
fa4db05c887b oops - nameSpace prefix handling needed fix due
Claus Gittinger <cg@exept.de>
parents: 916
diff changeset
    13
"{ Package: 'stx:libbasic3' }"
fa4db05c887b oops - nameSpace prefix handling needed fix due
Claus Gittinger <cg@exept.de>
parents: 916
diff changeset
    14
0
470788421600 Initial revision
claus
parents:
diff changeset
    15
OrderedCollection subclass:#ChangeSet
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
    16
	instanceVariableNames:'changedClasses'
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    17
	classVariableNames:''
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    18
	poolDictionaries:''
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    19
	category:'System-Changes'
0
470788421600 Initial revision
claus
parents:
diff changeset
    20
!
470788421600 Initial revision
claus
parents:
diff changeset
    21
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    22
Object subclass:#DiffSet
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    23
	instanceVariableNames:'changed onlyInReceiver onlyInArg'
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    24
	classVariableNames:''
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    25
	poolDictionaries:''
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    26
	privateIn:ChangeSet
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    27
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    28
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
    29
!ChangeSet class methodsFor:'documentation'!
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    30
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    31
copyright
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    32
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    33
 COPYRIGHT (c) 1993 by Claus Gittinger
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
    34
	      All Rights Reserved
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    35
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    36
 This software is furnished under a license and may be used
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    37
 only in accordance with the terms of that license and with the
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    38
 inclusion of the above copyright notice.   This software may not
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    39
 be provided or otherwise made available to, or used by, any
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    40
 other person.  No title to or ownership of the software is
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    41
 hereby transferred.
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    42
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    43
!
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    44
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    45
documentation
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    46
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    47
    used in the changes management to keep track of changes
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    48
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    49
    [author:]
879
bfd06666f6c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 878
diff changeset
    50
	Claus Gittinger
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    51
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    52
! !
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    53
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
    54
!ChangeSet class methodsFor:'instance creation'!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
    55
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
    56
changesFromParseTree:aTree andStream:aStream lineNumber:initialLineNumberOrNil position:initialPositionOrNil do:aBlock
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    57
    "given a parse-tree (from parsing some changes source/chunk),
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    58
     create changes and evaluate aBlock on each.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    59
     The block is invoked with the change and a lineNumberOrNil as
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    60
     arg; the lineNumber is only valid, if the underlying stream 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    61
     provides line-numbers; otherwise, nil is passed."
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    62
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    63
    |changes sel className categoryName 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    64
     methodSource methodSelector change parser
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    65
     oldName newName priv receiver receiverVarName
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    66
     receiverSelector receiverReceiver primSource
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
    67
     nameSpace lineNumberOrNil posOrNil|
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    68
931
c18bf52cffd4 linenumber fix
Claus Gittinger <cg@exept.de>
parents: 930
diff changeset
    69
     lineNumberOrNil := initialLineNumberOrNil.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
    70
     posOrNil := initialPositionOrNil.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    71
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    72
"/    nameSpace := Class nameSpaceQuerySignal query.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    73
"/    nameSpace isNil ifTrue:[nameSpace := Smalltalk].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    74
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    75
    sel := aTree selector.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    76
    receiver := aTree receiver.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    77
    receiver isMessage ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    78
        receiverSelector := receiver selector.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    79
        receiverReceiver := receiver receiver.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    80
    ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    81
        receiver isVariable ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    82
            receiverVarName := receiver name
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    83
        ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    84
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    85
960
9b0994b92e10 parse v'age, squeak and stv changesets
Claus Gittinger <cg@exept.de>
parents: 959
diff changeset
    86
    (sel == #'methods'
9b0994b92e10 parse v'age, squeak and stv changesets
Claus Gittinger <cg@exept.de>
parents: 959
diff changeset
    87
    or:[(sel == #'methodsFor:')
9b0994b92e10 parse v'age, squeak and stv changesets
Claus Gittinger <cg@exept.de>
parents: 959
diff changeset
    88
    or:[(sel == #'publicMethodsFor:')
9b0994b92e10 parse v'age, squeak and stv changesets
Claus Gittinger <cg@exept.de>
parents: 959
diff changeset
    89
    or:[(sel == #'privateMethodsFor:')
9b0994b92e10 parse v'age, squeak and stv changesets
Claus Gittinger <cg@exept.de>
parents: 959
diff changeset
    90
    or:[(sel == #'methodsFor:stamp:')
9b0994b92e10 parse v'age, squeak and stv changesets
Claus Gittinger <cg@exept.de>
parents: 959
diff changeset
    91
    or:[(sel == #'ignoredMethodsFor:')]]]]]) ifTrue:[
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    92
        (sel == #'ignoredMethodsFor:') ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    93
            priv := #ignored.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    94
        ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    95
            priv := nil
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    96
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    97
        (receiver isUnaryMessage 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    98
        and:[receiverSelector == #class]) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
    99
            className := (receiverReceiver name) , ' class'.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   100
        ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   101
            className := (receiver name).
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   102
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   103
"/        nameSpace ~~ Smalltalk ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   104
"/            className := nameSpace name , '::' , className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   105
"/        ].
960
9b0994b92e10 parse v'age, squeak and stv changesets
Claus Gittinger <cg@exept.de>
parents: 959
diff changeset
   106
        sel == #'methods' ifTrue:[
9b0994b92e10 parse v'age, squeak and stv changesets
Claus Gittinger <cg@exept.de>
parents: 959
diff changeset
   107
            categoryName := 'uncategorized'
9b0994b92e10 parse v'age, squeak and stv changesets
Claus Gittinger <cg@exept.de>
parents: 959
diff changeset
   108
        ] ifFalse:[
9b0994b92e10 parse v'age, squeak and stv changesets
Claus Gittinger <cg@exept.de>
parents: 959
diff changeset
   109
            categoryName := (aTree arguments at:1) evaluate.
9b0994b92e10 parse v'age, squeak and stv changesets
Claus Gittinger <cg@exept.de>
parents: 959
diff changeset
   110
        ].
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   111
        aStream skipSeparators.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   112
        lineNumberOrNil := aStream lineNumber.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   113
        posOrNil := aStream position.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   114
        methodSource := aStream nextChunk.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   115
        changes := OrderedCollection new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   116
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   117
        [methodSource notEmpty] whileTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   118
            parser := Parser
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   119
                        parseMethodArgAndVarSpecification:methodSource 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   120
                        in:nil 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   121
                        ignoreErrors:true 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   122
                        ignoreWarnings:true
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   123
                        parseBody:false.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   124
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   125
            parser isNil ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   126
                "/ something wierd ...
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   127
                methodSelector := '????'.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   128
            ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   129
                methodSelector := parser selector.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   130
            ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   131
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   132
            change := MethodChange new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   133
            change 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   134
                className:className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   135
                selector:methodSelector
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   136
                source:methodSource
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   137
                category:categoryName
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   138
                privacy:priv.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   139
            aBlock value:change value:lineNumberOrNil value:posOrNil.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   140
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   141
            aStream skipSeparators.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   142
            lineNumberOrNil := aStream lineNumber.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   143
            posOrNil := aStream position.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   144
            methodSource := aStream nextChunk.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   145
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   146
        ^ true
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   147
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   148
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   149
    sel == #'removeSelector:' ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   150
        (receiver isUnaryMessage 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   151
        and:[receiverSelector == #class]) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   152
            className := (receiverReceiver name) , ' class'.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   153
        ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   154
            className := (receiver name).
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   155
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   156
"/        nameSpace ~~ Smalltalk ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   157
"/            className := nameSpace name , '::' , className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   158
"/        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   159
        methodSelector := (aTree arguments at:1) evaluate.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   160
        change := MethodRemoveChange new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   161
        change 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   162
            className:className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   163
            selector:methodSelector.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   164
        aBlock value:change value:lineNumberOrNil value:posOrNil.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   165
        ^ true
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   166
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   167
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   168
    "/ any subclass definiton selector ?
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   169
    (Behavior definitionSelectors includes:sel)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   170
    ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   171
        className := (aTree arguments at:1) evaluate.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   172
"/        nameSpace ~~ Smalltalk ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   173
"/            className := nameSpace name , '::' , className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   174
"/        ].
1045
1b2aa47f9dc5 care for the nameSpace in a class-definition
Claus Gittinger <cg@exept.de>
parents: 1042
diff changeset
   175
        nameSpace := Class nameSpaceQuerySignal query.
1b2aa47f9dc5 care for the nameSpace in a class-definition
Claus Gittinger <cg@exept.de>
parents: 1042
diff changeset
   176
        nameSpace ~~ Smalltalk ifTrue:[
1b2aa47f9dc5 care for the nameSpace in a class-definition
Claus Gittinger <cg@exept.de>
parents: 1042
diff changeset
   177
            className := nameSpace name , '::' , className
1b2aa47f9dc5 care for the nameSpace in a class-definition
Claus Gittinger <cg@exept.de>
parents: 1042
diff changeset
   178
        ].
1b2aa47f9dc5 care for the nameSpace in a class-definition
Claus Gittinger <cg@exept.de>
parents: 1042
diff changeset
   179
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   180
        change := ClassDefinitionChange new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   181
        change 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   182
            className:className;
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   183
            source:(aTree printString).
1135
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   184
        change package:(Class packageQuerySignal query).
1045
1b2aa47f9dc5 care for the nameSpace in a class-definition
Claus Gittinger <cg@exept.de>
parents: 1042
diff changeset
   185
"/        nameSpace ~~ Smalltalk ifTrue:[
1b2aa47f9dc5 care for the nameSpace in a class-definition
Claus Gittinger <cg@exept.de>
parents: 1042
diff changeset
   186
"/            change nameSpaceName:(nameSpace name).
1b2aa47f9dc5 care for the nameSpace in a class-definition
Claus Gittinger <cg@exept.de>
parents: 1042
diff changeset
   187
"/        ].
1b2aa47f9dc5 care for the nameSpace in a class-definition
Claus Gittinger <cg@exept.de>
parents: 1042
diff changeset
   188
"/
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   189
        aBlock value:change value:lineNumberOrNil value:posOrNil.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   190
        ^ true
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   191
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   192
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   193
    sel == #'renameCategory:to:' ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   194
        (receiver isUnaryMessage 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   195
        and:[receiverSelector == #class]) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   196
            className := (receiverReceiver name) , ' class'.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   197
        ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   198
            className := (receiver name).
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   199
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   200
"/        nameSpace ~~ Smalltalk ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   201
"/            className := nameSpace name , '::' , className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   202
"/        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   203
        change := MethodCategoryRenameChange new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   204
        change 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   205
            className:className;
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   206
            oldCategoryName:(aTree arguments at:1) evaluate
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   207
            newCategoryName:(aTree arguments at:2) evaluate.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   208
        aBlock value:change value:lineNumberOrNil value:posOrNil.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   209
        ^ true
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   210
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   211
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   212
    (sel == #'category:' 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   213
    or:[sel == #'privacy:']) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   214
        (receiver isMessage
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   215
        and:[receiverSelector == #'compiledMethodAt:']) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   216
            (receiverReceiver isUnaryMessage 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   217
            and:[receiverReceiver selector == #class]) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   218
                className := (receiverReceiver receiver name) , ' class'.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   219
            ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   220
                className := (receiverReceiver name).
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   221
            ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   222
"/            nameSpace ~~ Smalltalk ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   223
"/                className := nameSpace name , '::' , className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   224
"/            ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   225
            methodSelector := (receiver arguments at:1) evaluate.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   226
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   227
            sel == #'category:' ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   228
                change := MethodCategoryChange new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   229
                change 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   230
                    className:className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   231
                    selector:methodSelector
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   232
                    category:(aTree arguments at:1) evaluate.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   233
            ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   234
                change := MethodPrivacyChange new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   235
                change 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   236
                    className:className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   237
                    selector:methodSelector
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   238
                    privacy:(aTree arguments at:1) evaluate.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   239
            ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   240
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   241
            aBlock value:change value:lineNumberOrNil value:posOrNil.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   242
            ^ true
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   243
        ] ifFalse:[
1169
993b9397065b error - proceedable
Claus Gittinger <cg@exept.de>
parents: 1168
diff changeset
   244
            self error:'unexpected change' mayProceed:true
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   245
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   246
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   247
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   248
    sel == #'comment:' ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   249
        (receiver isUnaryMessage 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   250
        and:[receiverSelector == #class]) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   251
            className := (receiverReceiver name) , ' class'.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   252
        ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   253
            className := (receiver name).
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   254
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   255
"/        nameSpace ~~ Smalltalk ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   256
"/            className := nameSpace name , '::' , className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   257
"/        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   258
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   259
        change := ClassCommentChange new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   260
        change 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   261
            className:className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   262
            comment:(aTree arguments at:1) evaluate.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   263
        change source:(aTree printString).
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   264
        aBlock value:change value:lineNumberOrNil value:posOrNil.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   265
        ^ true
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   266
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   267
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   268
    sel == #'instanceVariableNames:' ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   269
        (receiver isUnaryMessage 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   270
        and:[receiverSelector == #class]) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   271
            className := (receiverReceiver name) , ' class'.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   272
        ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   273
            className := (receiver name).
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   274
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   275
"/        nameSpace ~~ Smalltalk ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   276
"/            className := nameSpace name , '::' , className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   277
"/        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   278
        change := ClassInstVarDefinitionChange new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   279
        change className:className.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   280
        change source:(aTree printString).
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   281
        aBlock value:change value:lineNumberOrNil value:posOrNil.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   282
        ^ true
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   283
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   284
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   285
    sel == #'removeClass:' ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   286
        (receiverVarName == #Smalltalk) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   287
            className := (aTree arguments at:1) name.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   288
"/            nameSpace ~~ Smalltalk ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   289
"/                className := nameSpace name , '::' , className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   290
"/            ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   291
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   292
            change := ClassRemoveChange new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   293
            change className:className.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   294
            aBlock value:change value:lineNumberOrNil value:posOrNil.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   295
            ^ true
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   296
        ] ifFalse:[
1169
993b9397065b error - proceedable
Claus Gittinger <cg@exept.de>
parents: 1168
diff changeset
   297
            self error:'unexpected receiver in #name: message' mayProceed:true
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   298
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   299
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   300
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   301
    sel == #'renameClass:to:' ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   302
        (receiverVarName == #Smalltalk) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   303
            oldName := (aTree arguments at:1) name.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   304
            newName := (aTree arguments at:2) evaluate.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   305
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   306
            change := ClassRenameChange new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   307
            change oldName:oldName newName:newName.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   308
            aBlock value:change value:lineNumberOrNil value:posOrNil.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   309
            ^ true
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   310
        ] ifFalse:[
1169
993b9397065b error - proceedable
Claus Gittinger <cg@exept.de>
parents: 1168
diff changeset
   311
            self error:'unexpected receiver in #name: message' mayProceed:true
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   312
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   313
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   314
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   315
    sel == #'name:' ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   316
        ((receiverVarName == #Namespace) 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   317
        or:[receiverVarName == #NameSpace]) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   318
            className := (aTree arguments at:1) evaluate.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   319
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   320
            change := NameSpaceCreationChange new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   321
            change name:className.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   322
            aBlock value:change value:lineNumberOrNil value:posOrNil.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   323
            ^ true
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   324
        ] ifFalse:[
1169
993b9397065b error - proceedable
Claus Gittinger <cg@exept.de>
parents: 1168
diff changeset
   325
            self error:'unexpected receiver in #name: message' mayProceed:true
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   326
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   327
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   328
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   329
    (sel == #'primitiveDefinitions'
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   330
    or:[sel == #'primitiveFunctions'
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   331
    or:[sel == #'primitiveVariables']]) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   332
        (receiver isUnaryMessage 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   333
        and:[receiverSelector == #class]) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   334
            className := (receiverReceiver name) , ' class'.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   335
        ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   336
            className := (receiver name).
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   337
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   338
"/        nameSpace ~~ Smalltalk ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   339
"/            className := nameSpace name , '::' , className
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   340
"/        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   341
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   342
        aStream skipSeparators.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   343
        primSource := aStream nextChunk.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   344
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   345
        sel == #'primitiveDefinitions' ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   346
            change := ClassPrimitiveDefinitionsChange new
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   347
        ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   348
            sel == #'primitiveFunctions' ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   349
                change := ClassPrimitiveFunctionsChange new
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   350
            ] ifFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   351
                change := ClassPrimitiveVariablesChange new
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   352
            ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   353
        ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   354
        change class:className source:primSource.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   355
        aBlock value:change value:lineNumberOrNil value:posOrNil.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   356
        ^ true
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   357
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   358
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   359
    ^ false
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   360
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   361
    "Created: / 16.2.1998 / 13:42:40 / cg"
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   362
    "Modified: / 15.12.1999 / 00:29:06 / cg"
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   363
!
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   364
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   365
changesFromStream:aStream do:aBlock
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   366
    "enumerate changes from a stream and invoke aBlock on each.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   367
     The block is invoked with the change and a lineNumberOrNil as
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   368
     arg; the lineNumber is only valid, if the underlying stream 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   369
     provides line-numbers; otherwise, nil is passed."
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   370
1135
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   371
    |chunk sawExcla lastTimeStamp s change nameSpace package
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   372
     lineNumber pos|
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   373
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   374
    nameSpace := Smalltalk.
1135
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   375
    package := Class packageQuerySignal query.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   376
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   377
    [aStream atEnd] whileFalse:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   378
        aStream skipSeparators.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   379
        sawExcla := aStream peekFor:$!!.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   380
        lineNumber := aStream lineNumber.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   381
        pos := aStream position.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   382
        chunk := aStream nextChunk.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   383
        (chunk notNil and:[chunk notEmpty]) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   384
            Class nameSpaceQuerySignal answer:nameSpace do:[
1135
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   385
                |parser tree ns pkg|
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   386
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   387
                parser := Parser for:chunk.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   388
                tree := parser 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   389
                            parseExpressionWithSelf:nil 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   390
                            notifying:nil 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   391
                            ignoreErrors:true 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   392
                            ignoreWarnings:true 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   393
                            inNameSpace:nameSpace.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   394
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   395
                tree == #Error ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   396
                    change := DoItChange new.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   397
                    change source:chunk.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   398
                    aBlock value:change value:lineNumber value:pos.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   399
                ] ifFalse:[    
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   400
                    (tree notNil and:[tree ~~ #Error]) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   401
                        "/ if there is any nameSpace directive in there, extract it.
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   402
                        ((ns := parser currentNameSpace) notNil 
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   403
                        and:[ns ~~ nameSpace]) ifTrue:[
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   404
                            nameSpace := ns
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   405
                        ].
1135
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   406
                        "/ if there is any package directive in there, extract it.
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   407
                        ((pkg := parser currentPackage) notNil 
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   408
                        and:[pkg ~~ package]) ifTrue:[
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   409
                            package := pkg
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   410
                        ].
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   411
                        Class packageQuerySignal answer:package do:[
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   412
                            Class nameSpaceQuerySignal answer:nameSpace do:[
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   413
                                "/
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   414
                                "/ what type of chunk is this ...
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   415
                                "/
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   416
                                tree isConstant ifTrue:[
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   417
                                    (s := tree evaluate) isString ifTrue:[
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   418
                                        (s startsWith:'---- timestamp ') ifTrue:[
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   419
                                            lastTimeStamp := s.
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   420
                                        ]
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   421
                                    ] ifFalse:[
1169
993b9397065b error - proceedable
Claus Gittinger <cg@exept.de>
parents: 1168
diff changeset
   422
                                        self error:'unexpected change-chunk' mayProceed:true
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   423
                                    ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   424
                                ] ifFalse:[
1135
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   425
                                    tree isMessage ifTrue:[
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   426
                                        (self 
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   427
                                                changesFromParseTree:tree 
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   428
                                                andStream:aStream
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   429
                                                lineNumber:lineNumber
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   430
                                                position:pos
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   431
                                                do:aBlock) ifFalse:[
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   432
                                            change := DoItChange new.
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   433
                                            change source:chunk.
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   434
                                            aBlock value:change value:lineNumber value:pos.
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   435
                                        ]
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   436
                                    ] ifFalse:[
1169
993b9397065b error - proceedable
Claus Gittinger <cg@exept.de>
parents: 1168
diff changeset
   437
                                        self error:'unexpected change-chunk' mayProceed:true
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   438
                                    ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   439
                                ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   440
                            ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   441
                        ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   442
                    ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   443
                ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   444
            ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   445
        ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   446
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   447
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   448
    "
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   449
     ChangeSet fromStream:('changes' asFilename readStream)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   450
     ChangeSet fromStream:('patches' asFilename readStream)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   451
     ChangeSet fromStream:(Object source asString readStream)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   452
    "
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   453
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   454
    "Created: / 16.2.1998 / 12:19:34 / cg"
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   455
    "Modified: / 14.12.1999 / 15:23:16 / cg"
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   456
!
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   457
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   458
forExistingClass:aClass
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   459
    "build a changeSet for some given class.
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   460
     That does of course not give deltas, but instead reflects the current
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   461
     state of the given class.
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   462
     It is useful in conjunction with the other utility methods,
965
38bc91ec40c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
   463
     for example, when building patchLists, diffSets etc."
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   464
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   465
    |source changeSet chunk sawExcla lastTimeStamp s change nameSpace|
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   466
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   467
    s := '' writeStream.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   468
    aClass fileOutOn:s.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   469
    source := s contents.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   470
    changeSet := self fromStream:(source readStream).
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   471
    ^ changeSet
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   472
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   473
"/    changeSet := self new.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   474
"/    nameSpace := Smalltalk.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   475
"/
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   476
"/    "/ first, a classDefinition change ...
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   477
"/    changeSet addClassDefinitionChangeFor:aClass.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   478
"/    "/ are there any class-instVars ?
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   479
"/    aClass class instVarNames size > 0 ifTrue:[
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   480
"/        changeSet addInstVarDefinitionChangeFor:aClass class.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   481
"/    ].
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   482
"/    "/ a comment ?
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   483
"/    aClass comment size > 0 ifTrue:[
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   484
"/        changeSet addClassCommentChangeFor:aClass.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   485
"/    ].
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   486
"/
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   487
"/    "/ class methods first ...
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   488
"/    aClass class methodDictionary keysAndValuesDo:[:sel :mthd |
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   489
"/        changeSet addMethodChange:mthd in:aClass class. 
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   490
"/    ].
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   491
"/
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   492
"/    "/ instance methods ...
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   493
"/    aClass methodDictionary keysAndValuesDo:[:sel :mthd |
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   494
"/        changeSet addMethodChange:mthd in:aClass.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   495
"/    ].
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   496
"/
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
   497
"/    ^ changeSet
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   498
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   499
    "
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   500
     ChangeSet forExistingClass:ChangeSet
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   501
    "
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   502
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   503
    "Created: / 16.2.1998 / 12:19:34 / cg"
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   504
    "Modified: / 14.12.1999 / 15:23:16 / cg"
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   505
!
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   506
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   507
fromStream:aStream
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   508
    "build a changeSet from a stream, containing chunks.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   509
     (i.e. either a classes sourceFile or a change-file).
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   510
     Return the changeSet."
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   511
1041
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   512
    ^ self fromStream:aStream while:[:thisChange | true]
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   513
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   514
    "
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   515
     ChangeSet fromStream:('changes' asFilename readStream)
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   516
     ChangeSet fromStream:('patches' asFilename readStream)
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   517
     ChangeSet fromStream:(Object source asString readStream)
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   518
    "
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   519
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   520
    "Created: / 16.2.1998 / 12:19:34 / cg"
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   521
    "Modified: / 14.12.1999 / 15:23:16 / cg"
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   522
!
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   523
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   524
fromStream:aStream while:aConditionBlock
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   525
    "build a changeSet from a stream, containing chunks.
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   526
     (i.e. either a classes sourceFile or a change-file).
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   527
     Return the changeSet."
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   528
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   529
    |changeSet|
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   530
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   531
    changeSet := self new.
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   532
    self changesFromStream:aStream do:[:aChange :lineNumberOrNil :posOrNil |
1041
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   533
        changeSet add:aChange.
99e1503f93fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1034
diff changeset
   534
        (aConditionBlock value:aChange) ifFalse:[^ changeSet].
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   535
    ].
921
fa4db05c887b oops - nameSpace prefix handling needed fix due
Claus Gittinger <cg@exept.de>
parents: 916
diff changeset
   536
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   537
    ^ changeSet
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   538
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   539
    "
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   540
     ChangeSet fromStream:('changes' asFilename readStream)
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   541
     ChangeSet fromStream:('patches' asFilename readStream)
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   542
     ChangeSet fromStream:(Object source asString readStream)
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   543
    "
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   544
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   545
    "Created: / 16.2.1998 / 12:19:34 / cg"
859
5d50d068c63b keep track of the nameSpace
Claus Gittinger <cg@exept.de>
parents: 857
diff changeset
   546
    "Modified: / 14.12.1999 / 15:23:16 / cg"
916
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   547
!
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   548
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   549
fromXMLStream:aStream
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   550
    "build a changeSet from an XML stream, containing XML definitions.
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   551
     Return the changeSet."
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   552
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   553
    |changeSet builder nameSpace|
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   554
1042
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   555
    aStream isNil ifTrue:[^ nil].
702a30f7c328 chance to track change-chunks positions
Claus Gittinger <cg@exept.de>
parents: 1041
diff changeset
   556
916
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   557
    changeSet := self new.
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   558
    nameSpace := Smalltalk.
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   559
965
38bc91ec40c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 960
diff changeset
   560
    builder := XML::SourceScannerNodeBuilder new.
916
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   561
    builder scanFile:aStream
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   562
            do:[:change | changeSet add: change. ].
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   563
    ^ changeSet
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   564
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   565
    "
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   566
     ChangeSet fromXMLStream:('../../goodies/xml-vw/xmlFileInTests/XMLParser.xml' asFilename readStream)
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   567
     ChangeSetBrowser 
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   568
        openOn:(ChangeSet fromXMLStream:('../../goodies/xml-vw/xmlFileInTests/XMLParser.xml' asFilename readStream))
fff32b43ac7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 901
diff changeset
   569
    "
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   570
! !
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   571
883
1d1fd75b36e5 category renamining
Claus Gittinger <cg@exept.de>
parents: 879
diff changeset
   572
!ChangeSet class methodsFor:'Compatibility - ST80'!
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   573
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   574
patches
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   575
    ^ #()
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   576
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   577
    "Created: / 27.10.1997 / 13:52:54 / cg"
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   578
! !
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   579
1083
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   580
!ChangeSet class methodsFor:'Compatibility - VW'!
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   581
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   582
component: component definition: anObject change: changeSymbol
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   583
    "Include indication that a class/namespace was added or removed
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   584
     from a CodeComponent." 
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   585
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   586
    self 
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   587
        changed:#'component:definition:change:'
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   588
        with:
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   589
            ( Array 
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   590
                    with: component
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   591
                    with: anObject
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   592
                    with: changeSymbol
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   593
            )
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   594
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   595
! !
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   596
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   597
!ChangeSet class methodsFor:'queries'!
27
claus
parents: 16
diff changeset
   598
claus
parents: 16
diff changeset
   599
current
claus
parents: 16
diff changeset
   600
    "ST-80 compatibility: return the current changeSet"
claus
parents: 16
diff changeset
   601
claus
parents: 16
diff changeset
   602
    |p|
claus
parents: 16
diff changeset
   603
claus
parents: 16
diff changeset
   604
    (Project notNil and:[(p := Project current) notNil]) ifTrue:[
959
ca4fff926135 ChangeSet current: return empty collection if there is no changeSet
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
   605
        ^ p changeSet
ca4fff926135 ChangeSet current: return empty collection if there is no changeSet
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
   606
    ].
ca4fff926135 ChangeSet current: return empty collection if there is no changeSet
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
   607
    ^ #()
27
claus
parents: 16
diff changeset
   608
claus
parents: 16
diff changeset
   609
    "
claus
parents: 16
diff changeset
   610
     ChangeSet current 
claus
parents: 16
diff changeset
   611
    "
claus
parents: 16
diff changeset
   612
! !
claus
parents: 16
diff changeset
   613
899
7b65d6f2b0f0 more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 894
diff changeset
   614
!ChangeSet methodsFor:'Compatibility - ST80'!
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   615
899
7b65d6f2b0f0 more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 894
diff changeset
   616
changeClass:aClass
7b65d6f2b0f0 more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 894
diff changeset
   617
    "dummy here"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   618
899
7b65d6f2b0f0 more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 894
diff changeset
   619
    "Created: / 4.2.2000 / 18:30:59 / cg"
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   620
!
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   621
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   622
changedClasses
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   623
    "return a collection of all classes for which changes are in this changeSet"
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   624
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   625
    |classes|
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   626
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   627
    changedClasses isNil ifTrue:[
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   628
        classes := IdentitySet new.
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   629
        self do:[:chg |
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   630
            |cls|
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   631
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   632
            cls := chg changeClass.
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   633
            cls notNil ifTrue:[
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   634
                cls isNameSpace ifFalse:[
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   635
                    classes add:cls
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   636
                ]
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   637
            ]
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   638
        ].
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   639
        changedClasses := classes.
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   640
    ].
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   641
    ^ changedClasses.
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   642
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   643
    "
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   644
     ChangeSet current changedClasses  
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   645
    "
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   646
!
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   647
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   648
component:component definition:anObject change:changeSymbol
1083
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   649
    "Include indication that a class/namespace was added or removed
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   650
     from a CodeComponent." 
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   651
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   652
    self 
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   653
        changed:#'component:definition:change:'
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   654
        with:
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   655
            ( Array 
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   656
                    with: component
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   657
                    with: anObject
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   658
                    with: changeSymbol
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   659
            )
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   660
!
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   661
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   662
reorganizeSystem
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   663
    "dummy here"
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   664
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   665
    "Created: / 6.2.2000 / 20:45:10 / cg"
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   666
! !
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   667
985
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
   668
!ChangeSet methodsFor:'change & update'!
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
   669
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   670
changed:anAspectSymbol with:aParameter 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   671
    "Allow objects to depend on the ChangeSet class instead of a particular instance 
1099
bd76198721aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1098
diff changeset
   672
     of ChangeSet (which may be switched using projects)."
985
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
   673
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   674
    ChangeSet changed:anAspectSymbol with:aParameter.
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   675
    super changed:anAspectSymbol with:aParameter
985
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
   676
! !
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
   677
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   678
!ChangeSet methodsFor:'changes management'!
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   679
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   680
addClassCommentChangeFor:aClass
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   681
    "add a classComment change to the receiver"
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   682
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   683
    |newChange|
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   684
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   685
    newChange := ClassCommentChange class:aClass.
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   686
    newChange comment:aClass comment.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   687
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   688
    self addChange:newChange
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   689
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   690
    "Modified: / 14.11.2001 / 13:35:34 / cg"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   691
!
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   692
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   693
addClassDefinitionChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   694
    "add a classDefinition change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   695
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   696
    |newChange|
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   697
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   698
    newChange := ClassDefinitionChange class:aClass source:(aClass definition).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   699
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   700
    self addChange:newChange
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   701
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   702
    "Modified: / 14.11.2001 / 13:35:37 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   703
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   704
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   705
addClassRemoveChange:oldClassName
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   706
    "add a classRemove change to the receiver"
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   707
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   708
    |newChange|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   709
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   710
    newChange := ClassRemoveChange new className:oldClassName.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   711
    changedClasses := nil.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   712
    self addChange:newChange
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   713
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   714
    "Modified: / 14.11.2001 / 13:35:39 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   715
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   716
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   717
addClassRenameChangeFrom:oldName to:newName
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   718
    "add a classRename change to the receiver"
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   719
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   720
    |newChange|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   721
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   722
    newChange := ClassRenameChange new oldName:oldName newName:newName.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   723
    changedClasses := nil.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   724
    self addChange:newChange
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   725
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   726
    "Modified: / 14.11.2001 / 13:35:41 / cg"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   727
!
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   728
1081
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
   729
addDoIt:aString
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
   730
    "add a doIt to the receiver"
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
   731
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
   732
    |newChange|
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
   733
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   734
    newChange := DoItChange new source:aString.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   735
    self addChange:newChange.
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   736
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   737
    "Modified: / 14.11.2001 / 13:35:44 / cg"
1081
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
   738
!
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
   739
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   740
addInstVarDefinitionChangeFor:aClass
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   741
    "add an instVarDefinition change to the receiver"
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   742
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   743
    |newChange|
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   744
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   745
    newChange := ClassInstVarDefinitionChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   746
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   747
                        source:(aClass name , ' instanceVariableNames:' , aClass instanceVariableString storeString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   748
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   749
    self addChange:newChange
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   750
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   751
    "Modified: / 14.11.2001 / 13:35:45 / cg"
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   752
!
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   753
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
   754
addMethodCategoryChange:aMethod category:newCategory in:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   755
    "add a methodCategory change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   756
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
   757
    |newChange|
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
   758
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   759
    newChange := MethodCategoryChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   760
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   761
                        selector:(aClass selectorAtMethod:aMethod)
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   762
                        category:newCategory.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   763
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   764
    self addChange:newChange
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
   765
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   766
    "Modified: / 14.11.2001 / 13:35:48 / cg"
44
claus
parents: 39
diff changeset
   767
!
claus
parents: 39
diff changeset
   768
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
   769
addMethodChange:aMethod fromOld:oldMethod in:aClass
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
   770
    "add a method change to the receiver"
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
   771
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
   772
    |newChange|
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
   773
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   774
    newChange := MethodChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   775
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   776
                        selector:aMethod selector
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   777
                        source:aMethod source
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   778
                        category:aMethod category.
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
   779
    oldMethod notNil ifTrue:[
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
   780
        newChange previousVersion:oldMethod source.
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
   781
    ].
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   782
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   783
    self addChange:newChange.
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
   784
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   785
    "Modified: / 14.11.2001 / 13:35:50 / cg"
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
   786
!
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
   787
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   788
addMethodChange:aMethod in:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   789
    "add a method change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   790
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   791
    |newChange|
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   792
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   793
    newChange := MethodChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   794
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   795
                        selector:aMethod selector
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   796
                        source:aMethod source
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   797
                        category:aMethod category.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   798
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   799
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   800
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   801
    "Modified: / 14.11.2001 / 13:35:52 / cg"
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   802
!
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   803
44
claus
parents: 39
diff changeset
   804
addMethodPrivacyChange:aMethod in:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   805
    "add a methodPrivacy change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   806
44
claus
parents: 39
diff changeset
   807
    |newChange|
claus
parents: 39
diff changeset
   808
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   809
    newChange := MethodPrivacyChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   810
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   811
                        selector:(aClass selectorAtMethod:aMethod)
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   812
                        privacy:aMethod privacy.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   813
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   814
    self addChange:newChange
44
claus
parents: 39
diff changeset
   815
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   816
    "Modified: / 27.8.1995 / 22:55:22 / claus"
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   817
    "Modified: / 14.11.2001 / 13:35:55 / cg"
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   818
!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   819
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   820
addPrimitiveDefinitionsChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   821
    "add a primitiveDefinitions change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   822
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   823
    |newChange|
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   824
783
90ffa6f0a86b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
   825
    newChange := ClassPrimitiveDefinitionsChange new
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   826
                        class:aClass name source:(aClass primitiveDefinitionsString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   827
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   828
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   829
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   830
    "Modified: / 14.11.2001 / 13:35:57 / cg"
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   831
!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   832
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   833
addPrimitiveFunctionsChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   834
    "add a primitiveFunctions change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   835
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   836
    |newChange|
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   837
783
90ffa6f0a86b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
   838
    newChange := ClassPrimitiveFunctionsChange new
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   839
                        class:aClass name source:(aClass primitiveFunctionsString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   840
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   841
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   842
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   843
    "Modified: / 14.11.2001 / 13:35:59 / cg"
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   844
!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   845
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   846
addPrimitiveVariablesChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   847
    "add a primitiveVariables change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   848
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   849
    |newChange|
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   850
783
90ffa6f0a86b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
   851
    newChange := ClassPrimitiveVariablesChange new
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   852
                         class:aClass name source:(aClass primitiveVariablesString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   853
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   854
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   855
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   856
    "Modified: / 14.11.2001 / 13:36:01 / cg"
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   857
!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   858
1164
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
   859
addRemoveSelectorChange:aSelector fromOld:oldMethod in:aClass
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   860
    "add a method-remove change to the receiver"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   861
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   862
    |newChange|
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   863
1081
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
   864
    newChange := MethodRemoveChange class:aClass selector:aSelector.
1164
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
   865
    oldMethod notNil ifTrue:[
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
   866
        newChange previousVersion:oldMethod source.
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
   867
    ].
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   868
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   869
    self addChange:newChange
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   870
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   871
    "Modified: / 27.8.1995 / 22:55:22 / claus"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   872
    "Created: / 16.2.1998 / 12:47:07 / cg"
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   873
    "Modified: / 14.11.2001 / 13:36:04 / cg"
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   874
!
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   875
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   876
addRenameCategoryChangeIn:aClass from:oldCategory to:newCategory
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   877
    "add a category rename change to the receiver"
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   878
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   879
    |newChange|
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   880
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   881
    newChange := MethodCategoryRenameChange class:aClass.
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   882
    newChange oldCategoryName:oldCategory newCategoryName:newCategory.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   883
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   884
    self addChange:newChange
1105
b27c0d72d7d0 avoid useless change notifications from #collect:, #select: etc.
Claus Gittinger <cg@exept.de>
parents: 1102
diff changeset
   885
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   886
    "Modified: / 14.11.2001 / 13:36:06 / cg"
1105
b27c0d72d7d0 avoid useless change notifications from #collect:, #select: etc.
Claus Gittinger <cg@exept.de>
parents: 1102
diff changeset
   887
! !
b27c0d72d7d0 avoid useless change notifications from #collect:, #select: etc.
Claus Gittinger <cg@exept.de>
parents: 1102
diff changeset
   888
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   889
!ChangeSet methodsFor:'misc'!
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   890
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   891
addPatch:nameOfPatch
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   892
    "ignored for now - allows fileIn of ST-80 patch stuff .."
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   893
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   894
    ^ self
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   895
! !
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
   896
1098
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
   897
!ChangeSet methodsFor:'private - accessing'!
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
   898
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   899
addChange:aChange
1147
c1ea2e764760 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1135
diff changeset
   900
    aChange timeStamp:(AbsoluteTime now).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   901
    self add:aChange.
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   902
    self changed:#addChange: with:aChange.
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   903
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   904
    "Created: / 14.11.2001 / 13:35:11 / cg"
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   905
    "Modified: / 14.11.2001 / 13:36:58 / cg"
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   906
!
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   907
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   908
rememberChangedClass:aClass
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   909
    changedClasses notNil ifTrue:[
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   910
        changedClasses add:aClass
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   911
    ].
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   912
!
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   913
1098
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
   914
removeAll:aCollection
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
   915
    super removeAll:aCollection.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   916
    changedClasses := nil.
1099
bd76198721aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1098
diff changeset
   917
    self changed:#removeAll: with:aCollection.
1098
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
   918
! !
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
   919
1034
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
   920
!ChangeSet methodsFor:'queries'!
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
   921
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
   922
includesChangeForClass:aClass
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   923
    |nameOfClass|
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   924
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   925
    nameOfClass := aClass theNonMetaclass name.
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   926
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   927
    ^ self contains:[:aChange | 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   928
                                aChange className = nameOfClass
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   929
                    ]
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   930
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   931
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   932
     ChangeSet current includesChangeForClass:ChangeSet
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   933
     ChangeSet current includesChangeForClass:ChangeSet class
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   934
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   935
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   936
    "Modified: / 31.10.2001 / 10:58:40 / cg"
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   937
!
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   938
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   939
includesChangeForClass:aClass selector:selector
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   940
    |nameOfClass|
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   941
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   942
    nameOfClass := aClass name.
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   943
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   944
    ^ self contains:[:aChange | 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   945
                        aChange selector = selector
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   946
                        ifFalse:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   947
                            false
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   948
                        ] ifTrue:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   949
                            aChange className = nameOfClass 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   950
                        ]
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   951
                    ]
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   952
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   953
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   954
     ChangeSet current includesChangeForClass:ChangeSet selector:#includesChangeForClass:
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   955
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   956
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   957
    "Created: / 31.10.2001 / 10:26:31 / cg"
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
   958
    "Modified: / 31.10.2001 / 10:59:49 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   959
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   960
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   961
includesChangeForClassOrMetaclass:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   962
    |nameOfClass nameOfMetaclass|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   963
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   964
    nameOfClass := aClass theNonMetaclass name.
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   965
    nameOfMetaclass := aClass theMetaclass name.
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   966
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   967
    ^ self contains:[:aChange | 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   968
                        |changeClassName|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   969
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   970
                        changeClassName := aChange className.
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   971
                        changeClassName = nameOfClass or:[changeClassName = nameOfMetaclass]
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   972
                    ]
1127
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   973
!
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   974
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   975
includesChangeForClassOrMetaclassOrPrivateClassOf:aClass
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   976
    |nameOfClass nameOfMetaclass|
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   977
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   978
    nameOfClass := aClass theNonMetaclass name.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   979
    nameOfMetaclass := aClass theMetaclass name.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   980
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   981
    self do:[:aChange | 
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   982
        |changeClassName changeClass|
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   983
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   984
        changeClassName := aChange className.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   985
        (changeClassName = nameOfClass) ifTrue:[^ true].
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   986
        (changeClassName = nameOfMetaclass) ifTrue:[^ true].
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   987
        changeClass := aChange changeClass.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   988
        (changeClass notNil
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   989
        and:[changeClass isPrivate
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   990
        and:[changeClass owningClass == aClass]]) ifTrue:[
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   991
            ^ true
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   992
        ]
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   993
    ].
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
   994
    ^ false
1034
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
   995
! !
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
   996
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
   997
!ChangeSet methodsFor:'utilities'!
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
   998
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
   999
apply
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1000
    "apply all changes in the receivers changeSet"
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1001
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1002
    self do:[:aChange |
879
bfd06666f6c1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 878
diff changeset
  1003
	aChange apply
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1004
    ]
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1005
!
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1006
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1007
condenseChangesForClass:aClass 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1008
    "remove all changes for aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1009
     (i.e. leave changes for other classes)."
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1010
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1011
    self condenseChangesForClass:aClass package:nil
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1012
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1013
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1014
condenseChangesForClass:aClass package:aPackageSymbol
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1015
    "remove all changes for aClass and aPackageSymbol
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1016
     (i.e. leave methodChanges for other packages).
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1017
     This is invoked when a class is checked into the repository."
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1018
945
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1019
    |changesToRemove className metaClassName chgCls|
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1020
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1021
    changesToRemove := OrderedCollection new.
945
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1022
    className := aClass theNonMetaclass name.
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1023
    metaClassName := aClass theMetaclass name.
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1024
    self do:[:aChange | 
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1025
        |chgClassName chgClass removeThis mClass mthd|
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1026
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1027
        removeThis := false.
945
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1028
        chgClassName := aChange className.
1168
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1029
        (chgClassName = className or:[chgClassName = metaClassName]) ifTrue:[
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1030
            removeThis := true.
944
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1031
        ] ifFalse:[
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1032
            chgCls := aChange changeClass.
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1033
            (chgCls notNil
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1034
            and:[chgCls isPrivate
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1035
            and:[chgCls owningClass == aClass]]) ifTrue:[
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1036
                removeThis := true
944
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1037
            ]
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1038
        ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1039
        removeThis ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1040
            aChange isMethodChange ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1041
                mClass := aChange changeClass.
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1042
                mClass notNil ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1043
                    mthd := mClass compiledMethodAt:(aChange selector).
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1044
                    mthd isNil ifTrue:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1045
                        "/ mthd does no longer exist
1168
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1046
"/ I no longer understand what this was meant for .. (sigh)
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1047
"/                        aPackageSymbol notNil ifTrue:[
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1048
"/                            removeThis := false
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1049
"/                        ]
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1050
                    ] ifFalse:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1051
                        (aPackageSymbol notNil and:[mthd package ~= aPackageSymbol]) ifTrue:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1052
                            removeThis := false
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1053
                        ]
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1054
                    ]
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1055
                ]
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1056
            ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1057
        ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1058
        removeThis ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1059
            changesToRemove add:aChange
887
3cfdf7d2ba89 oops - must care for unloaded/nonExistent/removed/renamed classes
Claus Gittinger <cg@exept.de>
parents: 883
diff changeset
  1060
        ]
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1061
    ].
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1062
    self removeAll:changesToRemove
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1063
1088
6575d464d900 condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1087
diff changeset
  1064
    "Modified: / 5.11.2001 / 14:29:22 / cg"
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1065
!
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1066
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1067
condenseChangesForExtensionsInPackage:aPackageSymbol
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1068
    "remove all changes for aClass and aPackageSymbol
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1069
     (i.e. leave methodChanges for other packages).
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1070
     This is invoked when a class is checked into the repository."
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1071
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1072
    |changesToRemove|
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1073
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1074
    changesToRemove := OrderedCollection new.
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1075
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1076
    self do:[:aChange | 
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1077
        |removeThis mClass mthd|
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1078
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1079
        aChange isMethodChange ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1080
            removeThis := false.
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1081
            mClass := aChange changeClass.
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1082
            mClass notNil ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1083
                mthd := mClass compiledMethodAt:(aChange selector).
1115
2c3947bd4f0a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1111
diff changeset
  1084
                (mthd isNil or:[mthd package ~= aPackageSymbol]) ifTrue:[
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1085
                    removeThis := false
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1086
                ]
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1087
            ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1088
            removeThis ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1089
                changesToRemove add:aChange
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1090
            ]
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1091
        ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1092
    ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1093
    self removeAll:changesToRemove
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1094
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1095
    "Modified: / 5.11.2001 / 14:11:45 / cg"
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1096
    "Created: / 5.11.2001 / 14:21:17 / cg"
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1097
!
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1098
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1099
diffSetsAgainst:anotherChangeSet
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1100
    "walk over the receiver and anotherChangeSet,
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1101
     add all changes to one of the tree lists:
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1102
        onlyInReceiver, onlyInArg or changed,
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1103
     each being a changeSet containing corresponding changes.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1104
     WARNING: destructive; could modify both the receiver and the argument"
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1105
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1106
    |onlyInReceiver onlyInArg changedMethods
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1107
     indexFromChangedMethodsToA indexFromChangedMethodsToB
864
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1108
     "info" ret|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1109
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1110
    onlyInReceiver := ChangeSet new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1111
    onlyInArg      := ChangeSet new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1112
    changedMethods := ChangeSet new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1113
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1114
    indexFromChangedMethodsToA := OrderedCollection new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1115
    indexFromChangedMethodsToB := OrderedCollection new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1116
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1117
    self keysAndValuesDo:[:idxA :aChangeInA |
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1118
        |anyFound ch|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1119
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1120
        anyFound := false.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1121
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1122
        anotherChangeSet keysAndValuesDo:[:idxB :aChangeInB |
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1123
            (aChangeInA isForSameAs:aChangeInB) ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1124
                anyFound := true.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1125
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1126
                "/ also in B - is it different ?
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1127
                (aChangeInA sameAs:aChangeInB) ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1128
                    changedMethods add:aChangeInA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1129
                    indexFromChangedMethodsToA add:idxA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1130
                    indexFromChangedMethodsToB add:idxB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1131
                ] ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1132
                    aChangeInA isMethodChange ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1133
                        aChangeInA methodCategory ~= aChangeInB methodCategory ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1134
                            "/ only the category is different;
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1135
                            "/ make it a MethodCategory changes.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1136
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1137
                            ch := MethodCategoryChange new
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1138
                                    className:aChangeInA className
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1139
                                    selector:aChangeInA selector
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1140
                                    category:aChangeInA methodCategory.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1141
                            self at:idxA put:ch.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1142
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1143
                            ch := MethodCategoryChange new
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1144
                                    className:aChangeInB className
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1145
                                    selector:aChangeInB selector
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1146
                                    category:aChangeInB methodCategory.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1147
                            anotherChangeSet at:idxB put:ch.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1148
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1149
                            changedMethods add:aChangeInA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1150
                            indexFromChangedMethodsToA add:idxA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1151
                            indexFromChangedMethodsToB add:idxB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1152
                        ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1153
                    ].
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1154
                ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1155
            ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1156
                (aChangeInA sameAs:aChangeInB) ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1157
                    anyFound := true.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1158
                ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1159
                ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1160
            ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1161
        ].
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1162
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1163
        anyFound ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1164
            onlyInReceiver add:aChangeInA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1165
        ]
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1166
    ].
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1167
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1168
    anotherChangeSet keysAndValuesDo:[:idxB :aChangeInB |
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1169
        |anyFound|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1170
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1171
        anyFound := false.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1172
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1173
        self do:[:aChangeInA |
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1174
            |idxM|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1175
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1176
            (aChangeInA isForSameAs:aChangeInB) ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1177
                anyFound := true.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1178
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1179
                "/ also in B - is it different ?
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1180
                (aChangeInA sameAs:aChangeInB) ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1181
                    "/ already there ?
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1182
                    idxM := changedMethods findFirst:[:c | c isForSameAs:aChangeInB].
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1183
                    idxM == 0 ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1184
                        changedMethods add:aChangeInB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1185
                        indexFromChangedMethodsToB add:idxB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1186
                    ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1187
                        indexFromChangedMethodsToB at:idxM put:idxB
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1188
                    ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1189
                ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1190
            ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1191
                (aChangeInA sameAs:aChangeInB) ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1192
                    anyFound := true.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1193
                ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1194
                ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1195
            ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1196
        ].
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1197
        anyFound ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1198
            onlyInArg add:aChangeInB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1199
        ]
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1200
    ].
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1201
864
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1202
"/    info := OrderedCollection new:(changedMethods size).
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1203
"/    changedMethods keysAndValuesDo:[:idx :changedMethod |
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1204
"/        info add:(Array 
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1205
"/                        with:(indexFromChangedMethodsToA at:idx)
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1206
"/                        with:(indexFromChangedMethodsToB at:idx)
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1207
"/                 )
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1208
"/    ].
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1209
    changedMethods := (1 to:changedMethods size) collect:[:idx |
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1210
                        |cA cB|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1211
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1212
                        cA := self at:(indexFromChangedMethodsToA at:idx).
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1213
                        cB := anotherChangeSet at:(indexFromChangedMethodsToB at:idx).
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1214
                        Array with:cA with:cB
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1215
                      ].
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1216
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1217
    ret := DiffSet new
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1218
                changed:changedMethods 
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1219
                onlyInReceiver:onlyInReceiver
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1220
                onlyInArg:onlyInArg.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1221
"/    ret info:info.
864
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1222
    ^ret
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1223
! !
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1224
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1225
!ChangeSet::DiffSet methodsFor:'accessing'!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1226
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1227
changed
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1228
    "return the value of the instance variable 'changed' (automatically generated)"
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1229
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1230
    ^ changed
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1231
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1232
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1233
changed:something
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1234
    "set the value of the instance variable 'changed' (automatically generated)"
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1235
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1236
    changed := something.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1237
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1238
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1239
changed:changedArg onlyInReceiver:onlyInReceiverArg onlyInArg:onlyInArgArg 
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1240
    "set instance variables (automatically generated)"
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1241
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1242
    changed := changedArg.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1243
    changed isNil ifTrue:[changed := OrderedCollection new].
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1244
    onlyInReceiver := onlyInReceiverArg.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1245
    onlyInReceiver isNil ifTrue:[onlyInReceiver := ChangeSet new].
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1246
    onlyInArg := onlyInArgArg.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1247
    onlyInArg isNil ifTrue:[onlyInArg := ChangeSet new].
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1248
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1249
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1250
onlyInArg
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1251
    ^ onlyInArg
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1252
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1253
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1254
onlyInArg:something
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1255
    onlyInArg := something.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1256
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1257
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1258
onlyInReceiver
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1259
    ^ onlyInReceiver
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1260
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1261
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1262
onlyInReceiver:something
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1263
    onlyInReceiver := something.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1264
! !
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1265
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
  1266
!ChangeSet class methodsFor:'documentation'!
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1267
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1268
version
1169
993b9397065b error - proceedable
Claus Gittinger <cg@exept.de>
parents: 1168
diff changeset
  1269
    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.82 2002-10-15 13:19:26 cg Exp $'
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1270
! !