ChangeSet.st
author Stefan Vogel <sv@exept.de>
Sat, 10 Aug 2013 14:29:04 +0200
changeset 3378 905a79f03901
parent 3376 a0e06d192df4
child 3387 b594e2d7a59e
child 3395 baddb3274c85
permissions -rw-r--r--
class: ChangeSet changed: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom: Tnanks to Jan Vrany: Do care for private classes. If the given collection contains owner or one of its great-owners the do add that owner to the set of returned classes. This bug actually caused code loss when whole package was commited from the browser to CVS. When there were changes only in the private class(es), the owning class was not checked in, causing lost code.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     1
"
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
     3
              All Rights Reserved
3
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     4
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     5
 This software is furnished under a license and may be used
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     6
 only in accordance with the terms of that license and with the
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     8
 be provided or otherwise made available to, or used by, any
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
     9
 other person.  No title to or ownership of the software is
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
    10
 hereby transferred.
263f814933d4 *** empty log message ***
claus
parents: 0
diff changeset
    11
"
921
fa4db05c887b oops - nameSpace prefix handling needed fix due
Claus Gittinger <cg@exept.de>
parents: 916
diff changeset
    12
"{ Package: 'stx:libbasic3' }"
fa4db05c887b oops - nameSpace prefix handling needed fix due
Claus Gittinger <cg@exept.de>
parents: 916
diff changeset
    13
0
470788421600 Initial revision
claus
parents:
diff changeset
    14
OrderedCollection subclass:#ChangeSet
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    15
	instanceVariableNames:'changedClasses changeSelectors name'
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    16
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    17
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    18
	category:'System-Changes'
0
470788421600 Initial revision
claus
parents:
diff changeset
    19
!
470788421600 Initial revision
claus
parents:
diff changeset
    20
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
    21
Object subclass:#ChangeFileReader
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    22
	instanceVariableNames:'inputStream parseTree changeAction changeSet selector receiver
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    23
		arguments receiverSelector receiverReceiver lineNumber position
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    24
		className methodSelector nameSpaceOverride chunk timestamp
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    25
		classIsJava'
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    26
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    27
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    28
	privateIn:ChangeSet
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
    29
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
    30
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    31
Error subclass:#ChangeProcessingError
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    32
	instanceVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    33
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    34
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    35
	privateIn:ChangeSet
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    36
!
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    37
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    38
SmalltalkChunkFileSourceWriter subclass:#ClassSourceWriter
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    39
	instanceVariableNames:'changeSetBeingSaved packageName namespaceName topClassName
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    40
		classInfos metaInfos'
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    41
	classVariableNames:''
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    42
	poolDictionaries:''
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    43
	privateIn:ChangeSet
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    44
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    45
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    46
Object subclass:#ClassInfo
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    47
	instanceVariableNames:'name superclass definition comment methods methodDictionary
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    48
		namespace primitiveDefinitions primitiveVariables
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
    49
		primitiveFunctions'
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    50
	classVariableNames:''
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    51
	poolDictionaries:''
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    52
	privateIn:ChangeSet::ClassSourceWriter
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    53
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    54
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    55
Object subclass:#DiffSet
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
    56
	instanceVariableNames:'changed onlyInReceiver onlyInArg same'
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    57
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    58
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    59
	privateIn:ChangeSet
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    60
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
    61
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    62
ChangeSet::ChangeFileReader subclass:#DolphinPACFileReader
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    63
	instanceVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    64
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    65
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    66
	privateIn:ChangeSet
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    67
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
    68
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    69
ChangeSet::ChangeProcessingError subclass:#InvalidChangeChunkError
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    70
	instanceVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    71
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    72
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    73
	privateIn:ChangeSet
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    74
!
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
    75
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
    76
ChangeSet::ChangeFileReader subclass:#SIFChangeFileReader
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    77
	instanceVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    78
	classVariableNames:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    79
	poolDictionaries:''
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
    80
	privateIn:ChangeSet
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
    81
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
    82
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
    83
!ChangeSet class methodsFor:'documentation'!
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    84
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    85
copyright
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    86
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    87
 COPYRIGHT (c) 1993 by Claus Gittinger
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
    88
              All Rights Reserved
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    89
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    90
 This software is furnished under a license and may be used
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    91
 only in accordance with the terms of that license and with the
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    92
 inclusion of the above copyright notice.   This software may not
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    93
 be provided or otherwise made available to, or used by, any
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    94
 other person.  No title to or ownership of the software is
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    95
 hereby transferred.
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    96
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    97
!
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    98
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
    99
documentation
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   100
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   101
    used in the changes management to keep track of changes
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   102
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   103
    [author:]
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
   104
        Claus Gittinger
