ChangeSet.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 04 Feb 2014 21:01:56 +0100
branchjv
changeset 3435 d15ba356cc58
parent 3428 0fdab73d067c
child 3838 474d8ec95b33
permissions -rw-r--r--
ChangeSet read/write refactored. Fixed writing & reading changefile. Now class definitions are always written using namespace pragma. Sole method definitions still use namespace prefix as stc and old tools can't deal with namespace pragmas for methods. Support for overriding a class's namespace using `Class nameSpaceQuerySignal` has been dropped as it made things lot more complicated and the only user was Tools::ChangeSetBrowser2.
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
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
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
"
921
fa4db05c887b oops - nameSpace prefix handling needed fix due
Claus Gittinger <cg@exept.de>
parents: 916
diff changeset
    12
"{ Package: 'stx:libbasic3' }"
fa4db05c887b oops - nameSpace prefix handling needed fix due
Claus Gittinger <cg@exept.de>
parents: 916
diff changeset
    13
0
470788421600 Initial revision
claus
parents:
diff changeset
    14
OrderedCollection subclass:#ChangeSet
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    15
	instanceVariableNames:'changedClasses changeSelectors name'
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    16
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    17
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    18
	category:'System-Changes'
0
470788421600 Initial revision
claus
parents:
diff changeset
    19
!
470788421600 Initial revision
claus
parents:
diff changeset
    20
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
    21
Object subclass:#ChangeFileReader
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    22
	instanceVariableNames:'inputStream parseTree changeAction changeSet selector receiver
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    23
		arguments receiverSelector receiverReceiver lineNumber position
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    24
		className methodSelector nameSpaceOverride chunk timestamp
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    25
		classIsJava'
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    26
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    27
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    28
	privateIn:ChangeSet
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
    29
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
    30
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
    31
Object subclass:#ChangeFileWriter
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
    32
	instanceVariableNames:''
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
    33
	classVariableNames:''
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
    34
	poolDictionaries:''
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
    35
	privateIn:ChangeSet
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
    36
!
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
    37
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    38
Error subclass:#ChangeProcessingError
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    39
	instanceVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    40
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    41
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    42
	privateIn:ChangeSet
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    43
!
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    44
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    45
SmalltalkChunkFileSourceWriter subclass:#ClassSourceWriter
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    46
	instanceVariableNames:'changeSetBeingSaved packageName namespaceName topClassName
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    47
		classInfos metaInfos'
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    48
	classVariableNames:''
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    49
	poolDictionaries:''
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    50
	privateIn:ChangeSet
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    51
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    52
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    53
Object subclass:#ClassInfo
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    54
	instanceVariableNames:'name superclass definition comment methods methodDictionary
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    55
		namespace primitiveDefinitions primitiveVariables
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    56
		primitiveFunctions'
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    57
	classVariableNames:''
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    58
	poolDictionaries:''
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    59
	privateIn:ChangeSet::ClassSourceWriter
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    60
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    61
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    62
Object subclass:#DiffSet
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    63
	instanceVariableNames:'changed onlyInReceiver onlyInArg same'
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    64
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    65
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    66
	privateIn:ChangeSet
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    67
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    68
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    69
ChangeSet::ChangeFileReader subclass:#DolphinPACFileReader
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    70
	instanceVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    71
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    72
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    73
	privateIn:ChangeSet
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    74
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    75
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    76
ChangeSet::ChangeProcessingError subclass:#InvalidChangeChunkError
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    77
	instanceVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    78
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    79
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    80
	privateIn:ChangeSet
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    81
!
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    82
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
    83
ChangeSet::ChangeFileReader subclass:#SIFChangeFileReader
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    84
	instanceVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    85
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    86
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    87
	privateIn:ChangeSet
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
    88
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
    89
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
    90
!ChangeSet class methodsFor:'documentation'!
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    91
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    92
copyright
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    93
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    94
 COPYRIGHT (c) 1993 by Claus Gittinger
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
    95
              All Rights Reserved
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    96
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    97
 This software is furnished under a license and may be used
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    98
 only in accordance with the terms of that license and with the
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    99
 inclusion of the above copyright notice.   This software may not
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   100
 be provided or otherwise made available to, or used by, any
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   101
 other person.  No title to or ownership of the software is
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   102
 hereby transferred.
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   103
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   104
!
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   105
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   106
documentation
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   107
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   108
    used in the changes management to keep track of changes
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   109
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   110
    [author:]
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
   111
        Claus Gittinger
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   112
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   113
! !
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   114
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   115
!ChangeSet class methodsFor:'instance creation'!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   116
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   117
forExistingClass:aClass
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   118
    "build a changeSet for some given class, all of its private classes
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   119
     and all extensions if any. 
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   120
     I.e. a changeSet which represents the existing class in the image.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   121
     That does of course not give deltas, but instead reflects the current
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   122
     state of the given class.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   123
     It is useful in conjunction with the other utility methods,
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   124
     for example, when building patchLists, diffSets, comparing etc."
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   125
1954
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   126
    |changeSet s changeObject|
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   127
2633
5a5460e5231a comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2626
diff changeset
   128
    "/ kludge: could do this much faster...
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   129
    s := ReadWriteStream on:''.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   130
    aClass fileOutOn:s.
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   131
    s reset.
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   132
    changeSet := self fromStream:s.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   133
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   134
    "/ fetch the real package info...
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   135
    changeSet do:[:eachChange |
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   136
        eachChange isMethodChange ifTrue:[
1954
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   137
            changeObject := eachChange changeMethod.
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   138
            changeObject notNil ifTrue:[
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   139
                eachChange package:changeObject package
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   140
            ].
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   141
        ] ifFalse:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   142
            eachChange isClassChange ifTrue:[
1954
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   143
                changeObject := eachChange changeClass.
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   144
                changeObject notNil ifTrue:[
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   145
                    eachChange package:changeObject package
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   146
                ].
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   147
            ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   148
        ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   149
    ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   150
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   151
    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   152
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   153
"/    |source changeSet chunk sawExcla lastTimeStamp s change nameSpace|
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   154
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   155
"/    changeSet := self new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   156
"/
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   157
"/    "/ first, a classDefinition change ...
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   158
"/    changeSet addClassDefinitionChangeFor:aClass.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   159
"/    "/ are there any class-instVars ?
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   160
"/    aClass class instVarNames size > 0 ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   161
"/        changeSet addInstVarDefinitionChangeFor:aClass class.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   162
"/    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   163
"/    "/ a comment ?
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   164
"/    aClass comment size > 0 ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   165
"/        changeSet addClassCommentChangeFor:aClass.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   166
"/    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   167
"/
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   168
"/    "/ class methods first ...
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   169
"/    aClass class methodDictionary keysAndValuesDo:[:sel :mthd |
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   170
"/        changeSet addMethodChange:mthd in:aClass class. 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   171
"/    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   172
"/
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   173
"/    "/ instance methods ...
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   174
"/    aClass methodDictionary keysAndValuesDo:[:sel :mthd |
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   175
"/        changeSet addMethodChange:mthd in:aClass.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   176
"/    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   177
"/
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   178
"/    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   179
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   180
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   181
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   182
     ChangeSet forExistingClass:ChangeSet
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   183
     ChangeSet forExistingClass:A
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   184
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   185
     Rectangle hasExtensions
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   186
     ChangeSet forExistingClass:Rectangle
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   187
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   188
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   189
    "Created: / 16-02-1998 / 12:19:34 / cg"
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   190
    "Modified: / 12-10-2006 / 23:45:14 / cg"
2633
5a5460e5231a comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2626
diff changeset
   191
    "Modified (format): / 01-12-2011 / 19:10:22 / cg"
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   192
!
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   193
2940
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   194
forExistingClass:aClass withExtensions:withExtensions
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   195
    "build a changeSet for some given full class with or without extensions.
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   196
     That does of course not give deltas, but instead reflects the current
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   197
     state of the given class.
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   198
     It is useful in conjunction with the other utility methods,
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   199
     for example, when building patchLists, diffSets etc."
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   200
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   201
    ^ self
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   202
        forExistingClass:aClass 
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   203
        withExtensions:withExtensions
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   204
        withLooseMethods:false
2940
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   205
        extensionsOnly:false
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   206
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   207
    "
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   208
     Object hasExtensions   
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   209
     Object extensions size           
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   210
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   211
     (ChangeSet forExistingClass:Object) size
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   212
     (ChangeSet forExistingClass:Object withExtensions:false) size  
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   213
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   214
     (ChangeSet forExistingClass:stx_libbasic3 withExtensions:false)   
2940
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   215
    "
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   216
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   217
    "Created: / 12-10-2006 / 18:13:02 / cg"
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   218
    "Modified: / 12-10-2006 / 23:46:05 / cg"
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   219
!
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   220
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   221
forExistingClass:aClass withExtensions:withExtensions extensionsOnly:extensionsOnly
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   222
    "build a changeSet for some given full class, the base-class or the extensions only,
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   223
     as specified by the with-arguments.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   224
     That does of course not give deltas, but instead reflects the current
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   225
     state of the given class.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   226
     It is useful in conjunction with the other utility methods,
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   227
     for example, when building patchLists, diffSets etc."
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   228
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   229
    ^ self
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   230
        forExistingClass:aClass 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   231
        withExtensions:withExtensions 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   232
        withLooseMethods:false
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   233
        extensionsOnly:extensionsOnly
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   234
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   235
    "
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   236
     ChangeSet forExistingClass:ChangeSet
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   237
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   238
     Rectangle hasExtensions
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   239
     Rectangle extensions
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   240
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   241
     ChangeSet forExistingClass:Rectangle withExtensions:true extensionsOnly:false
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   242
     ChangeSet forExistingClass:Rectangle withExtensions:false extensionsOnly:false
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   243
     ChangeSet forExistingClass:Rectangle withExtensions:false extensionsOnly:true
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   244
    "
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   245
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   246
    "Created: / 12-10-2006 / 18:13:02 / cg"
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   247
    "Modified: / 12-10-2006 / 23:46:05 / cg"
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   248
!
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   249
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   250
forExistingClass:aClass withExtensions:withExtensions withLooseMethods:withLooseMethods
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   251
    "build a changeSet for some given full class with or without extensions.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   252
     That does of course not give deltas, but instead reflects the current
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   253
     state of the given class.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   254
     It is useful in conjunction with the other utility methods,
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   255
     for example, when building patchLists, diffSets etc."
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   256
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   257
    ^ self
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   258
        forExistingClass:aClass 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   259
        withExtensions:withExtensions 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   260
        withLooseMethods:withLooseMethods
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   261
        extensionsOnly:false
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   262
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   263
    "
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   264
     Object hasExtensions   
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   265
     Object extensions size           
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   266
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   267
     (ChangeSet forExistingClass:Object) size
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   268
     (ChangeSet forExistingClass:Object withExtensions:false) size  
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   269
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   270
     (ChangeSet forExistingClass:stx_libbasic3 withExtensions:false)   
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   271
    "
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   272
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   273
    "Created: / 12-10-2006 / 18:13:02 / cg"
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   274
    "Modified: / 12-10-2006 / 23:46:05 / cg"
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   275
!
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   276
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   277
forExistingClass:aClass withExtensions:withExtensions withLooseMethods:withLooseMethods extensionsOnly:extensionsOnly
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   278
    "build a changeSet for some given full class, the base-class or the extensions only,
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   279
     as specified by the with-arguments.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   280
     That does of course not give deltas, but instead reflects the current
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   281
     state of the given class.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   282
     It is useful in conjunction with the other utility methods,
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   283
     for example, when building patchLists, diffSets etc."
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   284
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   285
    |changeSet classPackage notInClassesPackage realExtensions looseMethods|
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   286
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   287
    changeSet := self forExistingClass:aClass.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   288
    classPackage := aClass package.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   289
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   290
    notInClassesPackage :=
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   291
                [:change |
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   292
                    change isMethodChange 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   293
                    and:[ change package ~= classPackage ]
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   294
                ].
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   295
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   296
    realExtensions :=
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   297
                [:change |
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   298
                    change isMethodChange 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   299
                    and:[ change package ~= classPackage 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   300
                    and:[ change package ~~ PackageId noProjectID ]]
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   301
                ].
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   302
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   303
    looseMethods :=
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   304
                [:change |
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   305
                    change isMethodChange 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   306
                    and:[change package == PackageId noProjectID ]
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   307
                ].
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   308
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   309
    extensionsOnly ifTrue:[
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   310
        withLooseMethods ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   311
            ^ changeSet select:notInClassesPackage
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   312
        ].
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   313
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   314
        ^ changeSet select:realExtensions.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   315
    ].
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   316
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   317
    withExtensions ifFalse:[
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   318
        withLooseMethods ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   319
            ^ changeSet reject:notInClassesPackage
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   320
        ].
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   321
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   322
        ^ changeSet reject:realExtensions.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   323
    ].
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   324
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   325
    withLooseMethods ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   326
        ^ changeSet reject:looseMethods.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   327
    ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   328
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   329
    ^ changeSet
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   330
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   331
    "
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   332
     ChangeSet forExistingClass:ChangeSet
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   333
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   334
     Rectangle hasExtensions
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   335
     Rectangle extensions
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   336
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   337
     ChangeSet forExistingClass:Rectangle withExtensions:true extensionsOnly:false
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   338
     ChangeSet forExistingClass:Rectangle withExtensions:false extensionsOnly:false
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   339
     ChangeSet forExistingClass:Rectangle withExtensions:false extensionsOnly:true
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   340
    "
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   341
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   342
    "Created: / 12-10-2006 / 18:13:02 / cg"
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   343
    "Modified: / 12-10-2006 / 23:46:05 / cg"
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   344
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   345
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   346
forExistingMethods:aCollectionOfMethods
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   347
    "build a changeSet for a collection of methods.
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   348
     That does of course not give deltas, but instead reflects the current
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   349
     state of the given set of methods.
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   350
     It is useful in conjunction with the other utility methods,
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   351
     for example, when building patchLists, diffSets etc."
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   352
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   353
    |changeSet stream previousPackage|
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   354
2244
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   355
    changeSet := self new.
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   356
    aCollectionOfMethods do:[:eachMethod | 
2524
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   357
        |change source|
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   358
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   359
        source := eachMethod source.
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   360
        source isNil ifTrue:[
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   361
            Transcript showCR:'oops - no source for ',eachMethod whoString.
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   362
        ].
2244
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   363
        change := MethodDefinitionChange new.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   364
        eachMethod mclass notNil ifTrue:[ change className:eachMethod mclass name ].
2524
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   365
        source notNil ifTrue:[ change source:source ].
2244
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   366
        change selector:eachMethod selector.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   367
        change package:(eachMethod package).
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   368
        change category:(eachMethod category).
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   369
        changeSet add:change.
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   370
    ].
