ChangeSet.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 26 Feb 2018 11:49:17 +0000
branchjv
changeset 4304 2feea54a7804
parent 4260 022b210d86b5
child 4330 998eb03f0736
permissions -rw-r--r--
Fixes and improvements in Bee changesets reader and writer (.ch) ...mainly adding couple more handlers for there are (way too) many variations used over the years. It seems that changeseter readers / writers need a major revamp to correctly an easily support multiple formats.
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
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
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
3697
2fa150de2ee1 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3696
diff changeset
    14
"{ NameSpace: Smalltalk }"
2fa150de2ee1 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3696
diff changeset
    15
0
470788421600 Initial revision
claus
parents:
diff changeset
    16
OrderedCollection subclass:#ChangeSet
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    17
	instanceVariableNames:'changedClasses changeSelectors name'
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    18
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    19
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    20
	category:'System-Changes'
0
470788421600 Initial revision
claus
parents:
diff changeset
    21
!
470788421600 Initial revision
claus
parents:
diff changeset
    22
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
    23
Object subclass:#ChangeFileReader
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    24
	instanceVariableNames:'inputStream parseTree changeAction changeSet selector receiver
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    25
		arguments receiverSelector receiverReceiver lineNumber position
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    26
		className methodSelector nameSpaceOverride chunk timestamp
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    27
		classIsJava'
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    28
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    29
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    30
	privateIn:ChangeSet
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
    31
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
    32
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
    33
Object subclass:#ChangeFileWriter
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
    34
	instanceVariableNames:''
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
    35
	classVariableNames:''
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
    36
	poolDictionaries:''
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
    37
	privateIn:ChangeSet
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
    38
!
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
    39
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
    40
ChangeSet::ChangeFileReader subclass:#BeeChangeFileReader
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
    41
	instanceVariableNames:''
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
    42
	classVariableNames:''
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
    43
	poolDictionaries:''
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
    44
	privateIn:ChangeSet
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
    45
!
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
    46
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
    47
ChangeSet::ChangeFileWriter subclass:#BeeChangeFileWriter
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
    48
	instanceVariableNames:'timestamp'
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
    49
	classVariableNames:''
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
    50
	poolDictionaries:''
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
    51
	privateIn:ChangeSet
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
    52
!
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
    53
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    54
Error subclass:#ChangeProcessingError
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    55
	instanceVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    56
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    57
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    58
	privateIn:ChangeSet
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    59
!
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    60
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    61
SmalltalkChunkFileSourceWriter subclass:#ClassSourceWriter
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    62
	instanceVariableNames:'changeSetBeingSaved packageName namespaceName topClassName
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    63
		classInfos metaInfos'
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    64
	classVariableNames:''
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    65
	poolDictionaries:''
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    66
	privateIn:ChangeSet
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    67
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    68
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    69
Object subclass:#ClassInfo
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    70
	instanceVariableNames:'name superclass definition comment methods methodDictionary
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    71
		namespace primitiveDefinitions primitiveVariables
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    72
		primitiveFunctions'
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    73
	classVariableNames:''
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    74
	poolDictionaries:''
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    75
	privateIn:ChangeSet::ClassSourceWriter
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    76
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    77
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    78
Object subclass:#DiffSet
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    79
	instanceVariableNames:'changed onlyInReceiver onlyInArg same'
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    80
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    81
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    82
	privateIn:ChangeSet
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    83
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    84
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    85
ChangeSet::ChangeFileReader subclass:#DolphinPACFileReader
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    86
	instanceVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    87
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    88
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    89
	privateIn:ChangeSet
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    90
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    91
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    92
ChangeSet::ChangeProcessingError subclass:#InvalidChangeChunkError
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    93
	instanceVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    94
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    95
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    96
	privateIn:ChangeSet
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    97
!
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    98
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
    99
ChangeSet::ChangeFileReader subclass:#SIFChangeFileReader
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   100
	instanceVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   101
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   102
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   103
	privateIn:ChangeSet
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   104
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   105
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   106
!ChangeSet class methodsFor:'documentation'!
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   107
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   108
copyright
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   109
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   110
 COPYRIGHT (c) 1993 by Claus Gittinger
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   111
	      All Rights Reserved
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   112
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   113
 This software is furnished under a license and may be used
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   114
 only in accordance with the terms of that license and with the
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   115
 inclusion of the above copyright notice.   This software may not
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   116
 be provided or otherwise made available to, or used by, any
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   117
 other person.  No title to or ownership of the software is
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   118
 hereby transferred.
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   119
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   120
!
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   121
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   122
documentation
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   123
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   124
    used in the changes management to keep track of changes
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   125
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   126
    [author:]
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   127
	Claus Gittinger
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   128
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   129
! !
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   130
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   131
!ChangeSet class methodsFor:'instance creation'!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   132
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   133
forExistingClass:aClass
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   134
    "build a changeSet for some given class, all of its private classes
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   135
     and all extensions if any.
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   136
     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
   137
     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
   138
     state of the given class.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   139
     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
   140
     for example, when building patchLists, diffSets, comparing etc."
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   141
1954
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   142
    |changeSet s changeObject|
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   143
2633
5a5460e5231a comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2626
diff changeset
   144
    "/ kludge: could do this much faster...
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   145
    s := ReadWriteStream on:''.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   146
    aClass fileOutOn:s.
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   147
    s reset.
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   148
    changeSet := self fromStream:s.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   149
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   150
    "/ fetch the real package info...
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   151
    changeSet do:[:eachChange |
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   152
	eachChange isMethodChange ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   153
	    changeObject := eachChange changeMethod.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   154
	    changeObject notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   155
		eachChange package:changeObject package
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   156
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   157
	] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   158
	    eachChange isClassChange ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   159
		changeObject := eachChange changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   160
		changeObject notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   161
		    eachChange package:changeObject package
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   162
		].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   163
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   164
	].
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   165
    ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   166
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   167
    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   168
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   169
"/    |source changeSet chunk sawExcla lastTimeStamp s change nameSpace|
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   170
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   171
"/    changeSet := self new.
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
"/    "/ first, a classDefinition change ...
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   174
"/    changeSet addClassDefinitionChangeFor:aClass.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   175
"/    "/ are there any class-instVars ?
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   176
"/    aClass class instVarNames size > 0 ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   177
"/        changeSet addInstVarDefinitionChangeFor:aClass class.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   178
"/    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   179
"/    "/ a comment ?
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   180
"/    aClass comment size > 0 ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   181
"/        changeSet addClassCommentChangeFor:aClass.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   182
"/    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   183
"/
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   184
"/    "/ class methods first ...
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   185
"/    aClass class methodDictionary keysAndValuesDo:[:sel :mthd |
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   186
"/        changeSet addMethodChange:mthd in:aClass class.
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
"/
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   189
"/    "/ instance methods ...
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   190
"/    aClass methodDictionary keysAndValuesDo:[:sel :mthd |
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   191
"/        changeSet addMethodChange:mthd in:aClass.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   192
"/    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   193
"/
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   194
"/    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   195
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   196
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   197
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   198
     ChangeSet forExistingClass:ChangeSet
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   199
     ChangeSet forExistingClass:A
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   200
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   201
     Rectangle hasExtensions
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   202
     ChangeSet forExistingClass:Rectangle
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   203
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   204
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   205
    "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
   206
    "Modified: / 12-10-2006 / 23:45:14 / cg"
2633
5a5460e5231a comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2626
diff changeset
   207
    "Modified (format): / 01-12-2011 / 19:10:22 / cg"
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   208
!
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   209
2940
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   210
forExistingClass:aClass withExtensions:withExtensions
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   211
    "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
   212
     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
   213
     state of the given class.
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   214
     It is useful in conjunction with the other utility methods,
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   215
     for example, when building patchLists, diffSets etc."
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
    ^ self
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   218
	forExistingClass:aClass
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   219
	withExtensions:withExtensions
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   220
	withLooseMethods:false
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   221
	extensionsOnly:false
2940
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   222
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   223
    "
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   224
     Object hasExtensions
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   225
     Object extensions size
2940
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   226
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   227
     (ChangeSet forExistingClass:Object) size
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   228
     (ChangeSet forExistingClass:Object withExtensions:false) size
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   229
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   230
     (ChangeSet forExistingClass:stx_libbasic3 withExtensions:false)
2940
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   231
    "
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   232
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   233
    "Created: / 12-10-2006 / 18:13:02 / cg"
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   234
    "Modified: / 12-10-2006 / 23:46:05 / cg"
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   235
!
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   236
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   237
forExistingClass:aClass withExtensions:withExtensions extensionsOnly:extensionsOnly
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   238
    "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
   239
     as specified by the with-arguments.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   240
     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
   241
     state of the given class.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   242
     It is useful in conjunction with the other utility methods,
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   243
     for example, when building patchLists, diffSets etc."
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   244
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   245
    ^ self
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   246
	forExistingClass:aClass
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   247
	withExtensions:withExtensions
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   248
	withLooseMethods:false
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   249
	extensionsOnly:extensionsOnly
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   250
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   251
    "
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   252
     ChangeSet forExistingClass:ChangeSet
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   253
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   254
     Rectangle hasExtensions
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   255
     Rectangle extensions
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   256
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   257
     ChangeSet forExistingClass:Rectangle withExtensions:true extensionsOnly:false
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   258
     ChangeSet forExistingClass:Rectangle withExtensions:false extensionsOnly:false
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   259
     ChangeSet forExistingClass:Rectangle withExtensions:false extensionsOnly:true
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   260
    "
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   261
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   262
    "Created: / 12-10-2006 / 18:13:02 / cg"
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   263
    "Modified: / 12-10-2006 / 23:46:05 / cg"
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   264
!
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   265
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   266
forExistingClass:aClass withExtensions:withExtensions withLooseMethods:withLooseMethods
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   267
    "build a changeSet for some given full class with or without extensions.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   268
     That does of course not give deltas, but instead reflects the current
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   269
     state of the given class.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   270
     It is useful in conjunction with the other utility methods,
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   271
     for example, when building patchLists, diffSets etc."
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   272
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   273
    ^ self
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   274
	forExistingClass:aClass
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   275
	withExtensions:withExtensions
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   276
	withLooseMethods:withLooseMethods
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   277
	extensionsOnly:false
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   278
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   279
    "
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   280
     Object hasExtensions
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   281
     Object extensions size
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   282
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   283
     (ChangeSet forExistingClass:Object) size
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   284
     (ChangeSet forExistingClass:Object withExtensions:false) size
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   285
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   286
     (ChangeSet forExistingClass:stx_libbasic3 withExtensions:false)
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   287
    "
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   288
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   289
    "Created: / 12-10-2006 / 18:13:02 / cg"
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   290
    "Modified: / 12-10-2006 / 23:46:05 / cg"
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   291
!
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   292
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   293
forExistingClass:aClass withExtensions:withExtensions withLooseMethods:withLooseMethods extensionsOnly:extensionsOnly
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   294
    "build a changeSet for some given full class, the base-class or the extensions only,
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   295
     as specified by the with-arguments.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   296
     That does of course not give deltas, but instead reflects the current
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   297
     state of the given class.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   298
     It is useful in conjunction with the other utility methods,
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   299
     for example, when building patchLists, diffSets etc."
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   300
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   301
    |changeSet classPackage notInClassesPackage realExtensions looseMethods|
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   302
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   303
    changeSet := self forExistingClass:aClass.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   304
    classPackage := aClass package.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   305
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   306
    notInClassesPackage :=
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   307
		[:change |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   308
		    change isMethodChange
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   309
		    and:[ change package ~= classPackage ]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   310
		].
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   311
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   312
    realExtensions :=
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   313
		[:change |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   314
		    change isMethodChange
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   315
		    and:[ change package ~= classPackage
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   316
		    and:[ change package ~~ PackageId noProjectID ]]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   317
		].
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   318
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   319
    looseMethods :=
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   320
		[:change |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   321
		    change isMethodChange
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   322
		    and:[change package == PackageId noProjectID ]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   323
		].
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   324
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   325
    extensionsOnly ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   326
	withLooseMethods ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   327
	    ^ changeSet select:notInClassesPackage
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   328
	].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   329
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   330
	^ changeSet select:realExtensions.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   331
    ].
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   332
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   333
    withExtensions ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   334
	withLooseMethods ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   335
	    ^ changeSet reject:notInClassesPackage
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   336
	].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   337
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   338
	^ changeSet reject:realExtensions.
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   339
    ].
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   340
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   341
    withLooseMethods ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   342
	^ changeSet reject:looseMethods.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   343
    ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   344
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   345
    ^ changeSet
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   346
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   347
    "
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   348
     ChangeSet forExistingClass:ChangeSet
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   349
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   350
     Rectangle hasExtensions
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   351
     Rectangle extensions
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   352
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   353
     ChangeSet forExistingClass:Rectangle withExtensions:true extensionsOnly:false
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   354
     ChangeSet forExistingClass:Rectangle withExtensions:false extensionsOnly:false
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   355
     ChangeSet forExistingClass:Rectangle withExtensions:false extensionsOnly:true
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   356
    "
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   357
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   358
    "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
   359
    "Modified: / 12-10-2006 / 23:46:05 / cg"
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   360
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   361
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   362
forExistingMethods:aCollectionOfMethods
3869
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   363
    "build a changeSet for a collection of methods in the image.
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   364
     That does of course not give deltas, but instead reflects the current
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   365
     state of the given set of methods.
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   366
     It is useful in conjunction with the other utility methods,
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   367
     for example, when building patchLists, diffSets etc."
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   368
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   369
    |changeSet stream previousPackage|
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
    changeSet := self new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   372
    aCollectionOfMethods do:[:eachMethod |
3869
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   373
        |change source|
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   374
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   375
        source := eachMethod source.
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   376
        source isNil ifTrue:[
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   377
            Transcript showCR:'oops - no source for ',eachMethod whoString.
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   378
        ].
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   379
        change := MethodDefinitionChange new.
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   380
        eachMethod mclass notNil ifTrue:[ change className:eachMethod mclass name ].
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   381
        source notNil ifTrue:[ change source:source ].
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   382
        change selector:eachMethod selector.
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   383
        change package:(eachMethod package).
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   384
        change category:(eachMethod category).
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   385
        changeSet add:change.
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   386
    ].
2244
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   387
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   388
"/    stream := ReadWriteStream on:''.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   389
"/    aCollectionOfMethods do:[:eachMethod |
2244
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   390
"/        previousPackage ~= eachMethod package ifTrue:[
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   391
"/            stream nextPutAll:'"{ Package: '''.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   392
"/            stream nextPutAll:eachMethod package asString.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   393
"/            stream nextPutAll:''' }"'; cr; cr.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   394
"/        ].
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   395
"/        eachMethod mclass fileOutMethod:eachMethod on:stream
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   396
"/    ].
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   397
"/    stream reset.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   398
"/    changeSet := self fromStream:stream.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   399
"/    changeSet do:[:eachChange |
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   400
"/        eachChange package:(eachChange changeMethod package).
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   401
"/    ].
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   402
    ^ changeSet
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   403
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   404
    "
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   405
     ChangeSet forExistingMethods:(Array with:(Array compiledMethodAt:#at:)
3869
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   406
                                         with:(Object compiledMethodAt:#at:)
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   407
                                         with:(Behavior compiledMethodAt:#compiledMethodAt:) )
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   408
    "
1872
7a1f2a26bf90 changes for compare-project functionality
Claus Gittinger <cg@exept.de>
parents: 1869
diff changeset
   409
2524
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   410
    "Modified: / 17-09-2011 / 10:26:03 / cg"
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   411
!
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   412
3619
e2a5752d7e1d Fix in ChangeSet>>#forPackage:ignoreAutoloaded: - ignore non-Smalltalk classes and methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3593
diff changeset
   413
forPackage: pkg
3869
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   414
    "build a changeSet for a given package in the image"
3619
e2a5752d7e1d Fix in ChangeSet>>#forPackage:ignoreAutoloaded: - ignore non-Smalltalk classes and methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3593
diff changeset
   415
e2a5752d7e1d Fix in ChangeSet>>#forPackage:ignoreAutoloaded: - ignore non-Smalltalk classes and methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3593
diff changeset
   416
    ^self forPackage: pkg ignoreAutoloaded: false.
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   417
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   418
    "Created: / 20-05-2008 / 17:56:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   419
    "Modified: / 12-08-2009 / 14:23:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   420
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   421
3619
e2a5752d7e1d Fix in ChangeSet>>#forPackage:ignoreAutoloaded: - ignore non-Smalltalk classes and methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3593
diff changeset
   422
forPackage: pkg ignoreAutoloaded: ignoreAutoloaded
3869
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   423
    "build a changeSet for a given package in the image"
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   424
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   425
    |changeSet packageClasses packageExtensions|
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   426
3619
e2a5752d7e1d Fix in ChangeSet>>#forPackage:ignoreAutoloaded: - ignore non-Smalltalk classes and methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3593
diff changeset
   427
    packageClasses := ProjectDefinition searchForClassesWithProject: pkg.
e2a5752d7e1d Fix in ChangeSet>>#forPackage:ignoreAutoloaded: - ignore non-Smalltalk classes and methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3593
diff changeset
   428
    packageClasses := packageClasses select:[:each | each programmingLanguage isSmalltalk ].
e2a5752d7e1d Fix in ChangeSet>>#forPackage:ignoreAutoloaded: - ignore non-Smalltalk classes and methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3593
diff changeset
   429
    packageExtensions := ProjectDefinition searchForExtensionsWithProject: pkg.
e2a5752d7e1d Fix in ChangeSet>>#forPackage:ignoreAutoloaded: - ignore non-Smalltalk classes and methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3593
diff changeset
   430
    packageExtensions := packageExtensions select:[:each | each programmingLanguage isSmalltalk ].
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   431
    changeSet := self forExistingMethods: packageExtensions.
2941
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   432
    packageClasses do:[:cls|
3869
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   433
        (ignoreAutoloaded not and:[cls isLoaded not]) ifTrue:[cls autoload].
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   434
        cls isLoaded ifTrue: [
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   435
            changeSet addAll: (self forExistingClass:cls withExtensions:false)
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   436
        ]
2941
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   437
    ].
3619
e2a5752d7e1d Fix in ChangeSet>>#forPackage:ignoreAutoloaded: - ignore non-Smalltalk classes and methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3593
diff changeset
   438
    changeSet name: 'Package ' , pkg.
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   439
    ^changeSet
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   440
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   441
    "Created: / 12-08-2009 / 14:22:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
3619
e2a5752d7e1d Fix in ChangeSet>>#forPackage:ignoreAutoloaded: - ignore non-Smalltalk classes and methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3593
diff changeset
   442
    "Modified: / 31-07-2014 / 09:51:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   443
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   444
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   445
fromBeeStream:aStream
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   446
    "build a changeSet from a Bee Smalltalk .bsc format stream, containing chunks.
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   447
     Return the changeSet."
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   448
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   449
    ^ self fromBeeStream:aStream while:[:thisChange | true]
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   450
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   451
    "Created: / 21-08-2014 / 18:34:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   452
!
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   453
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   454
fromBeeStream:aStream while:aConditionBlock
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   455
    "build a changeSet from a Bee Smalltalk .bsc stream, containing chunks
3732
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   456
     Pass each change to the conditionBlock and stop whenever that
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   457
     returns false. This allows skipping reamaining chunks, and speeding up
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   458
     reading, if only parts need to be extracted
3732
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   459
     (for example: only documentation methods).
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   460
     Return the changeSet."
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   461
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   462
    |changeSet|
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   463
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   464
    changeSet := self new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   465
    self
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   466
	changesFromStream:aStream
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   467
	for:changeSet
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   468
	reader:(BeeChangeFileReader new)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   469
	do:[:aChange :lineNumberOrNil :posOrNil |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   470
	    changeSet add:aChange.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   471
	    (aConditionBlock value:aChange) ifFalse:[^ changeSet].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   472
	].
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   473
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   474
    ^ changeSet
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   475
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   476
    "Created: / 21-08-2014 / 18:34:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   477
!
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   478
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   479
fromDiffSet:aDiffSet
2322
c5ebd3b56e54 comment/format in: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2321
diff changeset
   480
    "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
   481
     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
   482
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   483
    |changeSet|
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   484
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   485
    changeSet := self new.
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   486
    "/ class definitions first...
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   487
    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
   488
    changeSet addAll:((aDiffSet onlyInArg) select:[:ch | ch isClassDefinitionChange]).
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   489
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   490
    "/ first add new methods...
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   491
    changeSet addAll:((aDiffSet onlyInArg) reject:[:ch | ch isClassDefinitionChange]).
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   492
    "/ then, changed methods...
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   493
    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
   494
    "/ then, removed methods...
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   495
    aDiffSet onlyInReceiver do:[:each |
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   496
	|ch|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   497
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   498
	ch := MethodRemoveChange className:(each className) selector:(each selector).
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   499
	changeSet add:ch.
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   500
    ].
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   501
    ^ changeSet
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   502
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   503
    "Created: / 08-02-2011 / 10:48:36 / cg"
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   504
!
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   505
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   506
fromDirectory: aStringOfFilename
3869
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   507
    "Read all .st files (non-recursively) from `aStringOrFilename`.
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   508
     Return the resuling ChangeSet"
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   509
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   510
    ^ self fromDirectory: aStringOfFilename asSmalltalkXPackage: false.
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   511
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   512
    "Created: / 02-04-2011 / 00:54:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   513
    "Modified: / 02-12-2013 / 17:36:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   514
!
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   515
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   516
fromDirectory: aStringOfFilename asSmalltalkXPackage: isSmalltalkXPackage
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   517
    "Read all .st files (non-recursively) from `aStringOrFilename`
3732
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   518
     Return the resuling ChangeSet.
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   519
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   520
     If `isSmalltalkXPacklage` is true, then treat directory as Smalltalk/X
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   521
     package directory as checked out from a VCS. Read only those files
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   522
     present in abbrev.stc (if present)."
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   523
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   524
    | directory abbrevFile filter |
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   525
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   526
    directory := aStringOfFilename asFilename.
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   527
    (isSmalltalkXPackage and:[(abbrevFile := directory asFilename / 'abbrev.stc') exists]) ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   528
	| files |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   529
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   530
	files := OrderedCollection new.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   531
	files add:'extensions.st'.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   532
	(directory asFilename / 'abbrev.stc') readingFileDo:[:s |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   533
	    Smalltalk withAbbreviationsFromStream: s do:[:className :abbrev :pkg  | files add: (abbrev , '.st')]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   534
	].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   535
	filter := [:filename | files includes: filename baseName ]
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   536
    ] ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   537
	filter := [:filename | filename  suffix = 'st' ]
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   538
    ].
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   539
    ^ self fromDirectory: aStringOfFilename filter: filter
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   540
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   541
    "Created: / 02-12-2013 / 17:36:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3483
e2eff8ad70c3 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3445
diff changeset
   542
    "Modified: / 05-02-2014 / 19:05:14 / cg"
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   543
!
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   544
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   545
fromDirectory: aStringOrFilename filter: filter
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   546
    "Read all files (non-recursively) from `aStringOrFilename` for which the
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   547
     filter return true. Return the resuling ChangeSet"
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   548
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   549
    | d cs files step |
3732
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   550
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   551
    d := aStringOrFilename asFilename.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   552
    cs := self new.
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   553
    files := (d directoryContentsAsFilenames) select:filter.
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   554
    step :=  100 / files size.
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   555
    files withIndexDo: [:each :index |
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   556
	ProgressNotification notify: 'Reading ', each baseName progress: (step * (index - 1)).
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   557
	[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   558
	    cs addAll: (self fromFileOrDirectory: each)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   559
	] on: ProgressNotification do:[:ex |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   560
	    ex proceed.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   561
	].
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   562
    ].
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   563
    ProgressNotification notify: nil progress: 100.
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   564
    cs name: aStringOrFilename asFilename asAbsoluteFilename pathName.
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   565
    ^cs
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   566
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   567
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   568
    "
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   569
	ChangeSet fromDirectory: (Smalltalk getPackageDirectoryForPackage:'stx:libbasic')
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   570
    "
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   571
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   572
    "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
   573
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   574
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   575
fromDolphinPACStream:aStream
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   576
    "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
   577
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   578
    ^ self fromDolphinPACStream:aStream while:[:thisChange | true]
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   579
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   580
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   581
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   582
fromDolphinPACStream:aStream while:aConditionBlock
3732
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   583
    "build a changeSet from a stream, containing dolphin pac file chunks.
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   584
     Pass each change to the conditionBlock and stop whenever that
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   585
     returns false. This allows skipping reamaining chunks, and speeding up
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   586
     reading, if only parts need to be extracted
3732
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   587
     (for example: only documentation methods)."
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   588
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   589
    |changeSet|
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   590
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   591
    changeSet := self new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   592
    self
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   593
	changesFromStream:aStream
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   594
	for:changeSet
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   595
	reader:(DolphinPACFileReader new)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   596
	do:[:aChange :lineNumberOrNil :posOrNil |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   597
	    changeSet add:aChange.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   598
	    (aConditionBlock value:aChange) ifFalse:[^ changeSet].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   599
	].
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   600
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   601
    ^ changeSet
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   602
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   603
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   604
fromFile:filenameOrString
3732
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   605
    "build a changeSet from a file, which contains chunks.
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   606
     (i.e. either a classes sourceFile or a change-file).
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   607
     Return the changeSet."
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   608
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   609
    |filename suffix mime stream changeSet|
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   610
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   611
    filename := filenameOrString asFilename.
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   612
    suffix := filename suffix.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   613
    ((suffix = 'bsc') or:[suffix = 'ch']) ifTrue:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   614
        filename readingFileDo:[:stream |
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   615
            changeSet := self fromBeeStream:stream.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   616
        ].
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   617
        changeSet name: filename baseName.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   618
        ^ changeSet
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   619
    ].
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
   620
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   621
    mime := MIMETypes mimeTypeForFilename:filename.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   622
    mime isNil ifTrue:[
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   623
        mime := filename mimeTypeOfContents.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   624
        mime isNil ifTrue:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   625
            "/ self error:'unknown MIME type for file' mayProceed:true.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   626
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   627
            "/ assume chunk format
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   628
            mime := 'text/plain'.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   629
        ].
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   630
    ].
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   631
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   632
    [
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   633
        stream := filename readStream.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   634
        mime = 'text/xml' ifTrue:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   635
            changeSet := self fromXMLStream:stream.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   636
        ] ifFalse:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   637
            mime = 'application/x-smalltalk-source-sif' ifTrue:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   638
                changeSet := self fromSIFStream:stream.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   639
            ] ifFalse:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   640
                mime = 'application/x-smalltalk-dolphin-package' ifTrue:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   641
                    changeSet := self fromDolphinPACStream:stream.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   642
                ] ifFalse:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   643
                    stream := EncodedStream decodedStreamFor:stream.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   644
                    changeSet := self fromStream:stream.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   645
                ]
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   646
            ]
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   647
        ]
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   648
    ] ensure:[
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   649
        stream notNil ifTrue:[stream close].
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   650
    ].
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   651
    changeSet name: filename baseName.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   652
    ^ changeSet
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   653
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   654
    "
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   655
     ChangeSet fromFile: 'st.chg'
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   656
     ChangeSet fromFile: 'patches'