9
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   105
"
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   106
! !
f5b6ab00bdf6 *** empty log message ***
claus
parents: 3
diff changeset
   107
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   108
!ChangeSet class methodsFor:'instance creation'!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
   109
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   110
forExistingClass:aClass
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   111
    "build a changeSet for some given class, all of its private classes
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   112
     and all extensions if any. 
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   113
     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
   114
     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
   115
     state of the given class.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   116
     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
   117
     for example, when building patchLists, diffSets, comparing etc."
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   118
1954
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   119
    |changeSet s changeObject|
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   120
2633
5a5460e5231a comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2626
diff changeset
   121
    "/ kludge: could do this much faster...
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   122
    s := ReadWriteStream on:''.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   123
    aClass fileOutOn:s.
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   124
    s reset.
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   125
    changeSet := self fromStream:s.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   126
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   127
    "/ fetch the real package info...
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   128
    changeSet do:[:eachChange |
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   129
        eachChange isMethodChange ifTrue:[
1954
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   130
            changeObject := eachChange changeMethod.
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   131
            changeObject notNil ifTrue:[
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   132
                eachChange package:changeObject package
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   133
            ].
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   134
        ] ifFalse:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   135
            eachChange isClassChange ifTrue:[
1954
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   136
                changeObject := eachChange changeClass.
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   137
                changeObject notNil ifTrue:[
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   138
                    eachChange package:changeObject package
521fa986be30 Fix if method does not exist in change
Stefan Vogel <sv@exept.de>
parents: 1920
diff changeset
   139
                ].
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   140
            ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   141
        ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   142
    ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   143
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   144
    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   145
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   146
"/    |source changeSet chunk sawExcla lastTimeStamp s change nameSpace|
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
   147
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   148
"/    changeSet := self new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   149
"/
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   150
"/    "/ first, a classDefinition change ...
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   151
"/    changeSet addClassDefinitionChangeFor:aClass.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   152
"/    "/ are there any class-instVars ?
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   153
"/    aClass class instVarNames size > 0 ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   154
"/        changeSet addInstVarDefinitionChangeFor:aClass class.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   155
"/    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   156
"/    "/ a comment ?
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   157
"/    aClass comment size > 0 ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   158
"/        changeSet addClassCommentChangeFor:aClass.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   159
"/    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   160
"/
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   161
"/    "/ class methods first ...
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   162
"/    aClass class methodDictionary keysAndValuesDo:[:sel :mthd |
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   163
"/        changeSet addMethodChange:mthd in:aClass class. 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   164
"/    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   165
"/
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   166
"/    "/ instance methods ...
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   167
"/    aClass methodDictionary keysAndValuesDo:[:sel :mthd |
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   168
"/        changeSet addMethodChange:mthd in:aClass.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   169
"/    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   170
"/
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   171
"/    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   172
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   173
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   174
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   175
     ChangeSet forExistingClass:ChangeSet
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   176
     ChangeSet forExistingClass:A
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   177
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   178
     Rectangle hasExtensions
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   179
     ChangeSet forExistingClass:Rectangle
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   180
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   181
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   182
    "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
   183
    "Modified: / 12-10-2006 / 23:45:14 / cg"
2633
5a5460e5231a comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2626
diff changeset
   184
    "Modified (format): / 01-12-2011 / 19:10:22 / cg"
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   185
!
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   186
2940
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   187
forExistingClass:aClass withExtensions:withExtensions
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   188
    "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
   189
     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
   190
     state of the given class.
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   191
     It is useful in conjunction with the other utility methods,
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   192
     for example, when building patchLists, diffSets etc."
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   193
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   194
    ^ self
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   195
        forExistingClass:aClass 
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   196
        withExtensions:withExtensions
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   197
        withLooseMethods:false
2940
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   198
        extensionsOnly:false
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   199
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   200
    "
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   201
     Object hasExtensions   
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   202
     Object extensions size           
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   203
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   204
     (ChangeSet forExistingClass:Object) size
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   205
     (ChangeSet forExistingClass:Object withExtensions:false) size  
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   206
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   207
     (ChangeSet forExistingClass:stx_libbasic3 withExtensions:false)   
2940
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   208
    "
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   209
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   210
    "Created: / 12-10-2006 / 18:13:02 / cg"
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   211
    "Modified: / 12-10-2006 / 23:46:05 / cg"
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   212
!
a81457cc5d01 added: #forExistingClass:withExtensions:
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
   213
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   214
forExistingClass:aClass withExtensions:withExtensions extensionsOnly:extensionsOnly
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
   215
    "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
   216
     as specified by the with-arguments.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   217
     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
   218
     state of the given class.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   219
     It is useful in conjunction with the other utility methods,
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   220
     for example, when building patchLists, diffSets etc."
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   221
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   222
    ^ self
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   223
        forExistingClass:aClass 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   224
        withExtensions:withExtensions 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   225
        withLooseMethods:false
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   226
        extensionsOnly:extensionsOnly
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   227
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   228
    "
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   229
     ChangeSet forExistingClass:ChangeSet
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   230
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   231
     Rectangle hasExtensions
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   232
     Rectangle extensions
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   233
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   234
     ChangeSet forExistingClass:Rectangle withExtensions:true extensionsOnly:false
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   235
     ChangeSet forExistingClass:Rectangle withExtensions:false extensionsOnly:false
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   236
     ChangeSet forExistingClass:Rectangle withExtensions:false extensionsOnly:true
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   237
    "
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   238
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   239
    "Created: / 12-10-2006 / 18:13:02 / cg"
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   240
    "Modified: / 12-10-2006 / 23:46:05 / cg"
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   241
!
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   242
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   243
forExistingClass:aClass withExtensions:withExtensions withLooseMethods:withLooseMethods
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   244
    "build a changeSet for some given full class with or without extensions.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   245
     That does of course not give deltas, but instead reflects the current
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   246
     state of the given class.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   247
     It is useful in conjunction with the other utility methods,
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   248
     for example, when building patchLists, diffSets etc."
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   249
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   250
    ^ self
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   251
        forExistingClass:aClass 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   252
        withExtensions:withExtensions 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   253
        withLooseMethods:withLooseMethods
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   254
        extensionsOnly:false
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   255
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   256
    "
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   257
     Object hasExtensions   
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   258
     Object extensions size           
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   259
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   260
     (ChangeSet forExistingClass:Object) size
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   261
     (ChangeSet forExistingClass:Object withExtensions:false) size  
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   262
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   263
     (ChangeSet forExistingClass:stx_libbasic3 withExtensions:false)   
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
    "Created: / 12-10-2006 / 18:13:02 / cg"
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   267
    "Modified: / 12-10-2006 / 23:46:05 / cg"
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   268
!
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   269
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   270
forExistingClass:aClass withExtensions:withExtensions withLooseMethods:withLooseMethods extensionsOnly:extensionsOnly
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   271
    "build a changeSet for some given full class, the base-class or the extensions only,
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   272
     as specified by the with-arguments.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   273
     That does of course not give deltas, but instead reflects the current
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   274
     state of the given class.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   275
     It is useful in conjunction with the other utility methods,
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   276
     for example, when building patchLists, diffSets etc."
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   277
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   278
    |changeSet classPackage notInClassesPackage realExtensions looseMethods|
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   279
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   280
    changeSet := self forExistingClass:aClass.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   281
    classPackage := aClass package.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   282
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   283
    notInClassesPackage :=
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   284
                [:change |
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   285
                    change isMethodChange 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   286
                    and:[ change package ~= classPackage ]
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
    realExtensions :=
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   290
                [:change |
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   291
                    change isMethodChange 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   292
                    and:[ change package ~= classPackage 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   293
                    and:[ change package ~~ PackageId noProjectID ]]
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   294
                ].
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   295
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   296
    looseMethods :=
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   297
                [:change |
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   298
                    change isMethodChange 
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   299
                    and:[change package == PackageId noProjectID ]
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   300
                ].
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   301
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   302
    extensionsOnly ifTrue:[
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   303
        withLooseMethods ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   304
            ^ changeSet select:notInClassesPackage
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   305
        ].
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   306
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   307
        ^ changeSet select:realExtensions.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   308
    ].
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   309
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   310
    withExtensions ifFalse:[
2943
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   311
        withLooseMethods ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   312
            ^ changeSet reject:notInClassesPackage
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   313
        ].
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   314
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   315
        ^ changeSet reject:realExtensions.
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   316
    ].
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   317
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   318
    withLooseMethods ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 2941
diff changeset
   319
        ^ changeSet reject:looseMethods.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   320
    ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   321
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   322
    ^ changeSet
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   323
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   324
    "
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   325
     ChangeSet forExistingClass:ChangeSet
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   326
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   327
     Rectangle hasExtensions
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   328
     Rectangle extensions
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   329
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   330
     ChangeSet forExistingClass:Rectangle withExtensions:true extensionsOnly:false
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   331
     ChangeSet forExistingClass:Rectangle withExtensions:false extensionsOnly:false
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   332
     ChangeSet forExistingClass:Rectangle withExtensions:false extensionsOnly:true
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   333
    "
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   334
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   335
    "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
   336
    "Modified: / 12-10-2006 / 23:46:05 / cg"
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   337
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   338
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   339
forExistingMethods:aCollectionOfMethods
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   340
    "build a changeSet for a collection of methods.
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   341
     That does of course not give deltas, but instead reflects the current
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   342
     state of the given set of methods.
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   343
     It is useful in conjunction with the other utility methods,
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   344
     for example, when building patchLists, diffSets etc."
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   345
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   346
    |changeSet stream previousPackage|
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   347
2244
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   348
    changeSet := self new.
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   349
    aCollectionOfMethods do:[:eachMethod | 
2524
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   350
        |change source|
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   351
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   352
        source := eachMethod source.
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   353
        source isNil ifTrue:[
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   354
            Transcript showCR:'oops - no source for ',eachMethod whoString.
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   355
        ].
2244
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   356
        change := MethodDefinitionChange new.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   357
        eachMethod mclass notNil ifTrue:[ change className:eachMethod mclass name ].
2524
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   358
        source notNil ifTrue:[ change source:source ].
2244
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   359
        change selector:eachMethod selector.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   360
        change package:(eachMethod package).
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   361
        change category:(eachMethod category).
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   362
        changeSet add:change.
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   363
    ].
2244
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   364
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   365
"/    stream := ReadWriteStream on:''.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   366
"/    aCollectionOfMethods do:[:eachMethod | 
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   367
"/        previousPackage ~= eachMethod package ifTrue:[
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   368
"/            stream nextPutAll:'"{ Package: '''.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   369
"/            stream nextPutAll:eachMethod package asString.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   370
"/            stream nextPutAll:''' }"'; cr; cr.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   371
"/        ].
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   372
"/        eachMethod mclass fileOutMethod:eachMethod on:stream
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   373
"/    ].
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   374
"/    stream reset.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   375
"/    changeSet := self fromStream:stream.
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   376
"/    changeSet do:[:eachChange |
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   377
"/        eachChange package:(eachChange changeMethod package).
83dade66e325 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   378
"/    ].
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   379
    ^ changeSet
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   380
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   381
    "
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   382
     ChangeSet forExistingMethods:(Array with:(Array compiledMethodAt:#at:)
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   383
                                         with:(Object compiledMethodAt:#at:)
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   384
                                         with:(Behavior compiledMethodAt:#compiledMethodAt:) )
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   385
    "
1872
7a1f2a26bf90 changes for compare-project functionality
Claus Gittinger <cg@exept.de>
parents: 1869
diff changeset
   386
2524
309a3ec3f7d1 changed: #forExistingMethods:
Claus Gittinger <cg@exept.de>
parents: 2519
diff changeset
   387
    "Modified: / 17-09-2011 / 10:26:03 / cg"
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   388
!
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
   389
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   390
forPackage: package
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   391
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   392
    ^self forPackage: package ignoreAutoloaded: false.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   393
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   394
    "Created: / 20-05-2008 / 17:56:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   395
    "Modified: / 12-08-2009 / 14:23:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   396
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   397
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   398
forPackage: package ignoreAutoloaded: ignoreAutoloaded
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   399
    "build a changeSet for a given package"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   400
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   401
    |changeSet packageClasses packageExtensions|
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   402
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   403
    packageClasses := ProjectDefinition searchForClassesWithProject: package.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   404
    packageExtensions := ProjectDefinition searchForExtensionsWithProject: package.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   405
    changeSet := self forExistingMethods: packageExtensions.
2941
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   406
    packageClasses do:[:cls|
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   407
        (ignoreAutoloaded not and:[cls isLoaded not]) ifTrue:[cls autoload].
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   408
        cls isLoaded ifTrue: [
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   409
            changeSet addAll: (self forExistingClass:cls withExtensions:false)
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   410
        ]
6bb8b3184650 formatting: #forPackage:ignoreAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 2940
diff changeset
   411
    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   412
    changeSet name: 'Package ' , package.
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   413
    ^changeSet
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   414
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   415
    "Created: / 12-08-2009 / 14:22:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   416
    "Modified: / 16-03-2012 / 15:37:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   417
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   418
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   419
fromDiffSet:aDiffSet
2322
c5ebd3b56e54 comment/format in: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2321
diff changeset
   420
    "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
   421
     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
   422
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   423
    |changeSet|
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   424
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   425
    changeSet := self new.
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   426
    "/ class definitions first...
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   427
    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
   428
    changeSet addAll:((aDiffSet onlyInArg) select:[:ch | ch isClassDefinitionChange]).
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   429
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   430
    "/ first add new methods...
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   431
    changeSet addAll:((aDiffSet onlyInArg) reject:[:ch | ch isClassDefinitionChange]).
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   432
    "/ then, changed methods...
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
   433
    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
   434
    "/ then, removed methods...
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   435
    aDiffSet onlyInReceiver do:[:each |
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   436
        |ch|
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   437
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   438
        ch := MethodRemoveChange className:(each className) selector:(each selector).
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   439
        changeSet add:ch.
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   440
    ].
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   441
    ^ changeSet
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   442
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   443
    "Created: / 08-02-2011 / 10:48:36 / cg"
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   444
!
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   445
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   446
fromDirectory: aStringOfFilename
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   447
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   448
    | d cs |
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   449
    d := aStringOfFilename asFilename.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   450
    cs := self new.    
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   451
    d directoryContentsAsFilenames do:
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   452
        [:each|
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   453
        each suffix = 'st' ifTrue:
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   454
            [cs addAll: (self fromFileOrDirectory: each)]].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   455
    cs name: aStringOfFilename asFilename asAbsoluteFilename pathName.
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   456
    ^cs
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   457
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   458
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   459
    "
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   460
        ChangeSet fromDirectory: (Smalltalk getPackageDirectoryForPackage:'stx:libbasic')
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   461
    "
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   462
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   463
    "Created: / 02-04-2011 / 00:54:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   464
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   465
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   466
fromDolphinPACStream:aStream
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   467
    "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
   468
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   469
    ^ self fromDolphinPACStream:aStream while:[:thisChange | true]
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   470
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   471
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   472
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   473
fromDolphinPACStream:aStream while:aConditionBlock
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   474
    "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
   475
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   476
    |changeSet|
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   477
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   478
    changeSet := self new.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   479
    self 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   480
        changesFromStream:aStream 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   481
        for:changeSet 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   482
        reader:(DolphinPACFileReader new) 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   483
        do:[:aChange :lineNumberOrNil :posOrNil |
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   484
            changeSet add:aChange.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   485
            (aConditionBlock value:aChange) ifFalse:[^ changeSet].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   486
        ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   487
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   488
    ^ changeSet
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   489
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   490
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   491
fromFile:filenameOrString
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   492
    |filename mime stream changeSet|
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   493
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   494
    filename := filenameOrString asFilename.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   495
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   496
    mime := MIMETypes mimeTypeForFilename:filename.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   497
    mime isNil ifTrue:[
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   498
        mime := filename mimeTypeOfContents.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   499
        mime isNil ifTrue:[
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   500
            "/ self error:'unknown MIME type for file' mayProceed:true.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   501
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   502
            "/ assume chunk format
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   503
            mime := 'text/plain'.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   504
        ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   505
    ].
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   506
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   507
    [
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   508
        stream := filename readStream.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   509
        mime = 'text/xml' ifTrue:[
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   510
            changeSet := self fromXMLStream:stream.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   511
        ] ifFalse:[
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   512
            mime = 'application/x-smalltalk-source-sif' ifTrue:[
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   513
                changeSet := self fromSIFStream:stream.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   514
            ] ifFalse:[
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   515
                mime = 'application/x-smalltalk-dolphin-package' ifTrue:[
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   516
                    changeSet := self fromDolphinPACStream:stream.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   517
                ] ifFalse:[            
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   518
                    stream := EncodedStream decodedStreamFor:stream.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   519
                    changeSet := self fromStream:stream.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   520
                ]
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   521
            ]
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   522
        ]
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   523
    ] ensure:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   524
        stream notNil ifTrue:[stream close].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   525
    ].
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   526
    changeSet name: filename baseName.
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   527
    ^ changeSet
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   528
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   529
    "
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   530
     ChangeSet fromFile: 'st.chg'
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   531
     ChangeSet fromFile: 'patches'
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   532
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   533
2868
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
   534
    "Created: / 16-02-1998 / 12:19:34 / cg"
2894
ccd13e91583d changed: #fromFile:
vrany
parents: 2893
diff changeset
   535
    "Modified (comment): / 28-07-2012 / 09:41:40 / cg"
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   536
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   537
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   538
fromFileOrDirectory: fileOrDirectory
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   539
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   540
    | f |
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   541
    f := fileOrDirectory asFilename.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   542
    ^(f isDirectory 
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   543
        ifTrue:[self fromDirectory: f]
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   544
        ifFalse:[self fromFile: f])
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   545
        name: f pathName;
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   546
        yourself.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   547
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   548
    "
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   549
        ChangeSet fromFileOrDirectory: (Smalltalk getPackageDirectoryForPackage:'stx:libbasic')
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   550
    "
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   551
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   552
    "Created: / 02-04-2011 / 00:50:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   553
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
   554
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   555
fromSIFStream:aStream
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   556
    "build a changeSet from a SIF stream, containing chunks
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   557
     in smalltalk interchange format.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   558
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   559
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   560
    ^ self fromSIFStream:aStream while:[:thisChange | true]
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   561
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   562
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   563
fromSIFStream:aStream while:aConditionBlock
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   564
    "build a changeSet from a SIF stream, containing chunks
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   565
     in smalltalk interchange format.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   566
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   567
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   568
    |changeSet|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   569
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   570
    changeSet := self new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   571
    self 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   572
        changesFromStream:aStream 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   573
        for:changeSet 
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   574
        reader:(SIFChangeFileReader new) 
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   575
        do:[:aChange :lineNumberOrNil :posOrNil |
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   576
            changeSet add:aChange.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   577
            (aConditionBlock value:aChange) ifFalse:[^ changeSet].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   578
        ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   579
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   580
    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   581
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   582
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   583
fromStream:aStream
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   584
    "build a changeSet from a stream, containing chunks.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   585
     (i.e. either a classes sourceFile or a change-file).
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   586
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   587
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   588
    ^ self fromStream:aStream while:[:thisChange | true]
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   589
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   590
    "
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   591
     ChangeSet fromStream:('changes' asFilename readStream)
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   592
     ChangeSet fromStream:('patches' asFilename readStream)
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   593
     ChangeSet fromStream:(Object source asString readStream)
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   594
    "
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   595
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   596
    "Created: / 16.2.1998 / 12:19:34 / cg"
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   597
    "Modified: / 14.12.1999 / 15:23:16 / cg"
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   598
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   599
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   600
fromStream:aStream while:aConditionBlock
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   601
    "build a changeSet from a stream, containing chunks.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   602
     (i.e. either a classes sourceFile or a change-file).
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   603
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   604
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   605
    |changeSet|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   606
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   607
    changeSet := self new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   608
    self 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   609
        changesFromStream:aStream 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   610
        for:changeSet 
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   611
        reader:(ChangeFileReader new)
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   612
        do:[:aChange :lineNumberOrNil :posOrNil |
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   613
            changeSet add:aChange.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   614
            (aConditionBlock value:aChange) ifFalse:[^ changeSet].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   615
        ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   616
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   617
    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   618
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   619
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   620
     ChangeSet fromStream:('changes' asFilename readStream)
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   621
     ChangeSet fromStream:('patches' asFilename readStream)
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   622
     ChangeSet fromStream:(Object source asString readStream)
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   623
     ChangeSet fromStream:(XWorkstation source asString readStream)
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   624
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   625
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   626
    "Created: / 16-02-1998 / 12:19:34 / cg"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   627
    "Modified: / 14-12-1999 / 15:23:16 / cg"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   628
    "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
   629
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   630
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   631
fromXMLStream:aStream
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   632
    "build a changeSet from an XML stream, containing XML definitions.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   633
     Return the changeSet."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   634
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   635
    |changeSet builder nameSpace|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   636
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   637
    aStream isNil ifTrue:[^ nil].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   638
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   639
    changeSet := self new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   640
    nameSpace := Smalltalk.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   641
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   642
    builder := XML::SourceScannerNodeBuilder new.
1475
934d20073adb more support for alien namespaces (VW7)
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
   643
    builder scanFile:aStream do:[:change | changeSet add: change. ].
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   644
    ^ changeSet
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   645
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   646
    "
1247
be7277706e48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   647
     ChangeSet fromXMLStream:('../../goodies/xml/vw/xmlFileInTests/XMLParser.xml' asFilename readStream)
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   648
     ChangeSetBrowser 
1247
be7277706e48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1232
diff changeset
   649
        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
   650
    "
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   651
! !
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   652
1281
6aeafe46d0ad category;
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
   653
!ChangeSet class methodsFor:'Compatibility-ST80'!
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   654
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   655
patches
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   656
    ^ #()
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
    "Created: / 27.10.1997 / 13:52:54 / cg"
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   659
! !
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   660
3105
5040d508c1ae class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3102
diff changeset
   661
1281
6aeafe46d0ad category;
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
   662
!ChangeSet class methodsFor:'Compatibility-VW'!
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   663
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   664
component: component definition: anObject change: changeSymbol
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   665
    "Include indication that a class/namespace was added or removed
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   666
     from a CodeComponent." 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   667
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   668
    self 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   669
        changed:#'component:definition:change:'
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   670
        with:
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   671
            ( Array 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   672
                    with: component
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   673
                    with: anObject
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   674
                    with: changeSymbol
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   675
            )
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   676
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   677
! !
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   678
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   679
!ChangeSet class methodsFor:'instance creation-private'!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   680
1191
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   681
changesFromStream:aStream do:aBlock
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   682
    "enumerate changes from a stream and invoke aBlock on each.
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   683
     The block is invoked with the change, a lineNumberOrNil and streamPosition arguments. 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   684
     The lineNumber is only valid, if the underlying stream 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   685
     provides line-numbers; otherwise, nil is passed."
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   686
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   687
    ^ self
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   688
        changesFromStream:aStream 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   689
        for:(self new) 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   690
        reader:nil
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   691
        do:aBlock
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   692
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   693
    "
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   694
     ChangeSet 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   695
        changesFromStream:('changes' asFilename readStream) 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   696
        do:[:chg | Transcript showCR:chg]
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   697
    "
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   698
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   699
    "Created: / 16.2.1998 / 12:19:34 / cg"
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   700
    "Modified: / 14.12.1999 / 15:23:16 / cg"
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   701
!
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   702
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   703
changesFromStream:aStream for:aChangeSet reader:aReader do:aBlock
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   704
    "enumerate changes from a stream and invoke aBlock on each.
1191
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   705
     The block is invoked with the change, a lineNumberOrNil and streamPosition arguments. 
a63c8b5e4c6d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
   706
     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
   707
     provides line-numbers; otherwise, nil is passed."
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   708
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   709
    |chunk s change nameSpace package
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   710
     lineNumber pos reader size |
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   711
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   712
    nameSpace := Smalltalk.
1135
08323691c543 care for package directive (remember)
Claus Gittinger <cg@exept.de>
parents: 1128
diff changeset
   713
    package := Class packageQuerySignal query.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   714
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   715
    (reader := aReader) isNil ifTrue:[
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   716
        reader := ChangeFileReader new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   717
    ].
2893
5dfcb7f9f0da Fix in reading changeset from file (for EncodedStream)
vrany
parents: 2892
diff changeset
   718
5dfcb7f9f0da Fix in reading changeset from file (for EncodedStream)
vrany
parents: 2892
diff changeset
   719
    (aStream isKindOf: EncodedStream) ifTrue:[
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   720
        "JV@2012-01-30: Argh!!!!!!!!!! guessEncodingFrom does not reset the position, somehow!!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   721
         This is a HACK, somebody should fix it."
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   722
        aStream position ~~ 0 ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   723
            self breakPoint: #cg.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   724
            aStream position: 0.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   725
        ].
3360
f823605e7ccd class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
   726
        size := aStream stream size.
2893
5dfcb7f9f0da Fix in reading changeset from file (for EncodedStream)
vrany
parents: 2892
diff changeset
   727
    ] ifFalse:[
3360
f823605e7ccd class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
   728
        size := aStream size.
2893
5dfcb7f9f0da Fix in reading changeset from file (for EncodedStream)
vrany
parents: 2892
diff changeset
   729
    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   730
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
   731
    reader changeSet:aChangeSet.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   732
    reader changeAction:aBlock.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
   733
    reader inputStream:aStream.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   734
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   735
    [aStream atEnd] whileFalse:[
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
   736
        aStream skipSeparators.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   737
        lineNumber := aStream lineNumber.
3376
a0e06d192df4 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3360
diff changeset
   738
        pos := aStream position + 1.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   739
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   740
        ProgressNotification notify: nil progress:(100 / size) * pos.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   741
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   742
        chunk := aStream nextChunk.
2056
b4bd1ff4709e refactored
Claus Gittinger <cg@exept.de>
parents: 2053
diff changeset
   743
1447
2ac1cf09722b isEmptyOrNil / notEmptyOrNil refactoring
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
   744
        (chunk notEmptyOrNil) ifTrue:[
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   745
            Class nameSpaceQuerySignal handle:[:ex| ex proceedWith:nameSpace] do:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   746
                Class packageQuerySignal handle:[:ex| ex proceedWith:package] do:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   747
                    |parser tree ns pkg|
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   748
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   749
                    parser := Parser for:chunk.
2930
389b51389fb1 comment/format in: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2923
diff changeset
   750
                    "/ parser parseForCode.
3157
ad507c0fbd30 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   751
                    Parser parseErrorSignal handle:[:ex |
ad507c0fbd30 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   752
                        Transcript showCR:'ChangeSet: error while reading: ',ex description.
ad507c0fbd30 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   753
                        tree := #Error.
ad507c0fbd30 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   754
                    ] do:[
ad507c0fbd30 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   755
                        tree := parser 
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   756
                                parseExpressionWithSelf:nil 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   757
                                notifying:nil 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   758
                                ignoreErrors:true 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   759
                                ignoreWarnings:true 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   760
                                inNameSpace:nameSpace.
3157
ad507c0fbd30 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3149
diff changeset
   761
                    ].
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   762
                    tree notNil ifTrue:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   763
                        tree == #Error ifTrue:[
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   764
                            "/Hmm....it could be package-definition chunk in extensions container...
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   765
                            ((pkg := parser currentPackage) notNil 
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   766
                            and:[pkg ~~ package]) ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   767
                                package := pkg
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   768
                            ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   769
                                change := DoItChange new.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   770
                                change source:chunk.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   771
                                aBlock valueWithOptionalArgument:change and:lineNumber and:pos.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   772
                            ].
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   773
                        ] ifFalse:[    
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   774
                            "/ if there is any nameSpace directive in there, extract it.
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   775
                            ((ns := parser currentNameSpace) notNil 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   776
                            and:[ns ~~ nameSpace]) ifTrue:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   777
                                nameSpace := ns
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   778
                            ].
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   779
                            "/ if there is any package directive in there, extract it.
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   780
                            ((pkg := parser currentPackage) notNil 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   781
                            and:[pkg ~~ package]) ifTrue:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   782
                                package := pkg
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   783
                            ].
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   784
                            "/
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   785
                            "/ what type of chunk is this ...
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   786
                            "/
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   787
                            tree isConstant ifTrue:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   788
                                (s := tree evaluate) isString ifTrue:[
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   789
                                    (s startsWith:'---- ') ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   790
                                        reader inputStream: s readStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   791
                                        reader processInfo: s.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   792
                                        reader inputStream: aStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   793
                                    ].
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   794
                                ] ifFalse:[
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   795
                                    self error:'unexpected change-chunk' mayProceed:true
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   796
                                ]
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   797
                            ] ifFalse:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   798
                                tree isMessage ifTrue:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   799
                                    (reader 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   800
                                        changesFromParseTree:tree 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   801
                                        lineNumber:lineNumber
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   802
                                        position:pos
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
   803
                                        chunk: chunk
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   804
                                    ) ifFalse:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   805
                                        change := DoItChange new.
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   806
                                        change source:chunk.
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   807
                                        aBlock valueWithOptionalArgument:change and:lineNumber and:pos.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   808
                                    ]
2279
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   809
                                ] ifFalse:[
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   810
                                    InvalidChangeChunkError 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   811
                                        raiseRequestErrorString:'unexpected change-chunk' 
a85d31a33e57 changed: #changesFromStream:for:reader:do:
Stefan Vogel <sv@exept.de>
parents: 2256
diff changeset
   812
                                        "/ mayProceed:true.
930
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   813
                                ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   814
                            ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   815
                        ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   816
                    ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   817
                ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   818
            ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   819
        ]
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   820
    ].
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   821
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   822
    "
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   823
     ChangeSet fromStream:('changes' asFilename readStream)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   824
     ChangeSet fromStream:('patches' asFilename readStream)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   825
     ChangeSet fromStream:(Object source asString readStream)
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   826
    "
ca4ce60fea8b lineNumber support
Claus Gittinger <cg@exept.de>
parents: 924
diff changeset
   827
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
   828
    "Created: / 16-02-1998 / 12:19:34 / cg"
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   829
    "Modified: / 30-01-2013 / 10:30:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3360
f823605e7ccd class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
   830
    "Modified: / 30-07-2013 / 21:34:16 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   831
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
   832
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
   833
!ChangeSet class methodsFor:'queries'!
27
claus
parents: 16
diff changeset
   834
claus
parents: 16
diff changeset
   835
current
claus
parents: 16
diff changeset
   836
    "ST-80 compatibility: return the current changeSet"
claus
parents: 16
diff changeset
   837
claus
parents: 16
diff changeset
   838
    |p|
claus
parents: 16
diff changeset
   839
claus
parents: 16
diff changeset
   840
    (Project notNil and:[(p := Project current) notNil]) ifTrue:[
959
ca4fff926135 ChangeSet current: return empty collection if there is no changeSet
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
   841
        ^ p changeSet
ca4fff926135 ChangeSet current: return empty collection if there is no changeSet
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
   842
    ].
ca4fff926135 ChangeSet current: return empty collection if there is no changeSet
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
   843
    ^ #()
27
claus
parents: 16
diff changeset
   844
claus
parents: 16
diff changeset
   845
    "
claus
parents: 16
diff changeset
   846
     ChangeSet current 
claus
parents: 16
diff changeset
   847
    "
claus
parents: 16
diff changeset
   848
! !
claus
parents: 16
diff changeset
   849
2246
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
   850
!ChangeSet class methodsFor:'utilities'!
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
   851
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
   852
decodedStreamFor:aStream
2247
1ff6d78eb96c code move
Claus Gittinger <cg@exept.de>
parents: 2246
diff changeset
   853
    <resource: #obsolete>
1ff6d78eb96c code move
Claus Gittinger <cg@exept.de>
parents: 2246
diff changeset
   854
    ^ EncodedStream decodedStreamFor:aStream
2246
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
   855
! !
3ce37b8e4967 changed: #decodedStreamFor:
Claus Gittinger <cg@exept.de>
parents: 2244
diff changeset
   856
1264
3d1fc5d40ab4 method category rename
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
   857
!ChangeSet methodsFor:'Compatibility-ST80'!
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   858
899
7b65d6f2b0f0 more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 894
diff changeset
   859
changeClass:aClass
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   860
899
7b65d6f2b0f0 more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 894
diff changeset
   861
    "dummy here"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   862
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   863
    "Created: / 04-02-2000 / 18:30:59 / cg"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   864
    "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
   865
!
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   866
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   867
changeSelectors
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   868
    "return a collection of all selectors for which changes are in this changeSet"
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   869
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   870
    |selectors|
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   871
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   872
    changeSelectors isNil ifTrue:[
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   873
        selectors := IdentitySet new.
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   874
        self do:[:chg |
1967
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   875
            |sel|
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   876
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   877
            chg notNil ifTrue:[
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   878
                chg isMethodChange ifTrue:[
1967
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   879
                    sel := chg selector.
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   880
                    sel notNil ifTrue:[
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   881
                        selectors add:sel
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   882
                    ]
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   883
                ]
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   884
            ]
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   885
        ].
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   886
        changeSelectors := selectors.
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   887
    ].
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   888
    ^ changeSelectors.
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   889
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   890
    "
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   891
     ChangeSet current changeSelectors  
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   892
    "
1967
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   893
18cf73f144e4 care for nil selectors.
Claus Gittinger <cg@exept.de>
parents: 1954
diff changeset
   894
    "Modified: / 30-05-2007 / 12:12:32 / cg"
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   895
!
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
   896
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   897
changedClasses
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
   898
    "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
   899
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   900
    |classes|
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   901
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   902
    changedClasses isNil ifTrue:[
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   903
        classes := IdentitySet new.
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   904
        self do:[:chg |
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   905
            |cls|
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   906
1315
f0f764125625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1313
diff changeset
   907
            chg notNil ifTrue:[
f0f764125625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1313
diff changeset
   908
                cls := chg changeClass.
f0f764125625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1313
diff changeset
   909
                cls notNil ifTrue:[
1898
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
   910
                    cls isRealNameSpace ifFalse:[
1315
f0f764125625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1313
diff changeset
   911
                        classes add:cls
f0f764125625 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1313
diff changeset
   912
                    ]
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   913
                ]
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   914
            ]
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   915
        ].
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   916
        changedClasses := classes.
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   917
    ].
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   918
    ^ changedClasses.
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   919
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   920
    "
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   921
     ChangeSet current changedClasses  
1791
746e0b3aa286 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1718
diff changeset
   922
     ChangeSet current flushChangedClassesCache
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   923
    "
1791
746e0b3aa286 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1718
diff changeset
   924
1898
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
   925
    "Modified: / 10-11-2006 / 17:17:26 / cg"
1102
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   926
!
4763b34e4c0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1099
diff changeset
   927
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   928
component:component definition:anObject change:changeSymbol
1083
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   929
    "Include indication that a class/namespace was added or removed
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   930
     from a CodeComponent." 
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   931
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   932
    self 
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   933
        changed:#'component:definition:change:'
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   934
        with:
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   935
            ( Array 
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   936
                    with: component
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   937
                    with: anObject
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   938
                    with: changeSymbol
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   939
            )
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   940
!
e3ac808d06e8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1081
diff changeset
   941
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   942
reorganizeSystem
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   943
    "dummy here"
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   944
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   945
    "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
   946
! !
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   947
2235
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
   948
!ChangeSet methodsFor:'accessing'!
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
   949
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
   950
name
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
   951
    ^ name
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
   952
!
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
   953
2868
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
   954
name:aString
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
   955
    name := aString.
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
   956
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
   957
    "Modified (format): / 28-07-2012 / 09:34:52 / cg"
2235
3078dab499ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
   958
! !
2234
f5af55bd08cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2186
diff changeset
   959
985
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
   960
!ChangeSet methodsFor:'change & update'!
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
   961
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   962
changed:anAspectSymbol with:aParameter 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   963
    "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
   964
     of ChangeSet (which may be switched using projects)."
985
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
   965
1475
934d20073adb more support for alien namespaces (VW7)
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
   966
    self == ChangeSet current ifTrue:[
934d20073adb more support for alien namespaces (VW7)
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
   967
        ChangeSet changed:anAspectSymbol with:aParameter.
934d20073adb more support for alien namespaces (VW7)
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
   968
    ].
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   969
    super changed:anAspectSymbol with:aParameter
985
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
   970
! !
d6e52410ac8a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 965
diff changeset
   971
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
   972
!ChangeSet methodsFor:'changes management'!
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   973
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   974
addClassCommentChangeFor:aClass
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   975
    "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
   976
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   977
    |newChange|
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   978
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   979
    newChange := ClassCommentChange class:aClass.
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   980
    newChange comment:aClass comment.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   981
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   982
    self addChange:newChange
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
   983
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   984
    "Modified: / 14.11.2001 / 13:35:34 / cg"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   985
!
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   986
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   987
addClassDefinitionChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   988
    "add a classDefinition change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   989
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   990
    |newChange|
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
   991
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   992
    newChange := ClassDefinitionChange class:aClass source:(aClass definition).
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   993
    newChange package:aClass package.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
   994
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
   995
    self addChange:newChange
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
   996
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   997
    "
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   998
     (ChangeSet new addClassDefinitionChangeFor:ChangeSet) inspect
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
   999
    "
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1000
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1001
    "Modified: / 12-10-2006 / 18:17:02 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1002
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1003
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1004
addClassRemoveChange:oldClass 
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1005
    "add a classRemove change to the receiver"
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1006
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1007
    |newChange|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1008
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1009
    newChange := ClassRemoveChange new className:oldClass name.
1281
6aeafe46d0ad category;
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
  1010
    self rememberChangedClass:oldClass.
1421
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1011
    oldClass isPrivate ifTrue:[
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1012
        self rememberChangedClass:oldClass topOwningClass.
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1013
    ].
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1014
    ClassRemoveChange::ClassBeingRemovedQuery 
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1015
        answer:oldClass
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1016
        do:[
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1017
            self addChange:newChange
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1018
        ]
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1019
    "Modified: / 14.11.2001 / 13:35:39 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1020
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1021
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1022
addClassRenameChangeFrom:oldName to:newName
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1023
    "add a classRename change to the receiver"
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1024
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1025
    |newChange|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1026
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1027
    newChange := ClassRenameChange new oldName:oldName newName:newName.
1281
6aeafe46d0ad category;
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
  1028
    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
  1029
    self addChange:newChange
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1030
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1031
    "Modified: / 14.11.2001 / 13:35:41 / cg"
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1032
!
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  1033
1081
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1034
addDoIt:aString
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1035
    "add a doIt to the receiver"
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1036
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1037
    |newChange|
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1038
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1039
    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
  1040
    self addChange:newChange.
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1041
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1042
    "Modified: / 14.11.2001 / 13:35:44 / cg"
1081
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1043
!
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1044
889
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1045
addInstVarDefinitionChangeFor:aClass
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1046
    "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
  1047
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1048
    |newChange|
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1049
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1050
    newChange := ClassInstVarDefinitionChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1051
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1052
                        source:(aClass name , ' instanceVariableNames:' , aClass instanceVariableString storeString).
2617
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  1053
    newChange classInstVarNames:aClass instanceVariableString asCollectionOfWords.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1054
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1055
    self addChange:newChange
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1056
2617
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  1057
    "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
  1058
!
6b05401d7184 more changes (comments, class-instVars) in the changeSet;
Claus Gittinger <cg@exept.de>
parents: 887
diff changeset
  1059
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
  1060
addMethodCategoryChange:aMethod category:newCategory in:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1061
    "add a methodCategory change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1062
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
  1063
    |newChange|
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
  1064
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1065
    newChange := MethodCategoryChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1066
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1067
                        selector:(aClass selectorAtMethod:aMethod)
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1068
                        category:newCategory.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1069
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1070
    self addChange:newChange
16
fcbfbba03d49 *** empty log message ***
claus
parents: 10
diff changeset
  1071
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1072
    "Modified: / 14.11.2001 / 13:35:48 / cg"
44
claus
parents: 39
diff changeset
  1073
!
claus
parents: 39
diff changeset
  1074
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1075
addMethodChange:aMethod fromOld:oldMethod in:aClass
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1076
    "add a method change to the receiver"
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1077
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1078
    |newChange|
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1079
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1080
    newChange := MethodChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1081
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1082
                        selector:aMethod selector
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1083
                        source:aMethod source
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1084
                        category:aMethod category.
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1085
    oldMethod notNil ifTrue:[
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1086
        newChange previousVersion:oldMethod.
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1087
    ].
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1088
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1089
    self addChange:newChange.
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1090
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1091
    "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
  1092
!
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1093
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1094
addMethodChange:aMethod in:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1095
    "add a method change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1096
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1097
    |newChange|
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1098
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1099
    newChange := MethodChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1100
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1101
                        selector:aMethod selector
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1102
                        source:aMethod source
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1103
                        category:aMethod category.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1104
    newChange package:(aMethod package).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1105
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1106
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1107
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1108
    "Modified: / 12-10-2006 / 18:15:28 / cg"
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1109
!
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1110
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1111
addMethodPackageChange:aMethod package:newPackage in:aClass
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1112
    "add a methodPackage change to the receiver"
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1113
2934
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1114
    |newChange selector|
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1115
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1116
    selector := (aClass selectorAtMethod:aMethod).
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1117
    selector isNil ifTrue:[^ self].
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1118
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1119
    newChange := MethodPackageChange 
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1120
                        class:aClass
2934
487294a18ae0 changed: #addMethodPackageChange:package:in:
Claus Gittinger <cg@exept.de>
parents: 2930
diff changeset
  1121
                        selector:selector
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1122
                        package:newPackage.
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1123
    self rememberChangedClass:aClass.
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1124
    self addChange:newChange
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1125
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1126
    "Created: / 09-10-2006 / 14:02:33 / cg"
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1127
!
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1128
44
claus
parents: 39
diff changeset
  1129
addMethodPrivacyChange:aMethod in:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1130
    "add a methodPrivacy change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1131
44
claus
parents: 39
diff changeset
  1132
    |newChange|
claus
parents: 39
diff changeset
  1133
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1134
    newChange := MethodPrivacyChange 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1135
                        class:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1136
                        selector:(aClass selectorAtMethod:aMethod)
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1137
                        privacy:aMethod privacy.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1138
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1139
    self addChange:newChange
44
claus
parents: 39
diff changeset
  1140
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1141
    "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
  1142
    "Modified: / 14.11.2001 / 13:35:55 / cg"
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1143
!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1144
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1145
addPrimitiveDefinitionsChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1146
    "add a primitiveDefinitions change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1147
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1148
    |newChange|
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1149
783
90ffa6f0a86b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  1150
    newChange := ClassPrimitiveDefinitionsChange new
1287
faf72a0bc34a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
  1151
                        class:aClass source:(aClass primitiveDefinitionsString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1152
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1153
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1154
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1155
    "Modified: / 14.11.2001 / 13:35:57 / cg"
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1156
!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1157
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1158
addPrimitiveFunctionsChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1159
    "add a primitiveFunctions change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1160
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1161
    |newChange|
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1162
783
90ffa6f0a86b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  1163
    newChange := ClassPrimitiveFunctionsChange new
1287
faf72a0bc34a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
  1164
                        class:aClass source:(aClass primitiveFunctionsString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1165
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1166
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1167
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1168
    "Modified: / 14.11.2001 / 13:35:59 / cg"
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1169
!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1170
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1171
addPrimitiveVariablesChangeFor:aClass
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1172
    "add a primitiveVariables change to the receiver"
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1173
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1174
    |newChange|
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
  1175
783
90ffa6f0a86b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  1176
    newChange := ClassPrimitiveVariablesChange new
1287
faf72a0bc34a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
  1177
                         class:aClass source:(aClass primitiveVariablesString).
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1178
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1179
    self addChange:newChange
378
f106015c98a6 commentary
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
  1180
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1181
    "Modified: / 14.11.2001 / 13:36:01 / cg"
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1182
!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1183
1164
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
  1184
addRemoveSelectorChange:aSelector fromOld:oldMethod in:aClass
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1185
    "add a method-remove change to the receiver"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1186
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1187
    |newChange|
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1188
1081
5d8001052312 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1045
diff changeset
  1189
    newChange := MethodRemoveChange class:aClass selector:aSelector.
1164
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
  1190
    oldMethod notNil ifTrue:[
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1191
        newChange previousVersion:oldMethod.
1164
cecaa2229cab removeSelector change: remember methods previous version
Claus Gittinger <cg@exept.de>
parents: 1156
diff changeset
  1192
    ].
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1193
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1194
    self addChange:newChange
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1195
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1196
    "Modified: / 27.8.1995 / 22:55:22 / claus"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 625
diff changeset
  1197
    "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
  1198
    "Modified: / 14.11.2001 / 13:36:04 / cg"
901
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1199
!
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1200
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1201
addRenameCategoryChangeIn:aClass from:oldCategory to:newCategory
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1202
    "add a category rename change to the receiver"
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1203
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1204
    |newChange|
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1205
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1206
    newChange := MethodCategoryRenameChange class:aClass.
8fd26c5e8e8f more VW compatibility
Claus Gittinger <cg@exept.de>
parents: 899
diff changeset
  1207
    newChange oldCategoryName:oldCategory newCategoryName:newCategory.
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1208
    self rememberChangedClass:aClass.
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1209
    self addChange:newChange
1105
b27c0d72d7d0 avoid useless change notifications from #collect:, #select: etc.
Claus Gittinger <cg@exept.de>
parents: 1102
diff changeset
  1210
1111
d4f353ffaa53 oops - species must be ChangeSet; add: should not send notifications.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  1211
    "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
  1212
! !
b27c0d72d7d0 avoid useless change notifications from #collect:, #select: etc.
Claus Gittinger <cg@exept.de>
parents: 1102
diff changeset
  1213
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1214
!ChangeSet methodsFor:'fileOut'!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1215
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1216
fileOutAs: aStringOrFilename
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1217
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1218
    | stream |
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1219
    stream := aStringOrFilename asFilename writeStream.
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1220
    [ self fileOutOn: stream ]
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1221
        ensure: [stream close]
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1222
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1223
    "Created: / 05-12-2009 / 12:33:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1224
!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1225
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1226
fileOutOn: stream
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1227
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1228
    self do:[:chg|chg fileOutOn: stream]
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1229
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1230
    "Created: / 05-12-2009 / 12:32:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1231
! !
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1232
85
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1233
!ChangeSet methodsFor:'misc'!
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1234
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1235
addPatch:nameOfPatch
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1236
    "ignored for now - allows fileIn of ST-80 patch stuff .."
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1237
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1238
    ^ self
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1239
! !
c354e2f81394 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 68
diff changeset
  1240
1263
14ef737d93a8 method category rename
Claus Gittinger <cg@exept.de>
parents: 1247
diff changeset
  1241
!ChangeSet methodsFor:'private-accessing'!
1098
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
  1242
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1243
addChange:aChange
2053
590bf720dfd4 dont add nil to a set
Claus Gittinger <cg@exept.de>
parents: 2046
diff changeset
  1244
    |changeClass|
590bf720dfd4 dont add nil to a set
Claus Gittinger <cg@exept.de>
parents: 2046
diff changeset
  1245
1898
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1246
    aChange timeOfChangeIfKnown isNil ifTrue:[
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1247
        aChange timeStamp:(Timestamp now).
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1248
    ].
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1249
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1250
    self add:aChange.
1471
d3a32a4b689b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1453
diff changeset
  1251
    changedClasses notNil ifTrue:[
2053
590bf720dfd4 dont add nil to a set
Claus Gittinger <cg@exept.de>
parents: 2046
diff changeset
  1252
        (changeClass := aChange changeClass) notNil ifTrue:[      
590bf720dfd4 dont add nil to a set
Claus Gittinger <cg@exept.de>
parents: 2046
diff changeset
  1253
            changedClasses add:changeClass.
590bf720dfd4 dont add nil to a set
Claus Gittinger <cg@exept.de>
parents: 2046
diff changeset
  1254
        ].
1471
d3a32a4b689b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1453
diff changeset
  1255
    ].
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1256
    changeSelectors notNil ifTrue:[
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1257
        aChange isMethodChange ifTrue:[
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1258
            changeSelectors add:aChange selector.
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1259
        ].
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1260
    ].
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1261
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1262
"/    aChange sendChangeNotificationThroughSmalltalk. 
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1263
    self changed:#addChange: with:aChange.
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1264
1898
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1265
    "Created: / 14-11-2001 / 13:35:11 / cg"
325fa7fbb3e3 use isRealNameSpace
Claus Gittinger <cg@exept.de>
parents: 1885
diff changeset
  1266
    "Modified: / 10-11-2006 / 16:47:13 / cg"
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1267
!
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1268
1479
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1269
flushChangedClassesCache
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1270
    changedClasses := changeSelectors := nil
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1271
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1272
    "
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1273
     ChangeSet current flushChangedClassesCache
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1274
    "
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1275
!
Claus Gittinger <cg@exept.de>
parents: 1478
diff changeset
  1276
1128
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1277
rememberChangedClass:aClass
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1278
    changedClasses notNil ifTrue:[
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1279
        changedClasses add:aClass
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1280
    ].
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1281
!
9e213e86c212 cache changed classes (speedup browser)
Claus Gittinger <cg@exept.de>
parents: 1127
diff changeset
  1282
1098
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
  1283
removeAll:aCollection
1301
b747d11e7ff8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
  1284
    aCollection notEmpty ifTrue:[
b747d11e7ff8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
  1285
        super removeAll:aCollection.
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1286
        changedClasses := changeSelectors := nil.
1301
b747d11e7ff8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
  1287
        self changed:#removeAll: with:aCollection.
b747d11e7ff8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
  1288
    ]
1421
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1289
!
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1290
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1291
unrememberChangedClasses
eeb8f1c9b6b4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1415
diff changeset
  1292
    changedClasses := nil
1098
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
  1293
! !
420a868fd606 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1097
diff changeset
  1294
1034
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1295
!ChangeSet methodsFor:'queries'!
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1296
2160
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1297
changedPackages
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1298
    "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
  1299
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1300
    |classes changedPackages|
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1301
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1302
    changedPackages := Set new.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1303
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1304
    self do:[:chg |
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1305
        |p mthd cls|
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1306
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1307
        p := chg package.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1308
        p isNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1309
            chg isMethodChange ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1310
                mthd := chg changeMethod.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1311
                mthd notNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1312
                    p := mthd package.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1313
                ] ifFalse:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1314
                    cls := chg changeClass.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1315
                    cls notNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1316
                        p := cls package.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1317
                    ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1318
                ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1319
            ] ifFalse:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1320
                chg isClassChange ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1321
                    cls := chg changeClass.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1322
                    cls notNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1323
                        p := cls package.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1324
                    ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1325
                ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1326
            ].
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1327
        ].
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1328
        p notNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1329
            changedPackages add:p.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1330
        ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1331
    ].
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1332
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1333
"/    self changedClasses do:[:cls |
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1334
"/        |p|
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1335
"/
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1336
"/        (p := cls package) notNil ifTrue:[
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1337
"/            changedPackages add:p.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1338
"/        ]
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1339
"/    ].
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1340
    ^ changedPackages.
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1341
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1342
    "
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1343
     ChangeSet current changedPackages  
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1344
    "
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1345
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1346
    "Created: / 22-09-2006 / 16:37:40 / cg"
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1347
    "Modified: / 13-10-2006 / 01:20:48 / cg"
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1348
!
831832c4c164 oops: fm lost #changedPackages
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  1349
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1350
changesForPackage:aPackageSymbol
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1351
    ^(self select:[:aChange |
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1352
        |includeThis mClass mthd|
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1353
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1354
        includeThis := false.
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1355
        (aChange isMethodChange or:[aChange isMethodRemoveChange]) ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1356
            mClass := aChange changeClass.
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1357
            mClass notNil ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1358
                mthd := mClass compiledMethodAt:(aChange selector).
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1359
                mthd isNil ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1360
                    aChange isMethodRemoveChange ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1361
                        includeThis := (mClass package = aPackageSymbol)
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1362
                    ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1363
                ] ifFalse:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1364
                    includeThis := (mthd package = aPackageSymbol)
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1365
                ]
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1366
            ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1367
        ] ifFalse:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1368
            (aChange isClassChange) ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1369
                (aChange changeClass notNil) ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1370
                    includeThis := (aChange changeClass package = aPackageSymbol)
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1371
                ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1372
            ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1373
        ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1374
        includeThis
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1375
    ])
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1376
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1377
    "
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1378
     ChangeSet current changesForPackage:#'stx:goodies/libsvn'
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  1379
    "
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1380
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1381
    "Created: / 05-11-2001 / 14:21:17 / cg"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1382
    "Modified: / 12-10-2006 / 16:51:27 / cg"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1383
    "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
  1384
    "Modified (comment): / 26-07-2012 / 11:54:00 / cg"
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1385
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1386
1034
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1387
includesChangeForClass:aClass
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1388
    |nameOfClass|
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1389
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1390
    nameOfClass := aClass theNonMetaclass name.