2244
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   371
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   372
"/    stream := ReadWriteStream on:''.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   373
"/    aCollectionOfMethods do:[:eachMethod | 
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   374
"/        previousPackage ~= eachMethod package ifTrue:[
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   375
"/            stream nextPutAll:'"{ Package: '''.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   376
"/            stream nextPutAll:eachMethod package asString.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   377
"/            stream nextPutAll:''' }"'; cr; cr.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   378
"/        ].
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   379
"/        eachMethod mclass fileOutMethod:eachMethod on:stream
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   380
"/    ].
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   381
"/    stream reset.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   382
"/    changeSet := self fromStream:stream.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   383
"/    changeSet do:[:eachChange |
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   384
"/        eachChange package:(eachChange changeMethod package).
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   385
"/    ].
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   386
    ^ changeSet
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   387
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   388
    "
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   389
     ChangeSet forExistingMethods:(Array with:(Array compiledMethodAt:#at:)
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   390
                                         with:(Object compiledMethodAt:#at:)
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   391
                                         with:(Behavior compiledMethodAt:#compiledMethodAt:) )
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   392
    "
1872
7a1f2a26bf90 changes for compare-project functionality
Claus Gittinger <cg@exept.de>
parents: 1869
diff changeset
   393
2524
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   394
    "Modified: / 17-09-2011 / 10:26:03 / cg"
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   395
!
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   396
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   397
forPackage: package
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   398
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   399
    ^self forPackage: package ignoreAutoloaded: false.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   400
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   401
    "Created: / 20-05-2008 / 17:56:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   402
    "Modified: / 12-08-2009 / 14:23:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   403
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   404
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   405
forPackage: package ignoreAutoloaded: ignoreAutoloaded
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   406
    "build a changeSet for a given package"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   407
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   408
    |changeSet packageClasses packageExtensions|
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   409
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   410
    packageClasses := ProjectDefinition searchForClassesWithProject: package.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   411
    packageExtensions := ProjectDefinition searchForExtensionsWithProject: package.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   412
    changeSet := self forExistingMethods: packageExtensions.
2941
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   413
    packageClasses do:[:cls|
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   414
        (ignoreAutoloaded not and:[cls isLoaded not]) ifTrue:[cls autoload].
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   415
        cls isLoaded ifTrue: [
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   416
            changeSet addAll: (self forExistingClass:cls withExtensions:false)
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   417
        ]
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   418
    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   419
    changeSet name: 'Package ' , package.
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   420
    ^changeSet
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   421
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   422
    "Created: / 12-08-2009 / 14:22:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   423
    "Modified: / 16-03-2012 / 15:37:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   424
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   425
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   426
fromDiffSet:aDiffSet
2322
c5ebd3b56e54 comment/format in: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2321
diff changeset
   427
    "build a changeSet from a given diffSet. This can be used as a patchSet,
c5ebd3b56e54 comment/format in: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2321
diff changeset
   428
     to update the first-version in the diffSet to the second-version"
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   429
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   430
    |changeSet|
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   431
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   432
    changeSet := self new.
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   433
    "/ class definitions first...
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   434
    changeSet addAll:((aDiffSet changed collect:[:eachPair | eachPair second]) select:[:ch | ch isClassDefinitionChange]).
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   435
    changeSet addAll:((aDiffSet onlyInArg) select:[:ch | ch isClassDefinitionChange]).
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   436
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   437
    "/ first add new methods...
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   438
    changeSet addAll:((aDiffSet onlyInArg) reject:[:ch | ch isClassDefinitionChange]).
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   439
    "/ then, changed methods...
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   440
    changeSet addAll:((aDiffSet changed collect:[:eachPair | eachPair second]) reject:[:ch | ch isClassDefinitionChange]).
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   441
    "/ then, removed methods...
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   442
    aDiffSet onlyInReceiver do:[:each |
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   443
        |ch|
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   444
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   445
        ch := MethodRemoveChange className:(each className) selector:(each selector).
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   446
        changeSet add:ch.
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   447
    ].
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   448
    ^ changeSet
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   449
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   450
    "Created: / 08-02-2011 / 10:48:36 / cg"
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   451
!
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   452
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   453
fromDirectory: aStringOfFilename
3413
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   454
      "Read all .st files (non-recursively) from `aStringOrFilename` Return the resuling ChangeSet"        
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   455
3421
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   456
    ^ self fromDirectory: aStringOfFilename asSmalltalkXPackage: false.
3413
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   457
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   458
    "Created: / 02-04-2011 / 00:54:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3421
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   459
    "Modified: / 02-12-2013 / 17:36:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   460
!
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   461
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   462
fromDirectory: aStringOfFilename asSmalltalkXPackage: isSmalltalkXPackage
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   463
      "Read all .st files (non-recursively) from `aStringOrFilename` 
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   464
       Return the resuling ChangeSet.
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   465
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   466
       If `isSmalltalkXPacklage` is true, then treat directory as Smalltalk/X
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   467
       package directory as checked out from a VCS. Read only those files
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   468
       present in abbrev.stc (if present).
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   469
       "        
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   470
     | directory abbrevFile filter |
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   471
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   472
    directory := aStringOfFilename asFilename.
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   473
    (isSmalltalkXPackage and:[(abbrevFile := directory asFilename / 'abbrev.stc') exists]) ifTrue:[
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   474
        | files |
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   475
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   476
        files := OrderedCollection new.
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   477
        (directory asFilename / 'abbrev.stc') readingFileDo:[:s |
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   478
            Smalltalk withAbbreviationsFromStream: s do:[:className :abbrev :pkg  | files add: (abbrev , '.st')]
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   479
        ].
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   480
        filter := [:filename | files includes: filename baseName ]
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   481
    ] ifFalse:[
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   482
        filter := [:filename | filename  suffix = 'st' ]
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   483
    ].
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   484
    ^ self fromDirectory: aStringOfFilename filter: filter
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   485
aa3d983b12bb Added ChangeSet>>#fromDirectory:asSmalltalkXPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3413
diff changeset
   486
    "Created: / 02-12-2013 / 17:36:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3413
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   487
!
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   488
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   489
fromDirectory: aStringOrFilename filter: filter
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   490
    "Read all files (non-recursively) from `aStringOrFilename` for which the
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   491
     filter return true. Return the resuling ChangeSet"
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   492
    
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   493
3412
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
   494
    | d cs files step |
3413
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   495
    d := aStringOrFilename asFilename.
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   496
    cs := self new.    
3413
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   497
    files := (d directoryContentsAsFilenames) select:filter.
3412
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
   498
    step :=  100 / files size.
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
   499
    files withIndexDo: [:each :index |
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
   500
        ProgressNotification notify: 'Reading ', each baseName progress: (step * (index - 1)).
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
   501
        [
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
   502
            cs addAll: (self fromFileOrDirectory: each)
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
   503
        ] on: ProgressNotification do:[:ex |
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
   504
            ex proceed.
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
   505
        ].
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
   506
    ].
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
   507
    ProgressNotification notify: nil progress: 100.
3413
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   508
    cs name: aStringOrFilename asFilename asAbsoluteFilename pathName.
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   509
    ^cs
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   510
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   511
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   512
    "
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   513
        ChangeSet fromDirectory: (Smalltalk getPackageDirectoryForPackage:'stx:libbasic')
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   514
    "
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   515
3413
2d4ae2a99dc0 Added ChangeSet>>#fromDirectory:filter:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3412
diff changeset
   516
    "Created: / 12-11-2013 / 15:24:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   517
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   518
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   519
fromDolphinPACStream:aStream
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   520
    "build a changeSet from a stream, containing dolphin pac file chunks."
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   521
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   522
    ^ self fromDolphinPACStream:aStream while:[:thisChange | true]
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   523
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   524
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   525
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   526
fromDolphinPACStream:aStream while:aConditionBlock
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   527
    "build a changeSet from a stream, containing dolphin pac file chunks."
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   528
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   529
    |changeSet|
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   530
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   531
    changeSet := self new.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   532
    self 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   533
        changesFromStream:aStream 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   534
        for:changeSet 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   535
        reader:(DolphinPACFileReader new) 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   536
        do:[:aChange :lineNumberOrNil :posOrNil |
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   537
            changeSet add:aChange.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   538
            (aConditionBlock value:aChange) ifFalse:[^ changeSet].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   539
        ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   540
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   541
    ^ changeSet
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   542
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   543
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   544
fromFile:filenameOrString
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   545
    |filename mime stream changeSet|
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   546
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   547
    filename := filenameOrString asFilename.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   548
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   549
    mime := MIMETypes mimeTypeForFilename:filename.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   550
    mime isNil ifTrue:[
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   551
        mime := filename mimeTypeOfContents.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   552
        mime isNil ifTrue:[
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   553
            "/ self error:'unknown MIME type for file' mayProceed:true.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   554
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   555
            "/ assume chunk format
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   556
            mime := 'text/plain'.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   557
        ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   558
    ].
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   559
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   560
    [
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   561
        stream := filename readStream.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   562
        mime = 'text/xml' ifTrue:[
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   563
            changeSet := self fromXMLStream:stream.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   564
        ] ifFalse:[
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   565
            mime = 'application/x-smalltalk-source-sif' ifTrue:[
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   566
                changeSet := self fromSIFStream:stream.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   567
            ] ifFalse:[
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   568
                mime = 'application/x-smalltalk-dolphin-package' ifTrue:[
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   569
                    changeSet := self fromDolphinPACStream:stream.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   570
                ] ifFalse:[            
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   571
                    stream := EncodedStream decodedStreamFor:stream.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   572
                    changeSet := self fromStream:stream.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   573
                ]
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   574
            ]
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   575
        ]
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   576
    ] ensure:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   577
        stream notNil ifTrue:[stream close].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   578
    ].
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   579
    changeSet name: filename baseName.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   580
    ^ changeSet
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   581
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   582
    "
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   583
     ChangeSet fromFile: 'st.chg'
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   584
     ChangeSet fromFile: 'patches'
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   585
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   586
2868
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
   587
    "Created: / 16-02-1998 / 12:19:34 / cg"
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   588
    "Modified (comment): / 28-07-2012 / 09:41:40 / cg"
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   589
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   590
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   591
fromFileOrDirectory: fileOrDirectory
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   592
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   593
    | f |
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   594
    f := fileOrDirectory asFilename.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   595
    ^(f isDirectory 
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   596
        ifTrue:[self fromDirectory: f]
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   597
        ifFalse:[self fromFile: f])
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   598
        name: f pathName;
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   599
        yourself.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   600
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   601
    "
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   602
        ChangeSet fromFileOrDirectory: (Smalltalk getPackageDirectoryForPackage:'stx:libbasic')
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   603
    "
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   604
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   605
    "Created: / 02-04-2011 / 00:50:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   606
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   607
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   608
fromSIFStream:aStream
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   609
    "build a changeSet from a SIF stream, containing chunks
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   610
     in smalltalk interchange format.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   611
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   612
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   613
    ^ self fromSIFStream:aStream while:[:thisChange | true]
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   614
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   615
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   616
fromSIFStream:aStream while:aConditionBlock
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   617
    "build a changeSet from a SIF stream, containing chunks
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   618
     in smalltalk interchange format.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   619
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   620
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   621
    |changeSet|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   622
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   623
    changeSet := self new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   624
    self 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   625
        changesFromStream:aStream 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   626
        for:changeSet 
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   627
        reader:(SIFChangeFileReader new) 
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   628
        do:[:aChange :lineNumberOrNil :posOrNil |
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   629
            changeSet add:aChange.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   630
            (aConditionBlock value:aChange) ifFalse:[^ changeSet].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   631
        ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   632
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   633
    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   634
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   635
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   636
fromStream:aStream
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   637
    "build a changeSet from a stream, containing chunks.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   638
     (i.e. either a classes sourceFile or a change-file).
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   639
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   640
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   641
    ^ self fromStream:aStream while:[:thisChange | true]
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   642
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   643
    "
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   644
     ChangeSet fromStream:('changes' asFilename readStream)
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   645
     ChangeSet fromStream:('patches' asFilename readStream)
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   646
     ChangeSet fromStream:(Object source asString readStream)
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   647
    "
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   648
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   649
    "Created: / 16.2.1998 / 12:19:34 / cg"
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   650
    "Modified: / 14.12.1999 / 15:23:16 / cg"
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   651
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   652
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   653
fromStream:aStream while:aConditionBlock
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   654
    "build a changeSet from a stream, containing chunks.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   655
     (i.e. either a classes sourceFile or a change-file).
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   656
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   657
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   658
    |changeSet|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   659
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   660
    changeSet := self new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   661
    self 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   662
        changesFromStream:aStream 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   663
        for:changeSet 
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   664
        reader:(ChangeFileReader new)
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   665
        do:[:aChange :lineNumberOrNil :posOrNil |
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   666
            changeSet add:aChange.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   667
            (aConditionBlock value:aChange) ifFalse:[^ changeSet].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   668
        ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   669
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   670
    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   671
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   672
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   673
     ChangeSet fromStream:('changes' asFilename readStream)
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   674
     ChangeSet fromStream:('patches' asFilename readStream)
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   675
     ChangeSet fromStream:(Object source asString readStream)
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   676
     ChangeSet fromStream:(XWorkstation source asString readStream)
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   677
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   678
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   679
    "Created: / 16-02-1998 / 12:19:34 / cg"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   680
    "Modified: / 14-12-1999 / 15:23:16 / cg"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   681
    "Modified (comment): / 01-08-2012 / 15:24:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   682
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   683
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   684
fromXMLStream:aStream
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   685
    "build a changeSet from an XML stream, containing XML definitions.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   686
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   687
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   688
    |changeSet builder nameSpace|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   689
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   690
    aStream isNil ifTrue:[^ nil].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   691
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   692
    changeSet := self new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   693
    nameSpace := Smalltalk.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   694
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   695
    builder := XML::SourceScannerNodeBuilder new.
1475
934d20073adb more support for alien namespaces (VW7)
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
   696
    builder scanFile:aStream do:[:change | changeSet add: change. ].
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   697
    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   698
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   699
    "
1247
be7277706e48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   700
     ChangeSet fromXMLStream:('../../goodies/xml/vw/xmlFileInTests/XMLParser.xml' asFilename readStream)
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   701
     ChangeSetBrowser 
1247
be7277706e48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   702
        openOn:(ChangeSet fromXMLStream:('../../goodies/xml/vw/xmlFileInTests/XMLParser.xml' asFilename readStream))
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   703
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   704
! !
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   705
1281
6aeafe46d0ad category;
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
   706
!ChangeSet class methodsFor:'Compatibility-ST80'!
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   707
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   708
patches
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   709
    ^ #()
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   710
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   711
    "Created: / 27.10.1997 / 13:52:54 / cg"
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   712
! !
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   713
3412
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
   714
1281
6aeafe46d0ad category;
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
   715
!ChangeSet class methodsFor:'Compatibility-VW'!
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   716
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   717
component: component definition: anObject change: changeSymbol
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   718
    "Include indication that a class/namespace was added or removed
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   719
     from a CodeComponent." 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   720
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   721
    self 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   722
        changed:#'component:definition:change:'
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   723
        with:
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   724
            ( Array 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   725
                    with: component
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   726
                    with: anObject
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   727
                    with: changeSymbol
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   728
            )
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   729
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   730
! !
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   731
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   732
!ChangeSet class methodsFor:'instance creation-private'!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   733
1191
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   734
changesFromStream:aStream do:aBlock
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   735
    "enumerate changes from a stream and invoke aBlock on each.
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   736
     The block is invoked with the change, a lineNumberOrNil and streamPosition arguments. 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   737
     The lineNumber is only valid, if the underlying stream 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   738
     provides line-numbers; otherwise, nil is passed."
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   739
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   740
    ^ self
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   741
        changesFromStream:aStream 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   742
        for:(self new) 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   743
        reader:nil
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   744
        do:aBlock
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   745
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   746
    "
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   747
     ChangeSet 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   748
        changesFromStream:('changes' asFilename readStream) 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   749
        do:[:chg | Transcript showCR:chg]
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   750
    "
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   751
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   752
    "Created: / 16.2.1998 / 12:19:34 / cg"
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   753
    "Modified: / 14.12.1999 / 15:23:16 / cg"
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   754
!
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   755
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   756
changesFromStream:aStream for:aChangeSet reader:aReader do:aBlock
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   757
    "enumerate changes from a stream and invoke aBlock on each.
1191
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   758
     The block is invoked with the change, a lineNumberOrNil and streamPosition arguments. 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   759
     The lineNumber is only valid, if the underlying stream 
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   760
     provides line-numbers; otherwise, nil is passed."
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   761
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   762
    |encodedStream chunk s change currentNameSpace currentPackage
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   763
     lineNumber pos reader size |
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   764
3302
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   765
    currentNameSpace := Smalltalk.
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   766
    currentPackage := Class packageQuerySignal query.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   767
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   768
    (reader := aReader) isNil ifTrue:[
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   769
        reader := ChangeFileReader new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   770
    ].
2893
5dfcb7f9f0da Fix in reading changeset from file (for EncodedStream)
vrany
parents: 2892
diff changeset
   771
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   772
    encodedStream := aStream isEncodedStream 
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   773
                        ifTrue:[aStream ]
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   774
                        ifFalse:[EncodedStream decodedStreamFor: aStream ].
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   775
    size := encodedStream stream size.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   776
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   777
    reader changeSet:aChangeSet.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   778
    reader changeAction:aBlock.
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   779
    reader inputStream:encodedStream.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   780
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   781
    [encodedStream atEnd] whileFalse:[
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   782
        encodedStream skipSeparators.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   783
        lineNumber := encodedStream lineNumber.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   784
        pos := encodedStream position + 1.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   785
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   786
        ProgressNotification notify: nil progress:(100 / size) * pos.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   787
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   788
        chunk := encodedStream nextChunk.
2056
b4bd1ff4709e refactored
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   789
1447
2ac1cf09722b isEmptyOrNil / notEmptyOrNil refactoring
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
   790
        (chunk notEmptyOrNil) ifTrue:[
3302
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   791
            Class nameSpaceQuerySignal handle:[:ex| ex proceedWith:currentNameSpace] do:[
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   792
                Class packageQuerySignal handle:[:ex| ex proceedWith:currentPackage] do:[
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   793
                    |parser tree ns pkg|
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   794
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   795
                    parser := Parser for:chunk.
2930
389b51389fb1 comment/format in: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2923
diff changeset
   796
                    "/ parser parseForCode.
3157
ad507c0fbd30 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   797
                    Parser parseErrorSignal handle:[:ex |
ad507c0fbd30 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   798
                        Transcript showCR:'ChangeSet: error while reading: ',ex description.
ad507c0fbd30 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   799
                        tree := #Error.
ad507c0fbd30 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   800
                    ] do:[
ad507c0fbd30 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   801
                        tree := parser 
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   802
                                parseExpressionWithSelf:nil 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   803
                                notifying:nil 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   804
                                ignoreErrors:true 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   805
                                ignoreWarnings:true 
3302
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   806
                                inNameSpace:currentNameSpace.
3157
ad507c0fbd30 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   807
                    ].
3302
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   808
                    tree ~~ #Error ifTrue:[
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   809
                        tree isNil ifTrue:[
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   810
                            "/ Hmm....it could be package-definition chunk in extensions container...
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   811
                            "/ if there is any package directive in there, extract it.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   812
                            ((pkg := parser currentPackage) notNil 
3302
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   813
                            and:[pkg ~~ currentPackage]) ifTrue:[
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   814
                                currentPackage := pkg
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   815
                            ] ifFalse:[
3302
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   816
                                "/ if there is any nameSpace directive in there, extract it.
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   817
                                ((ns := parser currentNameSpace) notNil 
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   818
                                and:[ns ~~ currentNameSpace]) ifTrue:[
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   819
                                    currentNameSpace := ns
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   820
                                ] ifFalse:[
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   821
                                    change := DoItChange new.
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   822
                                    change source:chunk.
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   823
                                    aBlock valueWithOptionalArgument:change and:lineNumber and:pos.
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   824
                                ].
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   825
                            ].
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   826
                        ] ifFalse:[    
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   827
                            "/ if there is any nameSpace directive in there, extract it.
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   828
                            ((ns := parser currentNameSpace) notNil 
3302
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   829
                            and:[ns ~~ currentNameSpace]) ifTrue:[
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   830
                                currentNameSpace := ns
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   831
                            ].
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   832
                            "/ if there is any package directive in there, extract it.
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   833
                            ((pkg := parser currentPackage) notNil 
3302
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   834
                            and:[pkg ~~ currentPackage]) ifTrue:[
b5830a86fb93 Fix in ChangeSet class>>changesFromStream:for:reader:do:.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3283
diff changeset
   835
                                currentPackage := pkg
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   836
                            ].
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   837
                            "/
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   838
                            "/ what type of chunk is this ...
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   839
                            "/
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   840
                            tree isConstant ifTrue:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   841
                                (s := tree evaluate) isString ifTrue:[
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   842
                                    (s startsWith:'---- ') ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   843
                                        reader inputStream: s readStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   844
                                        reader processInfo: s.
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   845
                                        reader inputStream: encodedStream.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   846
                                    ].
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   847
                                ] ifFalse:[
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   848
                                    self error:'unexpected change-chunk' mayProceed:true
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   849
                                ]
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   850
                            ] ifFalse:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   851
                                tree isMessage ifTrue:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   852
                                    (reader 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   853
                                        changesFromParseTree:tree 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   854
                                        lineNumber:lineNumber
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   855
                                        position:pos
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
   856
                                        chunk: chunk
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   857
                                    ) ifFalse:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   858
                                        change := DoItChange new.
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   859
                                        change source:chunk.
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   860
                                        aBlock valueWithOptionalArgument:change and:lineNumber and:pos.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   861
                                    ]
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   862
                                ] ifFalse:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   863
                                    InvalidChangeChunkError 
3395
baddb3274c85 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
   864
                                        raiseErrorString:'unexpected change-chunk' 
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   865
                                        "/ mayProceed:true.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   866
                                ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   867
                            ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   868
                        ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   869
                    ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   870
                ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   871
            ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   872
        ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   873
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   874
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   875
    "
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   876
     ChangeSet fromStream:('changes' asFilename readStream)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   877
     ChangeSet fromStream:('patches' asFilename readStream)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   878
     ChangeSet fromStream:(Object source asString readStream)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   879
    "
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   880
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
   881
    "Created: / 16-02-1998 / 12:19:34 / cg"
3360
f823605e7ccd class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
   882
    "Modified: / 30-07-2013 / 21:34:16 / cg"
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
   883
    "Modified: / 04-02-2014 / 19:44:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   884
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   885
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   886
!ChangeSet class methodsFor:'queries'!
27
claus
parents: 16
diff changeset
   887
claus
parents: 16
diff changeset
   888
current
claus
parents: 16
diff changeset
   889
    "ST-80 compatibility: return the current changeSet"
claus
parents: 16
diff changeset
   890
claus
parents: 16
diff changeset
   891
    |p|
claus
parents: 16
diff changeset
   892
claus
parents: 16
diff changeset
   893
    (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
   894
        ^ p changeSet
ca4fff926135 ChangeSet current: return empty collection if there is no changeSet
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
   895
    ].
ca4fff926135 ChangeSet current: return empty collection if there is no changeSet
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
   896
    ^ #()
27
claus
parents: 16
diff changeset
   897
claus
parents: 16
diff changeset
   898
    "
claus
parents: 16
diff changeset
   899
     ChangeSet current 
claus
parents: 16
diff changeset
   900
    "
claus
parents: 16
diff changeset
   901
! !
claus
parents: 16
diff changeset
   902
2246
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
   903
!ChangeSet class methodsFor:'utilities'!
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
   904
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
   905
decodedStreamFor:aStream
2247
1ff6d78eb96c code move
Claus Gittinger <cg@exept.de>
parents: 2246
diff changeset
   906
    <resource: #obsolete>
1ff6d78eb96c code move
Claus Gittinger <cg@exept.de>
parents: 2246
diff changeset
   907
    ^ EncodedStream decodedStreamFor:aStream
2246
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
   908
! !
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
   909
1264
3d1fc5d40ab4 method category rename
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
   910
!ChangeSet methodsFor:'Compatibility-ST80'!
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   911
899
7b65d6f2b0f0 more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 894
diff changeset
   912
changeClass:aClass
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   913
899
7b65d6f2b0f0 more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 894
diff changeset
   914
    "dummy here"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   915
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   916
    "Created: / 04-02-2000 / 18:30:59 / cg"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   917
    "Modified (format): / 05-09-2012 / 16:39:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   918
!
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   919
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   920
changeSelectors
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   921
    "return a collection of all selectors for which changes are in this changeSet"
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   922
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   923
    |selectors|
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   924
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   925
    changeSelectors isNil ifTrue:[
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   926
        selectors := IdentitySet new.
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   927
        self do:[:chg |
1967
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   928
            |sel|
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   929
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   930
            chg notNil ifTrue:[
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   931
                chg isMethodChange ifTrue:[
1967
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   932
                    sel := chg selector.
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   933
                    sel notNil ifTrue:[
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   934
                        selectors add:sel
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   935
                    ]
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   936
                ]
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   937
            ]
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   938
        ].
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   939
        changeSelectors := selectors.
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   940
    ].
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   941
    ^ changeSelectors.
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   942
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   943
    "
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   944
     ChangeSet current changeSelectors  
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   945
    "
1967
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   946
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   947
    "Modified: / 30-05-2007 / 12:12:32 / cg"
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   948
!
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   949
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   950
changedClasses
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   951
    "return a collection of all classes for which changes are in this changeSet"
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   952
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   953
    |classes|
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   954
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   955
    changedClasses isNil ifTrue:[
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   956
        classes := IdentitySet new.
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   957
        self do:[:chg |
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   958
            |cls|
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   959
1315
f0f764125625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1313
diff changeset
   960
            chg notNil ifTrue:[
f0f764125625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1313
diff changeset
   961
                cls := chg changeClass.
f0f764125625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1313
diff changeset
   962
                cls notNil ifTrue:[
1898
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
   963
                    cls isRealNameSpace ifFalse:[
1315
f0f764125625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1313
diff changeset
   964
                        classes add:cls
f0f764125625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1313
diff changeset
   965
                    ]
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   966
                ]
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   967
            ]
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   968
        ].
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   969
        changedClasses := classes.
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   970
    ].
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   971
    ^ changedClasses.
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   972
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   973
    "
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   974
     ChangeSet current changedClasses  
1791
746e0b3aa286 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1718
diff changeset
   975
     ChangeSet current flushChangedClassesCache
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   976
    "
1791
746e0b3aa286 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1718
diff changeset
   977
1898
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
   978
    "Modified: / 10-11-2006 / 17:17:26 / cg"
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   979
!
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   980
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   981
component:component definition:anObject change:changeSymbol
1083
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   982
    "Include indication that a class/namespace was added or removed
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   983
     from a CodeComponent." 
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   984
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   985
    self 
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   986
        changed:#'component:definition:change:'
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   987
        with:
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   988
            ( Array 
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   989
                    with: component
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   990
                    with: anObject
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   991
                    with: changeSymbol
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   992
            )
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   993
!
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   994
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   995
reorganizeSystem
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   996
    "dummy here"
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   997
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   998
    "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
   999
! !
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1000
2235
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1001
!ChangeSet methodsFor:'accessing'!
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1002
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1003
name
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1004
    ^ name
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1005
!
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1006
2868
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  1007
name:aString
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  1008
    name := aString.
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  1009
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  1010
    "Modified (format): / 28-07-2012 / 09:34:52 / cg"
2235
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1011
! !
2234
f5af55bd08cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
  1012
985
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
  1013
!ChangeSet methodsFor:'change & update'!
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
  1014
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1015
changed:anAspectSymbol with:aParameter 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1016
    "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
  1017
     of ChangeSet (which may be switched using projects)."
985
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
  1018
1475
934d20073adb more support for alien namespaces (VW7)
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1019
    self == ChangeSet current ifTrue:[
934d20073adb more support for alien namespaces (VW7)
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1020
        ChangeSet changed:anAspectSymbol with:aParameter.
934d20073adb more support for alien namespaces (VW7)
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1021
    ].
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1022
    super changed:anAspectSymbol with:aParameter
985
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
  1023
! !
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
  1024
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1025
!ChangeSet methodsFor:'changes management'!
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1026
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1027
addClassCommentChangeFor:aClass
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1028
    "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
  1029
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1030
    |newChange|
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1031
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1032
    newChange := ClassCommentChange class:aClass.
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1033
    newChange comment:aClass comment.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1034
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1035
    self addChange:newChange
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1036
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1037
    "Modified: / 14.11.2001 / 13:35:34 / cg"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1038
!
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1039
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1040
addClassDefinitionChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1041
    "add a classDefinition change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1042
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1043
    |newChange|
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1044
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1045
    newChange := ClassDefinitionChange class:aClass source:(aClass definition).
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1046
    newChange package:aClass package.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1047
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1048
    self addChange:newChange
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1049
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1050
    "
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1051
     (ChangeSet new addClassDefinitionChangeFor:ChangeSet) inspect
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1052
    "
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1053
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1054
    "Modified: / 12-10-2006 / 18:17:02 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1055
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1056
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1057
addClassRemoveChange:oldClass 
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1058
    "add a classRemove change to the receiver"
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1059
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1060
    |newChange|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1061
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1062
    newChange := ClassRemoveChange new className:oldClass name.
1281
6aeafe46d0ad category;
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
  1063
    self rememberChangedClass:oldClass.
1421
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1064
    oldClass isPrivate ifTrue:[
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1065
        self rememberChangedClass:oldClass topOwningClass.
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1066
    ].
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1067
    ClassRemoveChange::ClassBeingRemovedQuery 
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1068
        answer:oldClass
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1069
        do:[
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1070
            self addChange:newChange
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1071
        ]
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1072
    "Modified: / 14.11.2001 / 13:35:39 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1073
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1074
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1075
addClassRenameChangeFrom:oldName to:newName
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1076
    "add a classRename change to the receiver"
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1077
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1078
    |newChange|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1079
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1080
    newChange := ClassRenameChange new oldName:oldName newName:newName.
1281
6aeafe46d0ad category;
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
  1081
    self rememberChangedClass:(Smalltalk at:newName).
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1082
    self addChange:newChange
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1083
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1084
    "Modified: / 14.11.2001 / 13:35:41 / cg"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1085
!
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1086
1081
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1087
addDoIt:aString
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1088
    "add a doIt to the receiver"
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1089
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1090
    |newChange|
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1091
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1092
    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
  1093
    self addChange:newChange.
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1094
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1095
    "Modified: / 14.11.2001 / 13:35:44 / cg"
1081
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1096
!
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1097
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1098
addInstVarDefinitionChangeFor:aClass
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1099
    "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
  1100
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1101
    |newChange|
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1102
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1103
    newChange := ClassInstVarDefinitionChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1104
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1105
                        source:(aClass name , ' instanceVariableNames:' , aClass instanceVariableString storeString).
2617
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  1106
    newChange classInstVarNames:aClass instanceVariableString asCollectionOfWords.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1107
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1108
    self addChange:newChange
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1109
2617
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  1110
    "Modified: / 25-11-2011 / 17:38:42 / cg"
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1111
!
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1112
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
  1113
addMethodCategoryChange:aMethod category:newCategory in:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1114
    "add a methodCategory change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1115
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
  1116
    |newChange|
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
  1117
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1118
    newChange := MethodCategoryChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1119
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1120
                        selector:(aClass selectorAtMethod:aMethod)
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1121
                        category:newCategory.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1122
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1123
    self addChange:newChange
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
  1124
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1125
    "Modified: / 14.11.2001 / 13:35:48 / cg"
44
claus
parents: 39
diff changeset
  1126
!
claus
parents: 39
diff changeset
  1127
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1128
addMethodChange:aMethod fromOld:oldMethod in:aClass
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1129
    "add a method change to the receiver"
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1130
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1131
    |newChange|
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1132
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1133
    newChange := MethodChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1134
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1135
                        selector:aMethod selector
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1136
                        source:aMethod source
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1137
                        category:aMethod category.
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1138
    oldMethod notNil ifTrue:[
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1139
        newChange previousVersion:oldMethod.
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1140
    ].
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1141
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1142
    self addChange:newChange.
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1143
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1144
    "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
  1145
!
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1146
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1147
addMethodChange:aMethod in:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1148
    "add a method change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1149
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1150
    |newChange|
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1151
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1152
    newChange := MethodChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1153
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1154
                        selector:aMethod selector
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1155
                        source:aMethod source
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1156
                        category:aMethod category.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1157
    newChange package:(aMethod package).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1158
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1159
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1160
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1161
    "Modified: / 12-10-2006 / 18:15:28 / cg"
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1162
!
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1163
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1164
addMethodPackageChange:aMethod package:newPackage in:aClass
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1165
    "add a methodPackage change to the receiver"
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1166
2934
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1167
    |newChange selector|
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1168
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1169
    selector := (aClass selectorAtMethod:aMethod).
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1170
    selector isNil ifTrue:[^ self].
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1171
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1172
    newChange := MethodPackageChange 
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1173
                        class:aClass
2934
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1174
                        selector:selector
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1175
                        package:newPackage.
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1176
    self rememberChangedClass:aClass.
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1177
    self addChange:newChange
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1178
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1179
    "Created: / 09-10-2006 / 14:02:33 / cg"
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1180
!
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1181
44
claus
parents: 39
diff changeset
  1182
addMethodPrivacyChange:aMethod in:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1183
    "add a methodPrivacy change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1184
44
claus
parents: 39
diff changeset
  1185
    |newChange|
claus
parents: 39
diff changeset
  1186
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1187
    newChange := MethodPrivacyChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1188
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1189
                        selector:(aClass selectorAtMethod:aMethod)
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1190
                        privacy:aMethod privacy.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1191
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1192
    self addChange:newChange
44
claus
parents: 39
diff changeset
  1193
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1194
    "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
  1195
    "Modified: / 14.11.2001 / 13:35:55 / cg"
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1196
!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1197
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1198
addPrimitiveDefinitionsChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1199
    "add a primitiveDefinitions change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1200
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1201
    |newChange|
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1202
783
90ffa6f0a86b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  1203
    newChange := ClassPrimitiveDefinitionsChange new
1287
faf72a0bc34a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
  1204
                        class:aClass source:(aClass primitiveDefinitionsString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1205
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1206
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1207
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1208
    "Modified: / 14.11.2001 / 13:35:57 / cg"
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1209
!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1210
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1211
addPrimitiveFunctionsChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1212
    "add a primitiveFunctions change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1213
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1214
    |newChange|
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1215
783
90ffa6f0a86b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  1216
    newChange := ClassPrimitiveFunctionsChange new
1287
faf72a0bc34a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
  1217
                        class:aClass source:(aClass primitiveFunctionsString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1218
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1219
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1220
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1221
    "Modified: / 14.11.2001 / 13:35:59 / cg"
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1222
!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1223
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1224
addPrimitiveVariablesChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1225
    "add a primitiveVariables change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1226
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1227
    |newChange|
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1228
783
90ffa6f0a86b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  1229
    newChange := ClassPrimitiveVariablesChange new
1287
faf72a0bc34a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
  1230
                         class:aClass source:(aClass primitiveVariablesString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1231
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1232
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1233
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1234
    "Modified: / 14.11.2001 / 13:36:01 / cg"
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1235
!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1236
1164
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
  1237
addRemoveSelectorChange:aSelector fromOld:oldMethod in:aClass
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1238
    "add a method-remove change to the receiver"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1239
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1240
    |newChange|
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1241
1081
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1242
    newChange := MethodRemoveChange class:aClass selector:aSelector.
1164
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
  1243
    oldMethod notNil ifTrue:[
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1244
        newChange previousVersion:oldMethod.
1164
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
  1245
    ].
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1246
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1247
    self addChange:newChange
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1248
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1249
    "Modified: / 27.8.1995 / 22:55:22 / claus"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1250
    "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
  1251
    "Modified: / 14.11.2001 / 13:36:04 / cg"
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1252
!
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1253
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1254
addRenameCategoryChangeIn:aClass from:oldCategory to:newCategory
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1255
    "add a category rename change to the receiver"
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1256
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1257
    |newChange|
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1258
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1259
    newChange := MethodCategoryRenameChange class:aClass.
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1260
    newChange oldCategoryName:oldCategory newCategoryName:newCategory.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1261
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1262
    self addChange:newChange
1105
b27c0d72d7d0 avoid useless change notifications from #collect:, #select: etc.
Claus Gittinger <cg@exept.de>
parents: 1102
diff changeset
  1263
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1264
    "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
  1265
! !
b27c0d72d7d0 avoid useless change notifications from #collect:, #select: etc.
Claus Gittinger <cg@exept.de>
parents: 1102
diff changeset
  1266
3428
0fdab73d067c Bugfix in ChangeSet >> #saveToStream:format: use #nextPutAllAsChunk: to double exclams.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3421
diff changeset
  1267
!ChangeSet methodsFor:'enumerating'!
0fdab73d067c Bugfix in ChangeSet >> #saveToStream:format: use #nextPutAllAsChunk: to double exclams.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3421
diff changeset
  1268
0fdab73d067c Bugfix in ChangeSet >> #saveToStream:format: use #nextPutAllAsChunk: to double exclams.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3421
diff changeset
  1269
rejectAllVersionMethodChanges
0fdab73d067c Bugfix in ChangeSet >> #saveToStream:format: use #nextPutAllAsChunk: to double exclams.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3421
diff changeset
  1270
    "Return a new ChangeSet without version_XXX methods"
0fdab73d067c Bugfix in ChangeSet >> #saveToStream:format: use #nextPutAllAsChunk: to double exclams.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3421
diff changeset
  1271
0fdab73d067c Bugfix in ChangeSet >> #saveToStream:format: use #nextPutAllAsChunk: to double exclams.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3421
diff changeset
  1272
    ^ self reject:[:each | each isMethodCodeChange and:[(AbstractSourceCodeManager isVersionMethodSelector: each selector) ]].
0fdab73d067c Bugfix in ChangeSet >> #saveToStream:format: use #nextPutAllAsChunk: to double exclams.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3421
diff changeset
  1273
0fdab73d067c Bugfix in ChangeSet >> #saveToStream:format: use #nextPutAllAsChunk: to double exclams.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3421
diff changeset
  1274
    "Created: / 06-01-2014 / 21:13:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0fdab73d067c Bugfix in ChangeSet >> #saveToStream:format: use #nextPutAllAsChunk: to double exclams.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3421
diff changeset
  1275
! !
0fdab73d067c Bugfix in ChangeSet >> #saveToStream:format: use #nextPutAllAsChunk: to double exclams.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3421
diff changeset
  1276
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1277
!ChangeSet methodsFor:'fileOut'!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1278
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1279
fileOutAs: aStringOrFilename
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1280
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1281
    | stream |
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1282
    stream := aStringOrFilename asFilename writeStream.
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1283
    [ self fileOutOn: stream ]
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1284
        ensure: [stream close]
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1285
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1286
    "Created: / 05-12-2009 / 12:33:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1287
!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1288
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1289
fileOutOn: stream
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1290
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1291
    self do:[:chg|chg fileOutOn: stream]
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1292
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1293
    "Created: / 05-12-2009 / 12:32:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1294
! !
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1295
3412
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
  1296
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1297
!ChangeSet methodsFor:'misc'!
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1298
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1299
addPatch:nameOfPatch
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1300
    "ignored for now - allows fileIn of ST-80 patch stuff .."
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1301
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1302
    ^ self
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1303
! !
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1304
3412
b66687ac057c Better progress reporting in ChangeSet>>#fromDirectory:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3397
diff changeset
  1305
1263
14ef737d93a8 method category rename
Claus Gittinger <cg@exept.de>
parents: 1247
diff changeset
  1306
!ChangeSet methodsFor:'private-accessing'!
1098
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
  1307
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1308
addChange:aChange
2053
590bf720dfd4 dont add nil to a set
Claus Gittinger <cg@exept.de>
parents: 2046
diff changeset
  1309
    |changeClass|
590bf720dfd4 dont add nil to a set
Claus Gittinger <cg@exept.de>
parents: 2046
diff changeset
  1310
1898
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1311
    aChange timeOfChangeIfKnown isNil ifTrue:[
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1312
        aChange timeStamp:(Timestamp now).
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1313
    ].
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1314
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1315
    self add:aChange.
1471
d3a32a4b689b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1453
diff changeset
  1316
    changedClasses notNil ifTrue:[
2053
590bf720dfd4 dont add nil to a set
Claus Gittinger <cg@exept.de>
parents: 2046
diff changeset
  1317
        (changeClass := aChange changeClass) notNil ifTrue:[      
590bf720dfd4 dont add nil to a set
Claus Gittinger <cg@exept.de>
parents: 2046
diff changeset
  1318
            changedClasses add:changeClass.
590bf720dfd4 dont add nil to a set
Claus Gittinger <cg@exept.de>
parents: 2046
diff changeset
  1319
        ].
1471
d3a32a4b689b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1453
diff changeset
  1320
    ].
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1321
    changeSelectors notNil ifTrue:[
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1322
        aChange isMethodChange ifTrue:[
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1323
            changeSelectors add:aChange selector.
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1324
        ].
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1325
    ].
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1326
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1327
"/    aChange sendChangeNotificationThroughSmalltalk. 
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1328
    self changed:#addChange: with:aChange.
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1329
1898
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1330
    "Created: / 14-11-2001 / 13:35:11 / cg"
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1331
    "Modified: / 10-11-2006 / 16:47:13 / cg"
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1332
!
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1333
1479
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1334
flushChangedClassesCache
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1335
    changedClasses := changeSelectors := nil
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1336
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1337
    "
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1338
     ChangeSet current flushChangedClassesCache
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1339
    "
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1340
!
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1341
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1342
rememberChangedClass:aClass
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1343
    changedClasses notNil ifTrue:[
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1344
        changedClasses add:aClass
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1345
    ].
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1346
!
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1347
1098
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
  1348
removeAll:aCollection
1301
b747d11e7ff8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
  1349
    aCollection notEmpty ifTrue:[
b747d11e7ff8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
  1350
        super removeAll:aCollection.
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1351
        changedClasses := changeSelectors := nil.
1301
b747d11e7ff8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
  1352
        self changed:#removeAll: with:aCollection.
b747d11e7ff8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
  1353
    ]
1421
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1354
!
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1355
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1356
unrememberChangedClasses
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1357
    changedClasses := nil
1098
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
  1358
! !
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
  1359
1034
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1360
!ChangeSet methodsFor:'queries'!
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1361
2160
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1362
changedPackages
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1363
    "return a collection of all packages for which changes are in this changeSet"
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1364
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1365
    |classes changedPackages|
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1366
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1367
    changedPackages := Set new.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1368
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1369
    self do:[:chg |
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1370
        |p mthd cls|
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1371
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1372
        p := chg package.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1373
        p isNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1374
            chg isMethodChange ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1375
                mthd := chg changeMethod.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1376
                mthd notNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1377
                    p := mthd package.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1378
                ] ifFalse:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1379
                    cls := chg changeClass.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1380
                    cls notNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1381
                        p := cls package.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1382
                    ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1383
                ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1384
            ] ifFalse:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1385
                chg isClassChange ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1386
                    cls := chg changeClass.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1387
                    cls notNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1388
                        p := cls package.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1389
                    ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1390
                ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1391
            ].
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1392
        ].
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1393
        p notNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1394
            changedPackages add:p.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1395
        ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1396
    ].
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1397
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1398
"/    self changedClasses do:[:cls |
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1399
"/        |p|
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1400
"/
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1401
"/        (p := cls package) notNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1402
"/            changedPackages add:p.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1403
"/        ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1404
"/    ].
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1405
    ^ changedPackages.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1406
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1407
    "
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1408
     ChangeSet current changedPackages  
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1409
    "
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1410
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1411
    "Created: / 22-09-2006 / 16:37:40 / cg"
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1412
    "Modified: / 13-10-2006 / 01:20:48 / cg"
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1413
!
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1414
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1415
changesForPackage:aPackageSymbol
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1416
    ^(self select:[:aChange |
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1417
        |includeThis mClass mthd|
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1418
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1419
        includeThis := false.
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1420
        (aChange isMethodChange or:[aChange isMethodRemoveChange]) ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1421
            mClass := aChange changeClass.
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1422
            mClass notNil ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1423
                mthd := mClass compiledMethodAt:(aChange selector).
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1424
                mthd isNil ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1425
                    aChange isMethodRemoveChange ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1426
                        includeThis := (mClass package = aPackageSymbol)
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1427
                    ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1428
                ] ifFalse:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1429
                    includeThis := (mthd package = aPackageSymbol)
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1430
                ]
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1431
            ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1432
        ] ifFalse:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1433
            (aChange isClassChange) ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1434
                (aChange changeClass notNil) ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1435
                    includeThis := (aChange changeClass package = aPackageSymbol)
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1436
                ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1437
            ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1438
        ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1439
        includeThis
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1440
    ])
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1441
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1442
    "
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1443
     ChangeSet current changesForPackage:#'stx:goodies/libsvn'
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1444
    "
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1445
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1446
    "Created: / 05-11-2001 / 14:21:17 / cg"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1447
    "Modified: / 12-10-2006 / 16:51:27 / cg"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1448
    "Modified: / 22-10-2008 / 13:25:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1449
    "Modified (comment): / 26-07-2012 / 11:54:00 / cg"
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1450
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1451
1034
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1452
includesChangeForClass:aClass
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1453
    |nameOfClass|
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1454
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1455
    nameOfClass := aClass theNonMetaclass name.
3309
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1456
    ^ self includesChangeForClassNamed:nameOfClass
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1457
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1458
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1459
     ChangeSet current includesChangeForClass:ChangeSet
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1460
     ChangeSet current includesChangeForClass:ChangeSet class
1686
7d2c1f9f63e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1521
diff changeset
  1461
     ChangeSet current includesChangeForClass:SourceCodeManagerUtilities
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1462
     ChangeSet current includesChangeForClass:(Expecco::ExpeccoXMLDecoder::ObjectCreator)
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1463
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1464
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1465
    "Modified: / 09-10-2006 / 13:39:22 / cg"
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1466
!
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1467
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1468
includesChangeForClass:aClass selector:selector
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1469
    |nameOfNonMetaClass nameOfClass|
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1470
1478
400bfb0e4ea9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1476
diff changeset
  1471
    (self changeSelectors includes:selector) ifFalse:[^ false].
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1472
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1473
    nameOfNonMetaClass := aClass theNonMetaclass name.
2973
312e2e952094 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1474
    (self changedClasses contains:[:someClass | someClass theNonMetaclass name = nameOfNonMetaClass]) ifFalse:[^ false].
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1475
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1476
    nameOfClass := aClass name.
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1477
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1478
    ^ self contains:[:aChange | 
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1479
                        selector = aChange selector 
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1480
                        ifFalse:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1481
                            false
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1482
                        ] ifTrue:[
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1483
                            nameOfClass = aChange className
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1484
                        ]
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1485
                    ]
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1486
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1487
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1488
     ChangeSet current includesChangeForClass:ChangeSet selector:#includesChangeForClass:
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1489
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1490
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1491
    "Created: / 31.10.2001 / 10:26:31 / cg"
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1492
    "Modified: / 31.10.2001 / 10:59:49 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1493
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1494
3309
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1495
includesChangeForClassNamed:aClassName
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1496
    (self changedClasses contains:[:aClass | aClass theNonMetaclass name = aClassName]) ifFalse:[^ false].
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1497
    ^ self contains:[:aChange | aChange className = aClassName]
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1498
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1499
    "
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1500
     ChangeSet current includesChangeForClassNamed:'ChangeSet'
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1501
    "
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1502
!
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1503
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1504
includesChangeForClassOrMetaclass:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1505
    |nameOfClass nameOfMetaclass|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1506
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1507
    nameOfClass := aClass theNonMetaclass name.
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1508
    nameOfMetaclass := aClass theMetaclass name.
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1509
1920
4365130e896f bad spelling of methodname
Stefan Vogel <sv@exept.de>
parents: 1918
diff changeset
  1510
    (self changedClasses contains:[:eachClass | eachClass theNonMetaclass name = nameOfClass]) ifFalse:[
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1511
        ^ false.
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1512
    ].
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1513
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1514
1920
4365130e896f bad spelling of methodname
Stefan Vogel <sv@exept.de>
parents: 1918
diff changeset
  1515
    ^ self contains:[:eachChange | 
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1516
                        |changeClassName|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1517
1920
4365130e896f bad spelling of methodname
Stefan Vogel <sv@exept.de>
parents: 1918
diff changeset
  1518
                        changeClassName := eachChange className.
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1519
                        changeClassName = nameOfClass or:[changeClassName = nameOfMetaclass]
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1520
                    ]
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1521
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1522
    "Modified: / 09-10-2006 / 13:40:29 / cg"
1127
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1523
!
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1524
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1525
includesChangeForClassOrMetaclassOrPrivateClassOf:aClass
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1526
    |nameOfClass nameOfMetaclass|
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1527
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1528
    nameOfClass := aClass theNonMetaclass name.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1529
    nameOfMetaclass := aClass theMetaclass name.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1530
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1531
    self do:[:aChange | 
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1532
        |changeClassName changeClass|
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1533
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1534
        changeClassName := aChange className.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1535
        (changeClassName = nameOfClass) ifTrue:[^ true].
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1536
        (changeClassName = nameOfMetaclass) ifTrue:[^ true].
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1537
1127
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1538
        changeClass := aChange changeClass.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1539
        (changeClass notNil
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1540
        and:[changeClass isPrivate
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1541
        and:[changeClass owningClass == aClass]]) ifTrue:[
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1542
            ^ true
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1543
        ]
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1544
    ].
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1545
    ^ false
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1546
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1547
    "Modified (format): / 25-07-2012 / 16:50:26 / cg"
1885
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1548
!
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1549
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1550
includesChangeForClassOrMetaclassOrPrivateClassOfAny:aCollectionOfClasses
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1551
    |namesOfClasses namesOfMetaclasses|
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1552
3176
bf3e3ac08152 Don't do collect:[] as:Array and select:[] as:Array
Stefan Vogel <sv@exept.de>
parents: 3174
diff changeset
  1553
    namesOfClasses := (aCollectionOfClasses collect:[:eachClass | eachClass theNonMetaclass name]) asArray.
bf3e3ac08152 Don't do collect:[] as:Array and select:[] as:Array
Stefan Vogel <sv@exept.de>
parents: 3174
diff changeset
  1554
    namesOfMetaclasses := (aCollectionOfClasses collect:[:eachClass | eachClass theMetaclass name]) asArray.
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1555
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1556
    self do:[:aChange | 
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1557
        |changeClassName changeClass|
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1558
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1559
        changeClassName := aChange className.
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1560
        (namesOfClasses includes:changeClassName) ifTrue:[^ true].
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1561
        (namesOfMetaclasses includes:changeClassName) ifTrue:[^ true].
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1562
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1563
        changeClass := aChange changeClass.
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1564
        (changeClass notNil and:[changeClass isPrivate]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1565
            (aCollectionOfClasses includes:changeClass owningClass) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1566
                ^ true
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1567
            ].
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1568
        ]
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1569
    ].
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1570
    ^ false
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1571
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1572
    "Created: / 08-09-2011 / 04:24:26 / cg"
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1573
!
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1574
1885
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1575
includesChangeForPackage:aPackageID
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1576
    ^ self changedPackages includes:aPackageID
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1577
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1578
"/    ^ self contains:[:aChange | aChange package = aPackageID]
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1579
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1580
    "
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1581
     ChangeSet current includesChangeForPackage:'stx:libbasic'
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1582
    "
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1583
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1584
    "Created: / 25-10-2006 / 18:06:55 / cg"
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1585
!
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1586
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1587
selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:aCollectionOfClasses 
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1588
    "return the set of classes from a given collection, for which I have changes."
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1589
    
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1590
    |selected alreadyProcessed classes prev|
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1591
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1592
    classes := (aCollectionOfClasses 
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1593
            collect:[:eachClass | eachClass theNonMetaclass]) as:IdentitySet.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1594
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1595
    selected := IdentitySet new.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1596
    alreadyProcessed := IdentitySet new.
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1597
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1598
    self do:[:eachChange | 
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1599
        |changeClassName changeClass isIn|
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1600
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1601
        changeClass := eachChange changeClass.
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1602
        (changeClass notNil and:[changeClass ~~ prev]) ifTrue:[
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1603
            changeClass := changeClass theNonMetaclass.
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1604
            (alreadyProcessed includes:changeClass) ifFalse:[
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1605
                (classes includes:changeClass) ifTrue:[
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1606
                    selected add:changeClass
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1607
                ].
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1608
                
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1609
                "/ Care for private classes. If one of its owningClass
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1610
                "/ is in the given collection, add **that owningClass** into
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1611
                "/ result too!!!!
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1612
                
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1613
                changeClass isPrivate ifTrue:[
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1614
                    |owner|
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1615
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1616
                    owner := changeClass owningClass.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1617
                    [owner notNil] whileTrue:[
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1618
                        (classes includes:owner) ifTrue:[
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1619
                            selected add:owner.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1620
                            owner := nil.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1621
                        ] ifFalse:[
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1622
                            owner := owner owningClass.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1623
                        ].
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1624
                    ].
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1625
                ].
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1626
                alreadyProcessed add: changeClass.
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1627
            ].
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1628
            prev := changeClass.
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1629
        ].
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1630
    ].
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1631
    ^ selected.
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1632
2907
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1633
    "Created: / 04-09-2012 / 14:01:37 / cg"
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1634
    "Modified: / 09-08-2013 / 12:40:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2907
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1635
!
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1636
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1637
selectForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:aCollectionOfClasses
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1638
    "select changes for one of a given class.
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1639
     Returns a collection of changes"
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1640
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1641
    |selected  classes |
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1642
3176
bf3e3ac08152 Don't do collect:[] as:Array and select:[] as:Array
Stefan Vogel <sv@exept.de>
parents: 3174
diff changeset
  1643
    classes := (aCollectionOfClasses collect:[:eachClass | eachClass theNonMetaclass]) asArray.
2907
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1644
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1645
    selected := ChangeSet new.
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1646
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1647
    self do:[:eachChange | 
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1648
        |changeClassName changeClass isIn|
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1649
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1650
        changeClass := eachChange changeClass.
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1651
        (changeClass notNil) ifTrue:[
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1652
            changeClass := changeClass theNonMetaclass.
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1653
            ((classes includes:changeClass)
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1654
                or: [
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1655
                    changeClass isPrivate
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1656
                    and: [ (classes includes:changeClass owningClass) ]
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1657
                ]
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1658
            ) ifTrue:[
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1659
                selected add: eachChange
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1660
            ].
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1661
        ]
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1662
    ].
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1663
    ^ selected.
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1664
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1665
    "Created: / 08-09-2011 / 04:38:32 / cg"
1034
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1666
! !
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1667
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1668
!ChangeSet methodsFor:'utilities'!
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1669
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1670
apply
3222
a6996f259211 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3218
diff changeset
  1671
    "apply all changes in the receiver's changeSet"
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1672
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1673
    self do:[:aChange |
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1674
        aChange apply
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1675
    ]
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1676
!
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1677
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1678
condenseChanges
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1679
    | changesToRemove changesToKeep |
2951
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1680
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1681
    changesToKeep := self class new.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1682
    changesToRemove := self class new.
2951
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1683
    self reverseDo:[:change|
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1684
        (changesToKeep anySatisfy:[:each|each isForSameAs: change])
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1685
            ifTrue:[changesToRemove add: change]
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1686
            ifFalse:[changesToKeep add: change]
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1687
    ].
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1688
    self condenseChanges: changesToRemove.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1689
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1690
    "Created: / 22-10-2008 / 13:05:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1691
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1692
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1693
condenseChanges:changesToRemove
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1694
    "remove the given changes - a helper for the rest of the condense protocol"
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1695
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1696
    changesToRemove notEmpty ifTrue:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1697
        changedClasses := changeSelectors := nil.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1698
        self removeAll:changesToRemove.
2953
70c659738d00 comment/format in: #condenseChangesForRemoved
Claus Gittinger <cg@exept.de>
parents: 2952
diff changeset
  1699
        "/ self changed. "/  -- removeAll already sends out a notification
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1700
        Smalltalk changed:#currentChangeSet with:self.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1701
    ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1702
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1703
    "Created: / 12-10-2006 / 16:51:11 / cg"
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1704
!
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1705
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1706
condenseChangesForClass:aClass 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1707
    "remove all changes for aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1708
     (i.e. leave changes for other classes)."
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1709
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1710
    self condenseChangesForClass:aClass package:nil
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1711
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1712
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1713
condenseChangesForClass:aClass package:aPackageSymbol
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1714
    "remove all changes for aClass and aPackageSymbol
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1715
     (i.e. leave methodChanges for other packages).
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1716
     This is invoked when a class is checked into the repository."
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1717
1186
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1718
    self condenseChangesForClass:aClass selector:nil package:aPackageSymbol
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1719
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1720
    "Modified: / 5.11.2001 / 14:29:22 / cg"
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1721
!
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1722
1830
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1723
condenseChangesForClass:aClass selector:aSelector
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1724
    "remove all changes for aClass >> selector."
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1725
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1726
    self condenseChangesForClass:aClass selector:aSelector package:nil
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1727
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1728
    "Created: / 26-09-2006 / 17:22:59 / cg"
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1729
!
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1730
1186
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1731
condenseChangesForClass:aClass selector:selectorOrNil package:aPackageSymbol
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1732
    "remove all changes for aClass/selector and aPackageSymbol
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1733
     (i.e. leave methodChanges for other packages).
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1734
     If selectorOrNil is nil, all changes for that class are removed;
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1735
     otherwise, only changes for the given selector.
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1736
     This is invoked when a class is checked into the repository."
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1737
945
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1738
    |changesToRemove className metaClassName chgCls|
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1739
945
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1740
    className := aClass theNonMetaclass name.
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1741
    metaClassName := aClass theMetaclass name.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1742
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1743
    changesToRemove := self select:[:aChange | 
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1744
        |chgClassName chgClass removeThis mClass mthd|
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1745
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1746
        removeThis := false.
945
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1747
        chgClassName := aChange className.
1168
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1748
        (chgClassName = className or:[chgClassName = metaClassName]) ifTrue:[
1187
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1749
            removeThis := true
944
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1750
        ] ifFalse:[
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1751
            chgCls := aChange changeClass.
1718
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1752
            chgCls isNil ifTrue:[
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1753
                (chgClassName startsWith:(aClass name,':')) ifTrue:[
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1754
                    "a change for a private class of a no-longer present one..."
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1755
                        removeThis := true
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1756
                ].
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1757
            ].
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1758
944
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1759
            (chgCls notNil
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1760
            and:[chgCls isPrivate
1190
02e2436893b6 condense after checkin: also condense sub-sub-private classes
Claus Gittinger <cg@exept.de>
parents: 1188
diff changeset
  1761
            and:[chgCls topOwningClass == aClass]]) ifTrue:[
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1762
                removeThis := true
944
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1763
            ]
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1764
        ].
1186
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1765
        selectorOrNil notNil ifTrue:[
1187
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1766
            (aChange isMethodChange or:[aChange isMethodRemoveChange]) ifFalse:[
1186
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1767
                removeThis := false.
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1768
            ] ifTrue:[
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1769
                aChange selector = selectorOrNil ifFalse:[
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1770
                    removeThis := false.
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1771
                ].
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1772
            ]
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1773
        ].
1187
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1774
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1775
        removeThis ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1776
            aChange isMethodChange ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1777
                mClass := aChange changeClass.
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1778
                mClass notNil ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1779
                    mthd := mClass compiledMethodAt:(aChange selector).
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1780
                    mthd isNil ifTrue:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1781
                        "/ mthd does no longer exist
1168
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1782
"/ I no longer understand what this was meant for .. (sigh)
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1783
"/                        aPackageSymbol notNil ifTrue:[
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1784
"/                            removeThis := false
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1785
"/                        ]
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1786
                    ] ifFalse:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1787
                        (aPackageSymbol notNil and:[mthd package ~= aPackageSymbol]) ifTrue:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1788
                            removeThis := false
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1789
                        ]
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1790
                    ]
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1791
                ]
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1792
            ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1793
        ].
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1794
        removeThis