1176
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
2868
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
   659
    "Created: / 16-02-1998 / 12:19:34 / cg"
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   660
    "Modified (comment): / 28-07-2012 / 09:41:40 / cg"
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
   661
    "Modified: / 26-02-2018 / 11:17:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   662
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   663
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   664
fromFileOrDirectory: fileOrDirectory
3869
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   665
    "Read either a single .st-file, or all .st files (non-recursively) in a directory.
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   666
     Return the resuling ChangeSet"
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   667
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   668
    | f changeSet|
3732
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   669
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   670
    f := fileOrDirectory asFilename.
3869
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   671
    changeSet := 
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   672
        f isDirectory
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   673
            ifTrue:[self fromDirectory: f]
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   674
            ifFalse:[self fromFile: f].
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   675
    changeSet name: f pathName.
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   676
    ^ changeSet
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   677
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   678
    "
3732
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   679
     ChangeSet fromFileOrDirectory: (Smalltalk getPackageDirectoryForPackage:'stx:libbasic')
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   680
    "
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   681
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   682
    "Created: / 02-04-2011 / 00:50:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   683
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   684
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   685
fromSIFStream:aStream
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   686
    "build a changeSet from a SIF stream, containing chunks
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   687
     in smalltalk interchange format.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   688
     Return the changeSet."
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
    ^ self fromSIFStream:aStream while:[:thisChange | true]
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
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   693
fromSIFStream:aStream while:aConditionBlock
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   694
    "build a changeSet from a SIF stream, containing chunks
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   695
     in smalltalk interchange format.
3732
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   696
     Pass each change to the conditionBlock and stop whenever that
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   697
     returns false. This allows skipping reamaining chunks, and speeding up
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   698
     reading, if only parts need to be extracted
3732
f3bf00a70315 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3697
diff changeset
   699
     (for example: only documentation methods).
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   700
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   701
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   702
    |changeSet|
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
    changeSet := self new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   705
    self
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   706
	changesFromStream:aStream
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   707
	for:changeSet
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   708
	reader:(SIFChangeFileReader new)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   709
	do:[:aChange :lineNumberOrNil :posOrNil |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   710
	    changeSet add:aChange.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   711
	    (aConditionBlock value:aChange) ifFalse:[^ changeSet].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   712
	].
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   713
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   714
    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   715
!
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
fromStream:aStream
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   718
    "build a changeSet from a stream, containing chunks.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   719
     (i.e. either a classes sourceFile or a change-file).
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   720
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   721
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   722
    ^ self fromStream:aStream while:[:thisChange | true]
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   723
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   724
    "
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   725
     ChangeSet fromStream:('changes' asFilename readStream)
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   726
     ChangeSet fromStream:('patches' asFilename readStream)
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   727
     ChangeSet fromStream:(Object source asString readStream)
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   728
    "
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   729
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   730
    "Created: / 16.2.1998 / 12:19:34 / cg"
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   731
    "Modified: / 14.12.1999 / 15:23:16 / cg"
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   732
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   733
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   734
fromStream:aStream while:aConditionBlock
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   735
    "build a changeSet from a stream, containing chunks.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   736
     (i.e. either a classes sourceFile or a change-file).
3856
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
   737
     Pass each change to the conditionBlock and stop whenever that returns false. 
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
   738
     This allows skipping reamaining chunks, 
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
   739
     and thus speeding up reading, if only parts need to be extracted
3869
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   740
     (for example: only documentation methods, 
a478633d4558 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   741
      or espcially if only class definition changes up to the first method change are required).
3856
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
   742
     Returns the changeSet."
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   743
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   744
    |changeSet|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   745
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   746
    changeSet := self new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   747
    self
3856
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
   748
        changesFromStream:aStream
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
   749
        for:changeSet
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
   750
        reader:(ChangeFileReader new)
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
   751
        do:[:aChange :lineNumberOrNil :posOrNil |
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
   752
            (aConditionBlock value:aChange) ifFalse:[^ changeSet].
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
   753
            changeSet add:aChange.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
   754
        ].
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   755
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   756
    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   757
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   758
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   759
     ChangeSet fromStream:('changes' asFilename readStream)
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   760
     ChangeSet fromStream:('patches' asFilename readStream)
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   761
     ChangeSet fromStream:(Object source asString readStream)
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   762
     ChangeSet fromStream:(XWorkstation source asString readStream)
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   763
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   764
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   765
    "Created: / 16-02-1998 / 12:19:34 / cg"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   766
    "Modified: / 14-12-1999 / 15:23:16 / cg"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   767
    "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
   768
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   769
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   770
fromXMLStream:aStream
3868
9a006429e942 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3860
diff changeset
   771
    "build a changeSet from an XML stream, containing XML change definitions in VisualWorks XML change file format.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   772
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   773
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   774
    |changeSet builder nameSpace|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   775
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   776
    aStream isNil ifTrue:[^ nil].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   777
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   778
    changeSet := self new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   779
    nameSpace := Smalltalk.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   780
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   781
    builder := XML::SourceScannerNodeBuilder new.
1475
934d20073adb more support for alien namespaces (VW7)
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
   782
    builder scanFile:aStream do:[:change | changeSet add: change. ].
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   783
    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   784
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   785
    "
1247
be7277706e48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   786
     ChangeSet fromXMLStream:('../../goodies/xml/vw/xmlFileInTests/XMLParser.xml' asFilename readStream)
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   787
     ChangeSetBrowser
3868
9a006429e942 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3860
diff changeset
   788
        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
   789
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   790
! !
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   791
1281
6aeafe46d0ad category;
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
   792
!ChangeSet class methodsFor:'Compatibility-ST80'!
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   793
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   794
patches
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   795
    ^ #()
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   796
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   797
    "Created: / 27.10.1997 / 13:52:54 / cg"
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   798
! !
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   799
4183
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
   800
1281
6aeafe46d0ad category;
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
   801
!ChangeSet class methodsFor:'Compatibility-VW'!
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   802
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   803
component: component definition: anObject change: changeSymbol
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   804
    "Include indication that a class/namespace was added or removed
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   805
     from a CodeComponent."
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   806
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   807
    self
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   808
	changed:#'component:definition:change:'
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   809
	with:
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   810
	    ( Array
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   811
		    with: component
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   812
		    with: anObject
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   813
		    with: changeSymbol
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   814
	    )
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   815
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   816
! !
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   817
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   818
!ChangeSet class methodsFor:'instance creation-private'!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   819
1191
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   820
changesFromStream:aStream do:aBlock
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   821
    "enumerate changes from a stream and invoke aBlock on each.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   822
     The block is invoked with the change, a lineNumberOrNil and streamPosition arguments.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   823
     The lineNumber is only valid, if the underlying stream
1191
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   824
     provides line-numbers; otherwise, nil is passed."
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   825
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   826
    ^ self
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   827
	changesFromStream:aStream
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   828
	for:(self new)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   829
	reader:nil
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   830
	do:aBlock
1191
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   831
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   832
    "
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   833
     ChangeSet
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   834
	changesFromStream:('changes' asFilename readStream)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   835
	do:[:chg | Transcript showCR:chg]
1191
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   836
    "
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   837
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   838
    "Created: / 16.2.1998 / 12:19:34 / cg"
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   839
    "Modified: / 14.12.1999 / 15:23:16 / cg"
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   840
!
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   841
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   842
changesFromStream:aStream for:aChangeSet reader:aReader do:aBlock
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   843
    "enumerate changes from a stream and invoke aBlock on each.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   844
     The block is invoked with the change, a lineNumberOrNil and streamPosition arguments.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   845
     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
   846
     provides line-numbers; otherwise, nil is passed."
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   847
3998
1495d559dc7c Fixed reading session change log (st.chg)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3982
diff changeset
   848
    |encodedStream chunk s change currentNameSpace currentPackage defaultPackage
3520
13a17b7c03ba Fixed reading ChangeSet from non-positionable streams
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3518
diff changeset
   849
     lineNumber pos reader reportProgress size |
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   850
3593
b50ee8847a7e class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3578
diff changeset
   851
    aStream isNil ifTrue:[^ self].
b50ee8847a7e class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3578
diff changeset
   852
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   853
    currentNameSpace := Smalltalk.
3998
1495d559dc7c Fixed reading session change log (st.chg)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3982
diff changeset
   854
    currentPackage := defaultPackage := Class packageQuerySignal query.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   855
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   856
    (reader := aReader) isNil ifTrue:[
3844
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   857
        reader := ChangeFileReader new.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   858
    ].
2893
5dfcb7f9f0da Fix in reading changeset from file (for EncodedStream)
vrany
parents: 2892
diff changeset
   859
3521
6e43c118d860 Fixes for reading changesets from non-positionable streams
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3520
diff changeset
   860
    aStream isEncodedStream ifTrue:[
3844
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   861
        encodedStream := aStream
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   862
    ] ifFalse:[
3844
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   863
        aStream isPositionable ifTrue:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   864
            encodedStream := EncodedStream decodedStreamFor: aStream
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   865
        ] ifFalse:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   866
            encodedStream := EncodedStream stream: aStream encoder: CharacterEncoder nullEncoderInstance
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   867
        ].
3521
6e43c118d860 Fixes for reading changesets from non-positionable streams
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3520
diff changeset
   868
    ].
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
   869
    reportProgress := encodedStream stream isPositionable
3844
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   870
                        and:[ ProgressNotification notNil
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   871
                        and:[ ProgressNotification isHandled ]].
3520
13a17b7c03ba Fixed reading ChangeSet from non-positionable streams
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3518
diff changeset
   872
    reportProgress ifTrue:[
3844
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   873
        size := encodedStream stream size.
3520
13a17b7c03ba Fixed reading ChangeSet from non-positionable streams
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3518
diff changeset
   874
    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   875
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   876
    reader changeSet:aChangeSet.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   877
    reader changeAction:aBlock.
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   878
    reader inputStream:encodedStream.
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   879
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
   880
    [encodedStream atEnd] whileFalse:[
3844
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   881
        encodedStream skipSeparators.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   882
        lineNumber := encodedStream lineNumber.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   883
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   884
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   885
        reportProgress ifTrue:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   886
            pos := encodedStream position + 1.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   887
            ProgressNotification notify: nil progress:(100 / size) * pos.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   888
        ].
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   889
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   890
        chunk := encodedStream nextChunk.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   891
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   892
        (chunk notEmptyOrNil) ifTrue:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   893
            Class nameSpaceQuerySignal handle:[:ex| ex proceedWith:currentNameSpace] do:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   894
                Class packageQuerySignal handle:[:ex| ex proceedWith:currentPackage] do:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   895
                    |parser tree ns pkg|
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   896
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   897
                    parser := Parser for:chunk.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   898
                    "/ parser parseForCode.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   899
                    Parser parseErrorSignal handle:[:ex |
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   900
                        Transcript showCR:'ChangeSet: error while reading: ',ex description.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   901
                        tree := #Error.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   902
                    ] do:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   903
                        tree := parser
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   904
                                parseExpressionWithSelf:nil
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   905
                                notifying:nil
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   906
                                ignoreErrors:true
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   907
                                ignoreWarnings:true
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   908
                                inNameSpace:currentNameSpace.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   909
                    ].
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   910
                    tree ~~ #Error ifTrue:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   911
                        tree isNil ifTrue:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   912
                            "/ Hmm....it could be package-definition chunk in extensions container...
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   913
                            "/ if there is any package directive in there, extract it.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   914
                            ((pkg := parser currentPackage) notNil
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   915
                            and:[pkg ~~ currentPackage]) ifTrue:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   916
                                currentPackage := pkg
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   917
                            ] ifFalse:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   918
                                "/ if there is any nameSpace directive in there, extract it.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   919
                                ((ns := parser currentNameSpace) notNil
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   920
                                and:[ns ~~ currentNameSpace]) ifTrue:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   921
                                    currentNameSpace := ns
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   922
                                ] ifFalse:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   923
                                    change := DoItChange new.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   924
                                    change source:chunk.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   925
                                    aBlock valueWithOptionalArgument:change and:lineNumber and:pos.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   926
                                ].
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   927
                            ].
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   928
                        ] ifFalse:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   929
                            "/ if there is any nameSpace directive in there, extract it.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   930
                            ((ns := parser currentNameSpace) notNil
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   931
                            and:[ns ~~ currentNameSpace]) ifTrue:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   932
                                currentNameSpace := ns
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   933
                            ].
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   934
                            "/ if there is any package directive in there, extract it.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   935
                            ((pkg := parser currentPackage) notNil
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   936
                            and:[pkg ~~ currentPackage]) ifTrue:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   937
                                currentPackage := pkg
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   938
                            ].
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   939
                            "/
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   940
                            "/ what type of chunk is this ...
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   941
                            "/
4011
d60ab5e3030f #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3981
diff changeset
   942
                            tree isLiteral ifTrue:[
3844
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   943
                                (s := tree evaluate) isString ifTrue:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   944
                                    (s startsWith:'---- ') ifTrue:[
3998
1495d559dc7c Fixed reading session change log (st.chg)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3982
diff changeset
   945
                                        (s startsWith:'---- timestamp') ifTrue:[ 
1495d559dc7c Fixed reading session change log (st.chg)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3982
diff changeset
   946
                                            "/ Beginning of next record in changelog. Reset all
1495d559dc7c Fixed reading session change log (st.chg)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3982
diff changeset
   947
                                            "/ previously set namespaces and packages
1495d559dc7c Fixed reading session change log (st.chg)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3982
diff changeset
   948
                                            currentPackage := defaultPackage.
1495d559dc7c Fixed reading session change log (st.chg)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3982
diff changeset
   949
                                            currentNameSpace := Smalltalk.
1495d559dc7c Fixed reading session change log (st.chg)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3982
diff changeset
   950
                                        ]. 
3844
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   951
                                        reader inputStream: s readStream.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   952
                                        reader processInfo: s.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   953
                                        reader inputStream: encodedStream.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   954
                                    ].
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   955
                                ] ifFalse:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   956
                                    self error:'unexpected change-chunk' mayProceed:true
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   957
                                ]
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   958
                            ] ifFalse:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   959
                                tree isMessage ifTrue:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   960
                                    (reader
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   961
                                        changesFromParseTree:tree
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   962
                                        lineNumber:lineNumber
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   963
                                        position:pos
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   964
                                        chunk: chunk
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   965
                                    ) ifFalse:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   966
                                        change := DoItChange new.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   967
                                        change source:chunk.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   968
                                        aBlock valueWithOptionalArgument:change and:lineNumber and:pos.
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   969
                                    ]
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   970
                                ] ifFalse:[
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   971
                                    InvalidChangeChunkError
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   972
                                        raiseRequestErrorString:('unexpected change-chunk in or around line %1' bindWith:lineNumber)
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   973
                                ]
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   974
                            ]
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   975
                        ]
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   976
                    ]
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   977
                ]
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   978
            ]
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
   979
        ]
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   980
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   981
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   982
    "
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   983
     ChangeSet fromStream:('changes' asFilename readStream)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   984
     ChangeSet fromStream:('patches' asFilename readStream)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   985
     ChangeSet fromStream:(Object source asString readStream)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   986
    "
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   987
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
   988
    "Created: / 16-02-1998 / 12:19:34 / cg"
3360
f823605e7ccd class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
   989
    "Modified: / 30-07-2013 / 21:34:16 / cg"
3998
1495d559dc7c Fixed reading session change log (st.chg)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3982
diff changeset
   990
    "Modified: / 26-04-2016 / 22:52:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   991
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   992
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   993
!ChangeSet class methodsFor:'queries'!
27
claus
parents: 16
diff changeset
   994
claus
parents: 16
diff changeset
   995
current
claus
parents: 16
diff changeset
   996
    "ST-80 compatibility: return the current changeSet"
claus
parents: 16
diff changeset
   997
claus
parents: 16
diff changeset
   998
    |p|
claus
parents: 16
diff changeset
   999
claus
parents: 16
diff changeset
  1000
    (Project notNil and:[(p := Project current) notNil]) ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1001
	^ p changeSet
959
ca4fff926135 ChangeSet current: return empty collection if there is no changeSet
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
  1002
    ].
ca4fff926135 ChangeSet current: return empty collection if there is no changeSet
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
  1003
    ^ #()
27
claus
parents: 16
diff changeset
  1004
claus
parents: 16
diff changeset
  1005
    "
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1006
     ChangeSet current
27
claus
parents: 16
diff changeset
  1007
    "
claus
parents: 16
diff changeset
  1008
! !
claus
parents: 16
diff changeset
  1009
3578
b01e1b81271a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3576
diff changeset
  1010
!ChangeSet class methodsFor:'signal access'!
b01e1b81271a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3576
diff changeset
  1011
b01e1b81271a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3576
diff changeset
  1012
invalidChangeChunkError
b01e1b81271a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3576
diff changeset
  1013
    ^ InvalidChangeChunkError
b01e1b81271a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3576
diff changeset
  1014
! !
b01e1b81271a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3576
diff changeset
  1015
2246
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
  1016
!ChangeSet class methodsFor:'utilities'!
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
  1017
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
  1018
decodedStreamFor:aStream
2247
1ff6d78eb96c code move
Claus Gittinger <cg@exept.de>
parents: 2246
diff changeset
  1019
    <resource: #obsolete>
1ff6d78eb96c code move
Claus Gittinger <cg@exept.de>
parents: 2246
diff changeset
  1020
    ^ EncodedStream decodedStreamFor:aStream
2246
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
  1021
! !
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
  1022
1264
3d1fc5d40ab4 method category rename
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  1023
!ChangeSet methodsFor:'Compatibility-ST80'!
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1024
899
7b65d6f2b0f0 more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 894
diff changeset
  1025
changeClass:aClass
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  1026
899
7b65d6f2b0f0 more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 894
diff changeset
  1027
    "dummy here"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1028
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  1029
    "Created: / 04-02-2000 / 18:30:59 / cg"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  1030
    "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
  1031
!
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1032
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1033
changeSelectors
3946
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1034
    "return a collection (a set) of all selectors for which changes are in this changeSet"
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1035
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1036
    |selectors|
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1037
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1038
    changeSelectors isNil ifTrue:[
3946
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1039
        selectors := IdentitySet new.
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1040
        self do:[:chg |
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1041
            |sel|
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1042
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1043
            chg notNil ifTrue:[
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1044
                chg isMethodChange ifTrue:[
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1045
                    sel := chg selector.
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1046
                    sel notNil ifTrue:[
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1047
                        selectors add:sel
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1048
                    ]
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1049
                ]
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1050
            ]
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1051
        ].
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1052
        changeSelectors := selectors.
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1053
    ].
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1054
    ^ changeSelectors.
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1055
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1056
    "
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1057
     ChangeSet current changeSelectors
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1058
    "
1967
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
  1059
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
  1060
    "Modified: / 30-05-2007 / 12:12:32 / cg"
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1061
!
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1062
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
  1063
changedClasses
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  1064
    "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
  1065
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
  1066
    |classes|
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
  1067
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1068
    changedClasses isNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1069
	classes := IdentitySet new.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1070
	self do:[:chg |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1071
	    |cls|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1072
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1073
	    chg notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1074
		cls := chg changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1075
		cls notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1076
		    cls isRealNameSpace ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1077
			classes add:cls
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1078
		    ]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1079
		]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1080
	    ]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1081
	].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1082
	changedClasses := classes.
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
  1083
    ].
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1084
    ^ changedClasses.
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
  1085
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
  1086
    "
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1087
     ChangeSet current changedClasses
1791
746e0b3aa286 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1718
diff changeset
  1088
     ChangeSet current flushChangedClassesCache
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
  1089
    "
1791
746e0b3aa286 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1718
diff changeset
  1090
1898
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1091
    "Modified: / 10-11-2006 / 17:17:26 / cg"
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
  1092
!
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
  1093
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1094
component:component definition:anObject change:changeSymbol
1083
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
  1095
    "Include indication that a class/namespace was added or removed
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1096
     from a CodeComponent."
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1097
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1098
    self
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1099
	changed:#'component:definition:change:'
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1100
	with:
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1101
	    ( Array
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1102
		    with: component
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1103
		    with: anObject
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1104
		    with: changeSymbol
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1105
	    )
1083
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
  1106
!
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
  1107
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1108
reorganizeSystem
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1109
    "dummy here"
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1110
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1111
    "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
  1112
! !
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1113
2235
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1114
!ChangeSet methodsFor:'accessing'!
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1115
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1116
name
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1117
    ^ name
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1118
!
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1119
2868
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  1120
name:aString
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  1121
    name := aString.
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  1122
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  1123
    "Modified (format): / 28-07-2012 / 09:34:52 / cg"
2235
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
  1124
! !
2234
f5af55bd08cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
  1125
985
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
  1126
!ChangeSet methodsFor:'change & update'!
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
  1127
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1128
changed:anAspectSymbol with:aParameter
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1129
    "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
  1130
     of ChangeSet (which may be switched using projects)."
985
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
  1131
4183
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1132
    self == self class current ifTrue:[
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1133
        self class changed:anAspectSymbol with:aParameter.
1475
934d20073adb more support for alien namespaces (VW7)
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1134
    ].
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1135
    super changed:anAspectSymbol with:aParameter
985
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
  1136
! !
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
  1137
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1138
!ChangeSet methodsFor:'changes management'!
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1139
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1140
addClassCommentChangeFor:aClass
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1141
    "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
  1142
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1143
    |newChange|
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1144
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1145
    newChange := ClassCommentChange class:aClass.
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1146
    newChange comment:aClass comment.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1147
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1148
    self addChange:newChange
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1149
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1150
    "Modified: / 14.11.2001 / 13:35:34 / cg"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1151
!
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1152
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1153
addClassDefinitionChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1154
    "add a classDefinition change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1155
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1156
    |newChange|
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1157
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1158
    newChange := ClassDefinitionChange class:aClass source:(aClass definition).
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1159
    newChange package:aClass package.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1160
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1161
    self addChange:newChange
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1162
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1163
    "
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1164
     (ChangeSet new addClassDefinitionChangeFor:ChangeSet) inspect
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1165
    "
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1166
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1167
    "Modified: / 12-10-2006 / 18:17:02 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1168
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1169
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1170
addClassRemoveChange:oldClass
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1171
    "add a classRemove change to the receiver"
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1172
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1173
    |newChange|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1174
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1175
    newChange := ClassRemoveChange new className:oldClass name.
1281
6aeafe46d0ad category;
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
  1176
    self rememberChangedClass:oldClass.
1421
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1177
    oldClass isPrivate ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1178
	self rememberChangedClass:oldClass topOwningClass.