3309
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1391
    ^ self includesChangeForClassNamed:nameOfClass
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1392
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1393
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1394
     ChangeSet current includesChangeForClass:ChangeSet
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1395
     ChangeSet current includesChangeForClass:ChangeSet class
1686
7d2c1f9f63e9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1521
diff changeset
  1396
     ChangeSet current includesChangeForClass:SourceCodeManagerUtilities
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1397
     ChangeSet current includesChangeForClass:(Expecco::ExpeccoXMLDecoder::ObjectCreator)
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1398
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1399
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1400
    "Modified: / 09-10-2006 / 13:39:22 / cg"
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1401
!
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1402
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1403
includesChangeForClass:aClass selector:selector
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1404
    |nameOfNonMetaClass nameOfClass|
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1405
1478
400bfb0e4ea9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1476
diff changeset
  1406
    (self changeSelectors includes:selector) ifFalse:[^ false].
1476
d8938e5b253e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1475
diff changeset
  1407
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1408
    nameOfNonMetaClass := aClass theNonMetaclass name.
2973
312e2e952094 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1409
    (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
  1410
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1411
    nameOfClass := aClass name.
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1412
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1413
    ^ self contains:[:aChange | 
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1414
                        selector = aChange selector 
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1415
                        ifFalse:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1416
                            false
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1417
                        ] ifTrue:[
1232
58d1ebc59df5 added #addClassRemoveChange:
james
parents: 1209
diff changeset
  1418
                            nameOfClass = aChange className
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1419
                        ]
1085
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1420
                    ]
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1421
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1422
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1423
     ChangeSet current includesChangeForClass:ChangeSet selector:#includesChangeForClass:
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1424
    "
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1425
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1426
    "Created: / 31.10.2001 / 10:26:31 / cg"
e4912b831447 includesChangeFor...
Claus Gittinger <cg@exept.de>
parents: 1083
diff changeset
  1427
    "Modified: / 31.10.2001 / 10:59:49 / cg"
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1428
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1429
3309
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1430
includesChangeForClassNamed:aClassName
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1431
    (self changedClasses contains:[:aClass | aClass theNonMetaclass name = aClassName]) ifFalse:[^ false].
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1432
    ^ self contains:[:aChange | aChange className = aClassName]
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1433
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1434
    "
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1435
     ChangeSet current includesChangeForClassNamed:'ChangeSet'
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1436
    "
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1437
!
8815cc2ad038 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  1438
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1439
includesChangeForClassOrMetaclass:aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1440
    |nameOfClass nameOfMetaclass|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1441
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1442
    nameOfClass := aClass theNonMetaclass name.
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1443
    nameOfMetaclass := aClass theMetaclass name.
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1444
1920
4365130e896f bad spelling of methodname
Stefan Vogel <sv@exept.de>
parents: 1918
diff changeset
  1445
    (self changedClasses contains:[:eachClass | eachClass theNonMetaclass name = nameOfClass]) ifFalse:[
1918
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1446
        ^ false.
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1447
    ].
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1448
1f3fcb411307 do not check for identical class being in changeSet -
boris
parents: 1898
diff changeset
  1449
1920
4365130e896f bad spelling of methodname
Stefan Vogel <sv@exept.de>
parents: 1918
diff changeset
  1450
    ^ self contains:[:eachChange | 
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1451
                        |changeClassName|
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1452
1920
4365130e896f bad spelling of methodname
Stefan Vogel <sv@exept.de>
parents: 1918
diff changeset
  1453
                        changeClassName := eachChange className.
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1454
                        changeClassName = nameOfClass or:[changeClassName = nameOfMetaclass]
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1455
                    ]
1842
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1456
6ca4e98df305 method-package change record added
Claus Gittinger <cg@exept.de>
parents: 1830
diff changeset
  1457
    "Modified: / 09-10-2006 / 13:40:29 / cg"
1127
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1458
!
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1459
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1460
includesChangeForClassOrMetaclassOrPrivateClassOf:aClass
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1461
    |nameOfClass nameOfMetaclass|
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1462
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1463
    nameOfClass := aClass theNonMetaclass name.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1464
    nameOfMetaclass := aClass theMetaclass name.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1465
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1466
    self do:[:aChange | 
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1467
        |changeClassName changeClass|
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1468
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1469
        changeClassName := aChange className.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1470
        (changeClassName = nameOfClass) ifTrue:[^ true].
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1471
        (changeClassName = nameOfMetaclass) ifTrue:[^ true].
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1472
1127
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1473
        changeClass := aChange changeClass.
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1474
        (changeClass notNil
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1475
        and:[changeClass isPrivate
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1476
        and:[changeClass owningClass == aClass]]) ifTrue:[
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1477
            ^ true
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1478
        ]
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1479
    ].
b009373b0feb +includesChangeForClassOrMetaclassOrPrivateClassOf
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  1480
    ^ false
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1481
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1482
    "Modified (format): / 25-07-2012 / 16:50:26 / cg"
1885
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1483
!
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1484
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1485
includesChangeForClassOrMetaclassOrPrivateClassOfAny:aCollectionOfClasses
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1486
    |namesOfClasses namesOfMetaclasses|
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1487
3176
bf3e3ac08152 Don't do collect:[] as:Array and select:[] as:Array
Stefan Vogel <sv@exept.de>
parents: 3174
diff changeset
  1488
    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
  1489
    namesOfMetaclasses := (aCollectionOfClasses collect:[:eachClass | eachClass theMetaclass name]) asArray.
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1490
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1491
    self do:[:aChange | 
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1492
        |changeClassName changeClass|
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1493
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1494
        changeClassName := aChange className.
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1495
        (namesOfClasses includes:changeClassName) ifTrue:[^ true].
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1496
        (namesOfMetaclasses includes:changeClassName) ifTrue:[^ true].
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1497
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1498
        changeClass := aChange changeClass.
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1499
        (changeClass notNil and:[changeClass isPrivate]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1500
            (aCollectionOfClasses includes:changeClass owningClass) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1501
                ^ true
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1502
            ].
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1503
        ]
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1504
    ].
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1505
    ^ false
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1506
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1507
    "Created: / 08-09-2011 / 04:24:26 / cg"
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1508
!
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1509
1885
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1510
includesChangeForPackage:aPackageID
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1511
    ^ self changedPackages includes:aPackageID
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1512
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1513
"/    ^ self contains:[:aChange | aChange package = aPackageID]
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1514
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1515
    "
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1516
     ChangeSet current includesChangeForPackage:'stx:libbasic'
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1517
    "
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1518
b77dd687e497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1883
diff changeset
  1519
    "Created: / 25-10-2006 / 18:06:55 / cg"
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1520
!
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1521
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1522
selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:aCollectionOfClasses 
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1523
    "return the set of classes from a given collection, for which I have changes."
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1524
    
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1525
    |selected alreadyProcessed classes prev|
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1526
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1527
    classes := (aCollectionOfClasses 
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1528
            collect:[:eachClass | eachClass theNonMetaclass]) as:IdentitySet.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1529
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1530
    selected := IdentitySet new.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1531
    alreadyProcessed := IdentitySet new.
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1532
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1533
    self do:[:eachChange | 
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1534
        |changeClassName changeClass isIn|
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1535
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1536
        changeClass := eachChange changeClass.
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1537
        (changeClass notNil and:[changeClass ~~ prev]) ifTrue:[
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1538
            changeClass := changeClass theNonMetaclass.
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1539
            (alreadyProcessed includes:changeClass) ifFalse:[
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1540
                (classes includes:changeClass) ifTrue:[
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1541
                    selected add:changeClass
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1542
                ].
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1543
                
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1544
                "/ Care for private classes. If one of its owningClass
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1545
                "/ is in the given collection, add **that owningClass** into
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1546
                "/ result too!!!!
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1547
                
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1548
                changeClass isPrivate ifTrue:[
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1549
                    |owner|
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1550
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1551
                    owner := changeClass owningClass.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1552
                    [owner notNil] whileTrue:[
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1553
                        (classes includes:owner) ifTrue:[
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1554
                            selected add:owner.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1555
                            owner := nil.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1556
                        ] ifFalse:[
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1557
                            owner := owner owningClass.
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1558
                        ].
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1559
                    ].
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1560
                ].
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1561
                alreadyProcessed add: changeClass.
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1562
            ].
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1563
            prev := changeClass.
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1564
        ].
2845
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1565
    ].