1301
b747d11e7ff8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
  1795
    ].
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1796
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1797
    self condenseChanges:changesToRemove
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1798
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1799
    "Modified: / 12-10-2006 / 16:51:38 / cg"
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1800
!
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1801
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1802
condenseChangesForExtensionsInPackage:aPackageSymbol
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1803
    "remove all changes for aClass and aPackageSymbol
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1804
     (i.e. leave methodChanges for other packages).
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1805
     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
  1806
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1807
    |changesToRemove|
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1808
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1809
    changesToRemove := OrderedCollection new.
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1810
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1811
    changesToRemove := self select:[:aChange | 
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1812
        |removeThis mClass mthd|
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1813
1187
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1814
        (aChange isMethodChange or:[aChange isMethodRemoveChange]) ifTrue:[
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1815
            removeThis := false.
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1816
            mClass := aChange changeClass.
2954
610092201d2c changed: #condenseChangesForExtensionsInPackage:
Claus Gittinger <cg@exept.de>
parents: 2953
diff changeset
  1817
            (mClass notNil and:[mClass package ~= aPackageSymbol]) ifTrue:[
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1818
                mthd := mClass compiledMethodAt:(aChange selector).
1187
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1819
                mthd isNil ifTrue:[
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1820
                    aChange isMethodRemoveChange ifTrue:[
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1821
                        removeThis := true
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1822
                    ].
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1823
                ] ifFalse:[
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1824
                    mthd package = aPackageSymbol ifTrue:[
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1825
                        removeThis := true
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1826
                    ]
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1827
                ]
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1828
            ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1829
        ].
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1830
        removeThis
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1831
    ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1832
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1833
    self condenseChanges:changesToRemove
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1834
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1835
    "Created: / 05-11-2001 / 14:21:17 / cg"
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1836
    "Modified: / 12-10-2006 / 16:51:32 / cg"
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1837
!
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1838
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1839
condenseChangesForPackage:aPackageSymbol
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1840
    "remove all changes for aPackageSymbol
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1841
     This is invoked when a project is checked into the repository."
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1842
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1843
    |changesToRemove|
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1844
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1845
    changesToRemove := self select:[:aChange | 
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1846
        |removeThis mClass mthd|
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1847
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1848
        removeThis := false.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1849
        (aChange isMethodChange or:[aChange isMethodRemoveChange]) ifTrue:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1850
            mClass := aChange changeClass.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1851
            mClass notNil ifTrue:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1852
                mthd := mClass compiledMethodAt:(aChange selector).
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1853
                mthd isNil ifTrue:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1854
                    aChange isMethodRemoveChange ifTrue:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1855
                        removeThis := (mClass package = aPackageSymbol)
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1856
                    ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1857
                ] ifFalse:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1858
                    removeThis := (mthd package = aPackageSymbol)
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1859
                ]
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1860
            ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1861
        ] ifFalse:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1862
            (aChange isClassChange) ifTrue:[
1883
40975a15e85f *** empty log message ***
sr
parents: 1876
diff changeset
  1863
                (aChange changeClass notNil) ifTrue:[
40975a15e85f *** empty log message ***
sr
parents: 1876
diff changeset
  1864
                    removeThis := (aChange changeClass package = aPackageSymbol)     
40975a15e85f *** empty log message ***
sr
parents: 1876
diff changeset
  1865
                ].
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1866
            ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1867
        ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1868
        removeThis
1521
ea6cb41e4523 send out a change notification, when I condensed
Claus Gittinger <cg@exept.de>
parents: 1479
diff changeset
  1869
    ].