1421
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1179
    ].
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1180
    ClassRemoveChange::ClassBeingRemovedQuery
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1181
	answer:oldClass
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1182
	do:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1183
	    self addChange:newChange
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1184
	]
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1185
    "Modified: / 14.11.2001 / 13:35:39 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1186
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1187
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1188
addClassRenameChangeFrom:oldName to:newName
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1189
    "add a classRename change to the receiver"
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1190
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1191
    |newChange|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1192
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1193
    newChange := ClassRenameChange new oldName:oldName newName:newName.
1281
6aeafe46d0ad category;
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
  1194
    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
  1195
    self addChange:newChange
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1196
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1197
    "Modified: / 14.11.2001 / 13:35:41 / cg"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1198
!
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1199
1081
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1200
addDoIt:aString
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1201
    "add a doIt to the receiver"
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1202
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1203
    |newChange|
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1204
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1205
    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
  1206
    self addChange:newChange.
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1207
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:44 / cg"
1081
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1209
!
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1210
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1211
addInstVarDefinitionChangeFor:aClass
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1212
    "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
  1213
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1214
    |newChange|
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1215
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1216
    newChange := ClassInstVarDefinitionChange
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1217
			class:aClass
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1218
			source:(aClass name , ' instanceVariableNames:' , aClass instanceVariableString storeString).
2617
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  1219
    newChange classInstVarNames:aClass instanceVariableString asCollectionOfWords.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1220
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1221
    self addChange:newChange
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1222
2617
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  1223
    "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
  1224
!
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1225
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
  1226
addMethodCategoryChange:aMethod category:newCategory in:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1227
    "add a methodCategory change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1228
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
  1229
    |newChange|
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
  1230
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1231
    newChange := MethodCategoryChange
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1232
			class:aClass
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1233
			selector:(aClass selectorAtMethod:aMethod)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1234
			category:newCategory.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1235
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1236
    self addChange:newChange
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
  1237
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1238
    "Modified: / 14.11.2001 / 13:35:48 / cg"
44
claus
parents: 39
diff changeset
  1239
!
claus
parents: 39
diff changeset
  1240
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1241
addMethodChange:aMethod fromOld:oldMethod in:aClass
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1242
    "add a method change to the receiver"
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1243
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1244
    |newChange|
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1245
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1246
    newChange := MethodDefinitionChange
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1247
			class:aClass
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1248
			selector:aMethod selector
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1249
			source:aMethod source
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1250
			category:aMethod category.
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1251
    oldMethod notNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1252
	newChange previousVersion:oldMethod.
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1253
    ].
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1254
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1255
    self addChange:newChange.
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1256
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1257
    "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
  1258
!
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1259
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1260
addMethodChange:aMethod in:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1261
    "add a method change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1262
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1263
    |newChange|
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1264
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1265
    newChange := MethodDefinitionChange
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1266
			class:aClass
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1267
			selector:aMethod selector
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1268
			source:aMethod source
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1269
			category:aMethod category.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1270
    newChange package:(aMethod package).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1271
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1272
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1273
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1274
    "Modified: / 12-10-2006 / 18:15:28 / cg"
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1275
!
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1276
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1277
addMethodPackageChange:aMethod package:newPackage in:aClass
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1278
    "add a methodPackage change to the receiver"
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1279
2934
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1280
    |newChange selector|
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1281
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1282
    selector := (aClass selectorAtMethod:aMethod).
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1283
    selector isNil ifTrue:[^ self].
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1284
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1285
    newChange := MethodPackageChange
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1286
			class:aClass
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1287
			selector:selector
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1288
			package:newPackage.
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1289
    self rememberChangedClass:aClass.
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1290
    self addChange:newChange
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1291
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1292
    "Created: / 09-10-2006 / 14:02:33 / cg"
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1293
!
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1294
44
claus
parents: 39
diff changeset
  1295
addMethodPrivacyChange:aMethod in:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1296
    "add a methodPrivacy change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1297
44
claus
parents: 39
diff changeset
  1298
    |newChange|
claus
parents: 39
diff changeset
  1299
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1300
    newChange := MethodPrivacyChange
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1301
			class:aClass
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1302
			selector:(aClass selectorAtMethod:aMethod)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1303
			privacy:aMethod privacy.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1304
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1305
    self addChange:newChange