914991e2dbd7 added: #changesForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2819
diff changeset
  1566
    ^ selected.
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1567
2907
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1568
    "Created: / 04-09-2012 / 14:01:37 / cg"
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  1569
    "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
  1570
!
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1571
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1572
selectForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:aCollectionOfClasses
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1573
    "select changes for one of a given class.
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1574
     Returns a collection of changes"
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1575
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1576
    |selected  classes |
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1577
3176
bf3e3ac08152 Don't do collect:[] as:Array and select:[] as:Array
Stefan Vogel <sv@exept.de>
parents: 3174
diff changeset
  1578
    classes := (aCollectionOfClasses collect:[:eachClass | eachClass theNonMetaclass]) asArray.
2907
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1579
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1580
    selected := ChangeSet new.
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1581
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1582
    self do:[:eachChange | 
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1583
        |changeClassName changeClass isIn|
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1584
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1585
        changeClass := eachChange changeClass.
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1586
        (changeClass notNil) ifTrue:[
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1587
            changeClass := changeClass theNonMetaclass.
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1588
            ((classes includes:changeClass)
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1589
                or: [
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1590
                    changeClass isPrivate
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1591
                    and: [ (classes includes:changeClass owningClass) ]
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1592
                ]
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1593
            ) ifTrue:[
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1594
                selected add: eachChange
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1595
            ].
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1596
        ]
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1597
    ].
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1598
    ^ selected.
dd00eb010669 added: #selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:
Claus Gittinger <cg@exept.de>
parents: 2902
diff changeset
  1599
2519
Claus Gittinger <cg@exept.de>
parents: 2491
diff changeset
  1600
    "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
  1601
! !
cdc9ddc19155 added query for a class being in a changeSet
Claus Gittinger <cg@exept.de>
parents: 985
diff changeset
  1602
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1603
!ChangeSet methodsFor:'utilities'!
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1604
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1605
apply
3222
a6996f259211 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3218
diff changeset
  1606
    "apply all changes in the receiver's changeSet"
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1607
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1608
    self do:[:aChange |
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  1609
        aChange apply
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1610
    ]
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1611
!
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1612
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1613
condenseChanges
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1614
    | changesToRemove changesToKeep |
2951
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1615
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1616
    changesToKeep := self class new.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1617
    changesToRemove := self class new.
2951
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1618
    self reverseDo:[:change|
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1619
        (changesToKeep anySatisfy:[:each|each isForSameAs: change])
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1620
            ifTrue:[changesToRemove add: change]
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1621
            ifFalse:[changesToKeep add: change]
fb2a78a9064a changed: #condenseChanges:
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  1622
    ].
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1623
    self condenseChanges: changesToRemove.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1624
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1625
    "Created: / 22-10-2008 / 13:05:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1626
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  1627
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1628
condenseChanges:changesToRemove
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1629
    "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
  1630
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1631
    changesToRemove notEmpty ifTrue:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1632
        changedClasses := changeSelectors := nil.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1633
        self removeAll:changesToRemove.
2953
70c659738d00 comment/format in: #condenseChangesForRemoved
Claus Gittinger <cg@exept.de>
parents: 2952
diff changeset
  1634
        "/ self changed. "/  -- removeAll already sends out a notification
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1635
        Smalltalk changed:#currentChangeSet with:self.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1636
    ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1637
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1638
    "Created: / 12-10-2006 / 16:51:11 / cg"
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1639
!
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1640
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1641
condenseChangesForClass:aClass 
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1642
    "remove all changes for aClass
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1643
     (i.e. leave changes for other classes)."
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1644
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1645
    self condenseChangesForClass:aClass package:nil
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1646
!
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1647
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1648
condenseChangesForClass:aClass package:aPackageSymbol
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1649
    "remove all changes for aClass and aPackageSymbol
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1650
     (i.e. leave methodChanges for other packages).
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  1651
     This is invoked when a class is checked into the repository."
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1652
1186
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1653
    self condenseChangesForClass:aClass selector:nil package:aPackageSymbol
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1654
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1655
    "Modified: / 5.11.2001 / 14:29:22 / cg"
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1656
!
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1657
1830
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1658
condenseChangesForClass:aClass selector:aSelector
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1659
    "remove all changes for aClass >> selector."
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1660
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1661
    self condenseChangesForClass:aClass selector:aSelector package:nil
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1662
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1663
    "Created: / 26-09-2006 / 17:22:59 / cg"
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1664
!
a44c9beee9a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  1665
1186
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1666
condenseChangesForClass:aClass selector:selectorOrNil package:aPackageSymbol
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1667
    "remove all changes for aClass/selector and aPackageSymbol
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1668
     (i.e. leave methodChanges for other packages).
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1669
     If selectorOrNil is nil, all changes for that class are removed;
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1670
     otherwise, only changes for the given selector.
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1671
     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
  1672
945
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1673
    |changesToRemove className metaClassName chgCls|
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1674
945
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1675
    className := aClass theNonMetaclass name.
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1676
    metaClassName := aClass theMetaclass name.
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1677
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1678
    changesToRemove := self select:[:aChange | 
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1679
        |chgClassName chgClass removeThis mClass mthd|
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1680
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1681
        removeThis := false.
945
f9e349d38d49 care for metaclasses when condensing changeSet
Claus Gittinger <cg@exept.de>
parents: 944
diff changeset
  1682
        chgClassName := aChange className.
1168
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1683
        (chgClassName = className or:[chgClassName = metaClassName]) ifTrue:[
1187
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1684
            removeThis := true
944
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1685
        ] ifFalse:[
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1686
            chgCls := aChange changeClass.
1718
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1687
            chgCls isNil ifTrue:[
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1688
                (chgClassName startsWith:(aClass name,':')) ifTrue:[
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1689
                    "a change for a private class of a no-longer present one..."
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1690
                        removeThis := true
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1691
                ].
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1692
            ].
c5b36c490912 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
  1693
944
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1694
            (chgCls notNil
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1695
            and:[chgCls isPrivate
1190
02e2436893b6 condense after checkin: also condense sub-sub-private classes
Claus Gittinger <cg@exept.de>
parents: 1188
diff changeset
  1696
            and:[chgCls topOwningClass == aClass]]) ifTrue:[
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1697
                removeThis := true
944
f4cb7e9b034b when condensing, also care for private classes
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1698
            ]
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1699
        ].
1186
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1700
        selectorOrNil notNil ifTrue:[
1187
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1701
            (aChange isMethodChange or:[aChange isMethodRemoveChange]) ifFalse:[
1186
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1702
                removeThis := false.
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1703
            ] ifTrue:[
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1704
                aChange selector = selectorOrNil ifFalse:[
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1705
                    removeThis := false.
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1706
                ].
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1707
            ]
a47e1a5770c2 condensing after an extensions-checkin fixed
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
  1708
        ].
1187
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1709
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1710
        removeThis ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1711
            aChange isMethodChange ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1712
                mClass := aChange changeClass.
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1713
                mClass notNil ifTrue:[
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1714
                    mthd := mClass compiledMethodAt:(aChange selector).
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1715
                    mthd isNil ifTrue:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1716
                        "/ mthd does no longer exist
1168
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1717
"/ I no longer understand what this was meant for .. (sigh)
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1718
"/                        aPackageSymbol notNil ifTrue:[
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1719
"/                            removeThis := false
48ec2c3c4151 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1167
diff changeset
  1720
"/                        ]
1096
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1721
                    ] ifFalse:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1722
                        (aPackageSymbol notNil and:[mthd package ~= aPackageSymbol]) ifTrue:[
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1723
                            removeThis := false
4a949a840bb3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1088
diff changeset
  1724
                        ]
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1725
                    ]
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1726
                ]
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1727
            ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1728
        ].
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1729
        removeThis
1301
b747d11e7ff8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1292
diff changeset
  1730
    ].
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1731
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1732
    self condenseChanges:changesToRemove
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1733
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1734
    "Modified: / 12-10-2006 / 16:51:38 / cg"
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1735
!
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1736
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1737
condenseChangesForExtensionsInPackage:aPackageSymbol
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1738
    "remove all changes for aClass and aPackageSymbol
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1739
     (i.e. leave methodChanges for other packages).
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1740
     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
  1741
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1742
    |changesToRemove|
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1743
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1744
    changesToRemove := OrderedCollection new.
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1745
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1746
    changesToRemove := self select:[:aChange | 
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1747
        |removeThis mClass mthd|
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1748
1187
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1749
        (aChange isMethodChange or:[aChange isMethodRemoveChange]) ifTrue:[
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1750
            removeThis := false.
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1751
            mClass := aChange changeClass.
2954
610092201d2c changed: #condenseChangesForExtensionsInPackage:
Claus Gittinger <cg@exept.de>
parents: 2953
diff changeset
  1752
            (mClass notNil and:[mClass package ~= aPackageSymbol]) ifTrue:[
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1753
                mthd := mClass compiledMethodAt:(aChange selector).
1187
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1754
                mthd isNil ifTrue:[
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1755
                    aChange isMethodRemoveChange ifTrue:[
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1756
                        removeThis := true
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1757
                    ].
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1758
                ] ifFalse:[
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1759
                    mthd package = aPackageSymbol ifTrue:[
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1760
                        removeThis := true
f63ecc7dbaff condenseChange fixes (if baseClass or extensions are checked in)
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
  1761
                    ]
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1762
                ]
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1763
            ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1764
        ].
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1765
        removeThis
1087
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1766
    ].
5aaf7da2882d condense changes for extensions
Claus Gittinger <cg@exept.de>
parents: 1085
diff changeset
  1767
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1768
    self condenseChanges:changesToRemove
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1769
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1770
    "Created: / 05-11-2001 / 14:21:17 / cg"
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1771
    "Modified: / 12-10-2006 / 16:51:32 / cg"
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1772
!
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1773
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1774
condenseChangesForPackage:aPackageSymbol
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1775
    "remove all changes for aPackageSymbol
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1776
     This is invoked when a project is checked into the repository."
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1777
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1778
    |changesToRemove|
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1779
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1780
    changesToRemove := self select:[:aChange | 
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1781
        |removeThis mClass mthd|
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1782
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1783
        removeThis := false.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1784
        (aChange isMethodChange or:[aChange isMethodRemoveChange]) ifTrue:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1785
            mClass := aChange changeClass.
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1786
            mClass notNil ifTrue:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1787
                mthd := mClass compiledMethodAt:(aChange selector).
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1788
                mthd isNil ifTrue:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1789
                    aChange isMethodRemoveChange ifTrue:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1790
                        removeThis := (mClass package = aPackageSymbol)
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1791
                    ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1792
                ] ifFalse:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1793
                    removeThis := (mthd package = aPackageSymbol)
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1794
                ]
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1795
            ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1796
        ] ifFalse:[
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1797
            (aChange isClassChange) ifTrue:[
1883
40975a15e85f *** empty log message ***
sr
parents: 1876
diff changeset
  1798
                (aChange changeClass notNil) ifTrue:[
40975a15e85f *** empty log message ***
sr
parents: 1876
diff changeset
  1799
                    removeThis := (aChange changeClass package = aPackageSymbol)     
40975a15e85f *** empty log message ***
sr
parents: 1876
diff changeset
  1800
                ].
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1801
            ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1802
        ].
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1803
        removeThis
1521
ea6cb41e4523 send out a change notification, when I condensed
Claus Gittinger <cg@exept.de>
parents: 1479
diff changeset
  1804
    ].
ea6cb41e4523 send out a change notification, when I condensed
Claus Gittinger <cg@exept.de>
parents: 1479
diff changeset
  1805
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1806
    self condenseChanges:changesToRemove
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1807
1521
ea6cb41e4523 send out a change notification, when I condensed
Claus Gittinger <cg@exept.de>
parents: 1479
diff changeset
  1808
    "Created: / 05-11-2001 / 14:21:17 / cg"
1865
89d9aef483b2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1842
diff changeset
  1809
    "Modified: / 12-10-2006 / 16:51:27 / cg"
878
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1810
!
99583ccfe415 *** empty log message ***
ps
parents: 877
diff changeset
  1811
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1812
diffSetsAgainst:anotherChangeSet
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1813
    "walk over the receiver and anotherChangeSet,
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1814
     add all changes to one of the tree lists:
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1815
        onlyInReceiver, onlyInArg or changed,
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1816
     each being a changeSet containing corresponding changes.
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  1817
     WARNING: 
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  1818
        destructive; could modify both the receiver and the argument by possibly
2633
5a5460e5231a comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2626
diff changeset
  1819
        changing methodChanges into categoryChanges"
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1820
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1821
    |otherChangeIndicesBySelector otherNonMethodChangeIndices changeIndicesBySelector nonMethodChangeIndices
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1822
     onlyInReceiver onlyInArg changedMethods same
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1823
     indexFromChangedMethodsToA indexFromChangedMethodsToB
864
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1824
     "info" ret|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1825
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1826
    onlyInReceiver := ChangeSet new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1827
    onlyInArg      := ChangeSet new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1828
    changedMethods := ChangeSet new.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1829
    same           := ChangeSet new.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1830
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1831
    indexFromChangedMethodsToA := OrderedCollection new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1832
    indexFromChangedMethodsToB := OrderedCollection new.
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1833
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1834
    otherChangeIndicesBySelector := Dictionary new.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1835
    otherNonMethodChangeIndices := OrderedCollection new.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1836
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1837
    "/ 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
  1838
    anotherChangeSet keysAndValuesDo:[:idxB :aChangeInB |
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1839
        |setOfOtherChangeIndicesForThisSelector|
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1840
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1841
        aChangeInB isMethodChange ifTrue:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1842
            setOfOtherChangeIndicesForThisSelector := otherChangeIndicesBySelector at:(aChangeInB selector) ifAbsentPut:[OrderedCollection new].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1843
            setOfOtherChangeIndicesForThisSelector add:idxB.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1844
        ] ifFalse:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1845
            otherNonMethodChangeIndices add:idxB
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1846
        ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1847
    ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1848
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1849
    self keysAndValuesDo:[:idxA :aChangeInA |
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1850
        |indicesOfChangesToExplore anyFound ch|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1851
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1852
        anyFound := false.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1853
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1854
        aChangeInA isMethodChange ifTrue:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1855
            indicesOfChangesToExplore := otherChangeIndicesBySelector at:(aChangeInA selector) ifAbsent:#()
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1856
        ] ifFalse:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1857
            indicesOfChangesToExplore := otherNonMethodChangeIndices.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1858
        ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1859
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1860
        indicesOfChangesToExplore do:[:idxB |
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1861
            |aChangeInB|
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1862
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1863
            aChangeInB := anotherChangeSet at:idxB.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1864
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1865
            (aChangeInA isForSameAs:aChangeInB) ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1866
                anyFound := true.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1867
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1868
                "/ also in B - is it different ?
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1869
                (aChangeInA sameAs:aChangeInB) ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1870
                    changedMethods add:aChangeInA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1871
                    indexFromChangedMethodsToA add:idxA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1872
                    indexFromChangedMethodsToB add:idxB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1873
                ] ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1874
                    aChangeInA isMethodChange ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1875
                        aChangeInA methodCategory ~= aChangeInB methodCategory ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1876
                            "/ only the category is different;
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1877
                            "/ make it a MethodCategory changes.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1878
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1879
                            ch := MethodCategoryChange new
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1880
                                    className:aChangeInA className
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1881
                                    selector:aChangeInA selector
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1882
                                    category:aChangeInA methodCategory;
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1883
                                    "JV@2012-03-20: Also keeps origin, required by merge tool"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1884
                                    origin: aChangeInA.
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1885
                            self at:idxA put:ch.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1886
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1887
                            ch := MethodCategoryChange new
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1888
                                    className:aChangeInB className
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1889
                                    selector:aChangeInB selector
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1890
                                    category:aChangeInB methodCategory;
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1891
                                    "JV@2012-03-20: Also keeps origin, required by merge tool"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1892
                                    origin: aChangeInB.
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1893
                            anotherChangeSet at:idxB put:ch.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1894
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1895
                            changedMethods add:aChangeInA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1896
                            indexFromChangedMethodsToA add:idxA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1897
                            indexFromChangedMethodsToB add:idxB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1898
                        ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1899
                    ].
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1900
                ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1901
            ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1902
                (aChangeInA sameAs:aChangeInB) ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1903
                    anyFound := true.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1904
                ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1905
                ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1906
            ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1907
        ].
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1908
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1909
        anyFound ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1910
            onlyInReceiver add:aChangeInA.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1911
        ]
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1912
    ].
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1913
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1914
    "/ 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
  1915
    changeIndicesBySelector := Dictionary new.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1916
    nonMethodChangeIndices := OrderedCollection new.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1917
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1918
    self keysAndValuesDo:[:idxA :aChangeInA |
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1919
        |setOfChangeIndicesForThisSelector|
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1920
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1921
        aChangeInA isMethodChange ifTrue:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1922
            setOfChangeIndicesForThisSelector := changeIndicesBySelector at:(aChangeInA selector) ifAbsentPut:[OrderedCollection new].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1923
            setOfChangeIndicesForThisSelector add:idxA.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1924
        ] ifFalse:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1925
            nonMethodChangeIndices add:idxA
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1926
        ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1927
    ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1928
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1929
    anotherChangeSet keysAndValuesDo:[:idxB :aChangeInB |
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1930
        |anyFound indicesOfChangesToExplore|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1931
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1932
        anyFound := false.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1933
1200
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1934
        aChangeInB isMethodChange ifTrue:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1935
            indicesOfChangesToExplore := changeIndicesBySelector at:(aChangeInB selector) ifAbsent:#()
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1936
        ] ifFalse:[
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1937
            indicesOfChangesToExplore := nonMethodChangeIndices.
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1938
        ].
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1939
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1940
        indicesOfChangesToExplore do:[:idxA |
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1941
            |aChangeInA idxM|
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1942
2da3e026f94d much faster diffSet generation - watch out - report bugs to cg
Claus Gittinger <cg@exept.de>
parents: 1191
diff changeset
  1943
            aChangeInA := self at:idxA.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1944
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1945
            (aChangeInA isForSameAs:aChangeInB) ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1946
                anyFound := true.
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1947
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1948
                "/ also in B - is it different ?
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1949
                (aChangeInA sameAs:aChangeInB) ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1950
                    "/ already there ?
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1951
                    idxM := changedMethods findFirst:[:c | c isForSameAs:aChangeInB].
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1952
                    idxM == 0 ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1953
                        changedMethods add:aChangeInB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1954
                        indexFromChangedMethodsToB add:idxB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1955
                    ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1956
                        indexFromChangedMethodsToB at:idxM put:idxB
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1957
                    ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1958
                ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1959
            ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1960
                (aChangeInA sameAs:aChangeInB) ifTrue:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1961
                    anyFound := true.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1962
                ] ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1963
                ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1964
            ]
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1965
        ].
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1966
        anyFound ifFalse:[
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1967
            onlyInArg add:aChangeInB.
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1968
        ]
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1969
    ].
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1970
864
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1971
"/    info := OrderedCollection new:(changedMethods size).
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1972
"/    changedMethods keysAndValuesDo:[:idx :changedMethod |
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1973
"/        info add:(Array 
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1974
"/                        with:(indexFromChangedMethodsToA at:idx)
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1975
"/                        with:(indexFromChangedMethodsToB at:idx)
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1976
"/                 )
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1977
"/    ].
1450
0ec14b2064fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
  1978
    changedMethods := (1 to:changedMethods size) asOrderedCollection collect:[:idx |
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1979
                        |cA cB|
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1980
946
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1981
                        cA := self at:(indexFromChangedMethodsToA at:idx).
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1982
                        cB := anotherChangeSet at:(indexFromChangedMethodsToB at:idx).
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1983
                        Array with:cA with:cB
11f09459b0f5 comment
Claus Gittinger <cg@exept.de>
parents: 945
diff changeset
  1984
                      ].
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  1985
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1986
    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
  1987
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1988
    ret := DiffSet new
1450
0ec14b2064fb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
  1989
                changed:changedMethods
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1990
                onlyInReceiver:onlyInReceiver
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1991
                onlyInArg:onlyInArg
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1992
                same: same.
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  1993
"/    ret info:info.
864
4f35b96a799e checkin from browser
ps
parents: 860
diff changeset
  1994
    ^ret
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  1995
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  1996
    "Modified: / 12-10-2006 / 22:22:39 / cg"
2633
5a5460e5231a comment/format in:
Claus Gittinger <cg@exept.de>
parents: 2626
diff changeset
  1997
    "Modified (comment): / 01-12-2011 / 19:12:55 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  1998
    "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
  1999
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2000
2412
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2001
diffSetsAgainstImage
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2002
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2003
    |imageChangeSet|
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2004
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2005
    imageChangeSet := self class new.
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2006
    self changedClasses do:
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2007
	[:class|
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2008
	(class isMetaclass or:[class isPrivate]) ifFalse:
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2009
	    [imageChangeSet addAll:
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2010
		(self class fromStream: class source asString readStream)]].
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2011
    ^self diffSetsAgainst: imageChangeSet
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2012
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2013
    "Created: / 04-12-2007 / 16:03:28 / janfrog"
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2014
!
13197e877a9e Extension methods from libsvn
vrany
parents: 2376
diff changeset
  2015
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2016
flatten
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2017
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2018
    | flatten |
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2019
    flatten := self class new: self size.
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2020
    self do:[:ea|ea do:[:ea2|flatten add: ea2]].
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2021
    ^flatten
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2022
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2023
    "Created: / 29-10-2010 / 14:40:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2024