ea6cb41e4523 send out a change notification, when I condensed
Claus Gittinger <cg@exept.de>
parents: 1479
diff changeset
  1870
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1871
    self condenseChanges:changesToRemove
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1872
1521
ea6cb41e4523 send out a change notification, when I condensed
Claus Gittinger <cg@exept.de>
parents: 1479
diff changeset
  1873
    "Created: / 05-11-2001 / 14:21:17 / cg"
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1874
    "Modified: / 12-10-2006 / 16:51:27 / cg"
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1875
!
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1876
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1877
diffSetsAgainst:anotherChangeSet
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1878
    "walk over the receiver and anotherChangeSet,
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1879
     add all changes to one of the tree lists:
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1880
        onlyInReceiver, onlyInArg or changed,
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1881
     each being a changeSet containing corresponding changes.
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  1882
     WARNING: 
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  1883
        destructive; could modify both the receiver and the argument by possibly
2633
5a5460e5231a comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2626
diff changeset
  1884
        changing methodChanges into categoryChanges"
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1885
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1886
    |otherChangeIndicesBySelector otherNonMethodChangeIndices changeIndicesBySelector nonMethodChangeIndices
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1887
     onlyInReceiver onlyInArg changedMethods same
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1888
     indexFromChangedMethodsToA indexFromChangedMethodsToB
864
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1889
     "info" ret|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1890
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1891
    onlyInReceiver := ChangeSet new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1892
    onlyInArg      := ChangeSet new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1893
    changedMethods := ChangeSet new.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1894
    same           := ChangeSet new.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1895
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1896
    indexFromChangedMethodsToA := OrderedCollection new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1897
    indexFromChangedMethodsToB := OrderedCollection new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1898
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1899
    otherChangeIndicesBySelector := Dictionary new.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1900
    otherNonMethodChangeIndices := OrderedCollection new.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1901
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1902
    "/ these caches reduces square runtime to almost linear...
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1903
    anotherChangeSet keysAndValuesDo:[:idxB :aChangeInB |
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1904
        |setOfOtherChangeIndicesForThisSelector|
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1905
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1906
        aChangeInB isMethodChange ifTrue:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1907
            setOfOtherChangeIndicesForThisSelector := otherChangeIndicesBySelector at:(aChangeInB selector) ifAbsentPut:[OrderedCollection new].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1908
            setOfOtherChangeIndicesForThisSelector add:idxB.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1909
        ] ifFalse:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1910
            otherNonMethodChangeIndices add:idxB
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1911
        ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1912
    ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1913
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1914
    self keysAndValuesDo:[:idxA :aChangeInA |
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1915
        |indicesOfChangesToExplore anyFound ch|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1916
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1917
        anyFound := false.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1918
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1919
        aChangeInA isMethodChange ifTrue:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1920
            indicesOfChangesToExplore := otherChangeIndicesBySelector at:(aChangeInA selector) ifAbsent:#()
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1921
        ] ifFalse:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1922
            indicesOfChangesToExplore := otherNonMethodChangeIndices.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1923
        ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1924
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1925
        indicesOfChangesToExplore do:[:idxB |
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1926
            |aChangeInB|
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1927
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1928
            aChangeInB := anotherChangeSet at:idxB.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1929
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1930
            (aChangeInA isForSameAs:aChangeInB) ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1931
                anyFound := true.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1932
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1933
                "/ also in B - is it different ?
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1934
                (aChangeInA sameAs:aChangeInB) ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1935
                    changedMethods add:aChangeInA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1936
                    indexFromChangedMethodsToA add:idxA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1937
                    indexFromChangedMethodsToB add:idxB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1938
                ] ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1939
                    aChangeInA isMethodChange ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1940
                        aChangeInA methodCategory ~= aChangeInB methodCategory ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1941
                            "/ only the category is different;
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1942
                            "/ make it a MethodCategory changes.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1943
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1944
                            ch := MethodCategoryChange new
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1945
                                    className:aChangeInA className
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1946
                                    selector:aChangeInA selector
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1947
                                    category:aChangeInA methodCategory;
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1948
                                    "JV@2012-03-20: Also keeps origin, required by merge tool"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1949
                                    origin: aChangeInA.
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1950
                            self at:idxA put:ch.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1951
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1952
                            ch := MethodCategoryChange new
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1953
                                    className:aChangeInB className
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1954
                                    selector:aChangeInB selector
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1955
                                    category:aChangeInB methodCategory;
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1956
                                    "JV@2012-03-20: Also keeps origin, required by merge tool"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1957
                                    origin: aChangeInB.
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1958
                            anotherChangeSet at:idxB put:ch.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1959
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1960
                            changedMethods add:aChangeInA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1961
                            indexFromChangedMethodsToA add:idxA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1962
                            indexFromChangedMethodsToB add:idxB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1963
                        ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1964
                    ].
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1965
                ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1966
            ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1967
                (aChangeInA sameAs:aChangeInB) ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1968
                    anyFound := true.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1969
                ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1970
                ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1971
            ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1972
        ].
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1973
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1974
        anyFound ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1975
            onlyInReceiver add:aChangeInA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1976
        ]
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1977
    ].
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1978
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1979
    "/ these caches reduces square runtime to almost linear...
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1980
    changeIndicesBySelector := Dictionary new.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1981
    nonMethodChangeIndices := OrderedCollection new.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1982
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1983
    self keysAndValuesDo:[:idxA :aChangeInA |
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1984
        |setOfChangeIndicesForThisSelector|
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1985
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1986
        aChangeInA isMethodChange ifTrue:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1987
            setOfChangeIndicesForThisSelector := changeIndicesBySelector at:(aChangeInA selector) ifAbsentPut:[OrderedCollection new].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1988
            setOfChangeIndicesForThisSelector add:idxA.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1989
        ] ifFalse:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1990
            nonMethodChangeIndices add:idxA
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1991
        ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1992
    ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1993
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1994
    anotherChangeSet keysAndValuesDo:[:idxB :aChangeInB |
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1995
        |anyFound indicesOfChangesToExplore|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1996
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1997
        anyFound := false.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1998
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1999
        aChangeInB isMethodChange ifTrue:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2000
            indicesOfChangesToExplore := changeIndicesBySelector at:(aChangeInB selector) ifAbsent:#()
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2001
        ] ifFalse:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2002
            indicesOfChangesToExplore := nonMethodChangeIndices.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2003
        ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2004
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2005
        indicesOfChangesToExplore do:[:idxA |
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2006
            |aChangeInA idxM|
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2007
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2008
            aChangeInA := self at:idxA.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2009
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2010
            (aChangeInA isForSameAs:aChangeInB) ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2011
                anyFound := true.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2012
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2013
                "/ also in B - is it different ?
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2014
                (aChangeInA sameAs:aChangeInB) ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2015
                    "/ already there ?
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2016
                    idxM := changedMethods findFirst:[:c | c isForSameAs:aChangeInB].
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2017
                    idxM == 0 ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2018
                        changedMethods add:aChangeInB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2019
                        indexFromChangedMethodsToB add:idxB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2020
                    ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2021
                        indexFromChangedMethodsToB at:idxM put:idxB
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2022
                    ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2023
                ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2024
            ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2025
                (aChangeInA sameAs:aChangeInB) ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2026
                    anyFound := true.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2027
                ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2028
                ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2029
            ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2030
        ].
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2031
        anyFound ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2032
            onlyInArg add:aChangeInB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2033
        ]
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2034
    ].
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2035
864
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2036
"/    info := OrderedCollection new:(changedMethods size).
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2037
"/    changedMethods keysAndValuesDo:[:idx :changedMethod |
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2038
"/        info add:(Array 
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2039
"/                        with:(indexFromChangedMethodsToA at:idx)
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2040
"/                        with:(indexFromChangedMethodsToB at:idx)
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2041
"/                 )
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2042
"/    ].
1450
0ec14b2064fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
  2043
    changedMethods := (1 to:changedMethods size) asOrderedCollection collect:[:idx |
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2044
                        |cA cB|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2045
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2046
                        cA := self at:(indexFromChangedMethodsToA at:idx).
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2047
                        cB := anotherChangeSet at:(indexFromChangedMethodsToB at:idx).
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2048
                        Array with:cA with:cB
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2049
                      ].
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2050
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2051
    same := self reject:[:chg|(changedMethods contains:[:pair|pair first == chg]) or:[onlyInReceiver includes: chg]].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2052
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  2053
    ret := DiffSet new
1450
0ec14b2064fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
  2054
                changed:changedMethods
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  2055
                onlyInReceiver:onlyInReceiver
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2056
                onlyInArg:onlyInArg
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2057
                same: same.
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  2058
"/    ret info:info.
864
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2059
    ^ret
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  2060
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  2061
    "Modified: / 12-10-2006 / 22:22:39 / cg"