44
claus
parents: 39
diff changeset
  1306
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1307
    "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
  1308
    "Modified: / 14.11.2001 / 13:35:55 / cg"
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1309
!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1310
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1311
addPrimitiveDefinitionsChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1312
    "add a primitiveDefinitions change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1313
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1314
    |newChange|
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1315
783
90ffa6f0a86b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  1316
    newChange := ClassPrimitiveDefinitionsChange new
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1317
			class:aClass source:(aClass primitiveDefinitionsString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1318
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1319
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1320
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1321
    "Modified: / 14.11.2001 / 13:35:57 / cg"
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1322
!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1323
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1324
addPrimitiveFunctionsChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1325
    "add a primitiveFunctions change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1326
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1327
    |newChange|
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1328
783
90ffa6f0a86b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  1329
    newChange := ClassPrimitiveFunctionsChange new
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1330
			class:aClass source:(aClass primitiveFunctionsString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1331
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1332
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1333
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1334
    "Modified: / 14.11.2001 / 13:35:59 / cg"
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1335
!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1336
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1337
addPrimitiveVariablesChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1338
    "add a primitiveVariables change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1339
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1340
    |newChange|
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1341
783
90ffa6f0a86b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  1342
    newChange := ClassPrimitiveVariablesChange new
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1343
			 class:aClass source:(aClass primitiveVariablesString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1344
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1345
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1346
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1347
    "Modified: / 14.11.2001 / 13:36:01 / cg"
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1348
!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1349
1164
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
  1350
addRemoveSelectorChange:aSelector fromOld:oldMethod in:aClass
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1351
    "add a method-remove change to the receiver"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1352
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1353
    |newChange|
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1354
1081
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1355
    newChange := MethodRemoveChange class:aClass selector:aSelector.
1164
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
  1356
    oldMethod notNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1357
	newChange previousVersion:oldMethod.
1164
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
  1358
    ].
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1359
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1360
    self addChange:newChange
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1361
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1362
    "Modified: / 27.8.1995 / 22:55:22 / claus"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1363
    "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
  1364
    "Modified: / 14.11.2001 / 13:36:04 / cg"
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1365
!
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1366
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1367
addRenameCategoryChangeIn:aClass from:oldCategory to:newCategory
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1368
    "add a category rename change to the receiver"
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1369
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1370
    |newChange|
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1371
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1372
    newChange := MethodCategoryRenameChange class:aClass.
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1373
    newChange oldCategoryName:oldCategory newCategoryName:newCategory.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1374
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1375
    self addChange:newChange
1105
b27c0d72d7d0 avoid useless change notifications from #collect:, #select: etc.
Claus Gittinger <cg@exept.de>
parents: 1102
diff changeset
  1376
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1377
    "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
  1378
! !
b27c0d72d7d0 avoid useless change notifications from #collect:, #select: etc.
Claus Gittinger <cg@exept.de>
parents: 1102
diff changeset
  1379
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  1380
!ChangeSet methodsFor:'enumerating'!
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  1381
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  1382
rejectAllVersionMethodChanges
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  1383
    "Return a new ChangeSet without version_XXX methods"
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  1384
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  1385
    ^ self reject:[:each | each isMethodCodeChange and:[(AbstractSourceCodeManager isVersionMethodSelector: each selector) ]].
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  1386
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  1387
    "Created: / 06-01-2014 / 21:13:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  1388
! !
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  1389
3688
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1390
!ChangeSet methodsFor:'fileIn / fileOut'!
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1391
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1392
fileInFrom:aStream
3688
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1393
    self fileInFrom:aStream while:[:change | true]
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1394
!
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1395
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1396
fileInFrom:aStream while:aConditionBlock
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1397
    self class
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1398
	changesFromStream:aStream
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1399
	for:self
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1400
	reader:(ChangeFileReader new)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1401
	do:[:aChange :lineNumberOrNil :posOrNil |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1402
	    self add:aChange.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1403
	    (aConditionBlock value:aChange) ifFalse:[^ self].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1404
	].
3688
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1405
!
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1406
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1407
fileOutAs: aStringOrFilename
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1408
    | stream |
4115
da8c2dc0d1b7 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4073
diff changeset
  1409
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1410
    stream := aStringOrFilename asFilename writeStream.
4115
da8c2dc0d1b7 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4073
diff changeset
  1411
da8c2dc0d1b7 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4073
diff changeset
  1412
    stream nextPutLine:'''---- encoding: utf8 ----''!!'.
da8c2dc0d1b7 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4073
diff changeset
  1413
    stream := EncodedStream stream:stream encoder:(CharacterEncoder encoderForUTF8).
da8c2dc0d1b7 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4073
diff changeset
  1414
da8c2dc0d1b7 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4073
diff changeset
  1415
    [ 
da8c2dc0d1b7 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4073
diff changeset
  1416
        self fileOutOn: stream 
da8c2dc0d1b7 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4073
diff changeset
  1417
    ] ensure: [
da8c2dc0d1b7 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4073
diff changeset
  1418
        stream close
da8c2dc0d1b7 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 4073
diff changeset
  1419
    ]
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1420
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1421
    "Created: / 05-12-2009 / 12:33:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1422
!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1423
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1424
fileOutOn: stream
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1425
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1426
    self do:[:chg|chg fileOutOn: stream]
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1427
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1428
    "Created: / 05-12-2009 / 12:32:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1429
! !
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1430
3518
1b770a65ef66 Fix in namespace handling when filing out chunked changeset.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3483
diff changeset
  1431
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1432
!ChangeSet methodsFor:'misc'!
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1433
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1434
addPatch:nameOfPatch
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1435
    "ignored for now - allows fileIn of ST-80 patch stuff .."
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1436
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1437
    ^ self
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1438
! !
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1439
3518
1b770a65ef66 Fix in namespace handling when filing out chunked changeset.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3483
diff changeset
  1440
1263
14ef737d93a8 method category rename
Claus Gittinger <cg@exept.de>
parents: 1247
diff changeset
  1441
!ChangeSet methodsFor:'private-accessing'!
1098
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
  1442
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1443
addChange:aChange
2053
590bf720dfd4 dont add nil to a set
Claus Gittinger <cg@exept.de>
parents: 2046
diff changeset
  1444
    |changeClass|
590bf720dfd4 dont add nil to a set
Claus Gittinger <cg@exept.de>
parents: 2046
diff changeset
  1445
1898
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1446
    aChange timeOfChangeIfKnown isNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1447
	aChange timeStamp:(Timestamp now).
1898
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1448
    ].
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1449
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1450
    self add:aChange.
1471
d3a32a4b689b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1453
diff changeset
  1451
    changedClasses notNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1452
	(changeClass := aChange changeClass) notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1453
	    changedClasses add:changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1454
	].
1471
d3a32a4b689b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1453
diff changeset
  1455
    ].
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1456
    changeSelectors notNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1457
	aChange isMethodChange ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1458
	    changeSelectors add:aChange selector.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1459
	].
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1460
    ].
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1461
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1462
"/    aChange sendChangeNotificationThroughSmalltalk.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1463
    self changed:#addChange: with:aChange.
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1464
1898
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1465
    "Created: / 14-11-2001 / 13:35:11 / cg"
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1466
    "Modified: / 10-11-2006 / 16:47:13 / cg"
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1467
!
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1468
1479
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1469
flushChangedClassesCache
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1470
    changedClasses := changeSelectors := nil
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1471
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1472
    "
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1473
     ChangeSet current flushChangedClassesCache
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1474
    "
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1475
!
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1476
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1477
rememberChangedClass:aClass
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1478
    changedClasses notNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1479
	changedClasses add:aClass
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1480
    ].
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1481
!
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1482
1098
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
  1483
removeAll:aCollection
1301
b747d11e7ff8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
  1484
    aCollection notEmpty ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1485
	super removeAll:aCollection.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1486
	changedClasses := changeSelectors := nil.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1487
	self changed:#removeAll: with:aCollection.
1301
b747d11e7ff8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
  1488
    ]
1421
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1489
!
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1490
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1491
unrememberChangedClasses
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1492
    changedClasses := nil
1098
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
  1493
! !
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
  1494
1034
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1495
!ChangeSet methodsFor:'queries'!
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1496
2160
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1497
changedPackages
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1498
    "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
  1499
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1500
    |classes changedPackages|
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1501
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1502
    changedPackages := Set new.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1503
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1504
    self do:[:chg |
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1505
	|p mthd cls|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1506
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1507
	p := chg package.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1508
	p isNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1509
	    chg isMethodChange ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1510
		mthd := chg changeMethod.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1511
		mthd notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1512
		    p := mthd package.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1513
		] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1514
		    cls := chg changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1515
		    cls notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1516
			p := cls package.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1517
		    ]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1518
		]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1519
	    ] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1520
		chg isClassChange ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1521
		    cls := chg changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1522
		    cls notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1523
			p := cls package.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1524
		    ]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1525
		]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1526
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1527
	].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1528
	p notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1529
	    changedPackages add:p.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1530
	]
2160
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1531
    ].
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1532
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1533
"/    self changedClasses do:[:cls |
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1534
"/        |p|
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1535
"/
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1536
"/        (p := cls package) notNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1537
"/            changedPackages add:p.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1538
"/        ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1539
"/    ].
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1540
    ^ changedPackages.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1541
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1542
    "
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1543
     ChangeSet current changedPackages
2160
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1544
    "
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1545
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1546
    "Created: / 22-09-2006 / 16:37:40 / cg"
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1547
    "Modified: / 13-10-2006 / 01:20:48 / cg"
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1548
!
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1549
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1550
changesForPackage:aPackageSymbol
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1551
    ^(self select:[:aChange |
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1552
	|includeThis mClass mthd|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1553
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1554
	includeThis := false.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1555
	(aChange isMethodChange or:[aChange isMethodRemoveChange]) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1556
	    mClass := aChange changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1557
	    mClass notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1558
		mthd := mClass compiledMethodAt:(aChange selector).
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1559
		mthd isNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1560
		    aChange isMethodRemoveChange ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1561
			includeThis := (mClass package = aPackageSymbol)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1562
		    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1563
		] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1564
		    includeThis := (mthd package = aPackageSymbol)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1565
		]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1566
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1567
	] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1568
	    (aChange isClassChange) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1569
		(aChange changeClass notNil) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1570
		    includeThis := (aChange changeClass package = aPackageSymbol)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1571
		].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1572
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1573
	].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1574
	includeThis
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1575
    ])
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1576
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1577
    "
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1578
     ChangeSet current changesForPackage:#'stx:goodies/libsvn'
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1579
    "
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1580
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1581
    "Created: / 05-11-2001 / 14:21:17 / cg"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1582
    "Modified: / 12-10-2006 / 16:51:27 / cg"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1583
    "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
  1584
    "Modified (comment): / 26-07-2012 / 11:54:00 / cg"
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1585
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1586
3688
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1587
classDefinitionChanges
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1588
    ^ self select:[:chg | chg isClassDefinitionChange] as:OrderedCollection.
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1589
!
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1590
1034
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1591
includesChangeForClass:aClass
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1592
    |nameOfClass|
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1593
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1594
    nameOfClass := aClass theNonMetaclass name.
3309
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1595
    ^ self includesChangeForClassNamed:nameOfClass
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1596
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1597
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1598
     ChangeSet current includesChangeForClass:ChangeSet
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1599
     ChangeSet current includesChangeForClass:ChangeSet class
1686
7d2c1f9f63e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1521
diff changeset
  1600
     ChangeSet current includesChangeForClass:SourceCodeManagerUtilities
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1601
     ChangeSet current includesChangeForClass:(Expecco::ExpeccoXMLDecoder::ObjectCreator)
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1602
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1603
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1604
    "Modified: / 09-10-2006 / 13:39:22 / cg"
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1605
!
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1606
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1607
includesChangeForClass:aClass selector:selector
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1608
    |nameOfNonMetaClass nameOfClass|
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1609
1478
400bfb0e4ea9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1476
diff changeset
  1610
    (self changeSelectors includes:selector) ifFalse:[^ false].
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1611
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1612
    nameOfNonMetaClass := aClass theNonMetaclass name.
2973
312e2e952094 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1613
    (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
  1614
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1615
    nameOfClass := aClass name.
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1616
3946
3cfa9e40ac69 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
  1617
    ^ self contains:[:aChange | (selector = aChange selector) and:[nameOfClass = aChange className]]
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1618
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1619
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1620
     ChangeSet current includesChangeForClass:ChangeSet selector:#includesChangeForClass:
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1621
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1622
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1623
    "Created: / 31.10.2001 / 10:26:31 / cg"
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1624
    "Modified: / 31.10.2001 / 10:59:49 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1625
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1626
3309
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1627
includesChangeForClassNamed:aClassName
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1628
    (self changedClasses contains:[:aClass | aClass theNonMetaclass name = aClassName]) ifFalse:[^ false].
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1629
    ^ self contains:[:aChange | aChange className = aClassName]
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1630
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1631
    "
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1632
     ChangeSet current includesChangeForClassNamed:'ChangeSet'
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1633
    "
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1634
!
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1635
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1636
includesChangeForClassOrMetaclass:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1637
    |nameOfClass nameOfMetaclass|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1638
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1639
    nameOfClass := aClass theNonMetaclass name.
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1640
    nameOfMetaclass := aClass theMetaclass name.
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1641
1920
4365130e896f bad spelling of methodname
Stefan Vogel <sv@exept.de>
parents: 1918
diff changeset
  1642
    (self changedClasses contains:[:eachClass | eachClass theNonMetaclass name = nameOfClass]) ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1643
	^ false.
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1644
    ].
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1645
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1646
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1647
    ^ self contains:[:eachChange |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1648
			|changeClassName|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1649
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1650
			changeClassName := eachChange className.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1651
			changeClassName = nameOfClass or:[changeClassName = nameOfMetaclass]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1652
		    ]
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1653
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1654
    "Modified: / 09-10-2006 / 13:40:29 / cg"
1127
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1655
!
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1656
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1657
includesChangeForClassOrMetaclassOrPrivateClassOf:aClass
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1658
    |nameOfClass nameOfMetaclass|
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1659
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1660
    nameOfClass := aClass theNonMetaclass name.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1661
    nameOfMetaclass := aClass theMetaclass name.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1662
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1663
    self do:[:aChange |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1664
	|changeClassName changeClass|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1665
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1666
	changeClassName := aChange className.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1667
	(changeClassName = nameOfClass) ifTrue:[^ true].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1668
	(changeClassName = nameOfMetaclass) ifTrue:[^ true].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1669
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1670
	changeClass := aChange changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1671
	(changeClass notNil
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1672
	and:[changeClass isPrivate
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1673
	and:[changeClass owningClass == aClass]]) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1674
	    ^ true
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1675
	]
1127
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1676
    ].
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1677
    ^ false
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1678
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1679
    "Modified (format): / 25-07-2012 / 16:50:26 / cg"
1885
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1680
!
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1681
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1682
includesChangeForClassOrMetaclassOrPrivateClassOfAny:aCollectionOfClasses
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1683
    |namesOfClasses namesOfMetaclasses|
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1684
3176
bf3e3ac08152 Don't do collect:[] as:Array and select:[] as:Array
Stefan Vogel <sv@exept.de>
parents: 3174
diff changeset
  1685
    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
  1686
    namesOfMetaclasses := (aCollectionOfClasses collect:[:eachClass | eachClass theMetaclass name]) asArray.
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1687
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1688
    self do:[:aChange |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1689
	|changeClassName changeClass|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1690
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1691
	changeClassName := aChange className.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1692
	(namesOfClasses includes:changeClassName) ifTrue:[^ true].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1693
	(namesOfMetaclasses includes:changeClassName) ifTrue:[^ true].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1694
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1695
	changeClass := aChange changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1696
	(changeClass notNil and:[changeClass isPrivate]) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1697
	    (aCollectionOfClasses includes:changeClass owningClass) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1698
		^ true
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1699
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1700
	]
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1701
    ].
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1702
    ^ false
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1703
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1704
    "Created: / 08-09-2011 / 04:24:26 / cg"
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1705
!
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1706
1885
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1707
includesChangeForPackage:aPackageID
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1708
    ^ self changedPackages includes:aPackageID
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1709
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1710
"/    ^ self contains:[:aChange | aChange package = aPackageID]
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1711
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1712
    "
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1713
     ChangeSet current includesChangeForPackage:'stx:libbasic'
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1714
    "
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1715
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1716
    "Created: / 25-10-2006 / 18:06:55 / cg"
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1717
!
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1718
3688
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1719
methodDefinitionChangesForClassNamed:aClassName
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1720
    ^ self select:[:chg | chg isMethodDefinitionChange and:[chg className = aClassName]] as:OrderedCollection.
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1721
!
4a8a1af9c89d class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3648
diff changeset
  1722
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1723
selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:aCollectionOfClasses
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1724
    "return the set of classes from a given collection, for which I have changes."
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1725
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1726
    |selected alreadyProcessed classes prev|
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1727
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1728
    classes := (aCollectionOfClasses
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1729
	    collect:[:eachClass | eachClass theNonMetaclass]) as:IdentitySet.
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1730
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1731
    selected := IdentitySet new.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1732
    alreadyProcessed := IdentitySet new.
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1733
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1734
    self do:[:eachChange |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1735
	|changeClassName changeClass isIn|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1736
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1737
	changeClass := eachChange changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1738
	(changeClass notNil and:[changeClass ~~ prev]) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1739
	    changeClass := changeClass theNonMetaclass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1740
	    (alreadyProcessed includes:changeClass) ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1741
		(classes includes:changeClass) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1742
		    selected add:changeClass
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1743
		].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1744
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1745
		"/ Care for private classes. If one of its owningClass
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1746
		"/ is in the given collection, add **that owningClass** into
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1747
		"/ result too!!!!
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1748
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1749
		changeClass isPrivate ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1750
		    |owner|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1751
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1752
		    owner := changeClass owningClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1753
		    [owner notNil] whileTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1754
			(classes includes:owner) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1755
			    selected add:owner.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1756
			    owner := nil.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1757
			] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1758
			    owner := owner owningClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1759
			].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1760
		    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1761
		].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1762
		alreadyProcessed add: changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1763
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1764
	    prev := changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1765
	].
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1766
    ].
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1767
    ^ selected.
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1768
2907
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1769
    "Created: / 04-09-2012 / 14:01:37 / cg"
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1770
    "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
  1771
!
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1772
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1773
selectForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:aCollectionOfClasses
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1774
    "select changes for one of a given class.
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1775
     Returns a collection of changes"
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1776
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1777
    |selected  classes |
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1778
4183
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1779
    classes := aCollectionOfClasses collect:[:eachClass | eachClass theNonMetaclass] as:Array.
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1780
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1781
    selected := self class new.
2907
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1782
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1783
    self do:[:eachChange |
4183
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1784
        |changeClassName changeClass isIn|
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1785
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1786
        changeClass := eachChange changeClass.
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1787
        (changeClass notNil) ifTrue:[
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1788
            changeClass := changeClass theNonMetaclass.
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1789
            ((classes includes:changeClass)
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1790
                or: [
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1791
                    changeClass isPrivate
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1792
                    and: [ (classes includes:changeClass owningClass) ]
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1793
                ]
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1794
            ) ifTrue:[
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1795
                selected add: eachChange
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1796
            ].
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  1797
        ]
2907
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1798
    ].
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1799
    ^ selected.
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1800
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1801
    "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
  1802
! !
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1803
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1804
!ChangeSet methodsFor:'utilities'!
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1805
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1806
apply
3222
a6996f259211 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3218
diff changeset
  1807
    "apply all changes in the receiver's changeSet"
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1808
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1809
    self do:[:aChange |
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1810
	aChange apply
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1811
    ]
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1812
!
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1813
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1814
condenseChanges
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1815
    | changesToRemove changesToKeep |
2951
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1816
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1817
    changesToKeep := self class new.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1818
    changesToRemove := self class new.
2951
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1819
    self reverseDo:[:change|
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1820
	(changesToKeep anySatisfy:[:each|each isForSameAs: change])
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1821
	    ifTrue:[changesToRemove add: change]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1822
	    ifFalse:[changesToKeep add: change]
2951
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1823
    ].
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1824
    self condenseChanges: changesToRemove.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1825
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1826
    "Created: / 22-10-2008 / 13:05:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1827
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1828
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1829
condenseChanges:changesToRemove
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1830
    "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
  1831
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1832
    changesToRemove notEmpty ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1833
	changedClasses := changeSelectors := nil.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1834
	self removeAll:changesToRemove.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1835
	"/ self changed. "/  -- removeAll already sends out a notification
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1836
	Smalltalk changed:#currentChangeSet with:self.
1865
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
    "Created: / 12-10-2006 / 16:51:11 / cg"
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1840
!
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1841
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1842
condenseChangesForClass:aClass
3825
ca84b0805d36 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1843
    "remove all changes for aClass (and its metaclass)
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1844
     (i.e. leave changes for other classes)."
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1845
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1846
    self condenseChangesForClass:aClass package:nil
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1847
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1848
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1849
condenseChangesForClass:aClass package:aPackageSymbol
3825
ca84b0805d36 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1850
    "remove all changes for aClass (and its metaclass) and aPackageSymbol
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1851
     (i.e. leave methodChanges for other packages).
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1852
     This is invoked when a class is checked into the repository."
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1853
1186
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1854
    self condenseChangesForClass:aClass selector:nil package:aPackageSymbol
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1855
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1856
    "Modified: / 5.11.2001 / 14:29:22 / cg"
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1857
!
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1858
1830
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1859
condenseChangesForClass:aClass selector:aSelector
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1860
    "remove all changes for aClass >> selector."
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1861
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1862
    self condenseChangesForClass:aClass selector:aSelector package:nil
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1863
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1864
    "Created: / 26-09-2006 / 17:22:59 / cg"
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1865
!
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1866
1186
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1867
condenseChangesForClass:aClass selector:selectorOrNil package:aPackageSymbol
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1868
    "remove all changes for aClass/selector and aPackageSymbol
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1869
     (i.e. leave methodChanges for other packages).
3825
ca84b0805d36 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3824
diff changeset
  1870
     If selectorOrNil is nil, all changes for that class (or metaclass) are removed;
1186
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1871
     otherwise, only changes for the given selector.
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1872
     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
  1873
945
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1874
    |changesToRemove className metaClassName chgCls|
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1875
945
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1876
    className := aClass theNonMetaclass name.
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1877
    metaClassName := aClass theMetaclass name.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1878
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1879
    changesToRemove :=
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1880
	self select:[:aChange |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1881
	    |chgClassName chgClass removeThis mClass mthd|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1882
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1883
	    removeThis := false.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1884
	    chgClassName := aChange className.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1885
	    (chgClassName = className or:[chgClassName = metaClassName]) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1886
		removeThis := true
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1887
	    ] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1888
		chgCls := aChange changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1889
		chgCls isNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1890
		    (chgClassName startsWith:(aClass name,':')) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1891
			"a change for a private class of a no-longer present one..."
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1892
			    removeThis := true
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1893
		    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1894
		].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1895
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1896
		(chgCls notNil
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1897
		and:[chgCls isPrivate
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1898
		and:[chgCls topOwningClass == aClass]]) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1899
		    removeThis := true
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1900
		]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1901
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1902
	    selectorOrNil notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1903
		(aChange isMethodChange or:[aChange isMethodRemoveChange]) ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1904
		    removeThis := false.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1905
		] ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1906
		    aChange selector = selectorOrNil ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1907
			removeThis := false.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1908
		    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1909
		]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1910
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1911
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1912
	    removeThis ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1913
		aChange isMethodChange ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1914
		    mClass := aChange changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1915
		    mClass notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1916
			mthd := mClass compiledMethodAt:(aChange selector).
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1917
			mthd isNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1918
			    "/ mthd does no longer exist
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1919
			    "/ I no longer understand what this was meant for .. (sigh)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1920
			    "/                        aPackageSymbol notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1921
			    "/                            removeThis := false
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1922
			    "/                        ]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1923
			] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1924
			    (aPackageSymbol notNil and:[mthd package ~= aPackageSymbol]) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1925
				removeThis := false
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1926
			    ]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1927
			]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1928
		    ]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1929
		].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1930
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1931
	    removeThis
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1932
	].
1187
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1933
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1934
    self condenseChanges:changesToRemove
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1935
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1936
    "Modified: / 12-10-2006 / 16:51:38 / cg"
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1937
!
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1938
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1939
condenseChangesForExtensionsInPackage:aPackageSymbol
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1940
    "remove all changes for aClass and aPackageSymbol
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1941
     (i.e. leave methodChanges for other packages).
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1942
     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
  1943
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1944
    |changesToRemove|
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1945
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1946
    changesToRemove := OrderedCollection new.
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1947
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1948
    changesToRemove := self select:[:aChange |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1949
	|removeThis mClass mthd|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1950
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1951
	(aChange isMethodChange or:[aChange isMethodRemoveChange]) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1952
	    removeThis := false.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1953
	    mClass := aChange changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1954
	    (mClass notNil and:[mClass package ~= aPackageSymbol]) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1955
		mthd := mClass compiledMethodAt:(aChange selector).
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1956
		mthd isNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1957
		    aChange isMethodRemoveChange ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1958
			removeThis := true
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1959
		    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1960
		] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1961
		    mthd package = aPackageSymbol ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1962
			removeThis := true
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1963
		    ]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1964
		]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1965
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1966
	].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1967
	removeThis
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1968
    ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1969
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1970
    self condenseChanges:changesToRemove
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1971
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1972
    "Created: / 05-11-2001 / 14:21:17 / cg"
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1973
    "Modified: / 12-10-2006 / 16:51:32 / cg"
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1974
!
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1975
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1976
condenseChangesForPackage:aPackageSymbol
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1977
    "remove all changes for aPackageSymbol
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1978
     This is invoked when a project is checked into the repository."
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1979
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1980
    |changesToRemove|
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1981
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1982
    changesToRemove := self select:[:aChange |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1983
	|removeThis mClass mthd|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1984
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1985
	removeThis := false.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1986
	(aChange isMethodChange or:[aChange isMethodRemoveChange]) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1987
	    mClass := aChange changeClass.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1988
	    mClass notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1989
		mthd := mClass compiledMethodAt:(aChange selector).
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1990
		mthd isNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1991
		    aChange isMethodRemoveChange ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1992
			removeThis := (mClass package = aPackageSymbol)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1993
		    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1994
		] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1995
		    removeThis := (mthd package = aPackageSymbol)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1996
		]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1997
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1998
	] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  1999
	    (aChange isClassChange) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2000
		(aChange changeClass notNil) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2001
		    removeThis := (aChange changeClass package = aPackageSymbol)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2002
		].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2003
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2004
	].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2005
	removeThis
1521
ea6cb41e4523 send out a change notification, when I condensed
Claus Gittinger <cg@exept.de>
parents: 1479
diff changeset
  2006
    ].
ea6cb41e4523 send out a change notification, when I condensed
Claus Gittinger <cg@exept.de>
parents: 1479
diff changeset
  2007
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  2008
    self condenseChanges:changesToRemove
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  2009
1521
ea6cb41e4523 send out a change notification, when I condensed
Claus Gittinger <cg@exept.de>
parents: 1479
diff changeset
  2010
    "Created: / 05-11-2001 / 14:21:17 / cg"
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  2011
    "Modified: / 12-10-2006 / 16:51:27 / cg"
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  2012
!
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  2013
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2014
diffSetsAgainst:anotherChangeSet
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2015
    "walk over the receiver and anotherChangeSet,
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2016
     add all changes to one of the tree lists:
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2017
        onlyInReceiver, onlyInArg or changed,
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  2018
     each being a changeSet containing corresponding changes.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2019
     WARNING:
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2020
        destructive; could modify both the receiver and the argument by possibly
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2021
        changing methodChanges into categoryChanges"
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2022
4033
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2023
    ^ self diffSetsAgainst:anotherChangeSet comparingDifferentClasses:false    
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2024
!
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2025
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2026
diffSetsAgainst:anotherChangeSet comparingDifferentClasses:comparingDifferentClasses
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2027
    "walk over the receiver and anotherChangeSet,
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2028
     add all changes to one of the tree lists:
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2029
        onlyInReceiver, onlyInArg or changed,
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2030
     each being a changeSet containing corresponding changes.
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2031
     If comparingDifferentClasses is false, changes to different classes will 
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2032
     generate onlyInA/onlyInB changes; eg. changes for the same selector will be
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2033
     listed on either side.
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2034
     If it is true, we are comparing two different classes, and selectors present in 
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2035
     both will be listed as different (or even as the same).
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2036
     
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2037
     WARNING:
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2038
        destructive; could modify both the receiver and the argument by possibly
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2039
        changing methodChanges into categoryChanges."
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2040
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2041
    |otherChangeIndicesBySelector otherNonMethodChangeIndices changeIndicesBySelector nonMethodChangeIndices
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2042
     onlyInReceiver onlyInArg changedMethods same
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2043
     indexFromChangedMethodsToA indexFromChangedMethodsToB
4033
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2044
     "info" ret isForSame isSame|
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2045
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2046
    comparingDifferentClasses ifTrue:[
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2047
        isForSame := [:aChangeInA :aChangeInB |
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2048
                        |isForSame|
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2049
                        
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2050
                        isForSame := false.
4120
99449d5ce3f8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4115
diff changeset
  2051
                        (aChangeInA isMethodChange 
99449d5ce3f8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4115
diff changeset
  2052
                            and:[aChangeInB isMethodChange
99449d5ce3f8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4115
diff changeset
  2053
                            and:[aChangeInA changeSelector = aChangeInB changeSelector
99449d5ce3f8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4115
diff changeset
  2054
                            and:[aChangeInA changeClass isMeta = aChangeInB changeClass isMeta]]])
4033
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2055
                        ifTrue:[
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2056
                            isForSame := true.
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2057
                        ] ifFalse:[
4120
99449d5ce3f8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4115
diff changeset
  2058
                            (aChangeInA isClassChange 
99449d5ce3f8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4115
diff changeset
  2059
                                and:[aChangeInB isClassChange 
4033
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2060
                                and:[aChangeInA changeClass nameWithoutNameSpacePrefix 
4120
99449d5ce3f8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4115
diff changeset
  2061
                                     = aChangeInB changeClass nameWithoutNameSpacePrefix]])
4033
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2062
                            ifTrue:[
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2063
                                isForSame := true.
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2064
                            ]
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2065
                        ].
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2066
                        isForSame
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2067
                     ].
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2068
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2069
        isSame := [:aChangeInA :aChangeInB | 
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2070
                        (aChangeInA source = aChangeInB source) 
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2071
                  ]. 
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2072
    ] ifFalse:[
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2073
        isForSame := [:aChangeInA :aChangeInB | 
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2074
                        (aChangeInA isForSameAs:aChangeInB) 
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2075
                     ].
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2076
                     
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2077
        isSame := [:aChangeInA :aChangeInB | 
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2078
                        (aChangeInA sameAs:aChangeInB) 
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2079
                  ]. 
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2080
    ].    
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2081
4183
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  2082
    onlyInReceiver := self class new.
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  2083
    onlyInArg      := self class new.
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  2084
    changedMethods := self class new.
4963225764b6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 4120
diff changeset
  2085
    same           := self class new.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2086
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2087
    indexFromChangedMethodsToA := OrderedCollection new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2088
    indexFromChangedMethodsToB := OrderedCollection new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2089
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2090
    otherChangeIndicesBySelector := Dictionary new.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2091
    otherNonMethodChangeIndices := OrderedCollection new.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2092
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2093
    "/ 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
  2094
    anotherChangeSet keysAndValuesDo:[:idxB :aChangeInB |
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2095
        |setOfOtherChangeIndicesForThisSelector|
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2096
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2097
        aChangeInB isMethodChange ifTrue:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2098
            setOfOtherChangeIndicesForThisSelector := otherChangeIndicesBySelector at:(aChangeInB selector) ifAbsentPut:[OrderedCollection new].
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2099
            setOfOtherChangeIndicesForThisSelector add:idxB.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2100
        ] ifFalse:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2101
            otherNonMethodChangeIndices add:idxB
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2102
        ].
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2103
    ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2104
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2105
    self keysAndValuesDo:[:idxA :aChangeInA |
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2106
        |indicesOfChangesToExplore anyFound ch|
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2107
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2108
        anyFound := false.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2109
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2110
        aChangeInA isMethodChange ifTrue:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2111
            indicesOfChangesToExplore := otherChangeIndicesBySelector at:(aChangeInA selector) ifAbsent:#()
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2112
        ] ifFalse:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2113
            indicesOfChangesToExplore := otherNonMethodChangeIndices.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2114
        ].
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2115
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2116
        indicesOfChangesToExplore do:[:idxB |
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2117
            |aChangeInB|
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2118
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2119
            aChangeInB := anotherChangeSet at:idxB.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2120
4033
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2121
            (isForSame value:aChangeInA value:aChangeInB) ifTrue:[
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2122
                "/ these two are for the same class/selector
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2123
                anyFound := true.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2124
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2125
                "/ also in B - is it different?
4033
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2126
                (isSame value:aChangeInA value:aChangeInB) ifFalse:[
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2127
                    changedMethods add:aChangeInA.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2128
                    indexFromChangedMethodsToA add:idxA.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2129
                    indexFromChangedMethodsToB add:idxB.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2130
                ] ifTrue:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2131
                    aChangeInA isMethodChange ifTrue:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2132
                        aChangeInA methodCategory ~= aChangeInB methodCategory ifTrue:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2133
                            "/ only the category is different;
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2134
                            "/ make it a MethodCategory changes.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2135
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2136
                            ch := MethodCategoryChange new
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2137
                                    className:aChangeInA className
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2138
                                    selector:aChangeInA selector
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2139
                                    category:aChangeInA methodCategory;
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2140
                                    "JV@2012-03-20: Also keeps origin, required by merge tool"
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2141
                                    origin: aChangeInA.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2142
                            self at:idxA put:ch.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2143
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2144
                            ch := MethodCategoryChange new
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2145
                                    className:aChangeInB className
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2146
                                    selector:aChangeInB selector
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2147
                                    category:aChangeInB methodCategory;
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2148
                                    "JV@2012-03-20: Also keeps origin, required by merge tool"
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2149
                                    origin: aChangeInB.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2150
                            anotherChangeSet at:idxB put:ch.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2151
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2152
                            changedMethods add:aChangeInA.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2153
                            indexFromChangedMethodsToA add:idxA.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2154
                            indexFromChangedMethodsToB add:idxB.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2155
                        ]
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2156
                    ].
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2157
                ]
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2158
            ] ifFalse:[
4033
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2159
                (isSame value:aChangeInA value:aChangeInB) ifTrue:[
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2160
                    anyFound := true.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2161
                ] ifFalse:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2162
                ]
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2163
            ]
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2164
        ].
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2165
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2166
        anyFound ifFalse:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2167
            onlyInReceiver add:aChangeInA.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2168
        ]
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2169
    ].
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2170
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2171
    "/ these caches reduce square runtime to almost linear...
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2172
    changeIndicesBySelector := Dictionary new.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2173
    nonMethodChangeIndices := OrderedCollection new.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2174
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2175
    self keysAndValuesDo:[:idxA :aChangeInA |
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2176
        |setOfChangeIndicesForThisSelector|
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2177
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2178
        aChangeInA isMethodChange ifTrue:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2179
            setOfChangeIndicesForThisSelector := changeIndicesBySelector at:(aChangeInA selector) ifAbsentPut:[OrderedCollection new].
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2180
            setOfChangeIndicesForThisSelector add:idxA.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2181
        ] ifFalse:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2182
            nonMethodChangeIndices add:idxA
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2183
        ].
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2184
    ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  2185
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2186
    anotherChangeSet keysAndValuesDo:[:idxB :aChangeInB |
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2187
        |anyFound indicesOfChangesToExplore|
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2188
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2189
        anyFound := false.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2190
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2191
        aChangeInB isMethodChange ifTrue:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2192
            indicesOfChangesToExplore := changeIndicesBySelector at:(aChangeInB selector) ifAbsent:#()
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2193
        ] ifFalse:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2194
            indicesOfChangesToExplore := nonMethodChangeIndices.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2195
        ].
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2196
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2197
        indicesOfChangesToExplore do:[:idxA |
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2198
            |aChangeInA idxM|
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2199
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2200
            aChangeInA := self at:idxA.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2201
4033
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2202
            (isForSame value:aChangeInA value:aChangeInB) ifTrue:[
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2203
                anyFound := true.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2204
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2205
                "/ also in B - is it different ?
4033
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2206
                (isSame value:aChangeInA value:aChangeInB) ifFalse:[
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2207
                    "/ already there ?
4033
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2208
                    idxM := changedMethods findFirst:[:c | (isForSame value:c value:aChangeInB)].
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2209
                    idxM == 0 ifTrue:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2210
                        changedMethods add:aChangeInB.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2211
                        indexFromChangedMethodsToB add:idxB.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2212
                    ] ifFalse:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2213
                        indexFromChangedMethodsToB at:idxM put:idxB
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2214
                    ]
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2215
                ]
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2216
            ] ifFalse:[
4033
27e307c5e35f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 4011
diff changeset
  2217
                (isSame value:aChangeInA value:aChangeInB) ifTrue:[
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2218
                    anyFound := true.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2219
                ] ifFalse:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2220
                ]
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2221
            ]
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2222
        ].
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2223
        anyFound ifFalse:[
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2224
            onlyInArg add:aChangeInB.
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2225
        ]
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2226
    ].
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2227
864
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2228
"/    info := OrderedCollection new:(changedMethods size).
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2229
"/    changedMethods keysAndValuesDo:[:idx :changedMethod |
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2230
"/        info add:(Array
864
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2231
"/                        with:(indexFromChangedMethodsToA at:idx)
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2232
"/                        with:(indexFromChangedMethodsToB at:idx)
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2233
"/                 )
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2234
"/    ].
1450
0ec14b2064fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
  2235
    changedMethods := (1 to:changedMethods size) asOrderedCollection collect:[:idx |
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2236
                        |cA cB|
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2237
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2238
                        cA := self at:(indexFromChangedMethodsToA at:idx).
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2239
                        cB := anotherChangeSet at:(indexFromChangedMethodsToB at:idx).
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2240
                        Array with:cA with:cB
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2241
                      ].
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2242
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2243
    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
  2244
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  2245
    ret := DiffSet new
3981
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2246
                changed:changedMethods
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2247
                onlyInReceiver:onlyInReceiver
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2248
                onlyInArg:onlyInArg
60a9e8dcb7d1 #DOCUMENTATION by mawalch
mawalch
parents: 3964
diff changeset
  2249
                same: same.
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  2250
"/    ret info:info.
864
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  2251
    ^ret
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  2252
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  2253
    "Modified: / 12-10-2006 / 22:22:39 / cg"
2633
5a5460e5231a comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2626
diff changeset
  2254
    "Modified (comment): / 01-12-2011 / 19:12:55 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2255
    "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
  2256
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2257
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2258
diffSetsAgainstImage
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2259
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2260
    |imageChangeSet|
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2261
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2262
    imageChangeSet := self class new.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2263
    self changedClasses do:
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2264
	[:class|
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2265
	(class isMetaclass or:[class isPrivate]) ifFalse:
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2266
	    [imageChangeSet addAll:
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2267
		(self class fromStream: class source asString readStream)]].
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2268
    ^self diffSetsAgainst: imageChangeSet
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2269
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2270
    "Created: / 04-12-2007 / 16:03:28 / janfrog"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2271
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2272
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2273
flatten
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2274
    "return a flat changeset from a changeset which may contain compositeChanges"
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2275
    
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2276
    | flatten |
3824
df87c97ebf32 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3760
diff changeset
  2277
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2278
    flatten := self class new: self size.
3824
df87c97ebf32 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3760
diff changeset
  2279
    self do:[:ea|
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2280
        ea do:[:ea2| flatten add: ea2]
3824
df87c97ebf32 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3760
diff changeset
  2281
    ].
df87c97ebf32 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3760
diff changeset
  2282
    ^ flatten
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2283
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2284
    "Created: / 29-10-2010 / 14:40:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2285
!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2286
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2287
groupBy: groupBlock labelAs: labelBlock
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2288
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2289
    "
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2290
	returns a new changeset consisting of CompositeChanges.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2291
	Changes are grouped together by value (tag) of groupBlock.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2292
	Each composite change is then labeled using label
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2293
	returned by labelBlock (called with the tag returned
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2294
	by groupBlock as arg)
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2295
    "
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2296
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2297
    ^ self groupBy: groupBlock labelAs: labelBlock sort: false
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2298
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2299
    "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
  2300
    "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
  2301
    "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
  2302
    "Modified: / 30-08-2011 / 16:07:30 / cg"
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2303
!
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2304
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2305
groupBy: groupBlock labelAs: labelBlock sort: doSort
2626
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2306
    "returns a new changeset consisting of CompositeChanges.
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2307
     Changes are grouped together by value (tag) of groupBlock.
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2308
     Each composite change is then labeled using label
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2309
     returned by labelBlock (called with the tag returned
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2310
     by groupBlock as arg)"
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2311
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2312
    | buckets newChangeset keys |
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2313
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2314
    buckets := OrderedDictionary new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2315
    self do:[:change|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2316
	| tag |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2317
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2318
	tag := groupBlock value: change.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2319
	(buckets at: tag ifAbsentPut: [self class new:4]) add: change
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2320
    ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2321
    newChangeset := self class new: buckets size.
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2322
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2323
    keys := buckets keys select:[:k | k notNil].
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2324
    doSort ifTrue:[ keys sort ].
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2325
    keys do:[:tag |
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2326
	|changes classDefs|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2327
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2328
	changes := buckets at:tag.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2329
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2330
	"Move class definition to the front"
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2331
	classDefs := changes select:[:chg|chg isClassDefinitionChange].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2332
	changes removeAll: classDefs.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2333
	changes addAllFirst: classDefs.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2334
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2335
	tag notNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2336
	    newChangeset add:
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2337
		(CompositeChange
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2338
		    name: (labelBlock value: tag)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2339
		    changes: changes)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2340
	]
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2341
    ].
2626
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2342
    (buckets includesKey: nil) ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2343
	newChangeset addAll: (buckets at: nil)
2626
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2344
    ].
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2345
    ^newChangeset
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2346
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2347
    "Created: / 24-07-2009 / 23:17:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2348
    "Modified: / 25-07-2009 / 19:40:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2349
    "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
  2350
    "Created: / 30-08-2011 / 16:07:01 / cg"
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2351
!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2352
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2353
groupByClass
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2354
    |nm|
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2355
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2356
    ^self
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2357
	groupBy: [:change|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2358
	    change isClassChange ifTrue: [
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2359
		nm := change className.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2360
		(nm notNil and:[nm endsWith:' class']) ifTrue:[nm := nm copyTo: nm size - 6].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2361
		nm
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2362
	    ] ifFalse: [
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2363
		nil
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2364
	    ]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2365
	]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2366
	labelAs: [:className|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2367
	    className
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2368
	]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2369
	sort: true
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2370
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2371
    "Created: / 25-07-2009 / 19:43:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2372
    "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
  2373
    "Modified: / 30-08-2011 / 16:08:38 / cg"
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2374
!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2375
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2376
saveSignedToFile:aFilename
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2377
    "write the changeSet to a signed file in chunk format"
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2378
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2379
    self saveSignedToFile:aFilename format:nil
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2380
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2381
    "Created: / 08-02-2011 / 11:18:54 / cg"
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2382
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2383
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2384
saveSignedToFile:aFilename format:formatSymbolOrNil
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2385
    "write the changeSet to a signed file in some format.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2386
     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
  2387
     Nil is chunk format (currently, the only supported)"
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2388
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2389
    |s pkcs7SignedData|
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2390
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2391
    self assert: (Smalltalk at:#'Expecco::KeyFileGenerator') notNil.
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2392
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2393
    s := WriteStream on:(String new:2000).
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2394
    self saveToStream:s format:formatSymbolOrNil.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2395
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2396
    pkcs7SignedData := (Smalltalk at:#'Expecco::KeyFileGenerator') new signExpeccoCode:s contents.
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2397
    aFilename asFilename contents:pkcs7SignedData.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2398
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2399
    "Modified (comment): / 26-07-2012 / 12:15:58 / cg"
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2400
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2401
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2402
saveToFile:aFilename
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2403
    "write the changeSet to a regular file in chunk format"
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2404
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2405
    self saveToFile:aFilename format:nil
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2406
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2407
    "Created: / 08-02-2011 / 11:18:46 / cg"
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2408
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2409
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2410
saveToFile:aFilename format:formatSymbolOrNil
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2411
    "Writes the changeSet to a regular file in some format.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2412
     Supported formats are:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2413
       nil ............ chunk changeset file
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2414
       #classSource ... class fileout format, assumes that
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2415
                        the receiver is a changeset containing
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2416
                        single class (possibly with its private
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2417
                        classes)
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2418
       #Bee ........... Bee Smalltalk changeset file format    
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2419
    "
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2420
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2421
    |s|
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2422
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2423
    s := aFilename asFilename writeStream.
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2424
    [
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2425
        self saveToStream:s format:formatSymbolOrNil.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2426
    ] ensure:[ s close ].
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2427
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2428
    "Created: / 08-02-2011 / 11:20:06 / cg"
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2429
    "Modified: / 24-10-2017 / 11:57:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2430
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2431
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2432
saveToStream:aStream format:formatSymbolOrNil
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2433
    "Writes the changeSet to a stream in some format.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2434
     Supported formats are:
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2435
       nil ............ chunk changeset file format
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2436
       #classSource ... class fileout format, assumes that
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2437
                        the receiver is a changeset containing
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2438
                        single class (possibly with its private
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2439
                        classes)
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2440
       #Bee ........... Bee Smalltalk changeset file format      
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2441
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2442
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2443
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2444
    formatSymbolOrNil isNil ifTrue:[
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2445
        ChangeFileWriter new fileOut:self on:aStream.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2446
        ^ self.
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2447
    ].
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2448
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2449
    formatSymbolOrNil == #classSource ifTrue:[
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2450
        ClassSourceWriter new fileOut:self on:aStream.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2451
        ^ self.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2452
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2453
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2454
    formatSymbolOrNil == #Bee ifTrue:[
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2455
        BeeChangeFileWriter new fileOut:self on:aStream.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2456
        ^ self.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2457
    ].
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2458
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2459
    self error:'Unknown format, possible formats are { nil, #classSource . #Bee }'
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2460
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2461
    "Created: / 08-02-2011 / 11:25:16 / cg"
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  2462
    "Modified: / 24-10-2017 / 11:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2463
!
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2464
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2465
sortedByClassName
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2466
    "returns a new changeset containing the changes sorted by class names"
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2467
    
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2468
    | newChangeset |
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2469
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2470
    newChangeset := self class new: self size.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2471
    newChangeset addAll:self.                
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2472
    newChangeset sort:[:a :b |
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2473
                    |nameA nameB|
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2474
                    nameA := a isClassChange ifTrue:[ a className ] ifFalse:[ '^other' ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2475
                    nameB := b isClassChange ifTrue:[ b className ] ifFalse:[ '^other' ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2476
                    nameA < nameB].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  2477
    ^ newChangeset                
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2478
! !
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2479
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2480
!ChangeSet::ChangeFileReader methodsFor:'accessing'!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2481
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2482
changeAction:aBlock
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2483
    changeAction := aBlock.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2484
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2485
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2486
changeSet:something
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2487
    "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
  2488
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2489
    changeSet := something.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2490
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2491
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2492
inputStream:aStream
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2493
    inputStream := aStream.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2494
! !
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2495
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2496
!ChangeSet::ChangeFileReader methodsFor:'helpers'!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2497
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2498
addChange:change
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2499
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2500
    timestamp notNil ifTrue:[change timeStamp: timestamp].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2501
    timestamp := nil.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2502
    change isClassChange ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2503
	change package: Class packageQuerySignal query.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2504
	change nameSpace: Class nameSpaceQuerySignal query.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2505
    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2506
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2507
    changeAction
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2508
	valueWithOptionalArgument:change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2509
	and:lineNumber
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2510
	and:position.
2008
204b171a553d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1977
diff changeset
  2511
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2512
    "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
  2513
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2514
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2515
checkReceiverIsGlobalNamed:expectedName
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2516
    ^ self variableNameOfReceiver = expectedName
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2517
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2518
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2519
classNameOf:aReceiver
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2520
    "old"
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2521
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2522
    | nameSpace isMeta clsNode clsName |
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2523
    nameSpace := Class nameSpaceQuerySignal query.
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2524
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2525
    isMeta := false.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2526
    classIsJava := false.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2527
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2528
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2529
    (aReceiver isUnaryMessage and:[aReceiver selector == #class]) ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2530
	isMeta := true.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2531
	clsNode := aReceiver receiver.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2532
    ] ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2533
	clsNode := aReceiver.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2534
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2535
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2536
    clsNode isMessage ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2537
	"Normal smalltalk method on Smalltalk class"
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2538
	clsName := clsNode name
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2539
    ] ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2540
	"Maybe a Java class?"
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2541
	((clsNode selector == #classForName:) and:[clsNode receiver name = 'Java']) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2542
	    clsName := '(Java classForName:''%1'')' bindWith: clsNode arguments first value.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2543
	    classIsJava := true.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2544
	].
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2545
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2546
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2547
    isMeta ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2548
	clsName := clsName , ' class'.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2549
    ].
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2550
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2551
    (nameSpace ~~ Smalltalk and:[(clsName startsWith: nameSpace name) not])
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2552
	ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2553
	    ^ nameSpace name , '::' , clsName
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2554
	] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2555
	    ^ clsName
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2556
	].
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2557
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2558
    "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
  2559
!
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2560
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2561
classNameOfRememberingNamespace:aReceiver
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2562
    "new"
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2563
3247
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2564
    | nameSpace isMeta clsNode clsName |
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2565
    nameSpace := Class nameSpaceQuerySignal query.
3195
5ce601cd8a45 class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  2566
3247
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2567
    isMeta := false.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2568
    classIsJava := false.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2569
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2570
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2571
    (aReceiver isUnaryMessage and:[aReceiver selector == #class]) ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2572
	isMeta := true.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2573
	clsNode := aReceiver receiver.
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2574
    ] ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2575
	clsNode := aReceiver.
3247
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2576
    ].
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2577
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2578
    clsNode isMessage ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2579
	"Normal smalltalk method on Smalltalk class"
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2580
	clsName := clsNode name
3247
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2581
    ] ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2582
	"Maybe a Java class?"
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2583
	((clsNode selector == #classForName:) and:[clsNode receiver name = 'Java']) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2584
	    clsName := '(Java classForName:''%1'')' bindWith: clsNode arguments first value.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2585
	    classIsJava := true.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2586
	].
3247
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2587
    ].
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2588
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2589
    isMeta ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2590
	clsName := clsName , ' class'.
3195
5ce601cd8a45 class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  2591
    ].
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2592
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2593
    "Strip off the namespace"
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2594
    (classIsJava not and:[ nameSpace ~~ Smalltalk]) ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2595
	(clsName startsWith: nameSpace name) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2596
	    clsName := clsName copyFrom: nameSpace name size + 3.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2597
	]
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2598
    ].
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2599
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2600
    (nameSpace ~~ Smalltalk and:[(clsName startsWith: nameSpace name) not])
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2601
	ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2602
	    "/ old: remember namespace in name
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2603
	    "/ ^ nameSpace name , '::' , clsName
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2604
	    "/ new: remember in override
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2605
	    nameSpaceOverride := nameSpace.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2606
	    ^ clsName
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2607
	] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2608
	    nameSpaceOverride := nil.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2609
	    ^ clsName
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2610
	].
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2611
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2612
    "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
  2613
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2614
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2615
extractMethodsClassAndSelectorFromReceiver
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2616
    "helper for all changes which are of the form:
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2617
	(className compiledMethodAt:#methodSelector) something: ...
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2618
    "
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2619
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2620
    (receiver isMessage
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2621
    and:[receiverSelector == #'compiledMethodAt:']) ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2622
	self error:'unexpected change' mayProceed:true.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2623
	^ false.
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2624
    ].
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2625
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2626
    "/ className := self classNameOf:receiverReceiver.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2627
    className := self classNameOfRememberingNamespace:receiverReceiver.
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2628
    self assert:className notNil.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2629
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2630
    methodSelector := (receiver arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2631
    self assert:methodSelector notNil.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2632
    ^ true.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2633
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2634
    "Created: / 27-07-2012 / 21:33:47 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2635
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2636
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2637
receiversClassName
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2638
    ^ self classNameOf:receiver
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2639
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2640
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2641
receiversClassNameRememberingNamespace
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2642
    ^ self classNameOfRememberingNamespace:receiver
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2643
!
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2644
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2645
variableNameOfReceiver
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2646
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2647
    receiver isVariable ifFalse:[ ^ nil ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2648
    ^ receiver name
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2649
! !
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2650
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2651
!ChangeSet::ChangeFileReader methodsFor:'reading'!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2652
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2653
changesFromParseTree:aTree lineNumber:initialLineNumberOrNil position:initialPositionOrNil
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2654
    "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
  2655
     create changes and evaluate changeAction on each.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2656
     The chnageAction-block is invoked with the change and a lineNumberOrNil as
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2657
     arg; the lineNumber is only valid, if the underlying inputStream
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2658
     provides line-numbers; otherwise, nil is passed."
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2659
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2660
    ^self changesFromParseTree:aTree lineNumber:initialLineNumberOrNil position:initialPositionOrNil chunk: nil
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
    "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
  2663
!
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2664
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2665
changesFromParseTree:aTree lineNumber:initialLineNumberOrNil position:initialPositionOrNil chunk: initialChunkOrNil
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2666
    "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
  2667
     create changes and evaluate changeAction on each.
3964
38bc2f6fa1db #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3957
diff changeset
  2668
     The changeAction-block is invoked with the change and a lineNumberOrNil as
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2669
     arg; the lineNumber is only valid, if the underlying inputStream
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2670
     provides line-numbers; otherwise, nil is passed."
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2671
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2672
    lineNumber := initialLineNumberOrNil.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2673
    position := initialPositionOrNil.
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2674
    chunk := initialChunkOrNil.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2675
    parseTree := aTree.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2676
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2677
    selector := aTree selector.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2678
    receiver := aTree receiver.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2679
    arguments := aTree arguments.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2680
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2681
    receiver isMessage ifTrue:[
3964
38bc2f6fa1db #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3957
diff changeset
  2682
        receiverSelector := receiver selector.
38bc2f6fa1db #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 3957
diff changeset
  2683
        receiverReceiver := receiver receiver.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2684
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2685
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2686
    ^ self processChange
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2687
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2688
    "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
  2689
! !
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2690
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2691
!ChangeSet::ChangeFileReader methodsFor:'reading-private'!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2692
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2693
handleCategoriesForChange
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2694
    |selector category categories attributes change|
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2695
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
  2696
    selector := arguments first value.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2697
    className := self receiversClassNameRememberingNamespace.
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2698
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2699
    categories := OrderedCollection new.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2700
    attributes := OrderedCollection new.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2701
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2702
    [
3957
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2703
        inputStream skipSeparators.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2704
        category := inputStream nextChunk.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2705
        category notEmptyOrNil
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2706
    ] whileTrue:[
3957
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2707
        ( #( 'public' 'private' ) includes: category) ifTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2708
            attributes add:category
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2709
        ] ifFalse:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2710
            categories add:category
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2711
        ].
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2712
    ].
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2713
    categories notEmpty ifTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2714
        categories size == 1 ifTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2715
            category := categories first.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2716
        ] ifFalse:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2717
            category := categories asStringWith:' and '
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2718
        ].    
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2719
        change := MethodCategoryChange
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2720
                        className:className
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2721
                        selector:selector
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2722
                        source:(parseTree printString)
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2723
                        category:category.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2724
        self addChange:change.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2725
    ].
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2726
    
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2727
    attributes notEmpty ifTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2728
        attributes size == 1 ifTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2729
            "/ easy
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2730
            (attributes first = 'public') ifTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2731
                "/ default anyway - ignore
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2732
            ] ifFalse:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2733
                change := MethodPrivacyChange
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2734
                            className:className
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2735
                            selector:selector
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2736
                            privacy:(attributes first asSymbol).
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2737
                change nameSpaceOverride:nameSpaceOverride.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2738
                change source:(parseTree printString).
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2739
                self addChange:change.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2740
            ].
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2741
        ] ifFalse:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2742
            self halt:'multiple/missing attributes not supported'.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2743
        ].
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2744
    ].
3957
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2745
    ^ true
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2746
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2747
    "Modified: / 11-06-2013 / 16:11:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2748
!
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2749
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2750
handleCategoriesForClassChange
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2751
    |category categories attributes change|
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2752
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2753
    className := self receiversClassNameRememberingNamespace.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2754
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2755
    categories := OrderedCollection new.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2756
    attributes := OrderedCollection new.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2757
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2758
    [
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2759
        inputStream skipSeparators.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2760
        category := inputStream nextChunk.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2761
        category notEmptyOrNil
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2762
    ] whileTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2763
        ( #( 'public' 'private' ) includes: category) ifTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2764
            attributes add:category
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2765
        ] ifFalse:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2766
            categories add:category
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2767
        ].
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2768
    ].
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2769
3957
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2770
    categories notEmpty ifTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2771
        categories size == 1 ifTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2772
            "/ easy
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2773
            category := categories first
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2774
        ] ifFalse:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2775
            category := categories asStringWith:' and '
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2776
        ].    
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2777
        change := ClassCategoryChange new
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2778
                            className:className
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2779
                            category:category.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2780
        self addChange:change.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2781
    ].
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2782
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2783
    attributes notEmpty ifTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2784
        attributes size == 1 ifTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2785
            "/ easy
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2786
            (attributes first = 'public') ifTrue:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2787
                "/ default anyway - ignore
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2788
            ] ifFalse:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2789
                "/ a private class!!
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2790
"/            change := ClassDefinitionChange
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2791
"/                        className:className
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2792
"/                        selector:selector
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2793
"/                        privacy:(attributes first asSymbol).
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2794
"/            change nameSpaceOverride:nameSpaceOverride.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2795
"/            change source:(parseTree printString).
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2796
"/            self addChange:change.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2797
            ].
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2798
        ] ifFalse:[
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2799
            self halt:'multiple/missing attributes not supported'.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  2800
        ].
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2801
    ].
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2802
    ^ true
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2803
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2804
    "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
  2805
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2806
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2807
handleClassCommentChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2808
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2809
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2810
    className := self receiversClassNameRememberingNamespace.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2811
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2812
    change := ClassCommentChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2813
    change className:className comment:(arguments at:1) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2814
    change source:(parseTree printString).
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2815
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2816
    ^ true
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2817
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2818
    "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
  2819
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2820
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2821
handleClassDefinitionChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2822
    |nameSpace change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2823
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2824
    className := (arguments at:1) evaluate.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2825
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2826
    nameSpace := Class nameSpaceQuerySignal query.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2827
    (nameSpace == Smalltalk) ifTrue:[ nameSpace := nil ].
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2828
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2829
    "/ old: remember namespace in className
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2830
"/    nameSpace ~~ Smalltalk ifTrue:[
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2831
"/        className := nameSpace name , '::' , className
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2832
"/    ].
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2833
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2834
    change := ClassDefinitionChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2835
    change className:className; source:(parseTree printString).
3860
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2836
    change definitionSelector:selector.
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2837
1453
27882f000bc9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1450
diff changeset
  2838
    receiver isVariable ifTrue:[
3860
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2839
        change superClassName:receiver name.
1453
27882f000bc9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1450
diff changeset
  2840
    ].
1428
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2841
    selector keywords with:arguments do:[:kw :arg |
3860
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2842
        kw = #'instanceVariableNames:' ifTrue:[
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2843
            change instanceVariableString:arg evaluate.
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2844
        ].
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2845
        kw = #'classVariableNames:' ifTrue:[
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2846
            change classVariableString:arg evaluate.
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2847
        ].
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2848
        kw = #'poolDictionaries:' ifTrue:[
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2849
            change poolDictionaries:arg evaluate.
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2850
        ].
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2851
        kw = #'category:' ifTrue:[
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2852
            change category:arg evaluate.
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2853
        ].
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2854
        kw = #'privateIn:' ifTrue:[
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2855
            | nm |
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2856
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2857
            nm := arg name.
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2858
            nameSpace notNil ifTrue:[
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2859
                (nm startsWith: nameSpace name) ifTrue:[
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2860
                    nm := nm copyFrom: nameSpace name size + 3.
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2861
                ].
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2862
            ].
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2863
            change className:(nm ,'::',change classNameWithoutNamespace).
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2864
            change owningClassName:nm.
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2865
            change private:true.
e997ac64abab class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  2866
        ].
1428
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2867
    ].
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2868
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2869
    change package:(Class packageQuerySignal query).
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2870
"/        nameSpace ~~ Smalltalk ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2871
"/            change nameSpaceName:(nameSpace name).
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
"/
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2874
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2875
    ^ true
2290
882d87800dea private class handling
Claus Gittinger <cg@exept.de>
parents: 2279
diff changeset
  2876
882d87800dea private class handling
Claus Gittinger <cg@exept.de>
parents: 2279
diff changeset
  2877
    "Modified: / 30-08-2010 / 13:56:32 / cg"
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2878
    "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
  2879
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2880
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2881
handleClassInitializeChange
3526
e64bd3cbd704 For class initialization chunk, create ClassInitializeChange instead of plain DoItChange.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3521
diff changeset
  2882
    | change nm |
e64bd3cbd704 For class initialization chunk, create ClassInitializeChange instead of plain DoItChange.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3521
diff changeset
  2883
e64bd3cbd704 For class initialization chunk, create ClassInitializeChange instead of plain DoItChange.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3521
diff changeset
  2884
    nm := self receiversClassNameRememberingNamespace.
e64bd3cbd704 For class initialization chunk, create ClassInitializeChange instead of plain DoItChange.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3521
diff changeset
  2885
e64bd3cbd704 For class initialization chunk, create ClassInitializeChange instead of plain DoItChange.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3521
diff changeset
  2886
    change := ClassInitializeChange new source: chunk.
e64bd3cbd704 For class initialization chunk, create ClassInitializeChange instead of plain DoItChange.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3521
diff changeset
  2887
    change className: nm.
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2888
    self addChange: change.
3526
e64bd3cbd704 For class initialization chunk, create ClassInitializeChange instead of plain DoItChange.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3521
diff changeset
  2889
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2890
    ^ true
3526
e64bd3cbd704 For class initialization chunk, create ClassInitializeChange instead of plain DoItChange.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3521
diff changeset
  2891
e64bd3cbd704 For class initialization chunk, create ClassInitializeChange instead of plain DoItChange.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3521
diff changeset
  2892
    "Modified: / 21-03-2014 / 18:19:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2893
!
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2894
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2895
handleClassInstanceVariableDefinitionChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2896
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2897
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2898
    className := self receiversClassNameRememberingNamespace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2899
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2900
    change := ClassInstVarDefinitionChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2901
    change className:className.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2902
    change source:(parseTree printString).
2617
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  2903
    change classInstVarNames:(parseTree arguments first value asCollectionOfWords asArray).
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2904
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2905
    ^ true
2617
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  2906
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  2907
    "Modified: / 25-11-2011 / 17:40:49 / cg"
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2908
    "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
  2909
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2910
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2911
handleMethodCategoryChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2912
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2913
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2914
    self extractMethodsClassAndSelectorFromReceiver ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2915
	^ false.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2916
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2917
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2918
    change := MethodCategoryChange new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2919
    change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2920
	className:className
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2921
	selector:methodSelector
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2922
	category:(arguments at:1) evaluate.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2923
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2924
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2925
    ^ true
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2926
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2927
    "Modified: / 27-07-2012 / 21:34:42 / cg"
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2928
    "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
  2929
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2930
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2931
handleMethodCategoryRenameChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2932
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2933
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2934
    className := self receiversClassNameRememberingNamespace.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2935
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2936
    change := MethodCategoryRenameChange new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2937
    change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2938
	className:className;
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2939
	oldCategoryName:(arguments at:1) evaluate
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2940
	newCategoryName:(arguments at:2) evaluate.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2941
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2942
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2943
    ^ true
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2944
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  2945
    "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
  2946
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2947
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2948
handleMethodChange
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2949
    [
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2950
	^ self handleMethodChangeUnsafe
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2951
    ] on: Error do:[:ex|
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2952
	| change |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2953
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2954
	change := InvalidChange new source: chunk.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2955
	self addChange: change.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2956
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2957
	"Read methods that may follow"
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2958
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2959
	[ (chunk := inputStream nextChunk) notEmptyOrNil ] whileTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2960
	    change := InvalidChange new source: chunk.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2961
	    self addChange: change.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2962
	]
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2963
    ].
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2964
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2965
    ^ true
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2966
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2967
    "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
  2968
!
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
handleMethodChangeUnsafe
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  2971
    |priv categoryName methodSource change parser |
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2972
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2973
    className := self receiversClassNameRememberingNamespace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2974
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2975
    (selector == #'ignoredMethodsFor:') ifTrue:[
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  2976
        priv := #ignored.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2977
    ] ifFalse:[
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  2978
        priv := nil
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2979
    ].
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2980
    classIsJava := false.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2981
    ((selector == #'methods')
1977
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2982
    or:[(selector == #'publicMethods')
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2983
    or:[(selector == #'methodsFor')]]) ifTrue:[
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  2984
        categoryName := 'uncategorized public'
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2985
    ] ifFalse:[
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  2986
        (selector == #'privateMethods') ifTrue:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  2987
            categoryName := 'uncategorized private'
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  2988
        ] ifFalse:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  2989
            categoryName := (arguments at:1) evaluate.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  2990
        ]
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2991
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2992
    inputStream skipSeparators.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2993
    lineNumber := inputStream lineNumber.
3521
6e43c118d860 Fixes for reading changesets from non-positionable streams
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3520
diff changeset
  2994
    "/ Care for non-positionable streams
6e43c118d860 Fixes for reading changesets from non-positionable streams
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3520
diff changeset
  2995
    position := nil.
6e43c118d860 Fixes for reading changesets from non-positionable streams
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3520
diff changeset
  2996
    inputStream isPositionable ifTrue:[
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  2997
        position := inputStream position + 1.
3521
6e43c118d860 Fixes for reading changesets from non-positionable streams
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3520
diff changeset
  2998
    ].
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2999
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3000
    methodSource := chunk := inputStream nextChunk.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3001
1395
6ea99b157f6b Use #setFilename:forClass:package: to define an abbreviation
Stefan Vogel <sv@exept.de>
parents: 1389
diff changeset
  3002
    [methodSource notEmptyOrNil] whileTrue:[
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3003
        parser := Parser
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3004
                    parseMethodArgAndVarSpecification:methodSource
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3005
                    in:nil
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3006
                    ignoreErrors:true
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3007
                    ignoreWarnings:true
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3008
                    parseBody:false.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3009
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3010
        parser isNil ifTrue:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3011
            "/ something wierd ...
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3012
            methodSelector := '????'.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3013
        ] ifFalse:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3014
            methodSelector := parser selector.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3015
        ].
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3016
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3017
        change := MethodDefinitionChange new.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3018
        change
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3019
            className:className
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3020
            selector:methodSelector
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3021
            source:methodSource
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3022
            category:categoryName
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3023
            privacy:priv.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3024
        classIsJava ifTrue:[ change classIsJava: classIsJava ].
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3025
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3026
        self addChange:change.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3027
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3028
        inputStream skipSeparators.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3029
        lineNumber := inputStream lineNumber.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3030
        "/ Care for non-positionable streams
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3031
        position := nil.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3032
        inputStream isPositionable ifTrue:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3033
            position := inputStream position + 1.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3034
        ].
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3035
        methodSource := chunk := inputStream nextChunk.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3036
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3037
    ^ true
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3038
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3039
    "Created: / 24-01-2012 / 16:52:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3040
    "Modified: / 27-02-2018 / 09:23:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3041
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3042
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3043
handleMethodPackageChange
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3044
    |change|
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3045
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3046
    self extractMethodsClassAndSelectorFromReceiver ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3047
	^ false.
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3048
    ].
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3049
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3050
    change := MethodPackageChange new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3051
    change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3052
	className:className
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3053
	selector:methodSelector
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3054
	package:(arguments at:1) evaluate.
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3055
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3056
    self addChange:change.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3057
    ^ true
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3058
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3059
    "Created: / 27-07-2012 / 21:31:25 / cg"
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  3060
    "Modified: / 11-06-2013 / 16:11:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3061
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3062
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3063
handleMethodPrivacyChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3064
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3065
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3066
    self extractMethodsClassAndSelectorFromReceiver ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3067
	^ false.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3068
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3069
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3070
    change := MethodPrivacyChange new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3071
    change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3072
	className:className
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3073
	selector:methodSelector
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3074
	privacy:(arguments at:1) evaluate.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3075
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  3076
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3077
    ^ true
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3078
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3079
    "Modified: / 27-07-2012 / 21:35:20 / cg"
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  3080
    "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
  3081
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3082
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3083
handleNameSpaceCreationChange
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  3084
    |change|
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3085
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  3086
    (self checkReceiverIsGlobalNamed:#Namespace) ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3087
	(self checkReceiverIsGlobalNamed:#NameSpace) ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3088
	    self error:'unexpected receiver in nameSpace message' mayProceed:true.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3089
	    ^ false
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3090
	].
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3091
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3092
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3093
    className := (arguments at:1) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3094
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3095
    change := NameSpaceCreationChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3096
    change name:className.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  3097
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3098
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3099
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3100
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3101
handlePrimitiveChange
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3102
    self handlePrimitiveChange:nil
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3103
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3104
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3105
handlePrimitiveChange: sourceOrNil
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3106
    "if sourceOrNil is nil, the def has not been read and must be read from
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3107
     the next chunk. Otherwise, it has been already read as argument."
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3108
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3109
    |change primSource|
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3110
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3111
    className := self receiversClassNameRememberingNamespace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3112
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3113
    sourceOrNil notNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3114
	primSource := sourceOrNil
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3115
    ] ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3116
	inputStream skipSeparators.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3117
	primSource := inputStream nextChunk.
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3118
    ].
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3119
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3120
    (selector == #'primitiveDefinitions' or:[ selector == #'primitiveDefinitions:' ]) ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3121
	change := ClassPrimitiveDefinitionsChange new
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3122
    ] ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3123
	(selector == #'primitiveFunctions' or:[ selector == #'primitiveFunctions:' ]) ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3124
	    change := ClassPrimitiveFunctionsChange new
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3125
	] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3126
	    change := ClassPrimitiveVariablesChange new
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3127
	]
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3128
    ].
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3129
    change className:className source:primSource.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3130
    self addChange:change.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3131
    ^ true
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3132
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3133
    "Created: / 27-07-2012 / 21:39:55 / cg"
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  3134
    "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
  3135
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3136
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3137
handleRemoveClassChange
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  3138
    |change|
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3139
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  3140
    (self checkReceiverIsGlobalNamed:#Smalltalk) ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3141
	self error:'unexpected receiver in remove-class message' mayProceed:true.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3142
	^ false
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3143
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3144
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3145
    className := (arguments at:1) name.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3146
"/            nameSpace ~~ Smalltalk ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3147
"/                className := nameSpace name , '::' , className
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3148
"/            ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3149
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3150
    change := ClassRemoveChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3151
    change className:className.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  3152
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3153
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3154
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3155
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3156
handleRemoveMethodChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3157
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3158
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3159
    className := self receiversClassName.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3160
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3161
    methodSelector := (arguments at:1) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3162
    change := MethodRemoveChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3163
    change className:className selector:methodSelector.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  3164
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3165
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3166
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3167
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3168
handleRenameClassChange
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  3169
    |oldName newName change|
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3170
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  3171
    (self checkReceiverIsGlobalNamed:#Smalltalk) ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3172
	self error:'unexpected receiver in rename-class message' mayProceed:true.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3173
	^ false.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3174
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3175
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3176
    oldName := (arguments at:1) name.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3177
    newName := (arguments at:2) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3178
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  3179
    change := ClassRenameChange new oldName:oldName newName:newName.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  3180
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3181
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3182
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3183
1181
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3184
handleSqueakCommentStamp
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3185
    |comment change|
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3186
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3187
    inputStream skipSeparators.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3188
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3189
    comment := inputStream nextChunk.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3190
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3191
    className := self receiversClassNameRememberingNamespace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3192
1181
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3193
    change := ClassCommentChange new.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3194
    change className:className comment:comment.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3195
    change source:(parseTree printString).
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3196
    self addChange:change.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3197
    ^ true
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3198
!
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  3199
1183
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3200
handleVW7ClassDefinitionChange
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3201
    |nameSpace change|
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3202
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3203
    nameSpace := receiver.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3204
    className := (arguments at:1) evaluate.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3205
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3206
"/    nameSpace := Class nameSpaceQuerySignal query.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3207
"/    nameSpace ~~ Smalltalk ifTrue:[
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3208
"/        className := nameSpace name , '::' , className
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3209
"/    ].
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3210
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3211
    change := ClassDefinitionChange new.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3212
    change className:className; source:(parseTree printString).
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3213
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3214
    change package:(Class packageQuerySignal query).
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3215
    self addChange:change.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3216
    ^ true
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3217
!
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3218
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3219
processChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3220
    "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
  3221
     create changes and evaluate changeAction on each.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3222
     The block is invoked with the change and a lineNumberOrNil as
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3223
     arg; 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
  3224
     provides line-numbers; otherwise, nil is passed."
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3225
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3226
    [
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3227
	^ self processChangeUnsafe
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3228
    ] on: Error do:[:ex|
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3229
	| change |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3230
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3231
	change := DoItChange new source: chunk.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3232
	self addChange: change.
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3233
    ].
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3234
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3235
    ^true
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3236
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3237
    "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
  3238
!
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3239
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3240
processChangeUnsafe
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3241
    "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
  3242
     create changes and evaluate changeAction on each.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3243
     The block is invoked with the change and a lineNumberOrNil as
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3244
     arg; the lineNumber is only valid, if the underlying stream
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3245
     provides line-numbers; otherwise, nil is passed."
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3246
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3247
    |dispatchSelector|
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3248
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3249
    dispatchSelector := ('process_',(selector copyReplaceAll:$: with:$_)) asSymbol.
2122
3ffe8c94f2cc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2117
diff changeset
  3250
"/ Transcript showCR:dispatchSelector.
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  3251
    (self respondsTo:dispatchSelector) ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3252
	^ self perform:dispatchSelector.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3253
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3254
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3255
    "/ any subclass definiton selector ?
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3256
    (Behavior definitionSelectors includes:selector)
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3257
    ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3258
	^ self handleClassDefinitionChange.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3259
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3260
3195
5ce601cd8a45 class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  3261
    self error:'unhandled change selector: ',selector.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  3262
    ^ false
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3263
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  3264
    "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
  3265
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3266
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3267
processInfo: string
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3268
    "Processes 'info record' - an info record consist of a chunk containing
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3269
     single string literal starting with ----, such as:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3270
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3271
    '---- timestamp jv@neso 12-03-2012 10:49:40 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3272
    '---- snapshot st.img 30-03-2012 11:40:24 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3273
    '---- 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
  3274
    '---- rake update 30-03-2012 11:40:24 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3275
    '---- start 30-03-2012 11:40:24 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3276
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3277
    timestamp info records are (for historical reasons) processed in ChangeSet
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3278
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3279
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3280
    | kind sel |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3281
    inputStream skip: 5.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3282
    kind := inputStream upTo: Character space.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3283
    (kind endsWith:$:) ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3284
	kind := kind copyButLast:1
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3285
    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3286
    sel := ('process_', kind) asSymbolIfInterned.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3287
    sel notNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3288
	MessageNotUnderstood handle:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3289
	    self process_otherInfo:kind
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3290
	] do:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3291
	    self perform: sel.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3292
	]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3293
    ] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3294
	self process_otherInfo:kind
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3295
    ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3296
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3297
    "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
  3298
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3299
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3300
process_category_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3301
    "'category:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3302
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3303
    ^ self handleMethodCategoryChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3304
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3305
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3306
process_comment_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3307
    "'comment:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3308
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3309
    ^ self handleClassCommentChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3310
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3311
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3312
process_encoding
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3313
    "St/X encoding info record. Ignored"
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3314
!
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3315
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3316
process_ignoredMethodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3317
    "'ignoredMethodsFor:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3318
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3319
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3320
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3321
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  3322
process_initialize
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  3323
    "'class initialize' chunk"
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  3324
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  3325
    ^ self handleClassInitializeChange
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  3326
!
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  3327
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3328
process_instanceVariableNames_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3329
    "'instanceVariableNames:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3330
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3331
    ^ self handleClassInstanceVariableDefinitionChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3332
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3333
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3334
process_name_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3335
    "'name:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3336
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3337
    ^ self handleNameSpaceCreationChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3338
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3339
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3340
process_otherInfo:what
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3341
    "'---- <what> 12-03-2012 10:49:40 ----'
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3342
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3343
    '<what>' is already read from inputStream.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3344
    "
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3345
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3346
    "/ inputStream skipSeparators.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3347
    self addChange: (InfoChange type: what data: (inputStream upToEnd) timestamp: nil)
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3348
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3349
    "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
  3350
!
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3351
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3352
process_package_
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3353
    "'package:' chunk (ST/X)"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3354
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3355
    ^ self handleMethodPackageChange.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3356
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3357
    "Created: / 27-07-2012 / 21:36:30 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3358
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3359
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3360
process_primitiveDefinitions
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3361
    "'primitiveDefinitions' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3362
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3363
    ^ self handlePrimitiveChange:nil.
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3364
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3365
    "Modified: / 27-07-2012 / 21:40:33 / cg"
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3366
!
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3367
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3368
process_primitiveDefinitions_
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3369
    "'primitiveDefinitions:' chunk (ST/X)"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3370
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3371
    ^ self handlePrimitiveChange: (arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3372
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3373
    "Created: / 27-07-2012 / 21:42:03 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3374
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3375
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3376
process_primitiveFunctions
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3377
    "'primitiveFunctions' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3378
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3379
    ^ self handlePrimitiveChange:nil.
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3380
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3381
    "Modified: / 27-07-2012 / 21:40:23 / cg"
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3382
!
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3383
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3384
process_primitiveFunctions_
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3385
    "'primitiveFunctions:' chunk (ST/X)"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3386
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3387
    ^ self handlePrimitiveChange: (arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3388
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3389
    "Created: / 27-07-2012 / 21:37:21 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3390
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3391
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3392
process_primitiveVariables
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3393
    "'primitiveVariables' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3394
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3395
    ^ self handlePrimitiveChange:nil.
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3396
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3397
    "Modified: / 27-07-2012 / 21:40:35 / cg"
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3398
!
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3399
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3400
process_primitiveVariables_
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3401
    "'primitiveVariables:' chunk (ST/X)"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3402
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3403
    ^ self handlePrimitiveChange: (arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3404
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3405
    "Created: / 27-07-2012 / 21:41:49 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3406
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3407
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3408
process_privacy_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3409
    "'privacy:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3410
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3411
    ^ self handleMethodPrivacyChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3412
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3413
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3414
process_privateMethods
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3415
    "'privateMethods' chunk (ST/V and dolphin)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3416
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3417
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3418
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3419
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3420
process_privateMethodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3421
    "'privateMethodsFor:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3422
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3423
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3424
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3425
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3426
process_protectedMethodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3427
    "'protectedMethodsFor:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3428
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3429
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3430
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3431
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3432
process_publicMethodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3433
    "'publicMethodsFor:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3434
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3435
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3436
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3437
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3438
process_rake
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3439
    "Rake build system info record
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3440
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3441
    '---- rake update st.img 12-03-2012 10:49:40 ----'!!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3442
    '---- rake compile st.img 12-03-2012 10:49:40 ----'!!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3443
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3444
    'rake' is already read from inputStream.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3445
    "
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3446
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3447
    | ts what |
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3448
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3449
    inputStream skipSeparators.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3450
    what := inputStream through: Character space. "/read snapshot name
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3451
    inputStream through: Character space. "/skip username@host
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3452
    ts := Timestamp readFrom: inputStream.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3453
    self addChange: (InfoChange type: #rake data: what timestamp: ts)
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3454
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3455
    "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
  3456
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3457
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3458
process_removeClass_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3459
    "'removeClass:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3460
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3461
    ^ self handleRemoveClassChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3462
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3463
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3464
process_removeSelector_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3465
    "'removeSelector:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3466
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3467
    ^ self handleRemoveMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3468
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3469
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3470
process_renameCategory_to_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3471
    "'renameCategory:to:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3472
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3473
    ^ self handleMethodCategoryRenameChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3474
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3475
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3476
process_renameClass_to_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3477
    "'renameClass:to:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3478
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3479
    ^ self handleRenameClassChange.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3480
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3481
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3482
process_snapshot
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3483
    "St/X system start info record
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3484
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3485
    '---- snapshot st.img 12-03-2012 10:49:40 ----'!!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3486
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3487
    'start' is already read from inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3488
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3489
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3490
    | ts file |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3491
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3492
    inputStream skipSeparators.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3493
    file := inputStream through: Character space. "/read snapshot name
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3494
    ts := Timestamp readFrom: inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3495
    self addChange: (InfoChange type: #snapshot data: file timestamp: ts)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3496
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3497
    "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
  3498
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3499
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3500
process_start
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3501
    "St/X system start info record
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3502
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3503
    '---- start 12-03-2012 10:49:40 ----'!!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3504
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3505
    'start' is already read from inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3506
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3507
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3508
    | ts |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3509
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3510
    inputStream skipSeparators.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3511
    ts := Timestamp readFrom: inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3512
    self addChange: (InfoChange type: #start data: nil timestamp: ts)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3513
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3514
    "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
  3515
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3516
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3517
process_timestamp
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3518
    "St/X timestamp info record. Example:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3519
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3520
    '---- timestamp jv@neso 12-03-2012 10:49:40 ----'!!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3521
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3522
    'timestamp' is already read from inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3523
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3524
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3525
    inputStream skipSeparators; through: Character space. "/read username@host
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3526
    timestamp := Timestamp readFrom: inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3527
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3528
    "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
  3529
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3530
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3531
!ChangeSet::ChangeFileReader methodsFor:'reading-private-dolphin'!
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3532
3957
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3533
process_categoriesForClass
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3534
    "'categoriesForClass' chunk (Dolphin)"
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3535
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3536
    ^ self handleCategoriesForClassChange.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3537
!
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3538
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3539
process_categoriesFor_
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3540
    "'categoriesFor:' chunk (Dolphin)"
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3541
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3542
    ^ self handleCategoriesForChange.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3543
!
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3544
3957
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3545
process_methods
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3546
    "'methods' chunk (ST/V and dolphin)"
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3547
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3548
    ^ self handleMethodChange.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3549
!
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3550
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3551
process_methodsFor
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3552
    "'methodsFor' chunk (ST/V and dolphin)"
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3553
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3554
    ^ self handleMethodChange.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3555
!
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3556
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3557
process_methodsForUndefined_
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3558
    "'methodsForUndefined:' chunk (?)"
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3559
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3560
    ^ self handleMethodChange.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3561
!
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3562
3957
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3563
process_methodsFor_
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3564
    "'methodsFor:' chunk (ST/80, Squeak, ST/X, VW, ...)"
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3565
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3566
    ^ self handleMethodChange.
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3567
!
420da9168e36 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3946
diff changeset
  3568
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3569
process_publicMethods
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3570
    "'publicMethods' chunk (ST/V and dolphin)"
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3571
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3572
    ^ self handleMethodChange.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3573
! !
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3574
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3575
!ChangeSet::ChangeFileReader methodsFor:'reading-private-gravel'!
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3576
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3577
process_addClassMethod_
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3578
    "'reader addClassMethod:' chunk (gravel Smalltalk)"
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3579
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3580
    ^ self process_addMethodOrClassMethod:true
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3581
!
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3582
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3583
process_addMethodOrClassMethod:isClassMethod
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3584
    "'reader addMethod:' chunk (gravel Smalltalk)"
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3585
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3586
    |categoryName methodSource change parser|
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3587
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3588
    categoryName := (arguments at:1) evaluate.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3589
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3590
    lineNumber := inputStream lineNumber.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3591
    "/ Care for non-positionable streams
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3592
    position := nil.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3593
    inputStream isPositionable ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3594
	position := inputStream position + 1.
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3595
    ].
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3596
    methodSource := inputStream nextChunk.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3597
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3598
    parser := Parser
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3599
		parseMethodArgAndVarSpecification:methodSource
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3600
		in:nil
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3601
		ignoreErrors:true
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3602
		ignoreWarnings:true
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3603
		parseBody:false.
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3604
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3605
    parser isNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3606
	"/ something wierd ...
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3607
	methodSelector := '????'.
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3608
    ] ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3609
	methodSelector := parser selector.
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3610
    ].
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3611
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3612
    isClassMethod ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3613
	className := className , ' class'
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3614
    ].
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3615
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3616
    change := MethodDefinitionChange new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3617
    change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3618
	className:className
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3619
	selector:methodSelector
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3620
	source:methodSource
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3621
	category:categoryName
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3622
	privacy:nil.
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3623
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3624
    self addChange:change.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3625
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3626
"/ self halt.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3627
    ^ true
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3628
!
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3629
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3630
process_addMethod_
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3631
    "'reader addMethod:' chunk (gravel Smalltalk)"
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3632
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3633
    ^ self process_addMethodOrClassMethod:false
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3634
!
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3635
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3636
process_addSimpleClassTrait_
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3637
    "'reader defineaddSimpleTraitTrait:' chunk (gravel Smalltalk)"
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3638
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3639
    |change traitName|
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3640
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3641
    traitName := (arguments at:1) evaluate.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3642
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3643
    change := TraitDefinitionChange new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3644
    change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3645
	className:className,' class';
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3646
	baseTrait:traitName;
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3647
	source:chunk.
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3648
"/ self halt.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3649
    self addChange:change.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3650
    ^ true
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3651
!
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3652
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3653
process_addSimpleTrait_
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3654
    "'reader defineaddSimpleTraitTrait:' chunk (gravel Smalltalk)"
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3655
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3656
    |change traitName gravelSuperclassName superclassName|
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3657
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3658
    traitName := (arguments at:1) evaluate.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3659
    gravelSuperclassName := (arguments at:2) evaluate.
3833
f40fb26d03f7 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
  3660
    superclassName := SourceFileLoader::SourceFileReader classNameMappingFor:gravelSuperclassName.
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3661
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3662
    change := TraitDefinitionChange new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3663
    change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3664
	className:className;
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3665
	superClassName:superclassName;
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3666
	baseTrait:traitName;
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3667
	source:chunk.
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3668
"/ self halt.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3669
    self addChange:change.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3670
    ^ true
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3671
!
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3672
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3673
process_defineClass_superclass_
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3674
    "'reader defineClass:superclass:' chunk (gravel Smalltalk)"
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3675
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3676
    |nameSpace change gravelSuperclassName superclassName|
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3677
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3678
    className := (arguments at:1) evaluate.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3679
    gravelSuperclassName := (arguments at:2) evaluate.
3833
f40fb26d03f7 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3832
diff changeset
  3680
    superclassName := SourceFileLoader::SourceFileReader classNameMappingFor:gravelSuperclassName.
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3681
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3682
    nameSpace := Class nameSpaceQuerySignal query.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3683
    (nameSpace == Smalltalk) ifTrue:[ nameSpace := nil ].
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3684
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3685
    change := ClassDefinitionChange new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3686
    change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3687
	className:className;
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3688
	superClassName:superclassName;
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3689
	source:chunk.
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3690
"/ self halt.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3691
    self addChange:change.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3692
    ^ true
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3693
!
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3694
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3695
process_defineTrait_superclass_
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3696
    "'reader defineTrait:' chunk (gravel Smalltalk)"
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3697
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3698
    |nameSpace change|
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3699
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3700
    className := (arguments at:1) evaluate.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3701
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3702
    nameSpace := Class nameSpaceQuerySignal query.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3703
    (nameSpace == Smalltalk) ifTrue:[ nameSpace := nil ].
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3704
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3705
    change := TraitDefinitionChange new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3706
    change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3707
	className:className;
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3708
	source:chunk.
3832
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3709
"/ self halt.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3710
    self addChange:change.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3711
    ^ true
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3712
! !
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3713
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3714
!ChangeSet::ChangeFileReader methodsFor:'reading-private-squeak'!
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3715
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3716
process_commentStamp_prior_
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3717
    "'commentStamp:prior::' chunk (Squeak)"
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3718
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3719
    ^ self handleSqueakCommentStamp.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3720
!
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3721
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3722
process_methodsFor_stamp_
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3723
    "'methodsFor:stamp:' chunk (Squeak)"
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3724
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3725
    ^ self handleMethodChange.
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3726
! !
d8158c7c612f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3825
diff changeset
  3727
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3728
!ChangeSet::ChangeFileWriter methodsFor:'source writing'!
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3729
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3730
fileOut: aChangeSet on: aStream
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3731
    | hasWideChars stream lastNameSpace |
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3732
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3733
    hasWideChars := aChangeSet contains:[:each | each source isWideString ].
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3734
    hasWideChars ifTrue:[
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3735
	stream := EncodedStream stream: aStream encoder: CharacterEncoder encoderForUTF8.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3736
	stream nextPutAll: '"{ Encoding: utf8 }"'; cr; cr.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3737
	stream nextPutAll: '!!'; cr; cr.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3738
    ] ifFalse:[
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3739
	stream := aStream
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3740
    ].
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3741
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3742
    lastNameSpace := nil.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3743
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3744
    aChangeSet do:[:eachChange |
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3745
	eachChange isClassChange ifTrue:[
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3746
	    | changeNameSpace |
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3747
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3748
	    changeNameSpace := eachChange nameSpaceName.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3749
	    changeNameSpace ~= lastNameSpace ifTrue:[
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3750
		aStream nextPutAll: ('"{ NameSpace: %1 }"' bindWith: changeNameSpace).
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3751
		aStream cr; cr.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3752
		stream nextPutLine:'!!'.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3753
		lastNameSpace := changeNameSpace.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3754
	    ].
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3755
	    eachChange isMethodCodeChange ifTrue:[
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3756
		stream nextPutAll:'!!'; nextPutAll:(eachChange className); nextPutAll:' methodsFor: '.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3757
		stream nextPutAll:(eachChange methodCategory storeString).
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3758
		stream nextPutLine:'!!'.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3759
		stream cr.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3760
		stream nextPutAllAsChunk:(eachChange source).
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3761
		stream nextPutLine:'!! !!'.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3762
	    ] ifFalse:[
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3763
		stream nextPutAll:(eachChange source).
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3764
		stream nextPutLine:'!!'.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3765
	    ].
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3766
	].
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3767
	aStream cr.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3768
    ].
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3769
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3770
    "Created: / 04-02-2014 / 18:51:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3771
    "Modified: / 06-03-2014 / 12:48:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3772
! !
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3773
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3774
!ChangeSet::BeeChangeFileReader methodsFor:'helpers'!
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3775
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3776
currentMethodProtocol
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3777
    "Returns a protocol of currently processed `MethodDefinition` change"
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3778
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3779
    | categoryIndex category|
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3780
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3781
    self assert: parseTree receiver name = 'MethodDefinition'.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3782
    categoryIndex := parseTree selector keywords indexOf: 'category:'.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3783
    category := parseTree arguments at: categoryIndex.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3784
    ^ category value.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3785
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3786
    "Created: / 27-02-2018 / 09:36:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3787
!
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3788
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3789
receiversClassNameRememberingNamespace
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3790
    ^ (parseTree arguments at: 3) value.
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3791
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3792
    "Created: / 21-08-2014 / 18:53:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3793
! !
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3794
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3795
!ChangeSet::BeeChangeFileReader methodsFor:'reading-private'!
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3796
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3797
handleMethodChangeUnsafe
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3798
    | retval changeSetSize protocol |
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3799
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3800
    changeSetSize := changeSet size.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3801
    retval := super handleMethodChangeUnsafe.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3802
    protocol := self currentMethodProtocol.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3803
    changeSetSize + 1 to: changeSet size do:[:i | 
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3804
        (changeSet at: i) category: protocol.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3805
    ].
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3806
    ^ retval.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3807
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3808
    "Created: / 27-02-2018 / 09:27:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3809
!
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3810
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3811
processChangeUnsafe
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3812
    "given a parse-tree (from parsing some changes source/chunk),
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3813
     create changes and evaluate changeAction on each.
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3814
     The block is invoked with the change and a lineNumberOrNil as
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  3815
     arg; the lineNumber is only valid, if the underlying stream
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3816
     provides line-numbers; otherwise, nil is passed."
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3817
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3818
    |dispatchSelector|
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3819
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3820
    dispatchSelector := ('process_',(selector copyReplaceAll:$: with:$_)) asSymbol.
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3821
"/ Transcript showCR:dispatchSelector.
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3822
    (self respondsTo:dispatchSelector) ifTrue:[
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3823
        ^ self perform:dispatchSelector.
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3824
    ].
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3825
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3826
    (parseTree receiver isVariable and:[ parseTree receiver name = 'MethodDefinition']) ifTrue:[ 
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3827
        ^ self handleMethodChange
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3828
    ].
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3829
    
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3830
    "/ any subclass definiton selector ?
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3831
    (Behavior definitionSelectors includes:selector)
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3832
    ifTrue:[
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3833
        ^ self handleClassDefinitionChange.
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3834
    ].
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3835
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3836
    self error:'unhandled change selector: ',selector.
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3837
    ^ false
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3838
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3839
    "Created: / 21-08-2014 / 18:37:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3840
    "Modified: / 26-02-2018 / 17:30:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3841
    "Modified (format): / 27-02-2018 / 09:26:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3842
!
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3843
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3844
process_timeStamp_author_className_project_
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3845
    "/ Nothing to do
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3846
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3847
    "Created: / 26-02-2018 / 11:38:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3621
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3848
! !
3979244930e1 Initial support for reading Bee Smalltalk .bsc chunk format.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3619
diff changeset
  3849
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3850
!ChangeSet::BeeChangeFileWriter methodsFor:'source writing'!
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3851
4304
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3852
fileOut: aChangeSet on: aStream
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3853
    | hasWideChars stream |
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3854
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3855
    hasWideChars := aChangeSet contains:[:each | each source isWideString ].
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3856
    hasWideChars ifTrue:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3857
        stream := EncodedStream stream: aStream encoder: CharacterEncoder encoderForUTF8.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3858
    ] ifFalse:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3859
        stream := aStream
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3860
    ].
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3861
    aChangeSet do:[:chg |
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3862
        chg isMethodDefinitionChange ifTrue:[
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3863
            self fileOutMethodDefinition: chg on: stream
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3864
        ] ifFalse:[ 
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3865
            chg isClassDefinitionChange ifTrue:[ 
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3866
                self fileOutClassDefinition: chg on: stream
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3867
            ] ifFalse:[ 
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3868
                self notYetImplemented
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3869
            ].
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3870
        ].
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3871
        stream cr.
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3872
    ].
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3873
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3874
    "Created: / 05-03-2018 / 12:53:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3875
    "Modified: / 05-03-2018 / 13:53:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3876
!
2feea54a7804 Fixes and improvements in Bee changesets reader and writer (.ch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4260
diff changeset
  3877
4260
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3878
fileOutClassDefinition: aMethodClassChange on: aStream
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3879
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3880
    aStream nextPutAll: '!!ClassDefinition timeStamp:'; nextPutAll: timestamp storeString; nextPutAll: ' author: ''Unknown'''; nextPutAll:' className: '; nextPutAll: aMethodClassChange className asString storeString; nextPutAll: '!!';cr.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3881
    aStream nextPutAll: aMethodClassChange superClassName; cr;
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3882
        tab; nextPutAll: 'subclass: #'; nextPutAll: aMethodClassChange className; cr;
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3883
        tab; nextPutAll: 'instanceVariableNames: '; nextPutAll: aMethodClassChange instanceVariableString storeString ; cr;
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3884
        tab; nextPutAll: 'classVariableNames: '; nextPutAll: aMethodClassChange classVariableString storeString ; cr;
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3885
        tab; nextPutAll: 'poolDictionaries: '; nextPutAll: aMethodClassChange poolDictionaries ? '' storeString ; cr;
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3886
        nextPut: $!!; cr;
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3887
        cr.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3888
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3889
    "Created: / 24-10-2017 / 11:52:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3890
!
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3891
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3892
fileOutMethodDefinition: aMethodDefinitionChange on: aStream
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3893
    aStream nextPutAll: '!!MethodDefinition timeStamp:'; nextPutAll: timestamp storeString; 
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3894
                nextPutAll: ' author: ';    nextPutAll: 'Unknown' storeString;
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3895
                nextPutAll: ' className: '; nextPutAll: aMethodDefinitionChange className storeString; 
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3896
                nextPutAll: ' selector: ';  nextPutAll: aMethodDefinitionChange selector storeString; 
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3897
                nextPutAll: ' category: ';  nextPutAll: aMethodDefinitionChange category storeString; 
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3898
                nextPutAll: '!!'.   
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3899
     aStream cr.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3900
     aStream nextChunkPut: aMethodDefinitionChange source.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3901
     aStream cr.
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3902
022b210d86b5 Added basic support to file out changeset in Bee Smalltalk format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4186
diff changeset
  3903
    "Created: / 24-10-2017 / 11:52:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  3904
! !
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  3905
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3906
!ChangeSet::ClassSourceWriter methodsFor:'private'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3907
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3908
analyze
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  3909
    "Analyzes changeset and build some index"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3910
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3911
    classInfos := Dictionary new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3912
    metaInfos := Dictionary new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3913
    topClassName := nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3914
    "Pass 1 - collect classes"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3915
    changeSetBeingSaved do:[:change|
3856
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3916
        | pkg |
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3917
        pkg := change package.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3918
        packageName isNil ifTrue:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3919
            packageName := pkg.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3920
        ] ifFalse:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3921
            "/Just a defensive check...
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  3922
            self assert: (pkg isNil or:[pkg = packageName]) message: 'STC does not support multiple packages in source files'.
3856
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3923
        ].
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3924
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3925
        change isClassDefinitionChange ifTrue:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3926
            | nm ns |
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3927
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3928
            nm := change className.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3929
            (nm endsWith:' class') ifFalse:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3930
                (classInfos includesKey: nm) ifTrue:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3931
                    self error:'Multiple definitions of class ', nm.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3932
                    ^self.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3933
                ].
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3934
                classInfos at: nm put: (ClassInfo new name: nm).
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3935
                metaInfos at: nm put: (ClassInfo new name: nm , ' class').
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3936
                change isPrivateClassDefinitionChange ifFalse:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3937
                    topClassName notNil ifTrue:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3938
                        self error: ('Multiple top class definitions (%1 vs %2)' bindWith: topClassName with: nm).
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3939
                        ^self.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3940
                    ].
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3941
                    topClassName := nm.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3942
                    namespaceName := change nameSpaceName.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3943
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3944
                ]
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3945
            ]
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3946
        ]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3947
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3948
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3949
    "/ Could be an extension container...
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3950
    topClassName isNil ifTrue:[
3856
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3951
        ^self
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3952
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3953
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3954
    "Pass 2: fill in infos"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3955
    changeSetBeingSaved do:[:change|
3856
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3956
        change isClassChange ifTrue:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3957
            | nm info |
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3958
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3959
            nm := change className.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3960
            (nm endsWith: ' class') ifTrue:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3961
                info := metaInfos at: (nm copyButLast:(' class' size)).
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3962
            ] ifFalse:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3963
                info := classInfos at: nm.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3964
                "Fill superclass info..."
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3965
                change isClassDefinitionChange ifTrue:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3966
                    | superNm |
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3967
                    superNm := change superClassName.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3968
                    superNm notNil ifTrue:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3969
                        (classInfos includesKey: superNm) ifTrue:[
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3970
                            info superclass: (classInfos at: superNm).
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3971
                            (metaInfos at: nm) superclass: (classInfos at: superNm).
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3972
                        ].
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3973
                    ].
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3974
                ].
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3975
            ].
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3976
            info addChange: change.
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3977
        ]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3978
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3979
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3980
    classInfos do:[:info|info namespace: namespaceName].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3981
    metaInfos  do:[:info|info namespace: namespaceName].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3982
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3983
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3984
    "