!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2025
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2026
groupBy: groupBlock labelAs: labelBlock
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2027
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2028
    "
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2029
        returns a new changeset consisting of CompositeChanges.
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2030
        Changes are grouped together by value (tag) of groupBlock.
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2031
        Each composite change is then labeled using label
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2032
        returned by labelBlock (called with the tag returned
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2033
        by groupBlock as arg)
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2034
    "
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2035
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2036
    ^ self groupBy: groupBlock labelAs: labelBlock sort: false
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2037
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2038
    "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
  2039
    "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
  2040
    "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
  2041
    "Modified: / 30-08-2011 / 16:07:30 / cg"
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2042
!
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2043
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2044
groupBy: groupBlock labelAs: labelBlock sort: doSort
2626
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2045
    "returns a new changeset consisting of CompositeChanges.
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2046
     Changes are grouped together by value (tag) of groupBlock.
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2047
     Each composite change is then labeled using label
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2048
     returned by labelBlock (called with the tag returned
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2049
     by groupBlock as arg)"
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2050
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2051
    | buckets newChangeset keys |
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2052
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2053
    buckets := OrderedDictionary new.
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2054
    self do:[:change| 
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2055
        | tag |
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2056
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2057
        tag := groupBlock value: change.
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2058
        (buckets at: tag ifAbsentPut: [self class new:4]) add: change
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2059
    ].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2060
    newChangeset := self class new: buckets size.
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2061
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2062
    keys := buckets keys select:[:k | k notNil].
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2063
    doSort ifTrue:[ keys sort ].
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2064
    keys do:[:tag |
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2065
        |changes classDefs|
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2066
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2067
        changes := buckets at:tag.
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2068
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2069
        "Move class definition to the front"
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2070
        classDefs := changes select:[:chg|chg isClassDefinitionChange].
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2071
        changes removeAll: classDefs.
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2072
        changes addAllFirst: classDefs.
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2073
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2074
        tag notNil ifTrue:[
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2075
            newChangeset add:
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2076
                (CompositeChange 
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2077
                    name: (labelBlock value: tag)
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2078
                    changes: changes)
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2079
        ]
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2080
    ].
2626
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2081
    (buckets includesKey: nil) ifTrue:[
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2082
        newChangeset addAll: (buckets at: nil)
0ac000060c44 changed: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2617
diff changeset
  2083
    ].
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2084
    ^newChangeset
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2085
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2086
    "Created: / 24-07-2009 / 23:17:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2087
    "Modified: / 25-07-2009 / 19:40:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2088
    "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
  2089
    "Created: / 30-08-2011 / 16:07:01 / cg"
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2090
!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2091
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2092
groupByClass
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2093
    |nm|
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2094
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2095
    ^self
2491
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2096
        groupBy: [:change|
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2097
            change isClassChange ifTrue: [
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2098
                nm := change className.
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2099
                (nm endsWith:' class') ifTrue:[nm := nm copyTo: nm size - 6].
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2100
                nm
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2101
            ] ifFalse: [
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2102
                nil
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2103
            ]
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2104
        ]
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2105
        labelAs: [:className|
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2106
            className
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2107
        ]
882e07ee86bd added: #groupBy:labelAs:sort:
Claus Gittinger <cg@exept.de>
parents: 2469
diff changeset
  2108
        sort: true
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2109
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2110
    "Created: / 25-07-2009 / 19:43:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2111
    "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
  2112
    "Modified: / 30-08-2011 / 16:08:38 / cg"
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2113
!
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2114
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2115
saveSignedToFile:aFilename
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2116
    "write the changeSet to a signed file in chunk format"
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2117
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2118
    self saveSignedToFile:aFilename format:nil
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2119
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2120
    "Created: / 08-02-2011 / 11:18:54 / cg"
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2121
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2122
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2123
saveSignedToFile:aFilename format:formatSymbolOrNil
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2124
    "write the changeSet to a signed file in some format.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2125
     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
  2126
     Nil is chunk format (currently, the only supported)"
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2127
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2128
    |s pkcs7SignedData|
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2129
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2130
    self assert: (Smalltalk at:#'Expecco::KeyFileGenerator') notNil.
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2131
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2132
    s := WriteStream on:(String new:2000).
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2133
    self saveToStream:s format:formatSymbolOrNil.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2134
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2135
    pkcs7SignedData := (Smalltalk at:#'Expecco::KeyFileGenerator') new signExpeccoCode:s contents.
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2136
    aFilename asFilename contents:pkcs7SignedData.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2137
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2138
    "Modified (comment): / 26-07-2012 / 12:15:58 / cg"
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2139
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2140
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2141
saveToFile:aFilename
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2142
    "write the changeSet to a regular file in chunk format"
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2143
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2144
    self saveToFile:aFilename format:nil
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2145
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2146
    "Created: / 08-02-2011 / 11:18:46 / cg"
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2147
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2148
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2149
saveToFile:aFilename format:formatSymbolOrNil
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2150
    "Writes the changeSet to a regular file in some format.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2151
     Supported formats are:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2152
       nil ............ chunk changeset file
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2153
       #classSource ... class fileout format, assumes that
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2154
                        the receiver is a changeset containing
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2155
                        single class (possibly with its private 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2156
                        classes)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2157
    "
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2158
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2159
    |s|
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2160
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2161
    s := aFilename asFilename writeStream.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2162
    self saveToStream:s format:formatSymbolOrNil.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2163
    s close.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2164
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2165
    "Created: / 08-02-2011 / 11:20:06 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2166
    "Modified (comment): / 31-07-2012 / 13:38:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2167
!
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2168
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2169
saveToStream:aStream format:formatSymbolOrNil
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2170
    "Writes the changeSet to a stream in some format.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2171
     Supported formats are:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2172
       nil ............ chunk changeset file
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2173
       #classSource ... class fileout format, assumes that
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2174
                        the receiver is a changeset containing
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2175
                        single class (possibly with its private 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2176
                        classes)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2177
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2178
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2179
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2180
    formatSymbolOrNil isNil ifTrue:[
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2181
        self do:[:eachChange |
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2182
            eachChange isMethodCodeChange ifTrue:[
3174
44cb62a8b8de class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3157
diff changeset
  2183
                aStream nextPutAll:'!!'; nextPutAll:(eachChange className); nextPutAll:' methodsFor: '.
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2184
                aStream nextPutAll:(eachChange methodCategory storeString).
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2185
                aStream nextPutLine:'!!'.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2186
                aStream cr.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2187
                aStream nextPutAll:(eachChange source).
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2188
                aStream nextPutLine:'!! !!'.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2189
           ] ifFalse:[
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2190
                aStream nextPutAll:(eachChange source).
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2191
                aStream nextPutLine:'!!'.
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2192
            ].
2469
4a02caf1782d changed: #saveToStream:format:
Claus Gittinger <cg@exept.de>
parents: 2412
diff changeset
  2193
            aStream cr.
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2194
        ].
2852
9e670f6d2145 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
  2195
        ^ self
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2196
    ].
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2197
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2198
    formatSymbolOrNil == #classSource ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2199
        ClassSourceWriter new 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2200
            fileOut:self 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2201
            on:aStream 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2202
            withTimeStamp:false 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2203
            withInitialize:true 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2204
            withDefinition:true
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2205
            methodFilter:nil encoder:nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2206
        ^self.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2207
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2208
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2209
    self error:'Unknown format, possible formats are { nil, #classSource }'
2323
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2210
3c9f00f9ca34 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2322
diff changeset
  2211
    "Created: / 08-02-2011 / 11:25:16 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2212
    "Modified: / 20-03-2012 / 14:06:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2213
    "Modified (comment): / 31-07-2012 / 13:38:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
857
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2214
! !
0a1a91c94e53 diff utility
Claus Gittinger <cg@exept.de>
parents: 829
diff changeset
  2215
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2216
!ChangeSet::ChangeFileReader methodsFor:'accessing'!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2217
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2218
changeAction:aBlock
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2219
    changeAction := aBlock.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2220
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2221
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2222
changeSet:something
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2223
    "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
  2224
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2225
    changeSet := something.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2226
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2227
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2228
inputStream:aStream
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2229
    inputStream := aStream.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2230
! !
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2231
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2232
!ChangeSet::ChangeFileReader methodsFor:'helpers'!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2233
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2234
addChange:change
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2235
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2236
    timestamp notNil ifTrue:[change timeStamp: timestamp].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2237
    timestamp := nil.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2238
    change isClassChange ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2239
        change package: Class packageQuerySignal query.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2240
    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2241
2008
204b171a553d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1977
diff changeset
  2242
    changeAction 
204b171a553d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1977
diff changeset
  2243
        valueWithOptionalArgument:change 
204b171a553d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1977
diff changeset
  2244
        and:lineNumber 
204b171a553d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1977
diff changeset
  2245
        and:position.
204b171a553d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1977
diff changeset
  2246
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2247
    "Modified: / 29-01-2013 / 19:32:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2248
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2249
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2250
checkReceiverIsGlobalNamed:expectedName
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2251
    ^ self variableNameOfReceiver = expectedName
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2252
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2253
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2254
classNameOf:aReceiver
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2255
    "old"
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2256
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2257
    | nameSpace isMeta clsNode clsName |
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2258
    nameSpace := Class nameSpaceQuerySignal query.
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2259
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2260
    isMeta := false.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2261
    classIsJava := false.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2262
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2263
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2264
    (aReceiver isUnaryMessage and:[aReceiver selector == #class]) ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2265
        isMeta := true.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2266
        clsNode := aReceiver receiver.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2267
    ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2268
        clsNode := aReceiver.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2269
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2270
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2271
    clsNode isMessage ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2272
        "Normal smalltalk method on Smalltalk class"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2273
        clsName := clsNode name
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2274
    ] ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2275
        "Maybe a Java class?"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2276
        ((clsNode selector == #classForName:) and:[clsNode receiver name = 'Java']) ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2277
            clsName := '(Java classForName:''%1'')' bindWith: clsNode arguments first value.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2278
            classIsJava := true.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2279
        ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2280
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2281
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2282
    isMeta ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2283
        clsName := clsName , ' class'.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2284
    ].
2376
d7311cfb8a5f Jan's changes
vrany
parents: 2323
diff changeset
  2285
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2286
    (nameSpace ~~ Smalltalk and:[(clsName startsWith: nameSpace name) not])
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2287
        ifTrue:[
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2288
            ^ nameSpace name , '::' , clsName
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2289
        ] ifFalse:[     
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2290
            ^ clsName
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2291
        ].
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2292
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2293
    "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
  2294
!
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2295
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2296
classNameOfRememberingNamespace:aReceiver
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2297
    "new"
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2298
3247
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2299
    | nameSpace isMeta clsNode clsName |
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2300
    nameSpace := Class nameSpaceQuerySignal query.
3195
5ce601cd8a45 class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  2301
3247
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2302
    isMeta := false.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2303
    classIsJava := false.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2304
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2305
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2306
    (aReceiver isUnaryMessage and:[aReceiver selector == #class]) ifTrue:[
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2307
        isMeta := true.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2308
        clsNode := aReceiver receiver.
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2309
    ] ifFalse:[
3247
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2310
        clsNode := aReceiver.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2311
    ].
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2312
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2313
    clsNode isMessage ifFalse:[
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2314
        "Normal smalltalk method on Smalltalk class"
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2315
        clsName := clsNode name
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2316
    ] ifTrue:[
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2317
        "Maybe a Java class?"
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2318
        ((clsNode selector == #classForName:) and:[clsNode receiver name = 'Java']) ifTrue:[
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2319
            clsName := '(Java classForName:''%1'')' bindWith: clsNode arguments first value.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2320
            classIsJava := true.
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2321
        ].
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2322
    ].
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2323
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2324
    isMeta ifTrue:[
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2325
        clsName := clsName , ' class'.
3195
5ce601cd8a45 class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  2326
    ].
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2327
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2328
    (nameSpace ~~ Smalltalk and:[(clsName startsWith: nameSpace name) not])
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2329
        ifTrue:[
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2330
            "/ old: remember namespace in name
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2331
            "/ ^ nameSpace name , '::' , clsName
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2332
            "/ new: remember in override
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2333
            nameSpaceOverride := nameSpace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2334
            ^ clsName
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2335
        ] ifFalse:[
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2336
            nameSpaceOverride := nil.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2337
            ^ clsName
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2338
        ].
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2339
3247
09f7b7abf87c Bugfix for Java extension methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3246
diff changeset
  2340
    "Modified: / 01-05-2013 / 17:57:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2341
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2342
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2343
extractMethodsClassAndSelectorFromReceiver
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2344
    "helper for all changes which are of the form:
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2345
        (className compiledMethodAt:#methodSelector) something: ...
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2346
    "
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2347
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2348
    (receiver isMessage
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2349
    and:[receiverSelector == #'compiledMethodAt:']) ifFalse:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2350
        self error:'unexpected change' mayProceed:true.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2351
        ^ false.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2352
    ].
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2353
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2354
    "/ className := self classNameOf:receiverReceiver.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2355
    className := self classNameOfRememberingNamespace:receiverReceiver.
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2356
    self assert:className notNil.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2357
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2358
    methodSelector := (receiver arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2359
    self assert:methodSelector notNil.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2360
    ^ true.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2361
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2362
    "Created: / 27-07-2012 / 21:33:47 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2363
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2364
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2365
receiversClassName
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2366
    ^ self classNameOf:receiver
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2367
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2368
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2369
receiversClassNameRememberingNamespace
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2370
    ^ self classNameOfRememberingNamespace:receiver
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2371
!
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2372
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2373
variableNameOfReceiver
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2374
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2375
    receiver isVariable ifFalse:[ ^ nil ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2376
    ^ receiver name
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2377
! !
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2378
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2379
!ChangeSet::ChangeFileReader methodsFor:'reading'!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2380
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2381
changesFromParseTree:aTree lineNumber:initialLineNumberOrNil position:initialPositionOrNil
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2382
    "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
  2383
     create changes and evaluate changeAction on each.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2384
     The chnageAction-block is invoked with the change and a lineNumberOrNil as
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2385
     arg; the lineNumber is only valid, if the underlying inputStream 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2386
     provides line-numbers; otherwise, nil is passed."
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2387
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2388
    ^self changesFromParseTree:aTree lineNumber:initialLineNumberOrNil position:initialPositionOrNil chunk: nil
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2389
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2390
    "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
  2391
!
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2392
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2393
changesFromParseTree:aTree lineNumber:initialLineNumberOrNil position:initialPositionOrNil chunk: initialChunkOrNil
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2394
    "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
  2395
     create changes and evaluate changeAction on each.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2396
     The chnageAction-block is invoked with the change and a lineNumberOrNil as
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2397
     arg; the lineNumber is only valid, if the underlying inputStream 
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2398
     provides line-numbers; otherwise, nil is passed."
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2399
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2400
    lineNumber := initialLineNumberOrNil.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2401
    position := initialPositionOrNil.
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2402
    chunk := initialChunkOrNil.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2403
    parseTree := aTree.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2404
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2405
    selector := aTree selector.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2406
    receiver := aTree receiver.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2407
    arguments := aTree arguments.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2408
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2409
    receiver isMessage ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2410
        receiverSelector := receiver selector.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2411
        receiverReceiver := receiver receiver.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2412
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2413
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2414
    ^ self processChange
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2415
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2416
    "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
  2417
! !
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2418
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2419
!ChangeSet::ChangeFileReader methodsFor:'reading-private'!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2420
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2421
handleCategoriesForChange
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2422
    |selector category categories attributes change|
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2423
2256
b98137d2aa30 changed: #changesFromStream:for:reader:do:
Claus Gittinger <cg@exept.de>
parents: 2247
diff changeset
  2424
    selector := arguments first value.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2425
    className := self receiversClassNameRememberingNamespace.
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2426
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2427
    categories := OrderedCollection new.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2428
    attributes := OrderedCollection new.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2429
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2430
    [
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2431
        inputStream skipSeparators.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2432
        category := inputStream nextChunk.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2433
        category notEmptyOrNil
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2434
    ] whileTrue:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2435
        ( #( 'public' 'private' ) includes: category) ifTrue:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2436
            attributes add:category
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2437
        ] ifFalse:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2438
            categories add:category
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2439
        ].
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2440
    ].
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2441
    categories size == 1 ifTrue:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2442
        "/ easy
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2443
        change := MethodCategoryChange 
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2444
                        className:className
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2445
                        selector:selector
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2446
                        source:(parseTree printString)
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2447
                        category:(categories first).
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2448
        change nameSpaceOverride:nameSpaceOverride.
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2449
        self addChange:change.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2450
    ] ifFalse:[
2298
Claus Gittinger <cg@exept.de>
parents: 2290
diff changeset
  2451
        self halt:'multiple/missing categories not supported'.
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2452
    ].
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2453
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2454
    attributes size == 1 ifTrue:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2455
        "/ easy
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2456
        (attributes first = 'public') ifTrue:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2457
            "/ default anyway - ignore
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2458
        ] ifFalse:[
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2459
            change := MethodPrivacyChange 
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2460
                        className:className
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2461
                        selector:selector
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2462
                        privacy:(attributes first asSymbol).
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2463
            change nameSpaceOverride:nameSpaceOverride.
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2464
            change source:(parseTree printString).
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2465
            self addChange:change.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2466
        ].
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2467
    ] ifFalse:[
2298
Claus Gittinger <cg@exept.de>
parents: 2290
diff changeset
  2468
        self halt:'multiple/missing attributes not supported'.
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2469
    ].
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2470
    ^ true
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2471
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2472
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2473
handleClassCommentChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2474
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2475
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2476
    className := self receiversClassNameRememberingNamespace.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2477
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2478
    change := ClassCommentChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2479
    change className:className comment:(arguments at:1) evaluate.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2480
    change nameSpaceOverride:nameSpaceOverride.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2481
    change source:(parseTree printString).
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2482
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2483
    ^ true
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
handleClassDefinitionChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2487
    |nameSpace change|
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
    className := (arguments at:1) evaluate.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2490
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2491
    nameSpace := Class nameSpaceQuerySignal query.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2492
    (nameSpace == Smalltalk) ifTrue:[ nameSpace := nil ].
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2493
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2494
    "/ old: remember namespace in className
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2495
"/    nameSpace ~~ Smalltalk ifTrue:[
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2496
"/        className := nameSpace name , '::' , className
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2497
"/    ].
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2498
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2499
    change := ClassDefinitionChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2500
    change className:className; source:(parseTree printString).
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2501
    "/ new: remember in override
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2502
    change nameSpaceOverride:nameSpace.
1453
27882f000bc9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1450
diff changeset
  2503
    receiver isVariable ifTrue:[
27882f000bc9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1450
diff changeset
  2504
        change superClassName:receiver name.
27882f000bc9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1450
diff changeset
  2505
    ].
1428
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2506
    selector keywords with:arguments do:[:kw :arg |
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2507
        kw = #'instanceVariableNames:' ifTrue:[
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2508
            change instanceVariableNames:arg evaluate.
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2509
        ].
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2510
        kw = #'classVariableNames:' ifTrue:[
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2511
            change classVariableNames:arg evaluate.
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2512
        ].
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2513
        kw = #'poolDictionaries:' ifTrue:[
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2514
            change poolDictionaries:arg evaluate.
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2515
        ].
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2516
        kw = #'category:' ifTrue:[
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2517
            change category:arg evaluate.
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2518
        ].
2125
3c071cecc2b0 changed: #handleClassDefinitionChange
fm
parents: 2122
diff changeset
  2519
        kw = #'privateIn:' ifTrue:[
2290
882d87800dea private class handling
Claus Gittinger <cg@exept.de>
parents: 2279
diff changeset
  2520
            change className:(arg name ,'::',change classNameWithoutNamespace).
882d87800dea private class handling
Claus Gittinger <cg@exept.de>
parents: 2279
diff changeset
  2521
            change owningClassName:(arg name).
882d87800dea private class handling
Claus Gittinger <cg@exept.de>
parents: 2279
diff changeset
  2522
            change private:true.
2125
3c071cecc2b0 changed: #handleClassDefinitionChange
fm
parents: 2122
diff changeset
  2523
        ].
1428
807f0bc05504 more state in classdefinition change
Claus Gittinger <cg@exept.de>
parents: 1422
diff changeset
  2524
    ].
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2525
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2526
    change package:(Class packageQuerySignal query).
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2527
"/        nameSpace ~~ Smalltalk ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2528
"/            change nameSpaceName:(nameSpace name).
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2529
"/        ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2530
"/
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2531
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2532
    ^ true
2290
882d87800dea private class handling
Claus Gittinger <cg@exept.de>
parents: 2279
diff changeset
  2533
882d87800dea private class handling
Claus Gittinger <cg@exept.de>
parents: 2279
diff changeset
  2534
    "Modified: / 30-08-2010 / 13:56:32 / cg"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2535
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2536
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2537
handleClassInitializeChange 
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2538
    |change|
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2539
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2540
    change := DoItChange new source: chunk.
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2541
    self addChange: change.
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2542
    ^ true
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2543
!
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2544
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2545
handleClassInstanceVariableDefinitionChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2546
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2547
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2548
    className := self receiversClassNameRememberingNamespace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2549
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2550
    change := ClassInstVarDefinitionChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2551
    change className:className.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2552
    change nameSpaceOverride:nameSpaceOverride.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2553
    change source:(parseTree printString).
2617
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  2554
    change classInstVarNames:(parseTree arguments first value asCollectionOfWords asArray).
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2555
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2556
    ^ true