2633
5a5460e5231a comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2626
diff changeset
  2062
    "Modified (comment): / 01-12-2011 / 19:12:55 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2063
    "Modified: / 20-03-2012 / 22:05:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2064
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2065
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2066
diffSetsAgainstImage
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2067
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2068
    |imageChangeSet|
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2069
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2070
    imageChangeSet := self class new.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2071
    self changedClasses do:
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2072
	[:class|
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2073
	(class isMetaclass or:[class isPrivate]) ifFalse:
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2074
	    [imageChangeSet addAll:
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2075
		(self class fromStream: class source asString readStream)]].
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2076
    ^self diffSetsAgainst: imageChangeSet
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2077
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2078
    "Created: / 04-12-2007 / 16:03:28 / janfrog"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2079
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2080
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2081
flatten
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2082
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2083
    | flatten |
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2084
    flatten := self class new: self size.
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2085
    self do:[:ea|ea do:[:ea2|flatten add: ea2]].
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2086
    ^flatten
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2087
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2088
    "Created: / 29-10-2010 / 14:40:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2089
!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2090
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2091
groupBy: groupBlock labelAs: labelBlock
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2092
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2093
    "
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2094
        returns a new changeset consisting of CompositeChanges.
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2095
        Changes are grouped together by value (tag) of groupBlock.
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2096
        Each composite change is then labeled using label
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2097
        returned by labelBlock (called with the tag returned
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2098
        by groupBlock as arg)
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2099
    "
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2100
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2101
    ^ self groupBy: groupBlock labelAs: labelBlock sort: false
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2102
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2103
    "Created: / 24-07-2009 / 23:17:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2104
    "Modified: / 25-07-2009 / 19:40:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2105
    "Modified: / 29-10-2010 / 12:45:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2106
    "Modified: / 30-08-2011 / 16:07:30 / cg"
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2107
!
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2108
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2109
groupBy: groupBlock labelAs: labelBlock sort: doSort
2626
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2110
    "returns a new changeset consisting of CompositeChanges.
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2111
     Changes are grouped together by value (tag) of groupBlock.
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2112
     Each composite change is then labeled using label
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2113
     returned by labelBlock (called with the tag returned
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2114
     by groupBlock as arg)"
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2115
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2116
    | buckets newChangeset keys |
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2117
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2118
    buckets := OrderedDictionary new.
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2119
    self do:[:change| 
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2120
        | tag |
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2121
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2122
        tag := groupBlock value: change.
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2123
        (buckets at: tag ifAbsentPut: [self class new:4]) add: change
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2124
    ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2125
    newChangeset := self class new: buckets size.
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2126
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2127
    keys := buckets keys select:[:k | k notNil].
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2128
    doSort ifTrue:[ keys sort ].
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2129
    keys do:[:tag |
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2130
        |changes classDefs|
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2131
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2132
        changes := buckets at:tag.
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2133
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2134
        "Move class definition to the front"
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2135
        classDefs := changes select:[:chg|chg isClassDefinitionChange].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2136
        changes removeAll: classDefs.
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2137
        changes addAllFirst: classDefs.
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2138
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2139
        tag notNil ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2140
            newChangeset add:
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2141
                (CompositeChange 
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2142
                    name: (labelBlock value: tag)
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2143
                    changes: changes)
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2144
        ]
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2145
    ].
2626
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2146
    (buckets includesKey: nil) ifTrue:[
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2147
        newChangeset addAll: (buckets at: nil)
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2148
    ].
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2149
    ^newChangeset
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2150
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2151
    "Created: / 24-07-2009 / 23:17:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2152
    "Modified: / 25-07-2009 / 19:40:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2153
    "Modified: / 29-10-2010 / 12:45:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2154
    "Created: / 30-08-2011 / 16:07:01 / cg"
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2155
!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2156
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2157
groupByClass
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2158
    |nm|
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2159
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2160
    ^self
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2161
        groupBy: [:change|
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2162
            change isClassChange ifTrue: [
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2163
                nm := change className.
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2164
                (nm endsWith:' class') ifTrue:[nm := nm copyTo: nm size - 6].
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2165
                nm
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2166
            ] ifFalse: [
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2167
                nil
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2168
            ]
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2169
        ]
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2170
        labelAs: [:className|
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2171
            className
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2172
        ]
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2173
        sort: true
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2174
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2175
    "Created: / 25-07-2009 / 19:43:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2176
    "Modified: / 24-10-2009 / 18:49:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2177
    "Modified: / 30-08-2011 / 16:08:38 / cg"
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2178
!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2179
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2180
saveSignedToFile:aFilename
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2181
    "write the changeSet to a signed file in chunk format"
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2182
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2183
    self saveSignedToFile:aFilename format:nil
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2184
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2185
    "Created: / 08-02-2011 / 11:18:54 / cg"
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2186
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2187
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2188
saveSignedToFile:aFilename format:formatSymbolOrNil
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2189
    "write the changeSet to a signed file in some format.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2190
     Sign with the exept key (which you do not have outside of exept!!).
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2191
     Nil is chunk format (currently, the only supported)"
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2192
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2193
    |s pkcs7SignedData|
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2194
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2195
    self assert: (Smalltalk at:#'Expecco::KeyFileGenerator') notNil.
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2196
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2197
    s := WriteStream on:(String new:2000).
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2198
    self saveToStream:s format:formatSymbolOrNil.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2199
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2200
    pkcs7SignedData := (Smalltalk at:#'Expecco::KeyFileGenerator') new signExpeccoCode:s contents.
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2201
    aFilename asFilename contents:pkcs7SignedData.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2202
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2203
    "Modified (comment): / 26-07-2012 / 12:15:58 / cg"
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2204
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2205
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2206
saveToFile:aFilename
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2207
    "write the changeSet to a regular file in chunk format"
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2208
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2209
    self saveToFile:aFilename format:nil
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2210
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2211
    "Created: / 08-02-2011 / 11:18:46 / cg"
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2212
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2213
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2214
saveToFile:aFilename format:formatSymbolOrNil
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2215
    "Writes the changeSet to a regular file in some format.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2216
     Supported formats are:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2217
       nil ............ chunk changeset file
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2218
       #classSource ... class fileout format, assumes that
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2219
                        the receiver is a changeset containing
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2220
                        single class (possibly with its private 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2221
                        classes)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2222
    "
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2223
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2224
    |s|
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2225
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2226
    s := aFilename asFilename writeStream.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2227
    self saveToStream:s format:formatSymbolOrNil.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2228
    s close.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2229
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2230
    "Created: / 08-02-2011 / 11:20:06 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2231
    "Modified (comment): / 31-07-2012 / 13:38:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2232
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2233
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2234
saveToStream:aStream format:formatSymbolOrNil
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2235
    "Writes the changeSet to a stream in some format.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2236
     Supported formats are:
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  2237
       nil ............ chunk changeset file format
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2238
       #classSource ... class fileout format, assumes that
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2239
                        the receiver is a changeset containing
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2240
                        single class (possibly with its private 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2241
                        classes)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2242
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2243
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2244
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2245
    formatSymbolOrNil isNil ifTrue:[
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  2246
        ChangeFileWriter new fileOut:self on:aStream.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  2247
        ^ self.
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2248
    ].
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2249
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2250
    formatSymbolOrNil == #classSource ifTrue:[
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  2251
        ClassSourceWriter new fileOut:self on:aStream.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  2252
        ^ self.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2253
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2254
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2255
    self error:'Unknown format, possible formats are { nil, #classSource }'
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2256
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2257
    "Created: / 08-02-2011 / 11:25:16 / cg"
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  2258
    "Modified (comment): / 04-02-2014 / 18:39:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2259
! !
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2260
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2261
!ChangeSet::ChangeFileReader methodsFor:'accessing'!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2262
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2263
changeAction:aBlock
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2264
    changeAction := aBlock.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2265
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2266
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2267
changeSet:something
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2268
    "set the value of the instance variable 'changeSet' (automatically generated)"
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2269
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2270
    changeSet := something.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2271
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2272
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2273
inputStream:aStream
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2274
    inputStream := aStream.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2275
! !
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2276
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2277
!ChangeSet::ChangeFileReader methodsFor:'helpers'!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2278
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2279
addChange:change
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2280
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2281
    timestamp notNil ifTrue:[change timeStamp: timestamp].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2282
    timestamp := nil.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2283
    change isClassChange ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2284
        change package: Class packageQuerySignal query.
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2285
        change nameSpace: Class nameSpaceQuerySignal query.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2286
    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2287
2008
204b171a553d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1977
diff changeset
  2288
    changeAction 
204b171a553d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1977
diff changeset
  2289
        valueWithOptionalArgument:change 
204b171a553d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1977
diff changeset
  2290
        and:lineNumber 
204b171a553d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1977
diff changeset
  2291
        and:position.
204b171a553d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1977
diff changeset
  2292
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2293
    "Modified: / 11-06-2013 / 15:57:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2294
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2295
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2296
checkReceiverIsGlobalNamed:expectedName
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2297
    ^ self variableNameOfReceiver = expectedName
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2298
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2299
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2300
classNameOf:aReceiver
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2301
    "old"
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2302
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2303
    | nameSpace isMeta clsNode clsName |
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2304
    nameSpace := Class nameSpaceQuerySignal query.
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2305
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2306
    isMeta := false.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2307
    classIsJava := false.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2308
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2309
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2310
    (aReceiver isUnaryMessage and:[aReceiver selector == #class]) ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2311
        isMeta := true.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2312
        clsNode := aReceiver receiver.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2313
    ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2314
        clsNode := aReceiver.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2315
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2316
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2317
    clsNode isMessage ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2318
        "Normal smalltalk method on Smalltalk class"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2319
        clsName := clsNode name
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2320
    ] ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2321
        "Maybe a Java class?"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2322
        ((clsNode selector == #classForName:) and:[clsNode receiver name = 'Java']) ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2323
            clsName := '(Java classForName:''%1'')' bindWith: clsNode arguments first value.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2324
            classIsJava := true.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2325
        ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2326
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2327
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2328
    isMeta ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2329
        clsName := clsName , ' class'.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2330
    ].
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2331
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2332
    (nameSpace ~~ Smalltalk and:[(clsName startsWith: nameSpace name) not])
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2333
        ifTrue:[
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2334
            ^ nameSpace name , '::' , clsName
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2335
        ] ifFalse:[     
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2336
            ^ clsName
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2337
        ].
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2338
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2339
    "Modified: / 30-01-2013 / 10:02:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2340
!
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2341
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2342
classNameOfRememberingNamespace:aReceiver
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2343
    "new"
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2344
3247
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2345
    | nameSpace isMeta clsNode clsName |
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2346
    nameSpace := Class nameSpaceQuerySignal query.
3195
5ce601cd8a45 class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  2347
3247
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2348
    isMeta := false.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2349
    classIsJava := false.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2350
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2351
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2352
    (aReceiver isUnaryMessage and:[aReceiver selector == #class]) ifTrue:[
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2353
        isMeta := true.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2354
        clsNode := aReceiver receiver.
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2355
    ] ifFalse:[
3247
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2356
        clsNode := aReceiver.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2357
    ].
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2358
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2359
    clsNode isMessage ifFalse:[
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2360
        "Normal smalltalk method on Smalltalk class"
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2361
        clsName := clsNode name
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2362
    ] ifTrue:[
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2363
        "Maybe a Java class?"
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2364
        ((clsNode selector == #classForName:) and:[clsNode receiver name = 'Java']) ifTrue:[
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2365
            clsName := '(Java classForName:''%1'')' bindWith: clsNode arguments first value.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2366
            classIsJava := true.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2367
        ].
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2368
    ].
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2369
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2370
    isMeta ifTrue:[
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2371
        clsName := clsName , ' class'.
3195
5ce601cd8a45 class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  2372
    ].
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2373
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2374
    "Strip off the namespace"
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2375
    (classIsJava not and:[ nameSpace ~~ Smalltalk]) ifTrue:[
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2376
        (clsName startsWith: nameSpace name) ifTrue:[
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2377
            clsName := clsName copyFrom: nameSpace name size + 3.
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2378
        ]
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2379
    ].
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2380
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2381
    (nameSpace ~~ Smalltalk and:[(clsName startsWith: nameSpace name) not])
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2382
        ifTrue:[
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2383
            "/ old: remember namespace in name
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2384
            "/ ^ nameSpace name , '::' , clsName
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2385
            "/ new: remember in override
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2386
            nameSpaceOverride := nameSpace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2387
            ^ clsName
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2388
        ] ifFalse:[
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2389
            nameSpaceOverride := nil.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2390
            ^ clsName
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2391
        ].
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2392
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2393
    "Modified: / 11-06-2013 / 17:55:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2394
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2395
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2396
extractMethodsClassAndSelectorFromReceiver
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2397
    "helper for all changes which are of the form:
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2398
        (className compiledMethodAt:#methodSelector) something: ...
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2399
    "
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2400
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2401
    (receiver isMessage
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2402
    and:[receiverSelector == #'compiledMethodAt:']) ifFalse:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2403
        self error:'unexpected change' mayProceed:true.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2404
        ^ false.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2405
    ].
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2406
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2407
    "/ className := self classNameOf:receiverReceiver.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2408
    className := self classNameOfRememberingNamespace:receiverReceiver.
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2409
    self assert:className notNil.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2410
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2411
    methodSelector := (receiver arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2412
    self assert:methodSelector notNil.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2413
    ^ true.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2414
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2415
    "Created: / 27-07-2012 / 21:33:47 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2416
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2417
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2418
receiversClassName
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2419
    ^ self classNameOf:receiver
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2420
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2421
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2422
receiversClassNameRememberingNamespace
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2423
    ^ self classNameOfRememberingNamespace:receiver
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2424
!
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2425
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2426
variableNameOfReceiver
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2427
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2428
    receiver isVariable ifFalse:[ ^ nil ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2429
    ^ receiver name
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2430
! !
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2431
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2432
!ChangeSet::ChangeFileReader methodsFor:'reading'!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2433
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2434
changesFromParseTree:aTree lineNumber:initialLineNumberOrNil position:initialPositionOrNil
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2435
    "given a parse-tree (from parsing some changes source/chunk),
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2436
     create changes and evaluate changeAction on each.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2437
     The chnageAction-block is invoked with the change and a lineNumberOrNil as
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2438
     arg; the lineNumber is only valid, if the underlying inputStream 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2439
     provides line-numbers; otherwise, nil is passed."
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2440
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2441
    ^self changesFromParseTree:aTree lineNumber:initialLineNumberOrNil position:initialPositionOrNil chunk: nil
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2442
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2443
    "Modified: / 24-01-2012 / 17:29:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2444
!
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2445
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2446
changesFromParseTree:aTree lineNumber:initialLineNumberOrNil position:initialPositionOrNil chunk: initialChunkOrNil
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2447
    "given a parse-tree (from parsing some changes source/chunk),
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2448
     create changes and evaluate changeAction on each.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2449
     The chnageAction-block is invoked with the change and a lineNumberOrNil as
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2450
     arg; the lineNumber is only valid, if the underlying inputStream 
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2451
     provides line-numbers; otherwise, nil is passed."
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2452
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2453
    lineNumber := initialLineNumberOrNil.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2454
    position := initialPositionOrNil.
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2455
    chunk := initialChunkOrNil.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2456
    parseTree := aTree.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2457
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2458
    selector := aTree selector.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2459
    receiver := aTree receiver.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2460
    arguments := aTree arguments.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2461
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2462
    receiver isMessage ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2463
        receiverSelector := receiver selector.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2464
        receiverReceiver := receiver receiver.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2465
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2466
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2467
    ^ self processChange
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2468
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2469
    "Created: / 24-01-2012 / 17:28:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2470
! !
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2471
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2472
!ChangeSet::ChangeFileReader methodsFor:'reading-private'!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2473
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2474
handleCategoriesForChange
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2475
    |selector category categories attributes change|
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2476
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
  2477
    selector := arguments first value.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2478
    className := self receiversClassNameRememberingNamespace.
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2479
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2480
    categories := OrderedCollection new.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2481
    attributes := OrderedCollection new.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2482
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2483
    [
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2484
        inputStream skipSeparators.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2485
        category := inputStream nextChunk.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2486
        category notEmptyOrNil
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2487
    ] whileTrue:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2488
        ( #( 'public' 'private' ) includes: category) ifTrue:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2489
            attributes add:category
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2490
        ] ifFalse:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2491
            categories add:category
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2492
        ].
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2493
    ].
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2494
    categories size == 1 ifTrue:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2495
        "/ easy
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2496
        change := MethodCategoryChange 
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2497
                        className:className
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2498
                        selector:selector
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2499
                        source:(parseTree printString)
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2500
                        category:(categories first).
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2501
        self addChange:change.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2502
    ] ifFalse:[
2298
Claus Gittinger <cg@exept.de>
parents: 2290
diff changeset
  2503
        self halt:'multiple/missing categories not supported'.
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2504
    ].
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2505
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2506
    attributes size == 1 ifTrue:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2507
        "/ easy
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2508
        (attributes first = 'public') ifTrue:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2509
            "/ default anyway - ignore
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2510
        ] ifFalse:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2511
            change := MethodPrivacyChange 
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2512
                        className:className
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2513
                        selector:selector
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2514
                        privacy:(attributes first asSymbol).
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2515
            change nameSpaceOverride:nameSpaceOverride.
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2516
            change source:(parseTree printString).
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2517
            self addChange:change.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2518
        ].
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2519
    ] ifFalse:[
2298
Claus Gittinger <cg@exept.de>
parents: 2290
diff changeset
  2520
        self halt:'multiple/missing attributes not supported'.
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2521
    ].
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2522
    ^ true
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2523
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2524
    "Modified: / 11-06-2013 / 16:11:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2525
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2526
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2527
handleClassCommentChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2528
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2529
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2530
    className := self receiversClassNameRememberingNamespace.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2531
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2532
    change := ClassCommentChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2533
    change className:className comment:(arguments at:1) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2534
    change source:(parseTree printString).
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2535
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2536
    ^ true
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2537
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2538
    "Modified: / 11-06-2013 / 16:11:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2539
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2540
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2541
handleClassDefinitionChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2542
    |nameSpace change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2543
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2544
    className := (arguments at:1) evaluate.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2545
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2546
    nameSpace := Class nameSpaceQuerySignal query.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2547
    (nameSpace == Smalltalk) ifTrue:[ nameSpace := nil ].
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2548
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2549
    "/ old: remember namespace in className
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2550
"/    nameSpace ~~ Smalltalk ifTrue:[
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2551
"/        className := nameSpace name , '::' , className
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2552
"/    ].
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2553
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2554
    change := ClassDefinitionChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2555
    change className:className; source:(parseTree printString).
1453
27882f000bc9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1450
diff changeset
  2556
    receiver isVariable ifTrue:[
27882f000bc9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1450
diff changeset
  2557
        change superClassName:receiver name.
27882f000bc9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1450
diff changeset
  2558
    ].
1428
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2559
    selector keywords with:arguments do:[:kw :arg |
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2560
        kw = #'instanceVariableNames:' ifTrue:[
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2561
            change instanceVariableNames:arg evaluate.
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2562
        ].
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2563
        kw = #'classVariableNames:' ifTrue:[
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2564
            change classVariableNames:arg evaluate.
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2565
        ].
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2566
        kw = #'poolDictionaries:' ifTrue:[
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2567
            change poolDictionaries:arg evaluate.
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2568
        ].
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2569
        kw = #'category:' ifTrue:[
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2570
            change category:arg evaluate.
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2571
        ].
2125
3c071cecc2b0 changed: #handleClassDefinitionChange
fm
parents: 2122
diff changeset
  2572
        kw = #'privateIn:' ifTrue:[
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2573
            | nm |
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2574
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2575
            nm := arg name.
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2576
            nameSpace notNil ifTrue:[
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2577
                (nm startsWith: nameSpace name) ifTrue:[
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2578
                    nm := nm copyFrom: nameSpace name size + 3.
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2579
                ].
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2580
            ].
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2581
            change className:(nm ,'::',change classNameWithoutNamespace).
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2582
            change owningClassName:nm.
2290
882d87800dea private class handling
Claus Gittinger <cg@exept.de>
parents: 2279
diff changeset
  2583
            change private:true.
2125
3c071cecc2b0 changed: #handleClassDefinitionChange
fm
parents: 2122
diff changeset
  2584
        ].
1428
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2585
    ].
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2586
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2587
    change package:(Class packageQuerySignal query).
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2588
"/        nameSpace ~~ Smalltalk ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2589
"/            change nameSpaceName:(nameSpace name).
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2590
"/        ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2591
"/
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2592
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2593
    ^ true
2290
882d87800dea private class handling
Claus Gittinger <cg@exept.de>
parents: 2279
diff changeset
  2594
882d87800dea private class handling
Claus Gittinger <cg@exept.de>
parents: 2279
diff changeset
  2595
    "Modified: / 30-08-2010 / 13:56:32 / cg"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2596
    "Modified: / 11-06-2013 / 22:30:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2597
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2598
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2599
handleClassInitializeChange 
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2600
    |change|
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2601
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2602
    change := DoItChange new source: chunk.
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2603
    self addChange: change.
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2604
    ^ true
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2605
!
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2606
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2607
handleClassInstanceVariableDefinitionChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2608
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2609
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2610
    className := self receiversClassNameRememberingNamespace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2611
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2612
    change := ClassInstVarDefinitionChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2613
    change className:className.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2614
    change source:(parseTree printString).
2617
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  2615
    change classInstVarNames:(parseTree arguments first value asCollectionOfWords asArray).
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2616
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2617
    ^ true