3856
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3985
        ChangeSet::ClassSourceWriter new
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3986
            changeSetBeingSaved: (ChangeSet forExistingClass: ChangeSet);
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3987
            analyze;
f75fb195e35a class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3844
diff changeset
  3988
            yourself
2881
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
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3992
    "Created: / 15-03-2012 / 17:51:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  3993
    "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
  3994
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3995
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3996
changeSetBeingSaved:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3997
    changeSetBeingSaved := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3998
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3999
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4000
privateClassesOf: classInfo
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4001
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4002
    | classInfoNameSz |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4003
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4004
    classInfoNameSz := classInfo name size.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4005
    ^classInfos values select:[:info|
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4006
	info name size > classInfoNameSz and:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4007
	    (info name startsWith: classInfo name)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4008
		and:[(info name at:classInfoNameSz + 1) == $:
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4009
		    and:[(info name at:classInfoNameSz + 2) == $:
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4010
			and:[(info name indexOf: $: startingAt: classInfo name size + 3) == 0]]]]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4011
    ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4012
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4013
    "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
  4014
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4015
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4016
privateClassesSortedOf: classInfo
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4017
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4018
    |classes|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4019
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4020
    classes := self privateClassesOf: classInfo.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4021
    (classes size > 0) ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4022
	classes := classes asOrderedCollection.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4023
	classes sort:[:a :b | a name < b name].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4024
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4025
	classes topologicalSort:[:a :b |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4026
	    "/ a must come before b iff:
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4027
	    "/    b is a subclass of a
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4028
	    "/    b has a private class which is a subclass of a
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4029
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4030
	    |mustComeBefore privateClassesOfB|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4031
	    mustComeBefore := (b isSubclassOf:a) or:[b isPrivateClassOf: a].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4032
	    mustComeBefore
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4033
	].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4034
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4035
    ^ classes.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4036
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4037
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4038
     Object privateClassesSorted
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4039
     NewSystemBrowser privateClassesSorted
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4040
     NewSystemBrowser privateClasses
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
    "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
  4044
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4045
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4046
!ChangeSet::ClassSourceWriter methodsFor:'source writing'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4047
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4048
fileOut:aChangeSet on:outStreamArg
3842
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4049
    |encoder any16Bit|
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4050
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4051
    any16Bit := aChangeSet contains:[:chg | |src| src := chg source. src notNil and:[src isWideString and:[ src contains: [:c | c codePoint > 16rFF ] ] ] ].
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4052
    any16Bit ifTrue:[
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4053
        encoder := CharacterEncoder encoderForUTF8.
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4054
    ].          
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4055
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4056
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  4057
    ^ self