2617
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  2557
a9e632776c57 visitor support (for monticello);
Claus Gittinger <cg@exept.de>
parents: 2524
diff changeset
  2558
    "Modified: / 25-11-2011 / 17:40:49 / cg"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2559
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2560
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2561
handleMethodCategoryChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2562
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2563
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2564
    self extractMethodsClassAndSelectorFromReceiver ifFalse:[
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2565
        ^ false.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2566
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2567
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2568
    change := MethodCategoryChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2569
    change 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2570
        className:className
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2571
        selector:methodSelector
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2572
        category:(arguments at:1) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2573
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2574
    change nameSpaceOverride:nameSpaceOverride.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2575
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2576
    ^ true
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2577
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2578
    "Modified: / 27-07-2012 / 21:34:42 / cg"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2579
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2580
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2581
handleMethodCategoryRenameChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2582
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2583
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2584
    className := self receiversClassNameRememberingNamespace.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2585
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2586
    change := MethodCategoryRenameChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2587
    change 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2588
        className:className;
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2589
        oldCategoryName:(arguments at:1) evaluate
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2590
        newCategoryName:(arguments at:2) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2591
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2592
    change nameSpaceOverride:nameSpaceOverride.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2593
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2594
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2595
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2596
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2597
handleMethodChange
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2598
    [
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2599
        ^ self handleMethodChangeUnsafe
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2600
    ] on: Error do:[:ex|
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2601
        | change |
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2602
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2603
        change := InvalidChange new source: chunk.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2604
        self addChange: change.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2605
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2606
        "Read methods that may follow"    
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2607
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2608
        [ (chunk := inputStream nextChunk) notEmptyOrNil ] whileTrue:[
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2609
            change := InvalidChange new source: chunk.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2610
            self addChange: change.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2611
        ]
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2612
    ].
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2613
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2614
    ^ true
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2615
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2616
    "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
  2617
!
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2618
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2619
handleMethodChangeUnsafe
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2620
    |priv categoryName methodSource changes change parser |
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2621
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2622
    className := self receiversClassNameRememberingNamespace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2623
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2624
    (selector == #'ignoredMethodsFor:') ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2625
        priv := #ignored.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2626
    ] ifFalse:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2627
        priv := nil
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2628
    ].
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2629
    classIsJava := false.