2617
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  2618
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  2619
    "Modified: / 25-11-2011 / 17:40:49 / cg"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2620
    "Modified: / 11-06-2013 / 16:11:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2621
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2622
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2623
handleMethodCategoryChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2624
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2625
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2626
    self extractMethodsClassAndSelectorFromReceiver ifFalse:[
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2627
        ^ false.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2628
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2629
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2630
    change := MethodCategoryChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2631
    change 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2632
        className:className
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2633
        selector:methodSelector
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2634
        category:(arguments at:1) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2635
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2636
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2637
    ^ true
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2638
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2639
    "Modified: / 27-07-2012 / 21:34:42 / cg"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2640
    "Modified: / 11-06-2013 / 16:11:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2641
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2642
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2643
handleMethodCategoryRenameChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2644
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2645
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2646
    className := self receiversClassNameRememberingNamespace.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2647
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2648
    change := MethodCategoryRenameChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2649
    change 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2650
        className:className;
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2651
        oldCategoryName:(arguments at:1) evaluate
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2652
        newCategoryName:(arguments at:2) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2653
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2654
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2655
    ^ true
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2656
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2657
    "Modified: / 11-06-2013 / 16:11:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2658
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2659
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2660
handleMethodChange
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2661
    [
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2662
        ^ self handleMethodChangeUnsafe
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2663
    ] on: Error do:[:ex|
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2664
        | change |
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2665
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2666
        change := InvalidChange new source: chunk.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2667
        self addChange: change.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2668
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2669
        "Read methods that may follow"    
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2670
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2671
        [ (chunk := inputStream nextChunk) notEmptyOrNil ] whileTrue:[
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2672
            change := InvalidChange new source: chunk.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2673
            self addChange: change.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2674
        ]
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2675
    ].
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2676
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2677
    ^ true
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2678
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2679
    "Modified (comment): / 24-01-2012 / 17:32:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2680
!
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2681
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2682
handleMethodChangeUnsafe
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2683
    |priv categoryName methodSource changes change parser |
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2684
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2685
    className := self receiversClassNameRememberingNamespace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2686
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2687
    (selector == #'ignoredMethodsFor:') ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2688
        priv := #ignored.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2689
    ] ifFalse:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2690
        priv := nil
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2691
    ].
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2692
    classIsJava := false.