3842
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4058
        fileOut: aChangeSet
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4059
        on:outStreamArg
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4060
        withTimeStamp:false
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4061
        withInitialize:true
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4062
        withDefinition:true
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4063
        methodFilter:nil encoder:encoder.
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  4064
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  4065
    "Created: / 04-02-2014 / 18:36:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3842
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4066
    "Modified: / 13-04-2015 / 21:27:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  4067
!
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  4068
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4069
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
  4070
3646
cecd3c25e5af class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3621
diff changeset
  4071
    |collectionOfCategories versionMethods extensionVersionMethods comment
cecd3c25e5af class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3621
diff changeset
  4072
     nonMeta meta classesImplementingInitialize outStream
cecd3c25e5af class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3621
diff changeset
  4073
     allMetaClassSelectors versionSelectors extensionVersionSelectors
cecd3c25e5af class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3621
diff changeset
  4074
     allVersionMethods|
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4075
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4076
    self todo:'code duplication with SmalltalkChunkFileSourceFileWriter - please refactor'.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4077
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4078
    changeSetBeingSaved := aChangeSet.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4079
    self analyze.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4080
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4081
    encoderOrNil isNil ifTrue:[
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4082
        outStream := outStreamArg.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4083
    ] ifFalse:[
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4084
        outStream := EncodedStream stream:outStreamArg encoder:encoderOrNil.
3842
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4085
        outStream nextPutAll:'"{ Encoding: '; nextPutAll: encoderOrNil nameOfEncoding; nextPutAll: ' }"'; cr; cr.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4086
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4087
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4088
    "/ Just a bunch of extensions?
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4089
    topClassName isNil ifTrue:[
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4090
        self fileOutMethodsOn: outStream.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4091
        ^self.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4092
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4093
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4094
    nonMeta := classInfos at: topClassName.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4095
       meta :=  metaInfos at: topClassName.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4096
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4097
    methodsAlreadySaved := Set new.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4098
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4099
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4100
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4101
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4102
     if there is a copyright method, add a copyright comment
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4103
     at the beginning, taking the string from the copyright method.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4104
     We cannot do this unconditionally - that would lead to my copyrights
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4105
     being put on your code ;-).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4106
     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
  4107
     copyright string at the beginning be preserved .... even if the
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4108
     code was edited in the browser and filedOut.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4109
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4110
    self generateHeaderWithCopyrightOn:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4111
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4112
    stampIt ifTrue:[
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4113
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4114
        "/ first, a timestamp
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4115
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4116
        outStream nextPutAll:(Smalltalk timeStamp).
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4117
        outStream nextPutChunkSeparator.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4118
        outStream cr; cr.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4119
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4120
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4121
    withDefinition ifTrue:[
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4122
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4123
        "/ then the definition(s)
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4124
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4125
        self fileOutAllDefinitionsOf:nonMeta on:outStream.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4126
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4127
        "/ a comment - if any
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4128
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4129
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4130
        (comment := nonMeta comment) notNil ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4131
            nonMeta printClassNameOn: outStream.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4132
            outStream nextPutAll:' comment:'.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4133
            comment comment storeOn: outStream.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4134
            outStream cr.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4135
            outStream nextPut:$!!; cr; cr.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4136
        ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4137
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4138
        "/ ST/X primitive definitions - if any
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4139
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4140
        self fileOutPrimitiveSpecsOf: nonMeta on:outStream.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4141
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4142
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4143
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4144
    "/ methods from all categories in metaclass (i.e. class methods)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4145
    "/ EXCEPT: the version method is placed at the very end, to
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4146
    "/         avoid sourcePosition-shifts when checked out later.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4147
    "/         (RCS expands this string, so its size is not constant)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4148
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4149
    collectionOfCategories := meta categories asSortedCollection.
3646
cecd3c25e5af class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3621
diff changeset
  4150
cecd3c25e5af class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3621
diff changeset
  4151
    allMetaClassSelectors := meta methodDictionary keys.
cecd3c25e5af class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3621
diff changeset
  4152
    versionSelectors := allMetaClassSelectors select:[:selector | AbstractSourceCodeManager isVersionMethodSelector:selector ].
cecd3c25e5af class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3621
diff changeset
  4153
    versionMethods := versionSelectors collect:[:eachSelector | meta methodDictionary at:eachSelector].
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4154
    extensionVersionSelectors := allMetaClassSelectors select:[:selector | AbstractSourceCodeManager isExtensionsVersionMethodSelector:selector ].
3646
cecd3c25e5af class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3621
diff changeset
  4155
    extensionVersionMethods := extensionVersionSelectors collect:[:eachSelector | meta methodDictionary at:eachSelector].
cecd3c25e5af class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3621
diff changeset
  4156
    allVersionMethods := Set new addAll:versionMethods; addAll:extensionVersionMethods; yourself.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4157
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4158
    collectionOfCategories notNil ifTrue:[
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4159
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4160
        "/ documentation first (if any), but not the version method
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4161
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4162
        (collectionOfCategories includes:'documentation') ifTrue:[
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4163
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4164
"/            versionMethods do:[:versionMethod |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4165
"/                |source|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4166
"/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4167
"/                source := versionMethod source.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4168
"/                (source isEmptyOrNil or:[(source startsWith:nonMeta nameOfOldVersionMethod) not]) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4169
"/                    "something bad happend to the classes code"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4170
"/
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4171
"/                    Class fileOutErrorSignal
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4172
"/                        raiseRequestWith:aClass
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4173
"/                        errorString:' - bad source for version method (uncompiled class file?): ', (versionMethod displayString)
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
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4177
            self fileOutCategory:'documentation' of:meta except:allVersionMethods only:nil methodFilter:methodFilter on:outStream.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4178
        ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4179
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4180
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4181
        "/ initialization next (if any)
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4182
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4183
        (collectionOfCategories includes:'initialization') ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4184
            self fileOutCategory:'initialization' of:meta methodFilter:methodFilter on:outStream.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4185
        ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4186
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4187
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4188
        "/ instance creation next (if any)
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4189
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4190
        (collectionOfCategories includes:'instance creation') ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4191
            self fileOutCategory:'instance creation' of:meta methodFilter:methodFilter on:outStream.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4192
        ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4193
        collectionOfCategories do:[:aCategory |
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4194
            ((aCategory ~= 'documentation')
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4195
            and:[(aCategory ~= 'initialization')
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4196
            and:[aCategory ~= 'instance creation']]) ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4197
                self fileOutCategory:aCategory of:meta methodFilter:methodFilter on:outStream.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4198
            ]
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4199
        ]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4200
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4201
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4202
    "/ if there are any primitive definitions (vw-like ffi-primitives),
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4203
    "/ file them out first in the order: defines, types.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4204
    "/ 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
  4205
    "/ for the primitive calls.
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4206
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4207
    "/ TODO: that does not work - MethodDefinition does not implement #isVisualWorksTypedef
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4208
"/    nonMeta methodDictionary keysAndValuesDo:[:sel :m |
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4209
"/        m isVisualWorksTypedef ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4210
"/            self fileOutCategory:m category of:nonMeta except:nil only:(Array with:m) methodFilter:methodFilter on:outStream.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4211
"/        ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4212
"/    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4213
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4214
    "/ methods from all categories
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4215
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4216
    collectionOfCategories := nonMeta categories asSortedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4217
    collectionOfCategories notNil ifTrue:[
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4218
        collectionOfCategories do:[:aCategory |
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4219
            self fileOutCategory:aCategory of:nonMeta methodFilter:methodFilter on:outStream.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4220
        ]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4221
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4222
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4223
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4224
    "/ any private classes' methods
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4225
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4226
    (self privateClassesSortedOf: nonMeta) do:[:aClass |
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4227
        self fileOutAllMethodsOf:aClass on:outStream methodFilter:methodFilter
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4228
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4229
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4230
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4231
    "/
3646
cecd3c25e5af class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3621
diff changeset
  4232
    "/ finally, the previously skipped version method(s) - but NOT the extension version methods
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4233
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4234
    versionMethods notEmpty ifTrue: [
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4235
        self fileOutCategory:'documentation' of:meta except:nil only:versionMethods methodFilter:methodFilter on:outStream.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4236
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4237
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4238
    initIt ifTrue:[
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4239
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4240
        "/ optionally an initialize message
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4241
        "/
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4242
        classesImplementingInitialize := OrderedCollection new.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4243
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4244
        classInfos values with: metaInfos values do:[:class :meta|
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4245
            (meta includesSelector: #initialize) ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4246
                classesImplementingInitialize add: class.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4247
            ]
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4248
        ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4249
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4250
        classesImplementingInitialize size ~~ 0 ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4251
            classesImplementingInitialize topologicalSort:[:a :b | b isSubclassOf:a].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4252
            outStream cr.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4253
            classesImplementingInitialize do:[:eachClass |
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4254
                eachClass printClassNameOn:outStream. outStream nextPutAll:' initialize'.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4255
                outStream nextPutChunkSeparator.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4256
                outStream cr.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4257
            ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4258
        ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4259
    ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4260
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4261
    "Created: / 15-11-1995 / 12:53:06 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4262
    "Modified: / 01-04-1997 / 16:01:05 / stefan"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4263
    "Modified: / 29-09-2011 / 14:53:49 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4264
    "Created: / 15-03-2012 / 17:39:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3842
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4265
    "Modified: / 13-04-2015 / 21:25:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4266
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4267
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4268
fileOutAllDefinitionsOf:nonMetaInfo on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4269
    "append expressions on aStream, which defines myself and all of my private classes."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4270
3697
2fa150de2ee1 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3696
diff changeset
  4271
    | metaInfo definition metaDefinition |
2fa150de2ee1 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3696
diff changeset
  4272
2fa150de2ee1 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3696
diff changeset
  4273
    definition := nonMetaInfo definition.
2fa150de2ee1 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3696
diff changeset
  4274
    definition isPrivateClassDefinitionChange ifFalse:[
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4275
        definition package notNil ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4276
            aStream nextPutAll: ('"{ Package: ''%1'' }"' bindWith: definition package).
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4277
            aStream cr; cr.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4278
        ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4279
        aStream nextPutAll: ('"{ NameSpace: %1 }"' bindWith: namespaceName ? 'Smalltalk').
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4280
        aStream cr; cr.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4281
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4282
3697
2fa150de2ee1 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3696
diff changeset
  4283
    aStream nextChunkPut: (definition definitionStringInNamespace: namespaceName).
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4284
    aStream cr; cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4285
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4286
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4287
    "/ optional classInstanceVariables
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4288
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4289
    metaInfo := metaInfos at: nonMetaInfo name.
3697
2fa150de2ee1 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3696
diff changeset
  4290
    metaDefinition := metaInfo definition.
2fa150de2ee1 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3696
diff changeset
  4291
    metaDefinition notNil ifTrue:[
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4292
        | anySuperClassInstVar myClass |
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4293
        aStream
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4294
            nextPutAll: metaDefinition className;
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4295
            nextPutAll:' instanceVariableNames:';
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4296
            nextPutAll: (metaDefinition classInstVarNames asStringWith:' ') storeString.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4297
        "mhmh - good idea; saw this in SmallDraw sourcecode ..."
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4298
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4299
        anySuperClassInstVar := false.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4300
        myClass := metaDefinition changeClass.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4301
        myClass notNil ifTrue:[myClass := myClass theNonMetaclass].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4302
        myClass notNil ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4303
            myClass allSuperclassesDo:[:aSuperClass |
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4304
                aSuperClass class instVarNames do:[:ignored | anySuperClassInstVar := true].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4305
            ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4306
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4307
            aStream cr; cr; nextPut:(Character doubleQuote); cr; space.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4308
            anySuperClassInstVar ifFalse:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4309
                aStream
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4310
                    nextPutLine:'No other class instance variables are inherited by this class.'.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4311
            ] ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4312
                aStream
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4313
                    nextPutLine:'The following class instance variables are inherited by this class:'.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4314
                aStream cr.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4315
                myClass allSuperclassesDo:[:aSuperClass |
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4316
                    aStream tab; nextPutAll:aSuperClass name; nextPutAll:' - '.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4317
                    aStream nextPutLine:(aSuperClass class instanceVariableString).
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4318
                ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4319
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4320
            ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4321
        ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4322
        aStream nextPut:(Character doubleQuote); cr.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4323
        aStream nextPut:$!!; cr; cr
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4324
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4325
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4326
    "/ here, the full nameSpace prefixes are output,
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4327
    "/ to avoid confusing stc
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4328
    "/ (which otherwise could not find the correct superclass)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4329
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4330
    Class fileOutNameSpaceQuerySignal answer:false do:[
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4331
        Class forceNoNameSpaceQuerySignal answer:true do:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4332
            (self privateClassesSortedOf: nonMetaInfo) do:[:i |
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4333
                 self fileOutAllDefinitionsOf:i on:aStream
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4334
            ]
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4335
        ]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4336
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4337
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4338
    "Created: / 15-10-1996 / 11:15:19 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4339
    "Modified: / 22-03-1997 / 16:11:56 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4340
    "Created: / 15-03-2012 / 19:18:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3841
813b462d169a Fixed class definition fileout to catch up with changes in stx:libbasic
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3840
diff changeset
  4341
    "Modified: / 13-04-2015 / 18:32:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4342
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4343
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4344
fileOutAllMethodsOf:aClass on:aStream methodFilter:methodFilter
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4345
    | collectionOfCategories meta |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4346
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4347
    meta := metaInfos at: aClass name.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4348
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4349
    collectionOfCategories := meta categories asSortedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4350
    collectionOfCategories notNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4351
	collectionOfCategories do:[:aCategory |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4352
	    self fileOutCategory:aCategory of:meta  methodFilter:methodFilter on:aStream.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4353
"/            aStream cr.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4354
	]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4355
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4356
    collectionOfCategories := aClass categories asSortedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4357
    collectionOfCategories notNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4358
	collectionOfCategories do:[:aCategory |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4359
	    self fileOutCategory:aCategory of:aClass methodFilter:methodFilter on:aStream.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4360
"/            aStream cr.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4361
	]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4362
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4363
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4364
    (self privateClassesSortedOf: aClass) do:[:privateClass |
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4365
	self fileOutAllMethodsOf:privateClass on:aStream methodFilter:methodFilter
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4366
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4367
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4368
    "Created: / 15-10-1996 / 11:13:00 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4369
    "Modified: / 22-03-1997 / 16:12:17 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4370
    "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
  4371
    "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
  4372
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4373
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4374
fileOutMethod:change on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4375
    "file a single method onto aStream."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4376
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4377
    | changeToFileOut |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4378
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4379
    change isMethodCategoryChange ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4380
	self assert: change origin notNil.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4381
	changeToFileOut := change origin copy.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4382
	changeToFileOut category: change category.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4383
    ] ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4384
	changeToFileOut := change.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4385
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4386
    changeToFileOut source notEmptyOrNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4387
	super fileOutMethod:changeToFileOut on:aStream
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4388
    ] ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4389
"/        self error: 'Should not happen' mayProceed: true.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4390
    ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4391
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4392
    "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
  4393
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4394
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4395
fileOutMethodsOn:stream
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4396
    "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
  4397
     extensions.st created by source code management. Code stolen from
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4398
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4399
     AbstractSourceCodeManager class>>fileOutSourceCodeExtensions:package:on:version:
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4400
    "
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4401
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4402
    | methodsSortedByName |
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4403
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4404
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4405
	stream nextPutAll:'"{ Package: '''.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4406
	stream nextPutAll:packageName asString.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4407
	stream nextPutAll:''' }"'; nextPutChunkSeparator; cr; cr.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4408
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4409
"/        s nextPutAll:(Smalltalk timeStamp).
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4410
"/        s nextPutChunkSeparator.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4411
"/        s cr; cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4412
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4413
	"/ sort them by name (to avoid conflict due to CVS merge)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4414
	methodsSortedByName := changeSetBeingSaved.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4415
	methodsSortedByName sort:[:a :b |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4416
				    |clsA clsB|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4417
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4418
				    clsA := a className.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4419
				    clsB := b className.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4420
				    clsA < clsB ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4421
					true
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4422
				    ] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4423
					clsA > clsB ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4424
					    false
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4425
					] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4426
					    a selector < b selector
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4427
					]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4428
				    ]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4429
				  ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4430
	methodsSortedByName do:[:aMethod |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4431
	    |cat source privacy|
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4432
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4433
	    self assert: aMethod package = packageName.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4434
	    "/self assert: aMethod programmingLanguage isSmalltalk.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4435
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4436
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4437
	    stream nextPutChunkSeparator.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4438
	    aMethod className printOn: stream.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4439
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4440
	    (privacy := aMethod privacy) ~~ #public ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4441
		stream space; nextPutAll:privacy; nextPutAll:'MethodsFor:'.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4442
	    ] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4443
		stream nextPutAll:' methodsFor:'.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4444
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4445
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4446
	    cat := aMethod category ? ''.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4447
	    stream nextPutAll:cat asString storeString.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4448
	    stream nextPutChunkSeparator; cr; cr.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4449
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4450
	    source := aMethod source.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4451
	    source isNil ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4452
		"FileOutErrorSignal"Error
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4453
		    raiseRequestWith:self
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4454
		    errorString:(' - no source for method: ' ,
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4455
				 self className , '>>' ,
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4456
				 aMethod selector)
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4457
	    ] ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4458
		stream nextChunkPut:source.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4459
	    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4460
	    stream space.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4461
	    stream nextPutChunkSeparator.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4462
	    stream cr.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4463
	].
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4464
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4465
    "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
  4466
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4467
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4468
fileOutPrimitiveSpecsOf: nonMeta on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4469
    "append primitive defs (if any) to aStream."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4470
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4471
    |s|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4472
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4473
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4474
     primitive definitions - if any
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4475
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4476
    (s := nonMeta primitiveDefinitionsString) notNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4477
	aStream nextPutChunkSeparator.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4478
	nonMeta printClassNameOn:aStream.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4479
	aStream nextPutAll:' primitiveDefinitions';
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4480
		nextPutChunkSeparator;
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4481
		cr.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4482
	aStream nextPutAll:s.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4483
	aStream nextPutChunkSeparator; space; nextPutChunkSeparator; cr; cr
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4484
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4485
    (s := nonMeta primitiveVariablesString) notNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4486
	aStream nextPutChunkSeparator.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4487
	nonMeta printClassNameOn:aStream.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4488
	aStream nextPutAll:' primitiveVariables';
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4489
		nextPutChunkSeparator;
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4490
		cr.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4491
	aStream nextPutAll:s.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4492
	aStream nextPutChunkSeparator; space; nextPutChunkSeparator; cr; cr
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4493
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4494
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4495
    "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
  4496
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4497
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4498
generateHeaderWithCopyrightOn:outStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4499
    |copyrightChange copyrightText|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4500
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4501
    copyrightChange :=
4035
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4502
        (metaInfos at: topClassName) methodAt: #copyright.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4503
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4504
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4505
    copyrightChange notNil ifTrue:[
4035
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4506
        "
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4507
         get the copyright method's comment-text, strip off empty and blank lines
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4508
         and insert at beginning.
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4509
        "
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4510
        copyrightText := Parser methodCommentFromSource: copyrightChange source.
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4511
        copyrightText notEmptyOrNil ifTrue:[
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4512
            copyrightText := copyrightText asCollectionOfLines asStringCollection.
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4513
            copyrightText := copyrightText withoutLeadingAndTrailingBlankLines.
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4514
            copyrightText notEmpty ifTrue:[
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4515
                copyrightText addFirst:'"'.
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4516
                copyrightText addLast:'"'.
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4517
                copyrightText := copyrightText asString.
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4518
                outStream nextPutAllAsChunk:copyrightText.
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4519
            ].
047862768e35 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 4033
diff changeset
  4520
        ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4521
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4522
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4523
    "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
  4524
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4525
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4526
!ChangeSet::ClassSourceWriter::ClassInfo class methodsFor:'documentation'!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4527
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4528
copyright
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4529
"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4530
 COPYRIGHT (c) 2006 by eXept Software AG
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4531
	      All Rights Reserved
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4532
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4533
 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
  4534
 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
  4535
 inclusion of the above copyright notice.   This software may not
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4536
 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
  4537
 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
  4538
 hereby transferred.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4539
"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4540
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4541
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4542
version_SVN
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4543
    ^ '$Id$'
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4544
! !
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4545
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4546
!ChangeSet::ClassSourceWriter::ClassInfo class methodsFor:'instance creation'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4547
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4548
new
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4549
    "return an initialized instance"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4550
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4551
    ^ self basicNew initialize.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4552
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4553
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4554
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'accessing'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4555
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4556
categories
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4557
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4558
    ^ (methods collect:[:e|e category]) asSet
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4559
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4560
    "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
  4561
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4562
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4563
comment
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4564
    ^ comment
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4565
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4566
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4567
comment:something
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4568
    comment := something.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4569
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4570
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4571
definition
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4572
    ^ definition
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4573
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4574
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4575
definition:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4576
    definition := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4577
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4578
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4579
methodAt: selector
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4580
    ^methods detect:[:each|each selector == selector] ifNone:[nil].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4581
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4582
    "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
  4583
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4584
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4585
methodDictionary
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4586
    methodDictionary isEmptyOrNil ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4587
        methodDictionary := Dictionary new.
3842
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4588
        self methodsDo:[:e | methodDictionary at: e selector put: e]  
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4589
    ].
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4590
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4591
    ^ methodDictionary.
3842
6991b496fe8a fileout: File out source file in UTF8 only if necessary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3841
diff changeset
  4592
    "Modified: / 13-04-2015 / 19:02:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4593
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4594
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4595
methods
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4596
    ^ methods
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4597
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4598
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4599
methods:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4600
    methods := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4601
    methodDictionary := Dictionary new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4602
    methods do:[:m|methodDictionary at: m selector put: m].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4603
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4604
    "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
  4605
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4606
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4607
name
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4608
    ^ name
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4609
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4610
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4611
name:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4612
    name := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4613
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4614
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4615
namespace
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4616
    ^ namespace
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4617
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4618
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4619
namespace:aString
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4620
    namespace := aString.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4621
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4622
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4623
primitiveDefinitions
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4624
    ^ primitiveDefinitions
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4625
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4626
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4627
primitiveDefinitionsString
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4628
    ^ primitiveDefinitions isNil
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4629
	ifTrue:[nil]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4630
	ifFalse:[primitiveDefinitions source]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4631
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4632
    "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
  4633
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4634
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4635
primitiveFunctions
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4636
    ^ primitiveFunctions
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4637
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4638
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4639
primitiveFunctionsString
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4640
    ^ primitiveFunctions isNil
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4641
	ifTrue:[nil]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4642
	ifFalse:[primitiveFunctions source]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4643
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4644
    "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
  4645
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4646
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4647
primitiveVariables
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4648
    ^ primitiveVariables
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4649
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4650
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4651
primitiveVariablesString
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4652
    ^ primitiveVariables isNil
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4653
	ifTrue:[nil]
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4654
	ifFalse:[primitiveVariables source]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4655
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4656
    "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
  4657
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4658
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4659
selectorAtMethod: m
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4660
    ^m selector
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4661
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4662
    "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
  4663
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4664
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4665
superclass
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4666
    ^ superclass
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4667
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4668
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4669
superclass:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4670
    superclass := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4671
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4672
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4673
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'adding'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4674
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4675
addChange: change
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4676
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4677
    change isClassDefinitionChange ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4678
	self assert: definition isNil.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4679
	definition := change.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4680
	^self.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4681
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4682
    change isMethodCodeChange ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4683
	methods add: change.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4684
	^self.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4685
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4686
    change isMethodCategoryChange ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4687
	methods add: change.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4688
	^self.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4689
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4690
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4691
    change isClassInstVarDefinitionChange ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4692
	self assert: definition isNil.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4693
	definition := change.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4694
	^self
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4695
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4696
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4697
    change isPrimitiveDefinitionsChange ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4698
	primitiveDefinitions := change.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4699
	^self
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4700
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4701
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4702
    change isPrimitiveVariablesChange ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4703
	primitiveVariables := change.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4704
	^self
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4705
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4706
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4707
    change isPrimitiveFunctionsChange ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4708
	primitiveFunctions := change.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4709
	^self
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4710
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4711
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4712
    change isClassCommentChange ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4713
	comment := change.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4714
	^self
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4715
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4716
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4717
    change isClassInitializeChange ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4718
	"/ Ignore it, the class inititalization chunk is
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4719
	"/ written fileOut:on:withTimeStamp:withInitialize:withDefinition:methodFilter:encoder:
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4720
	"/ for all class implementing class-side #initialize
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4721
	^ self
3575
6d208ef54e78 Fixes ClassSourceWriter - ignore ClassInitializeChange when analyzing changeset.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3545
diff changeset
  4722
    ].
6d208ef54e78 Fixes ClassSourceWriter - ignore ClassInitializeChange when analyzing changeset.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3545
diff changeset
  4723
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4724
    self error: 'Unknown change'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4725
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4726
    "Created: / 15-03-2012 / 19:12:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3575
6d208ef54e78 Fixes ClassSourceWriter - ignore ClassInitializeChange when analyzing changeset.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3545
diff changeset
  4727
    "Modified: / 05-06-2014 / 08:14:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4728
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4729
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4730
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'enumerating'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4731
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4732
methodsDo: aBlock
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4733
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4734
    methods do: aBlock
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4735
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4736
    "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
  4737
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4738
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4739
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'initialization'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4740
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4741
initialize
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4742
    "Invoked when a new instance is created."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4743
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4744
    "/ please change as required (and remove this comment)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4745
    "/ name := nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4746
    "/ instDefinition := nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4747
    "/ classDefinition := nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4748
    methods := OrderedCollection new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4749
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4750
    "/ super initialize.   -- commented since inherited method does nothing
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4751
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4752
    "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
  4753
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4754
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4755
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'printing & storing'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4756
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4757
printClassNameOn:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4758
    | nameWithoutNs |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4759
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4760
    nameWithoutNs := name.
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  4761
"/    namespace notNil ifTrue:[
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  4762
"/        self assert: (name startsWith:namespace).
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  4763
"/        nameWithoutNs := nameWithoutNs copyFrom: namespace size + 3.
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  4764
"/    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4765
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4766
    aStream nextPutAll: nameWithoutNs
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4767
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4768
    "Created: / 19-03-2012 / 18:17:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3445
71962ba45fb7 merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3395
diff changeset
  4769
    "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
  4770
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4771
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4772
printOn:aStream
4073
34b57b08a7df #DOCUMENTATION by mawalch
mawalch
parents: 4035
diff changeset
  4773
    "append a printed representation of the receiver to the argument, aStream"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4774
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4775
    aStream nextPutAll: self class nameWithoutPrefix.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4776
    aStream nextPutAll:'('.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4777
    name printOn:aStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4778
    aStream nextPutAll:')'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4779
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4780
    "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
  4781
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4782
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4783
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'queries'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4784
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4785
includesSelector: selector
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4786
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4787
    ^methods anySatisfy:[:m|m selector == selector].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4788
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4789
    "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
  4790
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4791
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4792
isPrivateClassOf: classInfo
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4793
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4794
    ^(name startsWith: classInfo name)
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4795
	and:[ (name at: (classInfo name size + 1)) == $:
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4796
	    and:[ (name at: (classInfo name size + 2)) == $:]]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4797
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4798
    "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
  4799
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4800
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4801
isSubclassOf: classInfo
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4802
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4803
    ^superclass notNil and:
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4804
	[superclass == classInfo or:[superclass isSubclassOf: classInfo]]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4805
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4806
    "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
  4807
! !
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  4808
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4809
!ChangeSet::DiffSet class methodsFor:'documentation'!
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4810
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4811
documentation
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4812
"
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4813
    I represent the differences between two change sets.
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4814
    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
  4815
"
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4816
! !
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4817
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4818
!ChangeSet::DiffSet methodsFor:'accessing'!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4819
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4820
changed
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4821
    "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
  4822
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4823
    ^ changed
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4824
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4825
    "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
  4826
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4827
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4828
changed:something
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4829
    "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
  4830
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4831
    changed := something.
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4832
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4833
    "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
  4834
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4835
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4836
changed:changedArg onlyInReceiver:onlyInReceiverArg onlyInArg:onlyInArgArg
3338
c6065f4c9def class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3309
diff changeset
  4837
    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
  4838
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4839
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4840
changed:changedArg onlyInReceiver:onlyInReceiverArg onlyInArg:onlyInArgArg same: sameArg
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4841
    "set instance variables (automatically generated)"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4842
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4843
    changed := changedArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4844
    changed isNil ifTrue:[changed := OrderedCollection new].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4845
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4846
    onlyInReceiver := onlyInReceiverArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4847
    onlyInReceiver isNil ifTrue:[onlyInReceiver := ChangeSet new].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4848
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4849
    onlyInArg := onlyInArgArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4850
    onlyInArg isNil ifTrue:[onlyInArg := ChangeSet new].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4851
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4852
    same := sameArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4853
    same isNil ifTrue:[same := ChangeSet new].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4854
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4855
    "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
  4856
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4857
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4858
onlyInArg
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4859
    "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
  4860
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4861
    ^ onlyInArg
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4862
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4863
    "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
  4864
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4865
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4866
onlyInArg:something
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4867
    onlyInArg := something.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4868
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4869
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4870
onlyInReceiver
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4871
    "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
  4872
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4873
    ^ onlyInReceiver
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4874
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4875
    "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
  4876
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4877
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4878
onlyInReceiver:something
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4879
    onlyInReceiver := something.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4880
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4882
same
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4883
    ^ same
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4884
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4885
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4886
same:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4887
    same := something.
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4888
! !
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4889
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4890
!ChangeSet::DiffSet methodsFor:'merging'!
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4891
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4892
addDiffSet:anotherDiffset
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4893
    changed addAll:(anotherDiffset changed).
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4894
    onlyInReceiver addAll:(anotherDiffset onlyInReceiver).
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4895
    onlyInArg addAll:(anotherDiffset onlyInArg).
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4896
    same addAll: (anotherDiffset same).
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4897
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4898
    "Created: / 12-10-2006 / 22:49:30 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4899
    "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
  4900
!
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4901
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4902
copy
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4903
    ^ self class new
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4904
	changed:changed copy
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4905
	onlyInReceiver:onlyInReceiver copy
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4906
	onlyInArg:onlyInArg copy
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4907
	same:same copy
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4908
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4909
    "Created: / 12-10-2006 / 22:50:56 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4910
    "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
  4911
! !
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4912
2186
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4913
!ChangeSet::DiffSet methodsFor:'misc'!
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4914
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4915
removeAllVersionMethods
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4916
    changed := changed
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4917
		    reject:[:pair |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4918
			pair first isMethodChangeForVersionMethod
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4919
		    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4920
    onlyInReceiver := onlyInReceiver
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4921
		    reject:[:chg |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4922
			chg isMethodChangeForVersionMethod
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4923
		    ].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4924
    onlyInArg := onlyInArg
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4925
		    reject:[:chg |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4926
			chg isMethodChangeForVersionMethod
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4927
		    ].
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4928
!
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4929
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4930
sortByClassName
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4931
    onlyInReceiver notNil ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4932
        onlyInReceiver := onlyInReceiver sortedByClassName.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4933
    ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4934
    onlyInArg notNil ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4935
        onlyInArg := onlyInArg sortedByClassName.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4936
    ].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4937
    changed notEmptyOrNil ifTrue:[
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4938
        changed := changed sort:[:pairA :pairB |
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4939
                        |nameA nameB chgA chgB|
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4940
                        chgA := pairA first. chgB := pairB first.
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4941
                        nameA := chgA isClassChange ifTrue:[chgA className] ifFalse:['^other'].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4942
                        nameB := chgB isClassChange ifTrue:[chgB className] ifFalse:['^other'].
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4943
                        nameA < nameB]    
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  4944
    ].
2186
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4945
! !
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4946
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4947
!ChangeSet::DiffSet methodsFor:'queries'!
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4948
2914
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4949
changedClasses
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4950
    |allChangedClasses|
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4951
2923
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4952
    allChangedClasses := Set new.
2914
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4953
    allChangedClasses addAll:(onlyInArg changedClasses).
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4954
    allChangedClasses addAll:(onlyInReceiver changedClasses).
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4955
    changed do:[:eachChangePair |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4956
	allChangedClasses add:(eachChangePair first changeClass).
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4957
	allChangedClasses add:(eachChangePair second changeClass).
2923
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4958
    ].
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4959
    allChangedClasses remove:nil ifAbsent:[].
2914
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4960
    ^ allChangedClasses
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4961
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4962
    "Created: / 26-09-2012 / 15:39:18 / cg"
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4963
!
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4964
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4965
isEmpty
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4966
    ^ changed isEmpty
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4967
    and:[ onlyInReceiver isEmpty
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4968
    and:[ onlyInArg isEmpty ] ]
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4969
!
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4970
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4971
notEmpty
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4972
    ^ self isEmpty not
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4973
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4974
    "Created: / 12-10-2006 / 23:12:27 / cg"
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4975
! !
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4976
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4977
!ChangeSet::DolphinPACFileReader methodsFor:'reading-private'!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4978
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4979
handleCategoriesForClass
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4980
    |category change|
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4981
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4982
    [
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4983
	inputStream skipSeparators.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4984
	category := inputStream nextChunk.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4985
	category notEmpty
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4986
    ] whileTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4987
	change := ClassCategoryChange new.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4988
	change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4989
	    className:className
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4990
	    category:category.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4991
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  4992
	self addChange:change.
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4993
    ].
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4994
    ^ true
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4995
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4996
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4997
handleCategoriesForMethod
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4998
    |methodSelector categories change isPrivate isPublic category|
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4999
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5000
    methodSelector := (arguments at:1) evaluate.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5001
    inputStream skipSeparators.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5002
    isPrivate := false.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5003
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5004
    categories := OrderedCollection new.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5005
    [
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5006
	|done category |
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5007
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5008
	category := inputStream nextChunk withoutSeparators.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5009
	done := category isEmpty.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5010
	done ifFalse:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5011
	    categories add:category
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5012
	].
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5013
	done
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  5014
    ] whileFalse.
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5015
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5016
    categories size > 1 ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5017
	isPrivate := categories includes:'private'.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5018
	categories remove:'private' ifAbsent:nil.
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5019
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5020
    categories size > 1 ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5021
	isPublic := categories includes:'public'.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5022
	categories remove:'public' ifAbsent:nil.
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5023
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5024
"/    categories size > 1 ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5025
"/        self halt.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5026
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5027
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5028
    category := categories first.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5029
    isPrivate ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5030
	category := category , '-private'.
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5031
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5032
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5033
    change := MethodCategoryChange new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5034
    change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5035
	className:className
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5036
	selector:methodSelector
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5037
	category:category.
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5038
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5039
    self addChange:change.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5040
    ^ true
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5041
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5042
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5043
processChange
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5044
    "given a parse-tree (from parsing some changes source/chunk),
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5045
     create changes and evaluate changeAction on each.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5046
     The block is invoked with the change and a lineNumberOrNil as
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5047
     arg; the lineNumber is only valid, if the underlying stream
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5048
     provides line-numbers; otherwise, nil is passed."
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5049
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5050
    (selector == #'categoriesForClass') ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5051
	^ self handleCategoriesForClass.
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5052
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5053
    (selector == #'categoriesFor:') ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5054
	^ self handleCategoriesForMethod.
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5055
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5056
    selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:classInstanceVariableNames:' ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5057
	^ self handleClassDefinitionChange.
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5058
    ].
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  5059
"/    selector == #'guid:' ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  5060
"/        ^ self handleGUIDChange.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  5061
"/    ].
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5062
    ^ super processChange
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5063
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5064
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5065
"/    selector == #named:superclass:indexedInstanceVariables:instanceVariableNames:classVariableNames:sharedPools:classInstanceVariableNames: ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5066
"/        ^ self handleClassDefinitionChange.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5067
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5068
"/    (selector == #'key:value:') ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5069
"/        (self checkReceiverIsGlobalNamed:'Annotation') ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5070
"/            ^ self handleAnnotation.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5071
"/        ]
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5072
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5073
"/    selector == #'method' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5074
"/        ^ self handleMethodChange:false.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5075
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5076
"/    selector == #'classMethod' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5077
"/        ^ self handleMethodChange:true.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5078
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5079
"/
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5080
"/    selector == #'initializer' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5081
"/        ^ true
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5082
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5083
"/    selector == #'initialize' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5084
"/        ^ true
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5085
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5086
"/self halt.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5087
"/
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5088
"/    ^ false
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5089
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5090
    "Created: / 16.2.1998 / 13:42:40 / cg"
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5091
    "Modified: / 15.12.1999 / 00:29:06 / cg"
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5092
! !
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  5093
3576
e188540a0549 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3575
diff changeset
  5094
!ChangeSet::InvalidChangeChunkError class methodsFor:'queries'!
e188540a0549 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3575
diff changeset
  5095
e188540a0549 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3575
diff changeset
  5096
mayProceed
e188540a0549 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3575
diff changeset
  5097
    ^ true
e188540a0549 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3575
diff changeset
  5098
! !
e188540a0549 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3575
diff changeset
  5099
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5100
!ChangeSet::SIFChangeFileReader methodsFor:'reading-private'!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5101
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5102
handleAnnotation
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5103
    |key value lastChange change|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5104
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5105
    key := (arguments at:1) evaluate.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5106
    value := (arguments at:2) evaluate.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5107
1422
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  5108
    key = 'Prerequisite' ifTrue:[
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  5109
"/        change := SIFPrerequisiteChange new prerequisiteFileName:value.
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  5110
"/        self addChange:change.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5111
	^ true
1422
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  5112
    ].
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  5113
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5114
    lastChange := changeSet last.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5115
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5116
    key = 'package' ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5117
	change := ClassCategoryChange new className:(lastChange className) category:value.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5118
	self addChange:change.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5119
	^ true
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5120
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5121
    key = 'category' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5122
"/        change := MethodCategoryChange new className:(lastChange className) selector:(lastChange selector) category:value.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5123
"/        self addChange:change.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5124
	lastChange category:value.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5125
	^ true
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5126
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5127
    key = 'stamp' ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5128
	"/ lastChange timeStamp:value.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5129
	^ true
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5130
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5131
    ^ false
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5132
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5133
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5134
handleClassDefinitionChange
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5135
    |nameSpace change|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5136
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5137
    (self checkReceiverIsGlobalNamed:#Class) ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5138
	self error:'unexpected receiver in classDefinition message' mayProceed:true.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5139
	^ false.
1313
8aceccee1eaf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1301
diff changeset
  5140
    ].
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5141
    className := (arguments at:1) evaluate.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5142
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5143
    nameSpace := Class nameSpaceQuerySignal query.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5144
    nameSpace ~~ Smalltalk ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5145
	className := nameSpace name , '::' , className
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5146
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5147
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5148
    change := ClassDefinitionChange new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5149
    change className:className; source:(parseTree printString).
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5150
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5151
    change package:(Class packageQuerySignal query).
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5152
    self addChange:change.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5153
    ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5154
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5155
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5156
handleMethodChange:isMeta
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
  5157
    |categoryName methodSource change parser |
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5158
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5159
    className := self receiversClassName.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5160
    isMeta ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5161
	className := className , ' class'
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5162
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5163
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5164
    categoryName := 'uncategorized'.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5165
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5166
    inputStream skipSeparators.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5167
    lineNumber := inputStream lineNumber.
3376
a0e06d192df4 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3360
diff changeset
  5168
    position := inputStream position + 1.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5169
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5170
    methodSource := inputStream nextChunk.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5171
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5172
    parser := Parser
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5173
		parseMethodArgAndVarSpecification:methodSource
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5174
		in:nil
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5175
		ignoreErrors:true
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5176
		ignoreWarnings:true
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5177
		parseBody:false.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5178
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5179
    parser isNil ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5180
	"/ something wierd ...
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5181
	methodSelector := '????'.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5182
    ] ifFalse:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5183
	methodSelector := parser selector.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5184
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5185
3648
c66bc4f3ee3f class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3646
diff changeset
  5186
    change := MethodDefinitionChange new.
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5187
    change
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5188
	className:className
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5189
	selector:methodSelector
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5190
	source:methodSource
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5191
	category:categoryName
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5192
	privacy:nil.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5193
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5194
    self addChange:change.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5195
    ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5196
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5197
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5198
processChange
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5199
    "given a parse-tree (from parsing some changes source/chunk),
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5200
     create changes and evaluate changeAction on each.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5201
     The block is invoked with the change and a lineNumberOrNil as
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5202
     arg; the lineNumber is only valid, if the underlying stream
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5203
     provides line-numbers; otherwise, nil is passed."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5204
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5205
    (selector == #'interchangeVersion:') ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5206
	^ true
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5207
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5208
    selector == #named:superclass:indexedInstanceVariables:instanceVariableNames:classVariableNames:sharedPools:classInstanceVariableNames: ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5209
	^ self handleClassDefinitionChange.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5210
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5211
    (selector == #'key:value:') ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5212
	(self checkReceiverIsGlobalNamed:'Annotation') ifTrue:[
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5213
	    ^ self handleAnnotation.
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5214
	]
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5215
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5216
    selector == #'method' ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5217
	^ self handleMethodChange:false.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5218
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5219
    selector == #'classMethod' ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5220
	^ self handleMethodChange:true.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5221
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5222
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5223
    selector == #'initializer' ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5224
	^ true
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5225
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5226
    selector == #'initialize' ifTrue:[
3839
e16f2217fc74 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  5227
	^ true
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5228
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5229
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5230
    ^ false
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5231
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5232
    "Created: / 16.2.1998 / 13:42:40 / cg"
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5233
    "Modified: / 15.12.1999 / 00:29:06 / cg"
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5234
! !
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  5235
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
  5236
!ChangeSet class methodsFor:'documentation'!
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  5237
2868
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  5238
version
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  5239
    ^ '$Header$'
2923
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  5240
!
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  5241
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  5242
version_CVS
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  5243
    ^ '$Header$'
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  5244
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  5245
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  5246
version_HG
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  5247
3269
84de19204303 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3248
diff changeset
  5248
    ^ '$Changeset: <not expanded> $'
2868
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  5249
!
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  5250
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  5251
version_SVN
3904
060fbc556cf9 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3869
diff changeset
  5252
    ^ '$Id$'
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  5253
! !
3844
d404026a7a55 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3839
diff changeset
  5254