1977
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2630
    ((selector == #'methods') 
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2631
    or:[(selector == #'publicMethods')
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2632
    or:[(selector == #'methodsFor')]]) ifTrue:[
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2633
        categoryName := 'uncategorized public'
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2634
    ] ifFalse:[
1977
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2635
        (selector == #'privateMethods') ifTrue:[
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2636
            categoryName := 'uncategorized private'
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2637
        ] ifFalse:[
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2638
            categoryName := (arguments at:1) evaluate.
3694111ead95 publicMethods & privateMethods detection
fm
parents: 1969
diff changeset
  2639
        ]
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2640
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2641
    inputStream skipSeparators.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2642
    lineNumber := inputStream lineNumber.
3376
a0e06d192df4 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3360
diff changeset
  2643
    position := inputStream position + 1.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2644
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2645
    methodSource := chunk := inputStream nextChunk.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2646
    changes := OrderedCollection new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2647
1395
6ea99b157f6b Use #setFilename:forClass:package: to define an abbreviation
Stefan Vogel <sv@exept.de>
parents: 1389
diff changeset
  2648
    [methodSource notEmptyOrNil] whileTrue:[
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2649
        parser := Parser
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2650
                    parseMethodArgAndVarSpecification:methodSource 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2651
                    in:nil 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2652
                    ignoreErrors:true 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2653
                    ignoreWarnings:true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2654
                    parseBody:false.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2655
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2656
        parser isNil ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2657
            "/ something wierd ...
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2658
            methodSelector := '????'.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2659
        ] ifFalse:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2660
            methodSelector := parser selector.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2661
        ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2662
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2663
        change := MethodChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2664
        change 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2665
            className:className
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2666
            selector:methodSelector
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2667
            source:methodSource
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2668
            category:categoryName
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2669
            privacy:priv.
3248
d892aad61780 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3247
diff changeset
  2670
        "/ huh - where is classIsJava: implemented???
d892aad61780 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3247
diff changeset
  2671
        classIsJava ifTrue:[ change classIsJava: classIsJava ].
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2672
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2673
        change nameSpaceOverride:nameSpaceOverride.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2674
        self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2675
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2676
        inputStream skipSeparators.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2677
        lineNumber := inputStream lineNumber.
3376
a0e06d192df4 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3360
diff changeset
  2678
        position := inputStream position + 1.
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2679
        methodSource := chunk := inputStream nextChunk.
1174
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
    ^ true
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2682
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2683
    "Created: / 24-01-2012 / 16:52:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  2684
    "Modified: / 30-01-2013 / 09:57:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1174
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
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2687
handleMethodPackageChange
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2688
    |change|
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2689
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2690
    self extractMethodsClassAndSelectorFromReceiver ifFalse:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2691
        ^ false.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2692
    ].
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2693
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2694
    change := MethodPackageChange new.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2695
    change 
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2696
        className:className
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2697
        selector:methodSelector
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2698
        package:(arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2699
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2700
    change nameSpaceOverride:nameSpaceOverride.
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2701
    self addChange:change.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2702
    ^ true
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2703
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2704
    "Created: / 27-07-2012 / 21:31:25 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2705
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2706
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2707
handleMethodPrivacyChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2708
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2709
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2710
    self extractMethodsClassAndSelectorFromReceiver ifFalse:[
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2711
        ^ false.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2712
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2713
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2714
    change := MethodPrivacyChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2715
    change 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2716
        className:className
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2717
        selector:methodSelector
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2718
        privacy:(arguments at:1) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2719
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2720
    change nameSpaceOverride:nameSpaceOverride.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2721
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2722
    ^ true
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2723
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  2724
    "Modified: / 27-07-2012 / 21:35:20 / cg"
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2725
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2726
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2727
handleNameSpaceCreationChange
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2728
    |change|
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2729
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2730
    (self checkReceiverIsGlobalNamed:#Namespace) ifFalse:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2731
        (self checkReceiverIsGlobalNamed:#NameSpace) ifFalse:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2732
            self error:'unexpected receiver in nameSpace message' mayProceed:true.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2733
            ^ false
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2734
        ].
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2735
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2736
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2737
    className := (arguments at:1) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2738
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2739
    change := NameSpaceCreationChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2740
    change name:className.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2741
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2742
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2743
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2744
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2745
handlePrimitiveChange 
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2746
    self handlePrimitiveChange:nil
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2747
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2748
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2749
handlePrimitiveChange: sourceOrNil
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2750
    "if sourceOrNil is nil, the def has not been read and must be read from
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2751
     the next chunk. Otherwise, it has been already read as argument."
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2752
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2753
    |change primSource|
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2754
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2755
    className := self receiversClassNameRememberingNamespace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2756
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2757
    sourceOrNil notNil ifTrue:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2758
        primSource := sourceOrNil
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2759
    ] ifFalse:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2760
        inputStream skipSeparators.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2761
        primSource := inputStream nextChunk.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2762
    ].
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2763
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2764
    (selector == #'primitiveDefinitions' or:[ selector == #'primitiveDefinitions:' ]) ifTrue:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2765
        change := ClassPrimitiveDefinitionsChange new
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2766
    ] ifFalse:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2767
        (selector == #'primitiveFunctions' or:[ selector == #'primitiveFunctions:' ]) ifTrue:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2768
            change := ClassPrimitiveFunctionsChange new
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2769
        ] ifFalse:[
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2770
            change := ClassPrimitiveVariablesChange new
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2771
        ]
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2772
    ].
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2773
    change className:className source:primSource.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2774
    change nameSpaceOverride:nameSpaceOverride.
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2775
    self addChange:change.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2776
    ^ true
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2777
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2778
    "Created: / 27-07-2012 / 21:39:55 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2779
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  2780
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2781
handleRemoveClassChange
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2782
    |change|
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2783
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2784
    (self checkReceiverIsGlobalNamed:#Smalltalk) ifFalse:[
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2785
        self error:'unexpected receiver in remove-class message' mayProceed:true.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2786
        ^ false
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2787
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2788
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2789
    className := (arguments at:1) name.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2790
"/            nameSpace ~~ Smalltalk ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2791
"/                className := nameSpace name , '::' , className
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2792
"/            ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2793
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2794
    change := ClassRemoveChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2795
    change className:className.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2796
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2797
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2798
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2799
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2800
handleRemoveMethodChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2801
    |change|
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2802
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2803
    className := self receiversClassName.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2804
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2805
    methodSelector := (arguments at:1) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2806
    change := MethodRemoveChange new.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2807
    change className:className selector:methodSelector.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2808
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2809
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2810
!
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
handleRenameClassChange
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2813
    |oldName newName change|
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2814
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2815
    (self checkReceiverIsGlobalNamed:#Smalltalk) ifFalse:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2816
        self error:'unexpected receiver in rename-class message' mayProceed:true.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2817
        ^ false.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2818
    ].
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
    oldName := (arguments at:1) name.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2821
    newName := (arguments at:2) evaluate.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2822
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2823
    change := ClassRenameChange new oldName:oldName newName:newName.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  2824
    self addChange:change.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2825
    ^ true
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2826
!
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2827
1181
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2828
handleSqueakCommentStamp
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2829
    |comment change|
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2830
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2831
    inputStream skipSeparators.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2832
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2833
    comment := inputStream nextChunk.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2834
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2835
    className := self receiversClassNameRememberingNamespace.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2836
1181
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2837
    change := ClassCommentChange new.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2838
    change className:className comment:comment.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2839
    change source:(parseTree printString).
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2840
    self addChange:change.
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2841
    ^ true
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2842
!
e13c86138164 more to read squeak change sets
Claus Gittinger <cg@exept.de>
parents: 1176
diff changeset
  2843
1183
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2844
handleVW7ClassDefinitionChange
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2845
    |nameSpace change|
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2846
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2847
    nameSpace := receiver.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2848
    className := (arguments at:1) evaluate.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2849
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2850
"/    nameSpace := Class nameSpaceQuerySignal query.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2851
"/    nameSpace ~~ Smalltalk ifTrue:[
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2852
"/        className := nameSpace name , '::' , className
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2853
"/    ].
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2854
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2855
    change := ClassDefinitionChange new.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2856
    change className:className; source:(parseTree printString).
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2857
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2858
    change package:(Class packageQuerySignal query).
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2859
    self addChange:change.
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2860
    ^ true
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2861
!
419dc41ad796 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  2862
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2863
processChange
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2864
    "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
  2865
     create changes and evaluate changeAction on each.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2866
     The block is invoked with the change and a lineNumberOrNil as
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2867
     arg; the lineNumber is only valid, if the underlying stream 
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2868
     provides line-numbers; otherwise, nil is passed."
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2869
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2870
    [
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2871
        ^ self processChangeUnsafe
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2872
    ] on: Error do:[:ex|
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2873
        | change |
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2874
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2875
        change := DoItChange new source: chunk.
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2876
        self addChange: change.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2877
    ].
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2878
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2879
    ^true
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2880
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2881
    "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
  2882
!
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2883
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2884
processChangeUnsafe
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2885
    "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
  2886
     create changes and evaluate changeAction on each.
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2887
     The block is invoked with the change and a lineNumberOrNil as
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2888
     arg; the lineNumber is only valid, if the underlying stream 
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2889
     provides line-numbers; otherwise, nil is passed."
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2890
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2891
    |dispatchSelector|
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2892
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2893
    dispatchSelector := ('process_',(selector copyReplaceAll:$: with:$_)) asSymbol.
2122
3ffe8c94f2cc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2117
diff changeset
  2894
"/ Transcript showCR:dispatchSelector.
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  2895
    (self respondsTo:dispatchSelector) ifTrue:[
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2896
        ^ self perform:dispatchSelector.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2897
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2898
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2899
    "/ any subclass definiton selector ?
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2900
    (Behavior definitionSelectors includes:selector)
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2901
    ifTrue:[
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2902
        ^ self handleClassDefinitionChange.
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2903
    ].
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2904
3195
5ce601cd8a45 class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3184
diff changeset
  2905
    self error:'unhandled change selector: ',selector.
1174
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  2906
    ^ false
2745
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2907
c2f7200248e7 More robust changeset reading - creates InvalidChange when an error
vrany
parents: 2633
diff changeset
  2908
    "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
  2909
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2910
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2911
processInfo: string
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2912
    "Processes 'info record' - an info record consist of a chunk containing
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2913
     single string literal starting with ----, such as:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2914
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2915
    '---- timestamp jv@neso 12-03-2012 10:49:40 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2916
    '---- snapshot st.img 30-03-2012 11:40:24 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2917
    '---- 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
  2918
    '---- rake update 30-03-2012 11:40:24 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2919
    '---- start 30-03-2012 11:40:24 ----'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2920
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2921
    timestamp info records are (for historical reasons) processed in ChangeSet
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2922
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2923
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2924
    | kind sel |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2925
    inputStream skip: 5.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2926
    kind := inputStream upTo: Character space.
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2927
    (kind endsWith:$:) ifTrue:[
3229
de46a97e1a0c Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 3222
diff changeset
  2928
        kind := kind copyButLast:1
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2929
    ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2930
    sel := ('process_', kind) asSymbolIfInterned.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2931
    sel notNil ifTrue:[
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2932
        MessageNotUnderstood handle:[   
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2933
            self process_otherInfo:kind    
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2934
        ] do:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2935
            self perform: sel.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2936
        ]
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2937
    ] ifFalse:[   
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2938
        self process_otherInfo:kind    
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2939
    ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2940
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2941
    "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
  2942
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  2943
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2944
process_categoriesFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2945
    "'categoriesFor:' chunk (Dolphin)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2946
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2947
    ^ self handleCategoriesForChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2948
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2949
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2950
process_category_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2951
    "'category:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2952
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2953
    ^ self handleMethodCategoryChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2954
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2955
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2956
process_commentStamp_prior_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2957
    "'commentStamp:prior::' chunk (Squeak)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2958
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2959
    ^ self handleSqueakCommentStamp.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2960
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2961
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2962
process_comment_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2963
    "'comment:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2964
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2965
    ^ self handleClassCommentChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2966
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2967
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2968
process_encoding
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2969
    "St/X encoding info record. Ignored"
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2970
!
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  2971
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2972
process_ignoredMethodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2973
    "'ignoredMethodsFor:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2974
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2975
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2976
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2977
3197
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2978
process_initialize
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2979
    "'class initialize' chunk"
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2980
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2981
    ^ self handleClassInitializeChange
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2982
!
e7da5ac31b96 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3195
diff changeset
  2983
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2984
process_instanceVariableNames_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2985
    "'instanceVariableNames:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2986
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2987
    ^ self handleClassInstanceVariableDefinitionChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2988
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2989
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2990
process_methods
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2991
    "'methods' chunk (ST/V and dolphin)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2992
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2993
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2994
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2995
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2996
process_methodsFor
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2997
    "'methodsFor' chunk (ST/V and dolphin)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2998
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  2999
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3000
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3001
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3002
process_methodsForUndefined_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3003
    "'methodsForUndefined:' chunk (?)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3004
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3005
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3006
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3007
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3008
process_methodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3009
    "'methodsFor:' chunk (ST/80, Squeak, ST/X, VW, ...)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3010
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3011
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3012
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3013
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3014
process_methodsFor_stamp_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3015
    "'methodsFor:stamp:' chunk (Squeak)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3016
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3017
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3018
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3019
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3020
process_name_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3021
    "'name:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3022
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3023
    ^ self handleNameSpaceCreationChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3024
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3025
3184
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3026
process_otherInfo:what
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3027
    "'---- <what> 12-03-2012 10:49:40 ----'
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3028
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3029
    '<what>' is already read from inputStream.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3030
    "
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3031
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3032
    "/ inputStream skipSeparators.
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3033
    self addChange: (InfoChange type: what data: (inputStream upToEnd) timestamp: nil)
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3034
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3035
    "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
  3036
!
ca653a71c27f class: ChangeFileReader
Claus Gittinger <cg@exept.de>
parents: 3176
diff changeset
  3037
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3038
process_package_
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3039
    "'package:' chunk (ST/X)"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3040
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3041
    ^ self handleMethodPackageChange.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3042
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3043
    "Created: / 27-07-2012 / 21:36:30 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3044
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3045
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3046
process_primitiveDefinitions
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3047
    "'primitiveDefinitions' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3048
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3049
    ^ self handlePrimitiveChange:nil.
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3050
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3051
    "Modified: / 27-07-2012 / 21:40:33 / cg"
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3052
!
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3053
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3054
process_primitiveDefinitions_
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3055
    "'primitiveDefinitions:' chunk (ST/X)"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3056
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3057
    ^ self handlePrimitiveChange: (arguments at:1) evaluate.
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:42:03 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3060
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3061
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3062
process_primitiveFunctions
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3063
    "'primitiveFunctions' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3064
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3065
    ^ self handlePrimitiveChange:nil.
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3066
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3067
    "Modified: / 27-07-2012 / 21:40:23 / cg"
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3068
!
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3069
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3070
process_primitiveFunctions_
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3071
    "'primitiveFunctions:' chunk (ST/X)"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3072
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3073
    ^ self handlePrimitiveChange: (arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3074
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3075
    "Created: / 27-07-2012 / 21:37:21 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3076
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3077
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3078
process_primitiveVariables
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3079
    "'primitiveVariables' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3080
2867
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3081
    ^ self handlePrimitiveChange:nil.
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3082
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3083
    "Modified: / 27-07-2012 / 21:40:35 / cg"
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3084
!
6d868612727b fix reading primitiveDefinitions and package changes
Claus Gittinger <cg@exept.de>
parents: 2852
diff changeset
  3085
2892
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3086
process_primitiveVariables_
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3087
    "'primitiveVariables:' chunk (ST/X)"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3088
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3089
    ^ self handlePrimitiveChange: (arguments at:1) evaluate.
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3090
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3091
    "Created: / 27-07-2012 / 21:41:49 / cg"
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3092
!
0a8a369149e9 Added lost methods
vrany
parents: 2881
diff changeset
  3093
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3094
process_privacy_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3095
    "'privacy:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3096
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3097
    ^ self handleMethodPrivacyChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3098
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3099
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3100
process_privateMethods
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3101
    "'privateMethods' chunk (ST/V and dolphin)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3102
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3103
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3104
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3105
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3106
process_privateMethodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3107
    "'privateMethodsFor:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3108
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3109
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3110
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3111
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3112
process_protectedMethodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3113
    "'protectedMethodsFor:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3114
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3115
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3116
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3118
process_publicMethods
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3119
    "'publicMethods' chunk (ST/V and dolphin)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3120
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3121
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3122
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3123
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3124
process_publicMethodsFor_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3125
    "'publicMethodsFor:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3126
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3127
    ^ self handleMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3128
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3129
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3130
process_rake
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3131
    "Rake build system info record
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3132
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3133
    '---- rake update st.img 12-03-2012 10:49:40 ----'!!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3134
    '---- rake compile st.img 12-03-2012 10:49:40 ----'!!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3135
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3136
    'rake' is already read from inputStream.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3137
    "
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3138
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3139
    | ts what |
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3140
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3141
    inputStream skipSeparators.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3142
    what := inputStream through: Character space. "/read snapshot name
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3143
    inputStream through: Character space. "/skip username@host
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3144
    ts := Timestamp readFrom: inputStream.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3145
    self addChange: (InfoChange type: #rake data: what timestamp: ts)
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3146
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3147
    "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
  3148
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3149
2117
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3150
process_removeClass_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3151
    "'removeClass:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3152
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3153
    ^ self handleRemoveClassChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3154
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3155
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3156
process_removeSelector_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3157
    "'removeSelector:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3158
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3159
    ^ self handleRemoveMethodChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3160
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3161
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3162
process_renameCategory_to_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3163
    "'renameCategory:to:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3164
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3165
    ^ self handleMethodCategoryRenameChange.
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3166
!
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3167
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3168
process_renameClass_to_
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3169
    "'renameClass:to:' chunk (ST/X)"
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3170
4ff77bbf9f89 refactored for more flexible changeChunk handling
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
  3171
    ^ self handleRenameClassChange.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3172
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3173
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3174
process_snapshot
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3175
    "St/X system start info record
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3176
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3177
    '---- snapshot st.img 12-03-2012 10:49:40 ----'!!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3178
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3179
    'start' is already read from inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3180
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3181
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3182
    | ts file |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3183
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3184
    inputStream skipSeparators.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3185
    file := inputStream through: Character space. "/read snapshot name
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3186
    ts := Timestamp readFrom: inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3187
    self addChange: (InfoChange type: #snapshot data: file timestamp: ts)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3188
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3189
    "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
  3190
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3191
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3192
process_start
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3193
    "St/X system start info record
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3194
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3195
    '---- start 12-03-2012 10:49:40 ----'!!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3196
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3197
    'start' is already read from inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3198
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3199
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3200
    | ts |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3201
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3202
    inputStream skipSeparators.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3203
    ts := Timestamp readFrom: inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3204
    self addChange: (InfoChange type: #start data: nil timestamp: ts)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3205
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3206
    "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
  3207
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3208
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3209
process_timestamp
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3210
    "St/X timestamp info record. Example:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3211
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3212
    '---- timestamp jv@neso 12-03-2012 10:49:40 ----'!!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3213
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3214
    'timestamp' is already read from inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3215
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3216
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3217
    inputStream skipSeparators; through: Character space. "/read username@host
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3218
    timestamp := Timestamp readFrom: inputStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3219
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3220
    "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
  3221
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3222
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3223
!ChangeSet::ClassSourceWriter methodsFor:'private'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3224
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3225
analyze
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3226
    "Analyzes changeset an build some index"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3227
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3228
    classInfos := Dictionary new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3229
    metaInfos := Dictionary new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3230
    topClassName := nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3231
    "Pass 1 - collect classes"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3232
    changeSetBeingSaved do:[:change|
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3233
        | pkg |
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3234
        pkg := change package.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3235
        packageName isNil ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3236
            packageName := pkg.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3237
        ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3238
            "/Just a defensive check...
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3239
            self assert: (pkg isNil or:[pkg = packageName]) description: 'STC does not support multiple packages in source files'.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3240
        ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3241
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3242
        change isClassDefinitionChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3243
            | nm ns |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3244
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3245
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3246
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3247
            nm := change className.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3248
            (nm endsWith:' class') ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3249
                (classInfos includesKey: nm) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3250
                    self error:'Multiple definitions of class ', nm.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3251
                    ^self.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3252
                ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3253
                classInfos at: nm put: (ClassInfo new name: nm).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3254
                metaInfos at: nm put: (ClassInfo new name: nm , ' class').
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3255
                change isPrivateClassDefinitionChange ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3256
                    topClassName notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3257
                        self error: ('Multiple top class definitions (%1 vs %2)' bindWith: topClassName with: nm).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3258
                        ^self.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3259
                    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3260
                    topClassName := nm.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3261
                    namespaceName := change nameSpaceName.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3262
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3263
                ]
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3264
            ]
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3265
        ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3266
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3267
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3268
    "/ Could be an extension container...
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3269
    topClassName isNil ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3270
        ^self
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3271
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3272
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3273
    "Pass 2: fill in infos"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3274
    changeSetBeingSaved do:[:change|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3275
        change isClassChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3276
            | nm info |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3277
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3278
            nm := change className.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3279
            (nm endsWith: ' class') ifTrue:[
3269
84de19204303 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3248
diff changeset
  3280
                info := metaInfos at: (nm copyButLast:(' class' size)).
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3281
            ] ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3282
                info := classInfos at: nm.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3283
                "Fill superclass info..."                
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3284
                change isClassDefinitionChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3285
                    | superNm |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3286
                    superNm := change superClassName.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3287
                    (classInfos includesKey: superNm) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3288
                        info superclass: (classInfos at: superNm).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3289
                        (metaInfos at: nm) superclass: (classInfos at: superNm).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3290
                    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3291
                ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3292
            ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3293
            info addChange: change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3294
        ]
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
    classInfos do:[:info|info namespace: namespaceName].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3298
    metaInfos  do:[:info|info namespace: namespaceName].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3299
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3300
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3301
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3302
        ChangeSet::ClassSourceWriter new
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3303
            changeSetBeingSaved: (ChangeSet forExistingClass: ChangeSet);
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3304
            analyze;
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3305
            yourself
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3306
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3307
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3308
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3309
    "Created: / 15-03-2012 / 17:51:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3310
    "Modified: / 01-04-2013 / 11:44:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3311
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3312
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3313
changeSetBeingSaved:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3314
    changeSetBeingSaved := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3315
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3316
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3317
privateClassesOf: classInfo
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3318
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3319
    | classInfoNameSz |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3320
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3321
    classInfoNameSz := classInfo name size.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3322
    ^classInfos values select:[:info|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3323
        info name size > classInfoNameSz and:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3324
            (info name startsWith: classInfo name)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3325
                and:[(info name at:classInfoNameSz + 1) == $:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3326
                    and:[(info name at:classInfoNameSz + 2) == $:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3327
                        and:[(info name indexOf: $: startingAt: classInfo name size + 3) == 0]]]]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3328
    ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3329
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3330
    "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
  3331
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3332
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3333
privateClassesSortedOf: classInfo
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3334
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3335
    |classes|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3336
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3337
    classes := self privateClassesOf: classInfo.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3338
    (classes size > 0) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3339
        classes := classes asOrderedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3340
        classes sort:[:a :b | a name < b name].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3341
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3342
        classes topologicalSort:[:a :b |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3343
            "/ a must come before b iff:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3344
            "/    b is a subclass of a
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3345
            "/    b has a private class which is a subclass of a
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3346
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3347
            |mustComeBefore privateClassesOfB|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3348
            mustComeBefore := (b isSubclassOf:a) or:[b isPrivateClassOf: a].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3349
            mustComeBefore
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3350
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3351
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3352
    ^ classes.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3353
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3354
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3355
     Object privateClassesSorted
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3356
     NewSystemBrowser privateClassesSorted
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3357
     NewSystemBrowser privateClasses
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3358
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3359
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3360
    "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
  3361
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3362
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3363
!ChangeSet::ClassSourceWriter methodsFor:'source writing'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3364
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3365
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
  3366
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3367
    |collectionOfCategories versionMethods comment
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3368
     nonMeta meta classesImplementingInitialize outStream|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3369
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3370
    changeSetBeingSaved := aChangeSet.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3371
    self analyze.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3372
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3373
    encoderOrNil isNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3374
        outStream := outStreamArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3375
    ] ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3376
        outStream := EncodedStream stream:outStreamArg encoder:encoderOrNil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3377
        outStream nextPutAll:'"{ Encoding: ' , encoderOrNil nameOfEncoding , ' }"'; cr; cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3378
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3379
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3380
    "/ Just a bunch of extensions?
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3381
    topClassName isNil ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3382
        self fileOutMethodsOn: outStream. 
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3383
        ^self.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3384
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3385
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3386
    nonMeta := classInfos at: topClassName.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3387
       meta :=  metaInfos at: topClassName.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3388
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3389
    methodsAlreadySaved := Set new.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3390
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3391
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3392
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3393
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3394
     if there is a copyright method, add a copyright comment
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3395
     at the beginning, taking the string from the copyright method.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3396
     We cannot do this unconditionally - that would lead to my copyrights
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3397
     being put on your code ;-).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3398
     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
  3399
     copyright string at the beginning be preserved .... even if the
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3400
     code was edited in the browser and filedOut.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3401
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3402
    self generateHeaderWithCopyrightOn:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3403
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3404
    stampIt ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3405
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3406
        "/ first, a timestamp
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3407
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3408
        outStream nextPutAll:(Smalltalk timeStamp).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3409
        outStream nextPutChunkSeparator. 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3410
        outStream cr; cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3411
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3412
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3413
    withDefinition ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3414
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3415
        "/ then the definition(s)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3416
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3417
        self fileOutAllDefinitionsOf:nonMeta on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3418
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3419
        "/ a comment - if any
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3420
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3421
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3422
        (comment := nonMeta comment) notNil ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3423
            nonMeta printClassNameOn: outStream.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3424
            outStream nextPutAll:' comment:'.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3425
            comment comment storeOn: outStream.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3426
            outStream cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3427
            outStream nextPut:$!!; cr; cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3428
        ].
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3429
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3430
        "/ ST/X primitive definitions - if any
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3431
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3432
        self fileOutPrimitiveSpecsOf: nonMeta on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3433
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3434
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3435
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3436
    "/ methods from all categories in metaclass (i.e. class methods)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3437
    "/ EXCEPT: the version method is placed at the very end, to
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3438
    "/         avoid sourcePosition-shifts when checked out later.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3439
    "/         (RCS expands this string, so its size is not constant)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3440
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3441
    collectionOfCategories := meta categories asSortedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3442
    versionMethods := meta methods select:[:change |AbstractSourceCodeManager isVersionMethodSelector:change selector].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3443
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3444
    collectionOfCategories notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3445
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3446
        "/ documentation first (if any), but not the version method
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3447
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3448
        (collectionOfCategories includes:'documentation') ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3449
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3450
"/            versionMethods do:[:versionMethod |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3451
"/                |source|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3452
"/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3453
"/                source := versionMethod source.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3454
"/                (source isEmptyOrNil or:[(source startsWith:nonMeta nameOfOldVersionMethod) not]) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3455
"/                    "something bad happend to the classes code"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3456
"/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3457
"/                    Class fileOutErrorSignal 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3458
"/                        raiseRequestWith:aClass
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3459
"/                        errorString:' - bad source for version method (uncompiled class file?): ', (versionMethod displayString)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3460
"/                ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3461
"/            ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3462
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3463
            self fileOutCategory:'documentation' of:meta except:versionMethods only:nil methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3464
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3465
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3466
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3467
        "/ initialization next (if any)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3468
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3469
        (collectionOfCategories includes:'initialization') ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3470
            self fileOutCategory:'initialization' of:meta methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3471
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3472
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3473
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3474
        "/ instance creation next (if any)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3475
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3476
        (collectionOfCategories includes:'instance creation') ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3477
            self fileOutCategory:'instance creation' of:meta methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3478
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3479
        collectionOfCategories do:[:aCategory |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3480
            ((aCategory ~= 'documentation')
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3481
            and:[(aCategory ~= 'initialization')
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3482
            and:[aCategory ~= 'instance creation']]) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3483
                self fileOutCategory:aCategory of:meta methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3484
            ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3485
        ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3486
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3487
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3488
    "/ if there are any primitive definitions (vw-like ffi-primitives),
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3489
    "/ file them out first in the order: defines, types.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3490
    "/ 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
  3491
    "/ for the primitive calls.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3492
    nonMeta methodDictionary keysAndValuesDo:[:sel :m |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3493
        m isVisualWorksTypedef ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3494
            self fileOutCategory:m category of:nonMeta except:nil only:(Array with:m) methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3495
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3496
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3497
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3498
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3499
    "/ methods from all categories
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3500
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3501
    collectionOfCategories := nonMeta categories asSortedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3502
    collectionOfCategories notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3503
        collectionOfCategories do:[:aCategory |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3504
            self fileOutCategory:aCategory of:nonMeta methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3505
        ]
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
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3509
    "/ any private classes' methods
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3510
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3511
    (self privateClassesSortedOf: nonMeta) do:[:aClass |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3512
        self fileOutAllMethodsOf:aClass on:outStream methodFilter:methodFilter
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3513
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3514
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
    "/ finally, the previously skipped version method
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3518
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3519
    versionMethods notEmpty ifTrue: [
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3520
        self fileOutCategory:'documentation' of:meta except:nil only:versionMethods methodFilter:methodFilter on:outStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3521
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3522
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3523
    initIt ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3524
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3525
        "/ optionally an initialize message
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3526
        "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3527
        classesImplementingInitialize := OrderedCollection new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3528
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3529
        classInfos values with: metaInfos values do:[:class :meta|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3530
            (meta includesSelector: #initialize) ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3531
                classesImplementingInitialize add: class.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3532
            ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3533
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3534
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3535
        classesImplementingInitialize size ~~ 0 ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3536
            classesImplementingInitialize topologicalSort:[:a :b | b isSubclassOf:a].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3537
            outStream cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3538
            classesImplementingInitialize do:[:eachClass |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3539
                eachClass printClassNameOn:outStream. outStream nextPutAll:' initialize'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3540
                outStream nextPutChunkSeparator.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3541
                outStream cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3542
            ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3543
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3544
    ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3545
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3546
    "Created: / 15-11-1995 / 12:53:06 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3547
    "Modified: / 01-04-1997 / 16:01:05 / stefan"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3548
    "Modified: / 29-09-2011 / 14:53:49 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3549
    "Created: / 15-03-2012 / 17:39:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3550
    "Modified: / 01-05-2013 / 09:17:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3551
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3552
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3553
fileOutAllDefinitionsOf:nonMetaInfo on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3554
    "append expressions on aStream, which defines myself and all of my private classes."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3555
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3556
    | metaInfo |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3557
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3558
    nonMetaInfo definition isPrivateClassDefinitionChange ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3559
        nonMetaInfo definition package notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3560
            aStream nextPutAll: ('"{ Package: ''%1'' }"' bindWith: nonMetaInfo definition package).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3561
            aStream cr; cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3562
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3563
        namespaceName notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3564
            aStream nextPutAll: ('"{ NameSpace: %1 }"' bindWith: namespaceName).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3565
            aStream cr; cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3566
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3567
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3568
3218
55fd620bb475 class: ClassSourceWriter
Claus Gittinger <cg@exept.de>
parents: 3197
diff changeset
  3569
    aStream nextChunkPut: (nonMetaInfo definition definitionStringInNamespace: namespaceName).
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3570
    aStream cr; cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3571
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3572
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3573
    "/ optional classInstanceVariables
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3574
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3575
    metaInfo := metaInfos at: nonMetaInfo name.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3576
    metaInfo definition notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3577
        | anySuperClassInstVar myClass |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3578
        aStream 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3579
            nextPutAll: metaInfo definition className; 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3580
            nextPutAll:' instanceVariableNames:';
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3581
            nextPutAll: (metaInfo definition classInstVarNames asStringWith:' ') storeString.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3582
        "mhmh - good idea; saw this in SmallDraw sourcecode ..."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3583
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3584
        anySuperClassInstVar := false.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3585
        myClass := metaInfo definition changeClass.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3586
        myClass notNil ifTrue:[myClass := myClass theNonMetaclass].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3587
        myClass notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3588
            myClass allSuperclassesDo:[:aSuperClass |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3589
                aSuperClass class instVarNames do:[:ignored | anySuperClassInstVar := true].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3590
            ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3591
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3592
            aStream cr; cr; nextPut:(Character doubleQuote); cr; space.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3593
            anySuperClassInstVar ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3594
                aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3595
                    nextPutLine:'No other class instance variables are inherited by this class.'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3596
            ] ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3597
                aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3598
                    nextPutLine:'The following class instance variables are inherited by this class:'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3599
                aStream cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3600
                myClass allSuperclassesDo:[:aSuperClass |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3601
                    aStream tab; nextPutAll:aSuperClass name; nextPutAll:' - '.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3602
                    aStream nextPutLine:(aSuperClass class instanceVariableString).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3603
                ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3604
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3605
            ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3606
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3607
        aStream nextPut:(Character doubleQuote); cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3608
        aStream nextPut:$!!; cr; cr
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3609
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3610
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3611
    "/ here, the full nameSpace prefixes are output,
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3612
    "/ to avoid confusing stc 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3613
    "/ (which otherwise could not find the correct superclass)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3614
    "/
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3615
    Class fileOutNameSpaceQuerySignal answer:false do:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3616
        Class forceNoNameSpaceQuerySignal answer:true do:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3617
            (self privateClassesSortedOf: nonMetaInfo) do:[:i |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3618
                 self fileOutAllDefinitionsOf:i on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3619
            ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3620
        ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3621
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3622
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3623
    "Created: / 15-10-1996 / 11:15:19 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3624
    "Modified: / 22-03-1997 / 16:11:56 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3625
    "Created: / 15-03-2012 / 19:18:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3626
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3627
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3628
fileOutAllMethodsOf:aClass on:aStream methodFilter:methodFilter
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3629
    | collectionOfCategories meta |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3630
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3631
    meta := metaInfos at: aClass name.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3632
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3633
    collectionOfCategories := meta categories asSortedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3634
    collectionOfCategories notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3635
        collectionOfCategories do:[:aCategory |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3636
            self fileOutCategory:aCategory of:meta  methodFilter:methodFilter on:aStream.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3637
"/            aStream cr.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3638
        ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3639
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3640
    collectionOfCategories := aClass categories asSortedCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3641
    collectionOfCategories notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3642
        collectionOfCategories do:[:aCategory |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3643
            self fileOutCategory:aCategory of:aClass methodFilter:methodFilter on:aStream.
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3644
"/            aStream cr.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3645
        ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3646
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3647
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3648
    (self privateClassesSortedOf: aClass) do:[:privateClass |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3649
        self fileOutAllMethodsOf:privateClass on:aStream methodFilter:methodFilter
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3650
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3651
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3652
    "Created: / 15-10-1996 / 11:13:00 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3653
    "Modified: / 22-03-1997 / 16:12:17 / cg"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3654
    "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
  3655
    "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
  3656
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3657
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3658
fileOutMethod:change on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3659
    "file a single method onto aStream."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3660
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3661
    | changeToFileOut |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3662
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3663
    change isMethodCategoryChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3664
        self assert: change origin notNil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3665
        changeToFileOut := change origin copy.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3666
        changeToFileOut category: change category.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3667
    ] ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3668
        changeToFileOut := change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3669
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3670
    changeToFileOut source notEmptyOrNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3671
        super fileOutMethod:changeToFileOut on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3672
    ] ifFalse:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3673
"/        self error: 'Should not happen' mayProceed: true.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3674
    ]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3675
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3676
    "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
  3677
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3678
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3679
fileOutMethodsOn:stream
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3680
    "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
  3681
     extensions.st created by source code management. Code stolen from
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3682
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3683
     AbstractSourceCodeManager class>>fileOutSourceCodeExtensions:package:on:version:
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3684
    "
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3685
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3686
    | methodsSortedByName |
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3687
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3688
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3689
        stream nextPutAll:'"{ Package: '''.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3690
        stream nextPutAll:packageName asString.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3691
        stream nextPutAll:''' }"'; nextPutChunkSeparator; cr; cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3692
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3693
"/        s nextPutAll:(Smalltalk timeStamp).
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3694
"/        s nextPutChunkSeparator. 
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3695
"/        s cr; cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3696
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3697
        "/ sort them by name (to avoid conflict due to CVS merge)
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3698
        methodsSortedByName := changeSetBeingSaved.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3699
        methodsSortedByName sort:[:a :b |
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3700
                                    |clsA clsB|
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3701
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3702
                                    clsA := a className.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3703
                                    clsB := b className.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3704
                                    clsA < clsB ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3705
                                        true
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3706
                                    ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3707
                                        clsA > clsB ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3708
                                            false
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3709
                                        ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3710
                                            a selector < b selector
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3711
                                        ]
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3712
                                    ]
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3713
                                  ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3714
        methodsSortedByName do:[:aMethod |
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3715
            |cat source privacy|
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3716
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3717
            self assert: aMethod package = packageName.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3718
            "/self assert: aMethod programmingLanguage isSmalltalk.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3719
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3720
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3721
            stream nextPutChunkSeparator.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3722
            aMethod className printOn: stream.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3723
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3724
            (privacy := aMethod privacy) ~~ #public ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3725
                stream space; nextPutAll:privacy; nextPutAll:'MethodsFor:'.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3726
            ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3727
                stream nextPutAll:' methodsFor:'.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3728
            ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3729
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3730
            cat := aMethod category ? ''.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3731
            stream nextPutAll:cat asString storeString.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3732
            stream nextPutChunkSeparator; cr; cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3733
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3734
            source := aMethod source.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3735
            source isNil ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3736
                "FileOutErrorSignal"Error
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3737
                    raiseRequestWith:self
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3738
                    errorString:(' - no source for method: ' ,
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3739
                                 self className , '>>' ,
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3740
                                 aMethod selector)
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3741
            ] ifFalse:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3742
                stream nextChunkPut:source.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3743
            ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3744
            stream space.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3745
            stream nextPutChunkSeparator.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3746
            stream cr.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3747
        ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3748
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3749
    "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
  3750
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3751
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3752
fileOutPrimitiveSpecsOf: nonMeta on:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3753
    "append primitive defs (if any) to aStream."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3754
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3755
    |s|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3756
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3757
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3758
     primitive definitions - if any
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3759
    "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3760
    (s := nonMeta primitiveDefinitionsString) notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3761
        aStream nextPutChunkSeparator.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3762
        nonMeta printClassNameOn:aStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3763
        aStream nextPutAll:' primitiveDefinitions';
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3764
                nextPutChunkSeparator;
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3765
                cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3766
        aStream nextPutAll:s.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3767
        aStream nextPutChunkSeparator; space; nextPutChunkSeparator; cr; cr
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3768
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3769
    (s := nonMeta primitiveVariablesString) notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3770
        aStream nextPutChunkSeparator.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3771
        nonMeta printClassNameOn:aStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3772
        aStream nextPutAll:' primitiveVariables';
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3773
                nextPutChunkSeparator;
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3774
                cr.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3775
        aStream nextPutAll:s.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3776
        aStream nextPutChunkSeparator; space; nextPutChunkSeparator; cr; cr
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3777
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3778
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3779
    "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
  3780
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3781
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3782
generateHeaderWithCopyrightOn:outStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3783
    |copyrightChange copyrightText|
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3784
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3785
    copyrightChange :=
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3786
        (metaInfos at: topClassName) methodAt: #copyright.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3787
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3788
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3789
    copyrightChange notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3790
        "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3791
         get the copyright method's comment-text, strip off empty and blank lines
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3792
         and insert at beginning.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3793
        "
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3794
        copyrightText := Parser methodCommentFromSource: copyrightChange source.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3795
        copyrightText notEmptyOrNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3796
            copyrightText := copyrightText asCollectionOfLines asStringCollection.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3797
            copyrightText := copyrightText withoutLeadingBlankLines.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3798
            copyrightText := copyrightText withoutTrailingBlankLines.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3799
            copyrightText notEmpty ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3800
                copyrightText addFirst:'"'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3801
                copyrightText addLast:'"'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3802
                copyrightText := copyrightText asString.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3803
                outStream nextPutAllAsChunk:copyrightText.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3804
            ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3805
        ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3806
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3807
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3808
    "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
  3809
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3810
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3811
!ChangeSet::ClassSourceWriter::ClassInfo class methodsFor:'documentation'!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3812
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3813
copyright
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3814
"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3815
 COPYRIGHT (c) 2006 by eXept Software AG
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3816
              All Rights Reserved
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3817
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3818
 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
  3819
 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
  3820
 inclusion of the above copyright notice.   This software may not
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3821
 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
  3822
 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
  3823
 hereby transferred.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3824
"
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3825
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3826
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3827
version_SVN
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  3828
    ^ '$Id: ChangeSet.st,v 1.234 2013-08-10 12:29:04 stefan Exp $'
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3829
! !
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3830
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3831
!ChangeSet::ClassSourceWriter::ClassInfo class methodsFor:'instance creation'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3832
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3833
new
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3834
    "return an initialized instance"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3835
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3836
    ^ self basicNew initialize.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3837
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3838
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3839
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'accessing'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3840
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3841
categories
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3842
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3843
    ^ (methods collect:[:e|e category]) asSet
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3844
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3845
    "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
  3846
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3847
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3848
comment
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3849
    ^ comment
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3850
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3851
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3852
comment:something
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3853
    comment := something.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3854
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3855
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3856
definition
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3857
    ^ definition
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3858
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3859
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3860
definition:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3861
    definition := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3862
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3863
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3864
methodAt: selector 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3865
    ^methods detect:[:each|each selector == selector] ifNone:[nil].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3866
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3867
    "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
  3868
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3869
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3870
methodDictionary
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3871
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3872
    methodDictionary isNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3873
        methodDictionary := Dictionary new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3874
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3875
    ^methodDictionary
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3876
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3877
    "Created: / 19-03-2012 / 18:11:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3878
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3879
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3880
methods
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3881
    ^ methods
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3882
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3883
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3884
methods:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3885
    methods := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3886
    methodDictionary := Dictionary new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3887
    methods do:[:m|methodDictionary at: m selector put: m].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3888
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3889
    "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
  3890
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3891
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3892
name
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3893
    ^ name
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3894
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3895
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3896
name:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3897
    name := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3898
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3899
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3900
namespace
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3901
    ^ namespace
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3902
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3903
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3904
namespace:aString
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3905
    namespace := aString.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3906
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3907
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3908
primitiveDefinitions
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3909
    ^ primitiveDefinitions
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3910
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3911
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3912
primitiveDefinitionsString
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3913
    ^ primitiveDefinitions isNil 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3914
        ifTrue:[nil]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3915
        ifFalse:[primitiveDefinitions source]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3916
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3917
    "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
  3918
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3919
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3920
primitiveFunctions
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3921
    ^ primitiveFunctions
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3922
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3923
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3924
primitiveFunctionsString
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3925
    ^ primitiveFunctions isNil 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3926
        ifTrue:[nil]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3927
        ifFalse:[primitiveFunctions source]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3928
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3929
    "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
  3930
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3931
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3932
primitiveVariables
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3933
    ^ primitiveVariables
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3934
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3935
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3936
primitiveVariablesString
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3937
    ^ primitiveVariables isNil 
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3938
        ifTrue:[nil]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3939
        ifFalse:[primitiveVariables source]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3940
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3941
    "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
  3942
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3943
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3944
selectorAtMethod: m
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3945
    ^m selector
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3946
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3947
    "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
  3948
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3949
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3950
superclass
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3951
    ^ superclass
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3952
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3953
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3954
superclass:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3955
    superclass := something.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3956
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3957
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3958
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'adding'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3959
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3960
addChange: change
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3961
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3962
    change isClassDefinitionChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3963
        self assert: definition isNil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3964
        definition := change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3965
        ^self.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3966
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3967
    change isMethodCodeChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3968
        methods add: change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3969
        ^self.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3970
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3971
    change isMethodCategoryChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3972
        methods add: change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3973
        ^self.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3974
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3975
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3976
    change isClassInstVarDefinitionChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3977
        self assert: definition isNil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3978
        definition := change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3979
        ^self
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3980
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3981
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3982
    change isPrimitiveDefinitionsChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3983
        primitiveDefinitions := change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3984
        ^self
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3985
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3986
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3987
    change isPrimitiveVariablesChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3988
        primitiveVariables := change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3989
        ^self
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
    change isPrimitiveFunctionsChange ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3993
        primitiveFunctions := change.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3994
        ^self
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3995
    ].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  3996
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3997
    change isClassCommentChange ifTrue:[
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3998
        comment := change.
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  3999
        ^self
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4000
    ].
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4001
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4002
    self error: 'Unknown change'
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4003
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4004
    "Created: / 15-03-2012 / 19:12:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4005
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4006
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4007
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'enumerating'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4008
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4009
methodsDo: aBlock
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4010
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4011
    methods do: aBlock
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: / 19-03-2012 / 18:14:19 / 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
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'initialization'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4017
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4018
initialize
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4019
    "Invoked when a new instance is created."
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4020
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4021
    "/ please change as required (and remove this comment)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4022
    "/ name := nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4023
    "/ instDefinition := nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4024
    "/ classDefinition := nil.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4025
    methods := OrderedCollection new.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4026
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4027
    "/ super initialize.   -- commented since inherited method does nothing
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4028
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4029
    "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
  4030
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4031
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4032
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'printing & storing'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4033
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4034
printClassNameOn:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4035
    | nameWithoutNs |
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4036
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4037
    nameWithoutNs := name.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4038
    namespace notNil ifTrue:[
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4039
        self assert: (name startsWith:namespace).
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4040
        nameWithoutNs := nameWithoutNs copyFrom: namespace size + 3.
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
    aStream nextPutAll: nameWithoutNs
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4044
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4045
    "Created: / 19-03-2012 / 18:17:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4046
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4047
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4048
printOn:aStream
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4049
    "append a printed representation if the receiver to the argument, aStream"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4050
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4051
    aStream nextPutAll: self class nameWithoutPrefix.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4052
    aStream nextPutAll:'('.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4053
    name printOn:aStream.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4054
    aStream nextPutAll:')'.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4055
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4056
    "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
  4057
! !
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4058
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4059
!ChangeSet::ClassSourceWriter::ClassInfo methodsFor:'queries'!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4060
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4061
includesSelector: selector
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4062
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4063
    ^methods anySatisfy:[:m|m selector == selector].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4064
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4065
    "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
  4066
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4067
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4068
isPrivateClassOf: classInfo
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4069
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4070
    ^(name startsWith: classInfo name)
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4071
        and:[ (name at: (classInfo name size + 1)) == $:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4072
            and:[ (name at: (classInfo name size + 2)) == $:]]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4073
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4074
    "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
  4075
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4076
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4077
isSubclassOf: classInfo
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4078
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4079
    ^superclass notNil and:
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4080
        [superclass == classInfo or:[superclass isSubclassOf: classInfo]]
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4081
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4082
    "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
  4083
! !
f4794940b620 new changeSet reading mechanism (extensible);
Claus Gittinger <cg@exept.de>
parents: 1169
diff changeset
  4084
2321
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4085
!ChangeSet::DiffSet class methodsFor:'documentation'!
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4086
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4087
documentation
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4088
"
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4089
    I represent the differences between two change sets.
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4090
    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
  4091
"
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4092
! !
cdba8ed97ed6 added: #fromDiffSet:
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
  4093
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4094
!ChangeSet::DiffSet methodsFor:'accessing'!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4095
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4096
changed
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4097
    "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
  4098
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4099
    ^ changed
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4100
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4101
    "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
  4102
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4103
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4104
changed:something
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4105
    "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
  4106
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4107
    changed := something.
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4108
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4109
    "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
  4110
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4111
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4112
changed:changedArg onlyInReceiver:onlyInReceiverArg onlyInArg:onlyInArgArg 
3338
c6065f4c9def class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3309
diff changeset
  4113
    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
  4114
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4115
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4116
changed:changedArg onlyInReceiver:onlyInReceiverArg onlyInArg:onlyInArgArg same: sameArg
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4117
    "set instance variables (automatically generated)"
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4118
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4119
    changed := changedArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4120
    changed isNil ifTrue:[changed := OrderedCollection new].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4121
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4122
    onlyInReceiver := onlyInReceiverArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4123
    onlyInReceiver isNil ifTrue:[onlyInReceiver := ChangeSet new].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4124
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4125
    onlyInArg := onlyInArgArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4126
    onlyInArg isNil ifTrue:[onlyInArg := ChangeSet new].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4127
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4128
    same := sameArg.
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4129
    same isNil ifTrue:[same := ChangeSet new].
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4130
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4131
    "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
  4132
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4133
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4134
onlyInArg
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4135
    "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
  4136
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4137
    ^ onlyInArg
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4138
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4139
    "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
  4140
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4141
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4142
onlyInArg:something
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4143
    onlyInArg := something.
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4144
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4145
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4146
onlyInReceiver
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4147
    "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
  4148
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4149
    ^ onlyInReceiver
1867
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4150
dad9e13fba4c comments
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  4151
    "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
  4152
!
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4153
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4154
onlyInReceiver:something
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4155
    onlyInReceiver := something.
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4156
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4157
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4158
same
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4159
    ^ same
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4160
!
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4161
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4162
same:something
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4163
    same := something.
1156
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4164
! !
29fb7d77797d use a rela object instead of a Dictionary as diffSet
Claus Gittinger <cg@exept.de>
parents: 1147
diff changeset
  4165
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4166
!ChangeSet::DiffSet methodsFor:'merging'!
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4167
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4168
addDiffSet:anotherDiffset
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4169
    changed addAll:(anotherDiffset changed).
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4170
    onlyInReceiver addAll:(anotherDiffset onlyInReceiver).
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4171
    onlyInArg addAll:(anotherDiffset onlyInArg).
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4172
    same addAll: (anotherDiffset same).
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4173
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4174
    "Created: / 12-10-2006 / 22:49:30 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4175
    "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
  4176
!
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4177
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4178
copy
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4179
    ^ self class new
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4180
        changed:changed copy
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4181
        onlyInReceiver:onlyInReceiver copy
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4182
        onlyInArg:onlyInArg copy
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4183
        same:same copy
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4184
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4185
    "Created: / 12-10-2006 / 22:50:56 / cg"
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4186
    "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
  4187
! !
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4188
2186
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4189
!ChangeSet::DiffSet methodsFor:'misc'!
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4190
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4191
removeAllVersionMethods
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4192
    changed := changed 
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4193
                    reject:[:pair |
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4194
                        pair first isMethodChangeForVersionMethod
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4195
                    ].
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4196
    onlyInReceiver := onlyInReceiver 
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4197
                    reject:[:chg |
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4198
                        chg isMethodChangeForVersionMethod
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4199
                    ].
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4200
    onlyInArg := onlyInArg 
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4201
                    reject:[:chg |
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4202
                        chg isMethodChangeForVersionMethod
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4203
                    ].
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4204
! !
3cbd8cb9e36e removeAllVersionMethods in DiffSet
fm
parents: 2179
diff changeset
  4205
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4206
!ChangeSet::DiffSet methodsFor:'queries'!
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4207
2914
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4208
changedClasses
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4209
    |allChangedClasses|
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4210
2923
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4211
    allChangedClasses := Set new.
2914
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4212
    allChangedClasses addAll:(onlyInArg changedClasses).
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4213
    allChangedClasses addAll:(onlyInReceiver changedClasses).
2923
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4214
    changed do:[:eachChangePair | 
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4215
        allChangedClasses add:(eachChangePair first changeClass).
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4216
        allChangedClasses add:(eachChangePair second changeClass).
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4217
    ].
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4218
    allChangedClasses remove:nil ifAbsent:[].
2914
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4219
    ^ allChangedClasses
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4220
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4221
    "Created: / 26-09-2012 / 15:39:18 / cg"
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4222
!
8d837a083e9b query for changedClasses added
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
  4223
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4224
isEmpty
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4225
    ^ changed isEmpty
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4226
    and:[ onlyInReceiver isEmpty
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4227
    and:[ onlyInArg isEmpty ] ]
1869
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4228
!
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4229
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4230
notEmpty
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4231
    ^ self isEmpty not
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4232
988269721678 +isPrivateClassDefinitionChange and other support for private classes
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  4233
    "Created: / 12-10-2006 / 23:12:27 / cg"
1292
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4234
! !
4f2a8ea516fa category & comments
Claus Gittinger <cg@exept.de>
parents: 1287
diff changeset
  4235
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4236
!ChangeSet::DolphinPACFileReader methodsFor:'reading-private'!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4237
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4238
handleCategoriesForClass
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4239
    |category change|
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4240
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4241
    [
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4242
        inputStream skipSeparators.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4243
        category := inputStream nextChunk.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4244
        category notEmpty
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4245
    ] whileTrue:[
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4246
        change := ClassCategoryChange new.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4247
        change 
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4248
            className:className
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4249
            category:category.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4250
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4251
        self addChange:change.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4252
    ].
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4253
    ^ true
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4254
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4255
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4256
handleCategoriesForMethod
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4257
    |methodSelector categories change isPrivate isPublic category|
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4258
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4259
    methodSelector := (arguments at:1) evaluate.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4260
    inputStream skipSeparators.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4261
    isPrivate := false.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4262
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4263
    categories := OrderedCollection new.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4264
    [
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4265
        |done category |
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4266
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4267
        category := inputStream nextChunk withoutSeparators.
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4268
        done := category isEmpty.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4269
        done ifFalse:[
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4270
            categories add:category
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4271
        ].
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4272
        done
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4273
    ] whileFalse.
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4274
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4275
    categories size > 1 ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4276
        isPrivate := categories includes:'private'.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4277
        categories remove:'private' ifAbsent:nil.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4278
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4279
    categories size > 1 ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4280
        isPublic := categories includes:'public'.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4281
        categories remove:'public' ifAbsent:nil.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4282
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4283
"/    categories size > 1 ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4284
"/        self halt.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4285
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4286
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4287
    category := categories first.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4288
    isPrivate ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4289
        category := category , '-private'. 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4290
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4291
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4292
    change := MethodCategoryChange new.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4293
    change 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4294
        className:className
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4295
        selector:methodSelector
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4296
        category:category.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4297
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4298
    self addChange:change.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4299
    ^ true
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4300
!
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4301
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4302
processChange
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4303
    "given a parse-tree (from parsing some changes source/chunk),
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4304
     create changes and evaluate changeAction on each.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4305
     The block is invoked with the change and a lineNumberOrNil as
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4306
     arg; the lineNumber is only valid, if the underlying stream 
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4307
     provides line-numbers; otherwise, nil is passed."
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4308
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4309
    (selector == #'categoriesForClass') ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4310
        ^ self handleCategoriesForClass.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4311
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4312
    (selector == #'categoriesFor:') ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4313
        ^ self handleCategoriesForMethod.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4314
    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4315
    selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:classInstanceVariableNames:' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4316
        ^ self handleClassDefinitionChange.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4317
    ].
2179
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4318
"/    selector == #'guid:' ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4319
"/        ^ self handleGUIDChange.
Claus Gittinger <cg@exept.de>
parents: 2160
diff changeset
  4320
"/    ].
1182
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4321
    ^ super processChange
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4322
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4323
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4324
"/    selector == #named:superclass:indexedInstanceVariables:instanceVariableNames:classVariableNames:sharedPools:classInstanceVariableNames: ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4325
"/        ^ self handleClassDefinitionChange.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4326
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4327
"/    (selector == #'key:value:') ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4328
"/        (self checkReceiverIsGlobalNamed:'Annotation') ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4329
"/            ^ self handleAnnotation.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4330
"/        ]
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4331
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4332
"/    selector == #'method' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4333
"/        ^ self handleMethodChange:false.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4334
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4335
"/    selector == #'classMethod' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4336
"/        ^ self handleMethodChange:true.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4337
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4338
"/
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4339
"/    selector == #'initializer' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4340
"/        ^ true
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4341
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4342
"/    selector == #'initialize' ifTrue:[
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4343
"/        ^ true
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4344
"/    ].
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4345
"/self halt.
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4346
"/
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4347
"/    ^ false
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4348
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4349
    "Created: / 16.2.1998 / 13:42:40 / cg"
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4350
    "Modified: / 15.12.1999 / 00:29:06 / cg"
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4351
! !
5963a5799b4e dolphin pac-file reading
Claus Gittinger <cg@exept.de>
parents: 1181
diff changeset
  4352
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4353
!ChangeSet::SIFChangeFileReader methodsFor:'reading-private'!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4354
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4355
handleAnnotation
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4356
    |key value lastChange change|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4357
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4358
    key := (arguments at:1) evaluate.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4359
    value := (arguments at:2) evaluate.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4360
1422
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  4361
    key = 'Prerequisite' ifTrue:[
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  4362
"/        change := SIFPrerequisiteChange new prerequisiteFileName:value.
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  4363
"/        self addChange:change.
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  4364
        ^ true
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  4365
    ].
6871068da880 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1421
diff changeset
  4366
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4367
    lastChange := changeSet last.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4368
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4369
    key = 'package' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4370
        change := ClassCategoryChange new className:(lastChange className) category:value.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4371
        self addChange:change.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4372
        ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4373
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4374
    key = 'category' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4375
"/        change := MethodCategoryChange new className:(lastChange className) selector:(lastChange selector) category:value.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4376
"/        self addChange:change.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4377
        lastChange category:value.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4378
        ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4379
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4380
    key = 'stamp' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4381
        "/ lastChange timeStamp:value.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4382
        ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4383
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4384
    ^ false
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4385
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4386
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4387
handleClassDefinitionChange
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4388
    |nameSpace change|
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4389
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4390
    (self checkReceiverIsGlobalNamed:#Class) ifFalse:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4391
        self error:'unexpected receiver in classDefinition message' mayProceed:true.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4392
        ^ false.
1313
8aceccee1eaf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1301
diff changeset
  4393
    ].
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4394
    className := (arguments at:1) evaluate.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4395
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4396
    nameSpace := Class nameSpaceQuerySignal query.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4397
    nameSpace ~~ Smalltalk ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4398
        className := nameSpace name , '::' , className
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4399
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4400
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4401
    change := ClassDefinitionChange new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4402
    change className:className; source:(parseTree printString).
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4403
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4404
    change package:(Class packageQuerySignal query).
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4405
    self addChange:change.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4406
    ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4407
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4408
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4409
handleMethodChange:isMeta
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
  4410
    |categoryName methodSource change parser |
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4411
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4412
    className := self receiversClassName.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4413
    isMeta ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4414
        className := className , ' class'
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4415
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4416
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4417
    categoryName := 'uncategorized'.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4418
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4419
    inputStream skipSeparators.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4420
    lineNumber := inputStream lineNumber.
3376
a0e06d192df4 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3360
diff changeset
  4421
    position := inputStream position + 1.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4422
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4423
    methodSource := inputStream nextChunk.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4424
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4425
    parser := Parser
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4426
                parseMethodArgAndVarSpecification:methodSource 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4427
                in:nil 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4428
                ignoreErrors:true 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4429
                ignoreWarnings:true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4430
                parseBody:false.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4431
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4432
    parser isNil ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4433
        "/ something wierd ...
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4434
        methodSelector := '????'.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4435
    ] ifFalse:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4436
        methodSelector := parser selector.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4437
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4438
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4439
    change := MethodChange new.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4440
    change 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4441
        className:className
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4442
        selector:methodSelector
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4443
        source:methodSource
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4444
        category:categoryName
1188
a4594193f884 Remove unused method variables
Stefan Vogel <sv@exept.de>
parents: 1187
diff changeset
  4445
        privacy:nil.
1176
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4446
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4447
    self addChange:change.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4448
    ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4449
!
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4450
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4451
processChange
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4452
    "given a parse-tree (from parsing some changes source/chunk),
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4453
     create changes and evaluate changeAction on each.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4454
     The block is invoked with the change and a lineNumberOrNil as
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4455
     arg; the lineNumber is only valid, if the underlying stream 
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4456
     provides line-numbers; otherwise, nil is passed."
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4457
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4458
    (selector == #'interchangeVersion:') ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4459
        ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4460
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4461
    selector == #named:superclass:indexedInstanceVariables:instanceVariableNames:classVariableNames:sharedPools:classInstanceVariableNames: ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4462
        ^ self handleClassDefinitionChange.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4463
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4464
    (selector == #'key:value:') ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4465
        (self checkReceiverIsGlobalNamed:'Annotation') ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4466
            ^ self handleAnnotation.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4467
        ]
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4468
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4469
    selector == #'method' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4470
        ^ self handleMethodChange:false.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4471
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4472
    selector == #'classMethod' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4473
        ^ self handleMethodChange:true.
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4474
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4475
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4476
    selector == #'initializer' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4477
        ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4478
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4479
    selector == #'initialize' ifTrue:[
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4480
        ^ true
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4481
    ].
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4482
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4483
    ^ false
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4484
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4485
    "Created: / 16.2.1998 / 13:42:40 / cg"
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4486
    "Modified: / 15.12.1999 / 00:29:06 / cg"
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4487
! !
6c65f871a3bc added SIF reading
Claus Gittinger <cg@exept.de>
parents: 1174
diff changeset
  4488
625
06f4ed35832b added #patches for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 378
diff changeset
  4489
!ChangeSet class methodsFor:'documentation'!
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  4490
2868
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  4491
version
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  4492
    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.234 2013-08-10 12:29:04 stefan Exp $'
2923
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4493
!
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4494
fb0a62def59a diffset
Claus Gittinger <cg@exept.de>
parents: 2914
diff changeset
  4495
version_CVS
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  4496
    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.234 2013-08-10 12:29:04 stefan Exp $'
3246
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4497
!
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4498
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4499
version_HG
ac9dc57ea097 class: ChangeSet
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3229
diff changeset
  4500
3269
84de19204303 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 3248
diff changeset
  4501
    ^ '$Changeset: <not expanded> $'
2868
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  4502
!
bee17299d228 changed:
Claus Gittinger <cg@exept.de>
parents: 2867
diff changeset
  4503
2881
ddbb874c0ce2 Merged from SVN, added ClassSourceWriter
vrany
parents: 2868
diff changeset
  4504
version_SVN
3378
905a79f03901 class: ChangeSet
Stefan Vogel <sv@exept.de>
parents: 3376
diff changeset
  4505
    ^ '$Id: ChangeSet.st,v 1.234 2013-08-10 12:29:04 stefan Exp $'
100
d09e51d14901 project changeSet fixes
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
  4506
! !
2985
f82eaa98e5a1 class: ChangeSet
Claus Gittinger <cg@exept.de>
parents: 2973
diff changeset
  4507