1977
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2693
    ((selector == #'methods') 
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2694
    or:[(selector == #'publicMethods')
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2695
    or:[(selector == #'methodsFor')]]) ifTrue:[
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2696
        categoryName := 'uncategorized public'
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2697
    ] ifFalse:[
1977
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2698
        (selector == #'privateMethods') ifTrue:[
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2699
            categoryName := 'uncategorized private'
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2700
        ] ifFalse:[
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2701
            categoryName := (arguments at:1) evaluate.
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2702
        ]
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2703
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2704
    inputStream skipSeparators.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2705
    lineNumber := inputStream lineNumber.
3376
a0e06d192df4 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3360
diff changeset
  2706
    position := inputStream position + 1.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2707
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2708
    methodSource := chunk := inputStream nextChunk.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2709
    changes := OrderedCollection new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2710
1395
6ea99b157f6b Use #setFilename:forClass:package: to define an abbreviation
Stefan Vogel <sv@exept.de>
parents: 1389
diff changeset
  2711
    [methodSource notEmptyOrNil] whileTrue:[
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2712
        parser := Parser
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2713
                    parseMethodArgAndVarSpecification:methodSource 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2714
                    in:nil 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2715
                    ignoreErrors:true 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2716
                    ignoreWarnings:true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2717
                    parseBody:false.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2718
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2719
        parser isNil ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2720
            "/ something wierd ...
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2721
            methodSelector := '????'.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2722
        ] ifFalse:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2723
            methodSelector := parser selector.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2724
        ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2725
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2726
        change := MethodChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2727
        change 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2728
            className:className
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2729
            selector:methodSelector
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2730
            source:methodSource
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2731
            category:categoryName
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2732
            privacy:priv.
3248
d892aad61780 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3247
diff changeset
  2733
        "/ huh - where is classIsJava: implemented???
d892aad61780 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3247
diff changeset
  2734
        classIsJava ifTrue:[ change classIsJava: classIsJava ].
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2735
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2736
        self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2737
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2738
        inputStream skipSeparators.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2739
        lineNumber := inputStream lineNumber.
3376
a0e06d192df4 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3360
diff changeset
  2740
        position := inputStream position + 1.
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2741
        methodSource := chunk := inputStream nextChunk.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2742
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2743
    ^ true
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2744
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2745
    "Created: / 24-01-2012 / 16:52:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2746
    "Modified: / 11-06-2013 / 16:11:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2747
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2748
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2749
handleMethodPackageChange
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2750
    |change|
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2751
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2752
    self extractMethodsClassAndSelectorFromReceiver ifFalse:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2753
        ^ false.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2754
    ].
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2755
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2756
    change := MethodPackageChange new.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2757
    change 
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2758
        className:className
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2759
        selector:methodSelector
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2760
        package:(arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2761
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2762
    self addChange:change.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2763
    ^ true
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2764
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2765
    "Created: / 27-07-2012 / 21:31:25 / cg"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2766
    "Modified: / 11-06-2013 / 16:11:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2767
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2768
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2769
handleMethodPrivacyChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2770
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2771
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2772
    self extractMethodsClassAndSelectorFromReceiver ifFalse:[
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2773
        ^ false.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2774
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2775
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2776
    change := MethodPrivacyChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2777
    change 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2778
        className:className
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2779
        selector:methodSelector
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2780
        privacy:(arguments at:1) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2781
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2782
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2783
    ^ true
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2784
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2785
    "Modified: / 27-07-2012 / 21:35:20 / cg"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2786
    "Modified: / 11-06-2013 / 16:11:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2787
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2788
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2789
handleNameSpaceCreationChange
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2790
    |change|
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2791
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2792
    (self checkReceiverIsGlobalNamed:#Namespace) ifFalse:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2793
        (self checkReceiverIsGlobalNamed:#NameSpace) ifFalse:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2794
            self error:'unexpected receiver in nameSpace message' mayProceed:true.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2795
            ^ false
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2796
        ].
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2797
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2798
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2799
    className := (arguments at:1) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2800
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2801
    change := NameSpaceCreationChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2802
    change name:className.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2803
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2804
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2805
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2806
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2807
handlePrimitiveChange 
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2808
    self handlePrimitiveChange:nil
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2809
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2810
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2811
handlePrimitiveChange: sourceOrNil
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2812
    "if sourceOrNil is nil, the def has not been read and must be read from
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2813
     the next chunk. Otherwise, it has been already read as argument."
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2814
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2815
    |change primSource|
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2816
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2817
    className := self receiversClassNameRememberingNamespace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2818
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2819
    sourceOrNil notNil ifTrue:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2820
        primSource := sourceOrNil
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2821
    ] ifFalse:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2822
        inputStream skipSeparators.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2823
        primSource := inputStream nextChunk.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2824
    ].
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2825
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2826
    (selector == #'primitiveDefinitions' or:[ selector == #'primitiveDefinitions:' ]) ifTrue:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2827
        change := ClassPrimitiveDefinitionsChange new
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2828
    ] ifFalse:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2829
        (selector == #'primitiveFunctions' or:[ selector == #'primitiveFunctions:' ]) ifTrue:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2830
            change := ClassPrimitiveFunctionsChange new
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2831
        ] ifFalse:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2832
            change := ClassPrimitiveVariablesChange new
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2833
        ]
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2834
    ].
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2835
    change className:className source:primSource.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2836
    self addChange:change.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2837
    ^ true
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2838
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2839
    "Created: / 27-07-2012 / 21:39:55 / cg"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  2840
    "Modified (format): / 11-06-2013 / 16:12:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2841
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2842
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2843
handleRemoveClassChange
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2844
    |change|
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2845
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2846
    (self checkReceiverIsGlobalNamed:#Smalltalk) ifFalse:[
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2847
        self error:'unexpected receiver in remove-class message' mayProceed:true.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2848
        ^ false
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2849
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2850
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2851
    className := (arguments at:1) name.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2852
"/            nameSpace ~~ Smalltalk ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2853
"/                className := nameSpace name , '::' , className
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2854
"/            ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2855
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2856
    change := ClassRemoveChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2857
    change className:className.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2858
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2859
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2860
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2861
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2862
handleRemoveMethodChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2863
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2864
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2865
    className := self receiversClassName.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2866
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2867
    methodSelector := (arguments at:1) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2868
    change := MethodRemoveChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2869
    change className:className selector:methodSelector.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2870
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2871
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2872
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2873
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2874
handleRenameClassChange
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2875
    |oldName newName change|
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2876
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2877
    (self checkReceiverIsGlobalNamed:#Smalltalk) ifFalse:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2878
        self error:'unexpected receiver in rename-class message' mayProceed:true.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2879
        ^ false.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2880
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2881
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2882
    oldName := (arguments at:1) name.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2883
    newName := (arguments at:2) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2884
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2885
    change := ClassRenameChange new oldName:oldName newName:newName.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2886
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2887
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2888
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2889
1181
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2890
handleSqueakCommentStamp
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2891
    |comment change|
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2892
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2893
    inputStream skipSeparators.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2894
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2895
    comment := inputStream nextChunk.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2896
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2897
    className := self receiversClassNameRememberingNamespace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2898
1181
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2899
    change := ClassCommentChange new.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2900
    change className:className comment:comment.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2901
    change source:(parseTree printString).
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2902
    self addChange:change.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2903
    ^ true
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2904
!
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2905
1183
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2906
handleVW7ClassDefinitionChange
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2907
    |nameSpace change|
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2908
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2909
    nameSpace := receiver.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2910
    className := (arguments at:1) evaluate.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2911
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2912
"/    nameSpace := Class nameSpaceQuerySignal query.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2913
"/    nameSpace ~~ Smalltalk ifTrue:[
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2914
"/        className := nameSpace name , '::' , className
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2915
"/    ].
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2916
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2917
    change := ClassDefinitionChange new.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2918
    change className:className; source:(parseTree printString).
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2919
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2920
    change package:(Class packageQuerySignal query).
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2921
    self addChange:change.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2922
    ^ true
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2923
!
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2924
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2925
processChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2926
    "given a parse-tree (from parsing some changes source/chunk),
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2927
     create changes and evaluate changeAction on each.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2928
     The block is invoked with the change and a lineNumberOrNil as
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2929
     arg; the lineNumber is only valid, if the underlying stream 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2930
     provides line-numbers; otherwise, nil is passed."
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2931
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2932
    [
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2933
        ^ self processChangeUnsafe
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2934
    ] on: Error do:[:ex|
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2935
        | change |
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2936
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2937
        change := DoItChange new source: chunk.
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2938
        self addChange: change.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2939
    ].
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2940
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2941
    ^true
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2942
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2943
    "Modified: / 24-01-2012 / 17:34:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2944
!
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2945
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2946
processChangeUnsafe
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2947
    "given a parse-tree (from parsing some changes source/chunk),
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2948
     create changes and evaluate changeAction on each.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2949
     The block is invoked with the change and a lineNumberOrNil as
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2950
     arg; the lineNumber is only valid, if the underlying stream 
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2951
     provides line-numbers; otherwise, nil is passed."
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2952
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2953
    |dispatchSelector|
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2954
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2955
    dispatchSelector := ('process_',(selector copyReplaceAll:$: with:$_)) asSymbol.
2122
3ffe8c94f2cc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2117
diff changeset
  2956
"/ Transcript showCR:dispatchSelector.
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  2957
    (self respondsTo:dispatchSelector) ifTrue:[
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2958
        ^ self perform:dispatchSelector.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2959
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2960
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2961
    "/ any subclass definiton selector ?
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2962
    (Behavior definitionSelectors includes:selector)
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2963
    ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2964
        ^ self handleClassDefinitionChange.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2965
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2966
3195
5ce601cd8a45 class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  2967
    self error:'unhandled change selector: ',selector.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2968
    ^ false
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2969
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2970
    "Created: / 24-01-2012 / 17:33:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2971
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2972
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2973
processInfo: string
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2974
    "Processes 'info record' - an info record consist of a chunk containing
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2975
     single string literal starting with ----, such as:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2976
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2977
    '---- timestamp jv@neso 12-03-2012 10:49:40 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2978
    '---- snapshot st.img 30-03-2012 11:40:24 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2979
    '---- checkin SVN::ConfigurationApp into stx:libsvn (1.12) 12-03-2012 10:51:15 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2980
    '---- rake update 30-03-2012 11:40:24 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2981
    '---- start 30-03-2012 11:40:24 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2982
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2983
    timestamp info records are (for historical reasons) processed in ChangeSet
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2984
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2985
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2986
    | kind sel |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2987
    inputStream skip: 5.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2988
    kind := inputStream upTo: Character space.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2989
    (kind endsWith:$:) ifTrue:[
3229
de46a97e1a0c Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 3222
diff changeset
  2990
        kind := kind copyButLast:1
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2991
    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2992
    sel := ('process_', kind) asSymbolIfInterned.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2993
    sel notNil ifTrue:[
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2994
        MessageNotUnderstood handle:[   
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2995
            self process_otherInfo:kind    
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2996
        ] do:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2997
            self perform: sel.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2998
        ]
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2999
    ] ifFalse:[   
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3000
        self process_otherInfo:kind    
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3001
    ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3002
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3003
    "Created: / 30-03-2012 / 16:44:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3004
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3005
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3006
process_categoriesFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3007
    "'categoriesFor:' chunk (Dolphin)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3008
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3009
    ^ self handleCategoriesForChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3010
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3011
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3012
process_category_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3013
    "'category:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3014
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3015
    ^ self handleMethodCategoryChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3016
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3017
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3018
process_commentStamp_prior_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3019
    "'commentStamp:prior::' chunk (Squeak)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3020
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3021
    ^ self handleSqueakCommentStamp.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3022
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3023
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3024
process_comment_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3025
    "'comment:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3026
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3027
    ^ self handleClassCommentChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3028
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3029
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3030
process_encoding
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3031
    "St/X encoding info record. Ignored"
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3032
!
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3033
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3034
process_ignoredMethodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3035
    "'ignoredMethodsFor:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3036
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3037
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3038
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3039
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  3040
process_initialize
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  3041
    "'class initialize' chunk"
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  3042
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  3043
    ^ self handleClassInitializeChange
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  3044
!
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  3045
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3046
process_instanceVariableNames_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3047
    "'instanceVariableNames:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3048
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3049
    ^ self handleClassInstanceVariableDefinitionChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3050
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3051
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3052
process_methods
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3053
    "'methods' chunk (ST/V and dolphin)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3054
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3055
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3056
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3057
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3058
process_methodsFor
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3059
    "'methodsFor' chunk (ST/V and dolphin)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3060
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3061
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3062
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3063
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3064
process_methodsForUndefined_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3065
    "'methodsForUndefined:' chunk (?)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3066
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3067
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3068
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3069
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3070
process_methodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3071
    "'methodsFor:' chunk (ST/80, Squeak, ST/X, VW, ...)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3072
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3073
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3074
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3075
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3076
process_methodsFor_stamp_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3077
    "'methodsFor:stamp:' chunk (Squeak)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3078
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3079
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3080
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3081
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3082
process_name_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3083
    "'name:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3084
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3085
    ^ self handleNameSpaceCreationChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3086
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3087
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3088
process_otherInfo:what
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3089
    "'---- <what> 12-03-2012 10:49:40 ----'
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3090
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3091
    '<what>' is already read from inputStream.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3092
    "
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3093
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3094
    "/ inputStream skipSeparators.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3095
    self addChange: (InfoChange type: what data: (inputStream upToEnd) timestamp: nil)
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3096
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3097
    "Created: / 18-05-2012 / 17:03:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3098
!
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3099
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3100
process_package_
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3101
    "'package:' chunk (ST/X)"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3102
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3103
    ^ self handleMethodPackageChange.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3104
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3105
    "Created: / 27-07-2012 / 21:36:30 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3106
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3107
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3108
process_primitiveDefinitions
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3109
    "'primitiveDefinitions' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3110
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3111
    ^ self handlePrimitiveChange:nil.
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3112
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3113
    "Modified: / 27-07-2012 / 21:40:33 / cg"
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3114
!
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3115
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3116
process_primitiveDefinitions_
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3117
    "'primitiveDefinitions:' chunk (ST/X)"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3118
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3119
    ^ self handlePrimitiveChange: (arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3120
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3121
    "Created: / 27-07-2012 / 21:42:03 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3122
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3123
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3124
process_primitiveFunctions
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3125
    "'primitiveFunctions' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3126
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3127
    ^ self handlePrimitiveChange:nil.
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3128
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3129
    "Modified: / 27-07-2012 / 21:40:23 / cg"
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3130
!
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3131
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3132
process_primitiveFunctions_
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3133
    "'primitiveFunctions:' chunk (ST/X)"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3134
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3135
    ^ self handlePrimitiveChange: (arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3136
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3137
    "Created: / 27-07-2012 / 21:37:21 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3138
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3139
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3140
process_primitiveVariables
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3141
    "'primitiveVariables' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3142
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3143
    ^ self handlePrimitiveChange:nil.
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3144
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3145
    "Modified: / 27-07-2012 / 21:40:35 / cg"
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3146
!
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3147
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3148
process_primitiveVariables_
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3149
    "'primitiveVariables:' chunk (ST/X)"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3150
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3151
    ^ self handlePrimitiveChange: (arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3152
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3153
    "Created: / 27-07-2012 / 21:41:49 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3154
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3155
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3156
process_privacy_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3157
    "'privacy:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3158
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3159
    ^ self handleMethodPrivacyChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3160
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3161
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3162
process_privateMethods
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3163
    "'privateMethods' chunk (ST/V and dolphin)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3164
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3165
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3166
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3167
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3168
process_privateMethodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3169
    "'privateMethodsFor:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3170
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3171
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3172
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3173
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3174
process_protectedMethodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3175
    "'protectedMethodsFor:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3176
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3177
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3178
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3179
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3180
process_publicMethods
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3181
    "'publicMethods' chunk (ST/V and dolphin)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3182
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3183
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3184
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3185
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3186
process_publicMethodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3187
    "'publicMethodsFor:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3188
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3189
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3190
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3191
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3192
process_rake
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3193
    "Rake build system info record
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3194
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3195
    '---- rake update st.img 12-03-2012 10:49:40 ----'!!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3196
    '---- rake compile st.img 12-03-2012 10:49:40 ----'!!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3197
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3198
    'rake' is already read from inputStream.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3199
    "
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3200
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3201
    | ts what |
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3202
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3203
    inputStream skipSeparators.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3204
    what := inputStream through: Character space. "/read snapshot name
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3205
    inputStream through: Character space. "/skip username@host
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3206
    ts := Timestamp readFrom: inputStream.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3207
    self addChange: (InfoChange type: #rake data: what timestamp: ts)
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3208
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3209
    "Created: / 01-08-2012 / 19:33:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3210
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3211
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3212
process_removeClass_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3213
    "'removeClass:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3214
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3215
    ^ self handleRemoveClassChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3216
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3217
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3218
process_removeSelector_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3219
    "'removeSelector:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3220
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3221
    ^ self handleRemoveMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3222
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3223
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3224
process_renameCategory_to_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3225
    "'renameCategory:to:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3226
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3227
    ^ self handleMethodCategoryRenameChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3228
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3229
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3230
process_renameClass_to_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3231
    "'renameClass:to:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3232
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3233
    ^ self handleRenameClassChange.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3234
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3235
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3236
process_snapshot
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3237
    "St/X system start info record
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3238
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3239
    '---- snapshot st.img 12-03-2012 10:49:40 ----'!!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3240
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3241
    'start' is already read from inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3242
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3243
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3244
    | ts file |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3245
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3246
    inputStream skipSeparators.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3247
    file := inputStream through: Character space. "/read snapshot name
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3248
    ts := Timestamp readFrom: inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3249
    self addChange: (InfoChange type: #snapshot data: file timestamp: ts)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3250
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3251
    "Created: / 18-05-2012 / 17:04:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3252
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3253
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3254
process_start
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3255
    "St/X system start info record
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3256
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3257
    '---- start 12-03-2012 10:49:40 ----'!!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3258
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3259
    'start' is already read from inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3260
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3261
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3262
    | ts |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3263
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3264
    inputStream skipSeparators.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3265
    ts := Timestamp readFrom: inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3266
    self addChange: (InfoChange type: #start data: nil timestamp: ts)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3267
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3268
    "Created: / 18-05-2012 / 17:03:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3269
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3270
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3271
process_timestamp
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3272
    "St/X timestamp info record. Example:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3273
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3274
    '---- timestamp jv@neso 12-03-2012 10:49:40 ----'!!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3275
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3276
    'timestamp' is already read from inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3277
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3278
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3279
    inputStream skipSeparators; through: Character space. "/read username@host
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3280
    timestamp := Timestamp readFrom: inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3281
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3282
    "Created: / 02-04-2012 / 19:08:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3283
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3284
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3285
!ChangeSet::ChangeFileWriter methodsFor:'source writing'!
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3286
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3287
fileOut: aChangeSet on: aStream
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3288
    | hasWideChars stream |
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3289
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3290
    hasWideChars := aChangeSet contains:[:each | each source isWideString ].
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3291
    hasWideChars ifTrue:[ 
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3292
        stream := EncodedStream stream: aStream encoder: CharacterEncoder encoderForUTF8.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3293
        stream nextPutAll: '"{ Encoding: utf8 }"'; cr; cr.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3294
        stream nextPutAll: '!!'; cr; cr.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3295
    ] ifFalse:[ 
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3296
        stream := aStream 
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3297
    ].
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3298
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3299
    aChangeSet do:[:eachChange |
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3300
        eachChange isMethodCodeChange ifTrue:[
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3301
            stream nextPutAll:'!!'; nextPutAll:(eachChange fullClassName); nextPutAll:' methodsFor: '.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3302
            stream nextPutAll:(eachChange methodCategory storeString).
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3303
            stream nextPutLine:'!!'.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3304
            stream cr.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3305
            stream nextPutAllAsChunk:(eachChange source).
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3306
            stream nextPutLine:'!! !!'.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3307
       ] ifFalse:[
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3308
            stream nextPutAll:(eachChange source).
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3309
            stream nextPutLine:'!!'.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3310
        ].
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3311
        aStream cr.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3312
    ].
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3313
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3314
    "Created: / 04-02-2014 / 18:51:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3315
! !
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3316
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3317
!ChangeSet::ClassSourceWriter methodsFor:'private'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3318
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3319
analyze
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3320
    "Analyzes changeset an build some index"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3321
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3322
    classInfos := Dictionary new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3323
    metaInfos := Dictionary new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3324
    topClassName := nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3325
    "Pass 1 - collect classes"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3326
    changeSetBeingSaved do:[:change|
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3327
        | pkg |
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3328
        pkg := change package.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3329
        packageName isNil ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3330
            packageName := pkg.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3331
        ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3332
            "/Just a defensive check...
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3333
            self assert: (pkg isNil or:[pkg = packageName]) description: 'STC does not support multiple packages in source files'.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3334
        ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3335
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3336
        change isClassDefinitionChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3337
            | nm ns |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3338
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3339
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3340
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3341
            nm := change className.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3342
            (nm endsWith:' class') ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3343
                (classInfos includesKey: nm) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3344
                    self error:'Multiple definitions of class ', nm.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3345
                    ^self.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3346
                ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3347
                classInfos at: nm put: (ClassInfo new name: nm).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3348
                metaInfos at: nm put: (ClassInfo new name: nm , ' class').
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3349
                change isPrivateClassDefinitionChange ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3350
                    topClassName notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3351
                        self error: ('Multiple top class definitions (%1 vs %2)' bindWith: topClassName with: nm).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3352
                        ^self.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3353
                    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3354
                    topClassName := nm.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3355
                    namespaceName := change nameSpaceName.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3356
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3357
                ]
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3358
            ]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3359
        ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3360
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3361
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3362
    "/ Could be an extension container...
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3363
    topClassName isNil ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3364
        ^self
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3365
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3366
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3367
    "Pass 2: fill in infos"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3368
    changeSetBeingSaved do:[:change|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3369
        change isClassChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3370
            | nm info |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3371
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3372
            nm := change className.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3373
            (nm endsWith: ' class') ifTrue:[
3269
84de19204303 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3248
diff changeset
  3374
                info := metaInfos at: (nm copyButLast:(' class' size)).
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3375
            ] ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3376
                info := classInfos at: nm.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3377
                "Fill superclass info..."                
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3378
                change isClassDefinitionChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3379
                    | superNm |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3380
                    superNm := change superClassName.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3381
                    (classInfos includesKey: superNm) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3382
                        info superclass: (classInfos at: superNm).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3383
                        (metaInfos at: nm) superclass: (classInfos at: superNm).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3384
                    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3385
                ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3386
            ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3387
            info addChange: change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3388
        ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3389
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3390
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3391
    classInfos do:[:info|info namespace: namespaceName].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3392
    metaInfos  do:[:info|info namespace: namespaceName].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3393
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3394
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3395
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3396
        ChangeSet::ClassSourceWriter new
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3397
            changeSetBeingSaved: (ChangeSet forExistingClass: ChangeSet);
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3398
            analyze;
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3399
            yourself
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3400
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3401
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3402
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3403
    "Created: / 15-03-2012 / 17:51:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  3404
    "Modified: / 11-06-2013 / 17:59:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3405
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3406
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3407
changeSetBeingSaved:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3408
    changeSetBeingSaved := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3409
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3410
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3411
privateClassesOf: classInfo
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3412
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3413
    | classInfoNameSz |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3414
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3415
    classInfoNameSz := classInfo name size.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3416
    ^classInfos values select:[:info|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3417
        info name size > classInfoNameSz and:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3418
            (info name startsWith: classInfo name)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3419
                and:[(info name at:classInfoNameSz + 1) == $:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3420
                    and:[(info name at:classInfoNameSz + 2) == $:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3421
                        and:[(info name indexOf: $: startingAt: classInfo name size + 3) == 0]]]]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3422
    ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3423
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3424
    "Created: / 15-03-2012 / 19:31:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3425
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3426
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3427
privateClassesSortedOf: classInfo
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3428
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3429
    |classes|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3430
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3431
    classes := self privateClassesOf: classInfo.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3432
    (classes size > 0) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3433
        classes := classes asOrderedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3434
        classes sort:[:a :b | a name < b name].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3435
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3436
        classes topologicalSort:[:a :b |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3437
            "/ a must come before b iff:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3438
            "/    b is a subclass of a
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3439
            "/    b has a private class which is a subclass of a
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3440
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3441
            |mustComeBefore privateClassesOfB|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3442
            mustComeBefore := (b isSubclassOf:a) or:[b isPrivateClassOf: a].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3443
            mustComeBefore
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3444
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3445
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3446
    ^ classes.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3447
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3448
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3449
     Object privateClassesSorted
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3450
     NewSystemBrowser privateClassesSorted
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3451
     NewSystemBrowser privateClasses
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3452
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3453
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3454
    "Created: / 15-03-2012 / 19:45:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3455
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3456
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3457
!ChangeSet::ClassSourceWriter methodsFor:'source writing'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3458
3435
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3459
fileOut:aChangeSet on:outStreamArg 
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3460
    ^ self
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3461
        fileOut: aChangeSet
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3462
        on:outStreamArg 
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3463
        withTimeStamp:false 
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3464
        withInitialize:true 
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3465
        withDefinition:true
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3466
        methodFilter:nil encoder:nil.
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3467
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3468
    "Created: / 04-02-2014 / 18:36:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3469
!
d15ba356cc58 ChangeSet read/write refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3428
diff changeset
  3470
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3471
fileOut:aChangeSet on:outStreamArg withTimeStamp:stampIt withInitialize:initIt withDefinition:withDefinition methodFilter:methodFilter encoder:encoderOrNil
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3472
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3473
    |collectionOfCategories versionMethods comment
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3474
     nonMeta meta classesImplementingInitialize outStream|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3475
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3476
    changeSetBeingSaved := aChangeSet.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3477
    self analyze.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3478
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3479
    encoderOrNil isNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3480
        outStream := outStreamArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3481
    ] ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3482
        outStream := EncodedStream stream:outStreamArg encoder:encoderOrNil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3483
        outStream nextPutAll:'"{ Encoding: ' , encoderOrNil nameOfEncoding , ' }"'; cr; cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3484
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3485
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3486
    "/ Just a bunch of extensions?
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3487
    topClassName isNil ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3488
        self fileOutMethodsOn: outStream. 
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3489
        ^self.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3490
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3491
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3492
    nonMeta := classInfos at: topClassName.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3493
       meta :=  metaInfos at: topClassName.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3494
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3495
    methodsAlreadySaved := Set new.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3496
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3497
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3498
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3499
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3500
     if there is a copyright method, add a copyright comment
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3501
     at the beginning, taking the string from the copyright method.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3502
     We cannot do this unconditionally - that would lead to my copyrights
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3503
     being put on your code ;-).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3504
     On the other hand: I want every file created by myself to have the
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3505
     copyright string at the beginning be preserved .... even if the
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3506
     code was edited in the browser and filedOut.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3507
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3508
    self generateHeaderWithCopyrightOn:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3509
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3510
    stampIt ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3511
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3512
        "/ first, a timestamp
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3513
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3514
        outStream nextPutAll:(Smalltalk timeStamp).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3515
        outStream nextPutChunkSeparator. 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3516
        outStream cr; cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3517
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3518
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3519
    withDefinition ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3520
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3521
        "/ then the definition(s)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3522
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3523
        self fileOutAllDefinitionsOf:nonMeta on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3524
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3525
        "/ a comment - if any
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3526
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3527
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3528
        (comment := nonMeta comment) notNil ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3529
            nonMeta printClassNameOn: outStream.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3530
            outStream nextPutAll:' comment:'.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3531
            comment comment storeOn: outStream.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3532
            outStream cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3533
            outStream nextPut:$!!; cr; cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3534
        ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3535
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3536
        "/ ST/X primitive definitions - if any
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3537
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3538
        self fileOutPrimitiveSpecsOf: nonMeta on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3539
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3540
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3541
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3542
    "/ methods from all categories in metaclass (i.e. class methods)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3543
    "/ EXCEPT: the version method is placed at the very end, to
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3544
    "/         avoid sourcePosition-shifts when checked out later.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3545
    "/         (RCS expands this string, so its size is not constant)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3546
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3547
    collectionOfCategories := meta categories asSortedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3548
    versionMethods := meta methods select:[:change |AbstractSourceCodeManager isVersionMethodSelector:change selector].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3549
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3550
    collectionOfCategories notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3551
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3552
        "/ documentation first (if any), but not the version method
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3553
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3554
        (collectionOfCategories includes:'documentation') ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3555
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3556
"/            versionMethods do:[:versionMethod |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3557
"/                |source|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3558
"/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3559
"/                source := versionMethod source.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3560
"/                (source isEmptyOrNil or:[(source startsWith:nonMeta nameOfOldVersionMethod) not]) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3561
"/                    "something bad happend to the classes code"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3562
"/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3563
"/                    Class fileOutErrorSignal 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3564
"/                        raiseRequestWith:aClass
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3565
"/                        errorString:' - bad source for version method (uncompiled class file?): ', (versionMethod displayString)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3566
"/                ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3567
"/            ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3568
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3569
            self fileOutCategory:'documentation' of:meta except:versionMethods only:nil methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3570
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3571
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3572
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3573
        "/ initialization next (if any)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3574
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3575
        (collectionOfCategories includes:'initialization') ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3576
            self fileOutCategory:'initialization' of:meta methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3577
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3578
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3579
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3580
        "/ instance creation next (if any)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3581
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3582
        (collectionOfCategories includes:'instance creation') ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3583
            self fileOutCategory:'instance creation' of:meta methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3584
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3585
        collectionOfCategories do:[:aCategory |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3586
            ((aCategory ~= 'documentation')
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3587
            and:[(aCategory ~= 'initialization')
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3588
            and:[aCategory ~= 'instance creation']]) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3589
                self fileOutCategory:aCategory of:meta methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3590
            ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3591
        ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3592
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3593
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3594
    "/ if there are any primitive definitions (vw-like ffi-primitives),
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3595
    "/ file them out first in the order: defines, types.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3596
    "/ Otherwise, we might have trouble when filing in later, because the types are needed
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3597
    "/ for the primitive calls.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3598
    nonMeta methodDictionary keysAndValuesDo:[:sel :m |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3599
        m isVisualWorksTypedef ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3600
            self fileOutCategory:m category of:nonMeta except:nil only:(Array with:m) methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3601
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3602
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3603
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3604
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3605
    "/ methods from all categories
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3606
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3607
    collectionOfCategories := nonMeta categories asSortedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3608
    collectionOfCategories notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3609
        collectionOfCategories do:[:aCategory |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3610
            self fileOutCategory:aCategory of:nonMeta methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3611
        ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3612
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3613
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3614
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3615
    "/ any private classes' methods
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3616
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3617
    (self privateClassesSortedOf: nonMeta) do:[:aClass |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3618
        self fileOutAllMethodsOf:aClass on:outStream methodFilter:methodFilter
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3619
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3620
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3621
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3622
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3623
    "/ finally, the previously skipped version method
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3624
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3625
    versionMethods notEmpty ifTrue: [
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3626
        self fileOutCategory:'documentation' of:meta except:nil only:versionMethods methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3627
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3628
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3629
    initIt ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3630
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3631
        "/ optionally an initialize message
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3632
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3633
        classesImplementingInitialize := OrderedCollection new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3634
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3635
        classInfos values with: metaInfos values do:[:class :meta|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3636
            (meta includesSelector: #initialize) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3637
                classesImplementingInitialize add: class.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3638
            ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3639
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3640
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3641
        classesImplementingInitialize size ~~ 0 ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3642
            classesImplementingInitialize topologicalSort:[:a :b | b isSubclassOf:a].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3643
            outStream cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3644
            classesImplementingInitialize do:[:eachClass |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3645
                eachClass printClassNameOn:outStream. outStream nextPutAll:' initialize'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3646
                outStream nextPutChunkSeparator.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3647
                outStream cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3648
            ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3649
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3650
    ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3651
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3652
    "Created: / 15-11-1995 / 12:53:06 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3653
    "Modified: / 01-04-1997 / 16:01:05 / stefan"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3654
    "Modified: / 29-09-2011 / 14:53:49 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3655
    "Created: / 15-03-2012 / 17:39:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3656
    "Modified: / 01-05-2013 / 09:17:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3657
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3658
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3659
fileOutAllDefinitionsOf:nonMetaInfo on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3660
    "append expressions on aStream, which defines myself and all of my private classes."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3661
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3662
    | metaInfo |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3663
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3664
    nonMetaInfo definition isPrivateClassDefinitionChange ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3665
        nonMetaInfo definition package notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3666
            aStream nextPutAll: ('"{ Package: ''%1'' }"' bindWith: nonMetaInfo definition package).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3667
            aStream cr; cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3668
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3669
        namespaceName notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3670
            aStream nextPutAll: ('"{ NameSpace: %1 }"' bindWith: namespaceName).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3671
            aStream cr; cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3672
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3673
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3674
3218
55fd620bb475 class: ClassSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3197
diff changeset
  3675
    aStream nextChunkPut: (nonMetaInfo definition definitionStringInNamespace: namespaceName).
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3676
    aStream cr; cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3677
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3678
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3679
    "/ optional classInstanceVariables
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3680
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3681
    metaInfo := metaInfos at: nonMetaInfo name.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3682
    metaInfo definition notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3683
        | anySuperClassInstVar myClass |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3684
        aStream 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3685
            nextPutAll: metaInfo definition className; 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3686
            nextPutAll:' instanceVariableNames:';
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3687
            nextPutAll: (metaInfo definition classInstVarNames asStringWith:' ') storeString.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3688
        "mhmh - good idea; saw this in SmallDraw sourcecode ..."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3689
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3690
        anySuperClassInstVar := false.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3691
        myClass := metaInfo definition changeClass.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3692
        myClass notNil ifTrue:[myClass := myClass theNonMetaclass].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3693
        myClass notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3694
            myClass allSuperclassesDo:[:aSuperClass |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3695
                aSuperClass class instVarNames do:[:ignored | anySuperClassInstVar := true].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3696
            ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3697
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3698
            aStream cr; cr; nextPut:(Character doubleQuote); cr; space.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3699
            anySuperClassInstVar ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3700
                aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3701
                    nextPutLine:'No other class instance variables are inherited by this class.'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3702
            ] ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3703
                aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3704
                    nextPutLine:'The following class instance variables are inherited by this class:'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3705
                aStream cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3706
                myClass allSuperclassesDo:[:aSuperClass |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3707
                    aStream tab; nextPutAll:aSuperClass name; nextPutAll:' - '.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3708
                    aStream nextPutLine:(aSuperClass class instanceVariableString).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3709
                ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3710
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3711
            ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3712
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3713
        aStream nextPut:(Character doubleQuote); cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3714
        aStream nextPut:$!!; cr; cr
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3715
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3716
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3717
    "/ here, the full nameSpace prefixes are output,
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3718
    "/ to avoid confusing stc 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3719
    "/ (which otherwise could not find the correct superclass)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3720
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3721
    Class fileOutNameSpaceQuerySignal answer:false do:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3722
        Class forceNoNameSpaceQuerySignal answer:true do:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3723
            (self privateClassesSortedOf: nonMetaInfo) do:[:i |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3724
                 self fileOutAllDefinitionsOf:i on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3725
            ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3726
        ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3727
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3728
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3729
    "Created: / 15-10-1996 / 11:15:19 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3730
    "Modified: / 22-03-1997 / 16:11:56 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3731
    "Created: / 15-03-2012 / 19:18:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  3732
    "Modified: / 11-06-2013 / 22:23:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3733
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3734
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3735
fileOutAllMethodsOf:aClass on:aStream methodFilter:methodFilter
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3736
    | collectionOfCategories meta |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3737
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3738
    meta := metaInfos at: aClass name.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3739
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3740
    collectionOfCategories := meta categories asSortedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3741
    collectionOfCategories notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3742
        collectionOfCategories do:[:aCategory |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3743
            self fileOutCategory:aCategory of:meta  methodFilter:methodFilter on:aStream.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3744
"/            aStream cr.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3745
        ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3746
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3747
    collectionOfCategories := aClass categories asSortedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3748
    collectionOfCategories notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3749
        collectionOfCategories do:[:aCategory |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3750
            self fileOutCategory:aCategory of:aClass methodFilter:methodFilter on:aStream.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3751
"/            aStream cr.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3752
        ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3753
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3754
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3755
    (self privateClassesSortedOf: aClass) do:[:privateClass |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3756
        self fileOutAllMethodsOf:privateClass on:aStream methodFilter:methodFilter
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3757
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3758
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3759
    "Created: / 15-10-1996 / 11:13:00 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3760
    "Modified: / 22-03-1997 / 16:12:17 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3761
    "Created: / 19-03-2012 / 18:21:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3762
    "Modified: / 01-05-2013 / 09:06:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3763
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3764
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3765
fileOutMethod:change on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3766
    "file a single method onto aStream."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3767
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3768
    | changeToFileOut |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3769
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3770
    change isMethodCategoryChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3771
        self assert: change origin notNil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3772
        changeToFileOut := change origin copy.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3773
        changeToFileOut category: change category.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3774
    ] ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3775
        changeToFileOut := change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3776
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3777
    changeToFileOut source notEmptyOrNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3778
        super fileOutMethod:changeToFileOut on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3779
    ] ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3780
"/        self error: 'Should not happen' mayProceed: true.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3781
    ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3782
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3783
    "Created: / 20-03-2012 / 22:33:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3784
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3785
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3786
fileOutMethodsOn:stream
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3787
    "Writes a set of methods in changesetBeingSaved in same format as
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3788
     extensions.st created by source code management. Code stolen from
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3789
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3790
     AbstractSourceCodeManager class>>fileOutSourceCodeExtensions:package:on:version:
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3791
    "
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3792
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3793
    | methodsSortedByName |
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3794
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3795
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3796
        stream nextPutAll:'"{ Package: '''.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3797
        stream nextPutAll:packageName asString.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3798
        stream nextPutAll:''' }"'; nextPutChunkSeparator; cr; cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3799
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3800
"/        s nextPutAll:(Smalltalk timeStamp).
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3801
"/        s nextPutChunkSeparator. 
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3802
"/        s cr; cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3803
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3804
        "/ sort them by name (to avoid conflict due to CVS merge)
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3805
        methodsSortedByName := changeSetBeingSaved.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3806
        methodsSortedByName sort:[:a :b |
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3807
                                    |clsA clsB|
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3808
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3809
                                    clsA := a className.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3810
                                    clsB := b className.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3811
                                    clsA < clsB ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3812
                                        true
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3813
                                    ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3814
                                        clsA > clsB ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3815
                                            false
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3816
                                        ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3817
                                            a selector < b selector
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3818
                                        ]
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3819
                                    ]
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3820
                                  ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3821
        methodsSortedByName do:[:aMethod |
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3822
            |cat source privacy|
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3823
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3824
            self assert: aMethod package = packageName.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3825
            "/self assert: aMethod programmingLanguage isSmalltalk.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3826
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3827
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3828
            stream nextPutChunkSeparator.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3829
            aMethod className printOn: stream.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3830
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3831
            (privacy := aMethod privacy) ~~ #public ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3832
                stream space; nextPutAll:privacy; nextPutAll:'MethodsFor:'.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3833
            ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3834
                stream nextPutAll:' methodsFor:'.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3835
            ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3836
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3837
            cat := aMethod category ? ''.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3838
            stream nextPutAll:cat asString storeString.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3839
            stream nextPutChunkSeparator; cr; cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3840
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3841
            source := aMethod source.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3842
            source isNil ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3843
                "FileOutErrorSignal"Error
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3844
                    raiseRequestWith:self
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3845
                    errorString:(' - no source for method: ' ,
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3846
                                 self className , '>>' ,
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3847
                                 aMethod selector)
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3848
            ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3849
                stream nextChunkPut:source.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3850
            ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3851
            stream space.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3852
            stream nextPutChunkSeparator.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3853
            stream cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3854
        ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3855
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3856
    "Created: / 30-01-2013 / 09:35:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3857
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3858
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3859
fileOutPrimitiveSpecsOf: nonMeta on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3860
    "append primitive defs (if any) to aStream."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3861
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3862
    |s|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3863
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3864
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3865
     primitive definitions - if any
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3866
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3867
    (s := nonMeta primitiveDefinitionsString) notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3868
        aStream nextPutChunkSeparator.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3869
        nonMeta printClassNameOn:aStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3870
        aStream nextPutAll:' primitiveDefinitions';
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3871
                nextPutChunkSeparator;
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3872
                cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3873
        aStream nextPutAll:s.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3874
        aStream nextPutChunkSeparator; space; nextPutChunkSeparator; cr; cr
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3875
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3876
    (s := nonMeta primitiveVariablesString) notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3877
        aStream nextPutChunkSeparator.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3878
        nonMeta printClassNameOn:aStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3879
        aStream nextPutAll:' primitiveVariables';
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3880
                nextPutChunkSeparator;
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3881
                cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3882
        aStream nextPutAll:s.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3883
        aStream nextPutChunkSeparator; space; nextPutChunkSeparator; cr; cr
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3884
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3885
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3886
    "Created: / 15-03-2012 / 19:48:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3887
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3888
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3889
generateHeaderWithCopyrightOn:outStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3890
    |copyrightChange copyrightText|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3891
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3892
    copyrightChange :=
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3893
        (metaInfos at: topClassName) methodAt: #copyright.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3894
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3895
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3896
    copyrightChange notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3897
        "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3898
         get the copyright method's comment-text, strip off empty and blank lines
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3899
         and insert at beginning.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3900
        "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3901
        copyrightText := Parser methodCommentFromSource: copyrightChange source.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3902
        copyrightText notEmptyOrNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3903
            copyrightText := copyrightText asCollectionOfLines asStringCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3904
            copyrightText := copyrightText withoutLeadingBlankLines.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3905
            copyrightText := copyrightText withoutTrailingBlankLines.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3906
            copyrightText notEmpty ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3907
                copyrightText addFirst:'"'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3908
                copyrightText addLast:'"'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3909
                copyrightText := copyrightText asString.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3910
                outStream nextPutAllAsChunk:copyrightText.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3911
            ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3912
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3913
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3914
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3915
    "Created: / 15-03-2012 / 19:01:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3916
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3917
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3918
!ChangeSet::ClassSourceWriter::ClassInfo class methodsFor:'documentation'!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3919
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3920
copyright
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3921
"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3922
 COPYRIGHT (c) 2006 by eXept Software AG
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3923
              All Rights Reserved
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3924
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3925
 This software is furnished under a license and may be used
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3926
 only in accordance with the terms of that license and with the
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3927
 inclusion of the above copyright notice.   This software may not
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3928
 be provided or otherwise made available to, or used by, any
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3929
 other person.  No title to or ownership of the software is
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3930
 hereby transferred.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3931
"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3932
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3933
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3934
version_SVN
3395
baddb3274c85 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  3935
    ^ '$Id: ChangeSet.st,v 1.235 2013-08-30 11:19:22 cg Exp $'
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3936
! !
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3937
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3938
!ChangeSet::ClassSourceWriter::ClassInfo class methodsFor:'instance creation'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3939
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3940
new
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3941
    "return an initialized instance"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3942
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3943
    ^ self basicNew initialize.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3944
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3945
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3946
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'accessing'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3947
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3948
categories
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3949
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3950
    ^ (methods collect:[:e|e category]) asSet
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3951
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3952
    "Created: / 19-03-2012 / 18:03:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3953
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3954
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3955
comment
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3956
    ^ comment
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3957
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3958
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3959
comment:something
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3960
    comment := something.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3961
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3962
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3963
definition
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3964
    ^ definition
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3965
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3966
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3967
definition:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3968
    definition := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3969
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3970
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3971
methodAt: selector 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3972
    ^methods detect:[:each|each selector == selector] ifNone:[nil].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3973
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3974
    "Created: / 15-03-2012 / 19:11:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3975
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3976
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3977
methodDictionary
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3978
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3979
    methodDictionary isNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3980
        methodDictionary := Dictionary new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3981
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3982
    ^methodDictionary
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3983
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3984
    "Created: / 19-03-2012 / 18:11:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3985
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3986
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3987
methods
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3988
    ^ methods
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3989
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3990
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3991
methods:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3992
    methods := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3993
    methodDictionary := Dictionary new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3994
    methods do:[:m|methodDictionary at: m selector put: m].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3995
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3996
    "Modified: / 19-03-2012 / 18:12:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3997
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3998
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3999
name
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4000
    ^ name
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4001
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4002
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4003
name:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4004
    name := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4005
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4006
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4007
namespace
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4008
    ^ namespace
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4009
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4010
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4011
namespace:aString
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4012
    namespace := aString.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4013
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4014
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4015
primitiveDefinitions
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4016
    ^ primitiveDefinitions
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4017
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4018
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4019
primitiveDefinitionsString
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4020
    ^ primitiveDefinitions isNil 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4021
        ifTrue:[nil]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4022
        ifFalse:[primitiveDefinitions source]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4023
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4024
    "Created: / 13-04-2012 / 13:14:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4025
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4026
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4027
primitiveFunctions
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4028
    ^ primitiveFunctions
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4029
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4030
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4031
primitiveFunctionsString
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4032
    ^ primitiveFunctions isNil 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4033
        ifTrue:[nil]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4034
        ifFalse:[primitiveFunctions source]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4035
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4036
    "Created: / 13-04-2012 / 13:15:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4037
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4038
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4039
primitiveVariables
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4040
    ^ primitiveVariables
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4041
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4042
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4043
primitiveVariablesString
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4044
    ^ primitiveVariables isNil 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4045
        ifTrue:[nil]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4046
        ifFalse:[primitiveVariables source]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4047
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4048
    "Created: / 13-04-2012 / 13:15:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4049
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4050
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4051
selectorAtMethod: m
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4052
    ^m selector
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4053
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4054
    "Created: / 19-03-2012 / 18:14:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4055
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4056
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4057
superclass
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4058
    ^ superclass
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4059
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4060
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4061
superclass:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4062
    superclass := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4063
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4064
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4065
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'adding'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4066
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4067
addChange: change
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4068
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4069
    change isClassDefinitionChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4070
        self assert: definition isNil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4071
        definition := change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4072
        ^self.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4073
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4074
    change isMethodCodeChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4075
        methods add: change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4076
        ^self.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4077
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4078
    change isMethodCategoryChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4079
        methods add: change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4080
        ^self.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4081
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4082
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4083
    change isClassInstVarDefinitionChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4084
        self assert: definition isNil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4085
        definition := change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4086
        ^self
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4087
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4088
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4089
    change isPrimitiveDefinitionsChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4090
        primitiveDefinitions := change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4091
        ^self
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4092
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4093
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4094
    change isPrimitiveVariablesChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4095
        primitiveVariables := change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4096
        ^self
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4097
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4098
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4099
    change isPrimitiveFunctionsChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4100
        primitiveFunctions := change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4101
        ^self
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4102
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4103
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4104
    change isClassCommentChange ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4105
        comment := change.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4106
        ^self
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4107
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4108
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4109
    self error: 'Unknown change'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4110
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4111
    "Created: / 15-03-2012 / 19:12:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4112
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4113
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4114
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'enumerating'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4115
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4116
methodsDo: aBlock
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4117
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4118
    methods do: aBlock
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4119
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4120
    "Created: / 19-03-2012 / 18:14:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4121
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4122
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4123
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'initialization'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4124
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4125
initialize
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4126
    "Invoked when a new instance is created."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4127
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4128
    "/ please change as required (and remove this comment)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4129
    "/ name := nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4130
    "/ instDefinition := nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4131
    "/ classDefinition := nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4132
    methods := OrderedCollection new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4133
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4134
    "/ super initialize.   -- commented since inherited method does nothing
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4135
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4136
    "Modified: / 15-03-2012 / 19:12:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4137
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4138
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4139
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'printing & storing'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4140
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4141
printClassNameOn:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4142
    | nameWithoutNs |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4143
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4144
    nameWithoutNs := name.
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  4145
"/    namespace notNil ifTrue:[
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  4146
"/        self assert: (name startsWith:namespace).
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  4147
"/        nameWithoutNs := nameWithoutNs copyFrom: namespace size + 3.
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  4148
"/    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4149
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4150
    aStream nextPutAll: nameWithoutNs
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4151
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4152
    "Created: / 19-03-2012 / 18:17:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3303
7ed5d48e3756 Refactoring of class names and namespaces in ClassChange (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3302
diff changeset
  4153
    "Modified: / 11-06-2013 / 17:59:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4154
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4155
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4156
printOn:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4157
    "append a printed representation if the receiver to the argument, aStream"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4158
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4159
    aStream nextPutAll: self class nameWithoutPrefix.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4160
    aStream nextPutAll:'('.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4161
    name printOn:aStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4162
    aStream nextPutAll:')'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4163
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4164
    "Modified: / 19-03-2012 / 19:43:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4165
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4166
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4167
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'queries'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4168
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4169
includesSelector: selector
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4170
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4171
    ^methods anySatisfy:[:m|m selector == selector].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4172
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4173
    "Created: / 19-03-2012 / 18:22:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4174
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4175
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4176
isPrivateClassOf: classInfo
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4177
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4178
    ^(name startsWith: classInfo name)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4179
        and:[ (name at: (classInfo name size + 1)) == $:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4180
            and:[ (name at: (classInfo name size + 2)) == $:]]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4181
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4182
    "Created: / 15-03-2012 / 19:42:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4183
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4184
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4185
isSubclassOf: classInfo
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4186
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4187
    ^superclass notNil and:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4188
        [superclass == classInfo or:[superclass isSubclassOf: classInfo]]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4189
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4190
    "Created: / 15-03-2012 / 19:41:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  4191
! !
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  4192
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4193
!ChangeSet::DiffSet class methodsFor:'documentation'!
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4194
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4195
documentation
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4196
"
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4197
    I represent the differences between two change sets.
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4198
    As such, I can be used by a VersionDiffBrowser and to generate patchSets.
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4199
"
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4200
! !
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4201
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4202
!ChangeSet::DiffSet methodsFor:'accessing'!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4203
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4204
changed
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4205
    "return the set of methods which were different"
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4206
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4207
    ^ changed
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4208
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4209
    "Modified: / 12-10-2006 / 22:06:55 / cg"
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4210
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4211
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4212
changed:something
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4213
    "set the set of changed methods"
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4214
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4215
    changed := something.
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4216
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4217
    "Modified: / 12-10-2006 / 22:06:03 / cg"
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4218
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4219
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4220
changed:changedArg onlyInReceiver:onlyInReceiverArg onlyInArg:onlyInArgArg 
3338
c6065f4c9def class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3309
diff changeset
  4221
    self changed:changedArg onlyInReceiver:onlyInReceiverArg onlyInArg:onlyInArgArg same:nil
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4222
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4223
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4224
changed:changedArg onlyInReceiver:onlyInReceiverArg onlyInArg:onlyInArgArg same: sameArg
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4225
    "set instance variables (automatically generated)"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4226
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4227
    changed := changedArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4228
    changed isNil ifTrue:[changed := OrderedCollection new].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4229
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4230
    onlyInReceiver := onlyInReceiverArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4231
    onlyInReceiver isNil ifTrue:[onlyInReceiver := ChangeSet new].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4232
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4233
    onlyInArg := onlyInArgArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4234
    onlyInArg isNil ifTrue:[onlyInArg := ChangeSet new].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4235
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4236
    same := sameArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4237
    same isNil ifTrue:[same := ChangeSet new].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4238
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4239
    "Created: / 19-03-2012 / 21:35:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4240
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4241
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4242
onlyInArg
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4243
    "return the set of methods which were only present in the argument of the diffset"
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4244
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4245
    ^ onlyInArg
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4246
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4247
    "Modified: / 12-10-2006 / 22:07:02 / cg"
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4248
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4249
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4250
onlyInArg:something
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4251
    onlyInArg := something.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4252
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4253
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4254
onlyInReceiver
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4255
    "return the set of methods which were only present in the receiver of the diffset"
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4256
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4257
    ^ onlyInReceiver
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4258
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4259
    "Modified: / 12-10-2006 / 22:07:12 / cg"
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4260
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4261
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4262
onlyInReceiver:something
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4263
    onlyInReceiver := something.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4264
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4265
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4266
same
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4267
    ^ same
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4268
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4269
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4270
same:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4271
    same := something.
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4272
! !
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4273
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4274
!ChangeSet::DiffSet methodsFor:'merging'!
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4275
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4276
addDiffSet:anotherDiffset
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4277
    changed addAll:(anotherDiffset changed).
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4278
    onlyInReceiver addAll:(anotherDiffset onlyInReceiver).
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4279
    onlyInArg addAll:(anotherDiffset onlyInArg).
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4280
    same addAll: (anotherDiffset same).
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4281
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4282
    "Created: / 12-10-2006 / 22:49:30 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4283
    "Modified: / 19-03-2012 / 21:36:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4284
!
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4285
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4286
copy
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4287
    ^ self class new
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4288
        changed:changed copy
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4289
        onlyInReceiver:onlyInReceiver copy
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4290
        onlyInArg:onlyInArg copy
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4291
        same:same copy
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4292
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4293
    "Created: / 12-10-2006 / 22:50:56 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4294
    "Modified: / 19-03-2012 / 21:36:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4295
! !
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4296
2186
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4297
!ChangeSet::DiffSet methodsFor:'misc'!
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4298
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4299
removeAllVersionMethods
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4300
    changed := changed 
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4301
                    reject:[:pair |
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4302
                        pair first isMethodChangeForVersionMethod
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4303
                    ].
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4304
    onlyInReceiver := onlyInReceiver 
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4305
                    reject:[:chg |
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4306
                        chg isMethodChangeForVersionMethod
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4307
                    ].
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4308
    onlyInArg := onlyInArg 
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4309
                    reject:[:chg |
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4310
                        chg isMethodChangeForVersionMethod
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4311
                    ].
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4312
! !
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4313
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4314
!ChangeSet::DiffSet methodsFor:'queries'!
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4315
2914
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4316
changedClasses
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4317
    |allChangedClasses|
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4318
2923
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4319
    allChangedClasses := Set new.
2914
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4320
    allChangedClasses addAll:(onlyInArg changedClasses).
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4321
    allChangedClasses addAll:(onlyInReceiver changedClasses).
2923
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4322
    changed do:[:eachChangePair | 
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4323
        allChangedClasses add:(eachChangePair first changeClass).
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4324
        allChangedClasses add:(eachChangePair second changeClass).
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4325
    ].
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4326
    allChangedClasses remove:nil ifAbsent:[].
2914
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4327
    ^ allChangedClasses
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4328
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4329
    "Created: / 26-09-2012 / 15:39:18 / cg"
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4330
!
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4331
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4332
isEmpty
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4333
    ^ changed isEmpty
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4334
    and:[ onlyInReceiver isEmpty
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4335
    and:[ onlyInArg isEmpty ] ]
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4336
!
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4337
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4338
notEmpty
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4339
    ^ self isEmpty not
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4340
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4341
    "Created: / 12-10-2006 / 23:12:27 / cg"
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4342
! !
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4343
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4344
!ChangeSet::DolphinPACFileReader methodsFor:'reading-private'!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4345
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4346
handleCategoriesForClass
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4347
    |category change|
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4348
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4349
    [
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4350
        inputStream skipSeparators.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4351
        category := inputStream nextChunk.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4352
        category notEmpty
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4353
    ] whileTrue:[
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4354
        change := ClassCategoryChange new.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4355
        change 
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4356
            className:className
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4357
            category:category.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4358
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4359
        self addChange:change.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4360
    ].
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4361
    ^ true
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4362
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4363
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4364
handleCategoriesForMethod
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4365
    |methodSelector categories change isPrivate isPublic category|
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4366
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4367
    methodSelector := (arguments at:1) evaluate.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4368
    inputStream skipSeparators.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4369
    isPrivate := false.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4370
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4371
    categories := OrderedCollection new.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4372
    [
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4373
        |done category |
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4374
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4375
        category := inputStream nextChunk withoutSeparators.
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4376
        done := category isEmpty.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4377
        done ifFalse:[
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4378
            categories add:category
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4379
        ].
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4380
        done
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4381
    ] whileFalse.
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4382
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4383
    categories size > 1 ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4384
        isPrivate := categories includes:'private'.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4385
        categories remove:'private' ifAbsent:nil.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4386
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4387
    categories size > 1 ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4388
        isPublic := categories includes:'public'.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4389
        categories remove:'public' ifAbsent:nil.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4390
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4391
"/    categories size > 1 ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4392
"/        self halt.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4393
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4394
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4395
    category := categories first.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4396
    isPrivate ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4397
        category := category , '-private'. 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4398
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4399
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4400
    change := MethodCategoryChange new.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4401
    change 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4402
        className:className
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4403
        selector:methodSelector
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4404
        category:category.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4405
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4406
    self addChange:change.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4407
    ^ true
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4408
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4409
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4410
processChange
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4411
    "given a parse-tree (from parsing some changes source/chunk),
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4412
     create changes and evaluate changeAction on each.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4413
     The block is invoked with the change and a lineNumberOrNil as
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4414
     arg; the lineNumber is only valid, if the underlying stream 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4415
     provides line-numbers; otherwise, nil is passed."
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4416
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4417
    (selector == #'categoriesForClass') ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4418
        ^ self handleCategoriesForClass.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4419
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4420
    (selector == #'categoriesFor:') ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4421
        ^ self handleCategoriesForMethod.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4422
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4423
    selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:classInstanceVariableNames:' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4424
        ^ self handleClassDefinitionChange.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4425
    ].
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4426
"/    selector == #'guid:' ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4427
"/        ^ self handleGUIDChange.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4428
"/    ].
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4429
    ^ super processChange
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4430
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4431
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4432
"/    selector == #named:superclass:indexedInstanceVariables:instanceVariableNames:classVariableNames:sharedPools:classInstanceVariableNames: ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4433
"/        ^ self handleClassDefinitionChange.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4434
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4435
"/    (selector == #'key:value:') ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4436
"/        (self checkReceiverIsGlobalNamed:'Annotation') ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4437
"/            ^ self handleAnnotation.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4438
"/        ]
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4439
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4440
"/    selector == #'method' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4441
"/        ^ self handleMethodChange:false.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4442
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4443
"/    selector == #'classMethod' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4444
"/        ^ self handleMethodChange:true.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4445
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4446
"/
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4447
"/    selector == #'initializer' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4448
"/        ^ true
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4449
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4450
"/    selector == #'initialize' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4451
"/        ^ true
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4452
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4453
"/self halt.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4454
"/
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4455
"/    ^ false
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4456
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4457
    "Created: / 16.2.1998 / 13:42:40 / cg"
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4458
    "Modified: / 15.12.1999 / 00:29:06 / cg"
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4459
! !
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4460
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4461
!ChangeSet::SIFChangeFileReader methodsFor:'reading-private'!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4462
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4463
handleAnnotation
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4464
    |key value lastChange change|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4465
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4466
    key := (arguments at:1) evaluate.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4467
    value := (arguments at:2) evaluate.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4468
1422
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  4469
    key = 'Prerequisite' ifTrue:[
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  4470
"/        change := SIFPrerequisiteChange new prerequisiteFileName:value.
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  4471
"/        self addChange:change.
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  4472
        ^ true
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  4473
    ].
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  4474
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4475
    lastChange := changeSet last.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4476
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4477
    key = 'package' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4478
        change := ClassCategoryChange new className:(lastChange className) category:value.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4479
        self addChange:change.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4480
        ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4481
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4482
    key = 'category' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4483
"/        change := MethodCategoryChange new className:(lastChange className) selector:(lastChange selector) category:value.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4484
"/        self addChange:change.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4485
        lastChange category:value.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4486
        ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4487
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4488
    key = 'stamp' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4489
        "/ lastChange timeStamp:value.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4490
        ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4491
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4492
    ^ false
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4493
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4494
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4495
handleClassDefinitionChange
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4496
    |nameSpace change|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4497
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4498
    (self checkReceiverIsGlobalNamed:#Class) ifFalse:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4499
        self error:'unexpected receiver in classDefinition message' mayProceed:true.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4500
        ^ false.
1313
8aceccee1eaf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1301
diff changeset
  4501
    ].
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4502
    className := (arguments at:1) evaluate.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4503
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4504
    nameSpace := Class nameSpaceQuerySignal query.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4505
    nameSpace ~~ Smalltalk ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4506
        className := nameSpace name , '::' , className
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4507
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4508
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4509
    change := ClassDefinitionChange new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4510
    change className:className; source:(parseTree printString).
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4511
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4512
    change package:(Class packageQuerySignal query).
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4513
    self addChange:change.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4514
    ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4515
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4516
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4517
handleMethodChange:isMeta
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
  4518
    |categoryName methodSource change parser |
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4519
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4520
    className := self receiversClassName.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4521
    isMeta ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4522
        className := className , ' class'
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4523
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4524
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4525
    categoryName := 'uncategorized'.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4526
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4527
    inputStream skipSeparators.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4528
    lineNumber := inputStream lineNumber.
3376
a0e06d192df4 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3360
diff changeset
  4529
    position := inputStream position + 1.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4530
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4531
    methodSource := inputStream nextChunk.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4532
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4533
    parser := Parser
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4534
                parseMethodArgAndVarSpecification:methodSource 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4535
                in:nil 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4536
                ignoreErrors:true 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4537
                ignoreWarnings:true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4538
                parseBody:false.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4539
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4540
    parser isNil ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4541
        "/ something wierd ...
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4542
        methodSelector := '????'.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4543
    ] ifFalse:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4544
        methodSelector := parser selector.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4545
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4546
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4547
    change := MethodChange new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4548
    change 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4549
        className:className
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4550
        selector:methodSelector
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4551
        source:methodSource
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4552
        category:categoryName
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
  4553
        privacy:nil.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4554
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4555
    self addChange:change.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4556
    ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4557
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4558
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4559
processChange
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4560
    "given a parse-tree (from parsing some changes source/chunk),
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4561
     create changes and evaluate changeAction on each.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4562
     The block is invoked with the change and a lineNumberOrNil as
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4563
     arg; the lineNumber is only valid, if the underlying stream 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4564
     provides line-numbers; otherwise, nil is passed."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4565
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4566
    (selector == #'interchangeVersion:') ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4567
        ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4568
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4569
    selector == #named:superclass:indexedInstanceVariables:instanceVariableNames:classVariableNames:sharedPools:classInstanceVariableNames: ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4570
        ^ self handleClassDefinitionChange.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4571
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4572
    (selector == #'key:value:') ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4573
        (self checkReceiverIsGlobalNamed:'Annotation') ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4574
            ^ self handleAnnotation.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4575
        ]
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4576
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4577
    selector == #'method' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4578
        ^ self handleMethodChange:false.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4579
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4580
    selector == #'classMethod' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4581
        ^ self handleMethodChange:true.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4582
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4583
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4584
    selector == #'initializer' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4585
        ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4586
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4587
    selector == #'initialize' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4588
        ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4589
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4590
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4591
    ^ false
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4592
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4593
    "Created: / 16.2.1998 / 13:42:40 / cg"
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4594
    "Modified: / 15.12.1999 / 00:29:06 / cg"
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4595
! !
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4596
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
  4597
!ChangeSet class methodsFor:'documentation'!
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  4598
2868
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  4599
version
3395
baddb3274c85 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4600
    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.235 2013-08-30 11:19:22 cg Exp $'
2923
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4601
!
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4602
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4603
version_CVS
3395
baddb3274c85 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4604
    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.235 2013-08-30 11:19:22 cg Exp $'
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4605
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4606
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4607
version_HG
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4608
3269
84de19204303 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3248
diff changeset
  4609
    ^ '$Changeset: <not expanded> $'
2868
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  4610
!
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  4611
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4612
version_SVN
3395
baddb3274c85 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  4613
    ^ '$Id: ChangeSet.st,v 1.235 2013-08-30 11:19:22 cg Exp $'
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  4614
! !
2985
f82eaa98e5a1 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 2973
diff changeset
  4615