MethodChange.st
author Claus Gittinger <cg@exept.de>
Mon, 07 Aug 2006 15:48:09 +0200
changeset 1512 2a7a41afb1e2
parent 1509 e3f924fdfb6c
child 1833 cf60e3c0087e
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
7744cd9b1453 *** empty log message ***
claus
parents: 0
diff changeset
     1
"
7744cd9b1453 *** empty log message ***
claus
parents: 0
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
25
claus
parents: 10
diff changeset
     3
	       All Rights Reserved
4
7744cd9b1453 *** empty log message ***
claus
parents: 0
diff changeset
     4
7744cd9b1453 *** empty log message ***
claus
parents: 0
diff changeset
     5
 This software is furnished under a license and may be used
7744cd9b1453 *** empty log message ***
claus
parents: 0
diff changeset
     6
 only in accordance with the terms of that license and with the
7744cd9b1453 *** empty log message ***
claus
parents: 0
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
7744cd9b1453 *** empty log message ***
claus
parents: 0
diff changeset
     8
 be provided or otherwise made available to, or used by, any
7744cd9b1453 *** empty log message ***
claus
parents: 0
diff changeset
     9
 other person.  No title to or ownership of the software is
7744cd9b1453 *** empty log message ***
claus
parents: 0
diff changeset
    10
 hereby transferred.
7744cd9b1453 *** empty log message ***
claus
parents: 0
diff changeset
    11
"
0
470788421600 Initial revision
claus
parents:
diff changeset
    12
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
    13
"{ Package: 'stx:libbasic3' }"
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
    14
0
470788421600 Initial revision
claus
parents:
diff changeset
    15
ClassChange subclass:#MethodChange
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
    16
	instanceVariableNames:'selector methodCategory privacy previousVersion'
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    17
	classVariableNames:''
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    18
	poolDictionaries:''
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    19
	category:'System-Changes'
0
470788421600 Initial revision
claus
parents:
diff changeset
    20
!
470788421600 Initial revision
claus
parents:
diff changeset
    21
1325
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
    22
MethodChange subclass:#NamedMethodChange
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
    23
	instanceVariableNames:'changeName'
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
    24
	classVariableNames:''
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
    25
	poolDictionaries:''
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
    26
	privateIn:MethodChange
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
    27
!
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
    28
25
claus
parents: 10
diff changeset
    29
!MethodChange class methodsFor:'documentation'!
claus
parents: 10
diff changeset
    30
claus
parents: 10
diff changeset
    31
copyright
claus
parents: 10
diff changeset
    32
"
claus
parents: 10
diff changeset
    33
 COPYRIGHT (c) 1993 by Claus Gittinger
claus
parents: 10
diff changeset
    34
	       All Rights Reserved
10
676ce0471de4 *** empty log message ***
claus
parents: 7
diff changeset
    35
25
claus
parents: 10
diff changeset
    36
 This software is furnished under a license and may be used
claus
parents: 10
diff changeset
    37
 only in accordance with the terms of that license and with the
claus
parents: 10
diff changeset
    38
 inclusion of the above copyright notice.   This software may not
claus
parents: 10
diff changeset
    39
 be provided or otherwise made available to, or used by, any
claus
parents: 10
diff changeset
    40
 other person.  No title to or ownership of the software is
claus
parents: 10
diff changeset
    41
 hereby transferred.
claus
parents: 10
diff changeset
    42
"
claus
parents: 10
diff changeset
    43
!
claus
parents: 10
diff changeset
    44
45
claus
parents: 39
diff changeset
    45
documentation
claus
parents: 39
diff changeset
    46
"
claus
parents: 39
diff changeset
    47
    instances represent method-changes (as done in the browser). 
claus
parents: 39
diff changeset
    48
    They are typically held in a ChangeSet.
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    49
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    50
    [author:]
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    51
        Claus Gittinger
45
claus
parents: 39
diff changeset
    52
"
25
claus
parents: 10
diff changeset
    53
! !
10
676ce0471de4 *** empty log message ***
claus
parents: 7
diff changeset
    54
0
470788421600 Initial revision
claus
parents:
diff changeset
    55
!MethodChange class methodsFor:'instance creation'!
470788421600 Initial revision
claus
parents:
diff changeset
    56
102
3f85fe87cc58 include category in methodChanges
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    57
class:cls selector:sel source:src category:cat
3f85fe87cc58 include category in methodChanges
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    58
    ^ self basicNew class:cls selector:sel source:src category:cat
1073
627aafb2cfec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 963
diff changeset
    59
!
627aafb2cfec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 963
diff changeset
    60
627aafb2cfec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 963
diff changeset
    61
className:clsName selector:sel source:src category:cat
627aafb2cfec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 963
diff changeset
    62
    ^ self basicNew className:clsName selector:sel source:src category:cat
0
470788421600 Initial revision
claus
parents:
diff changeset
    63
! !
470788421600 Initial revision
claus
parents:
diff changeset
    64
470788421600 Initial revision
claus
parents:
diff changeset
    65
!MethodChange methodsFor:'accessing'!
470788421600 Initial revision
claus
parents:
diff changeset
    66
1073
627aafb2cfec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 963
diff changeset
    67
category
627aafb2cfec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 963
diff changeset
    68
    ^ methodCategory 
627aafb2cfec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 963
diff changeset
    69
!
627aafb2cfec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 963
diff changeset
    70
911
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
    71
category: aCategory
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
    72
    methodCategory := aCategory
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
    73
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
    74
    "Created: / 7.2.1998 / 19:47:53 / cg"
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
    75
!
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
    76
852
1acd7d3ed3fc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
    77
changeMethod
1acd7d3ed3fc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
    78
    |cls|
1acd7d3ed3fc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
    79
1acd7d3ed3fc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
    80
    cls := self changeClass.
1acd7d3ed3fc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
    81
    cls isNil ifTrue:[^ nil].
1acd7d3ed3fc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
    82
    ^ cls compiledMethodAt:selector 
1acd7d3ed3fc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
    83
1acd7d3ed3fc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
    84
    "Created: / 7.2.1998 / 19:47:53 / cg"
1acd7d3ed3fc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
    85
!
1acd7d3ed3fc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 850
diff changeset
    86
850
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
    87
changeSelector
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
    88
    ^ selector
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
    89
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
    90
    "Created: / 6.2.1998 / 13:29:25 / cg"
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
    91
!
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
    92
102
3f85fe87cc58 include category in methodChanges
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    93
class:cls selector:sel source:src category:cat
1288
a18544df474d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1234
diff changeset
    94
    self className:(cls name) selector:sel source:src category:cat
648
b7e0ef4b3781 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    95
!
b7e0ef4b3781 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    96
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    97
className:clsName selector:sel source:src category:cat
1288
a18544df474d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1234
diff changeset
    98
    self className:clsName selector:sel source:src category:cat privacy:nil
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    99
!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
   100
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
   101
className:clsName selector:sel source:src category:cat privacy:priv
1468
e2a5a81a5961 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
   102
    self assert:(src isString).
1288
a18544df474d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1234
diff changeset
   103
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
   104
    className := clsName.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
   105
    selector := sel.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
   106
    source := src.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
   107
    methodCategory := cat.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
   108
    privacy := priv.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
   109
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
   110
    "Created: / 16.2.1998 / 12:29:49 / cg"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
   111
    "Modified: / 16.2.1998 / 14:28:12 / cg"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
   112
!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
   113
652
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   114
methodCategory
1234
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   115
652
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   116
    ^ methodCategory
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   117
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   118
    "Created: / 7.2.1998 / 19:47:53 / cg"
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   119
!
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   120
1234
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   121
previousPackage
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   122
    | isNewMethod |
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   123
    isNewMethod := self previousVersion isNil.
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   124
    isNewMethod ifFalse:[
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   125
        ^ self previousVersion package.
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   126
    ].
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   127
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   128
    ^ nil
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   129
!
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   130
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
   131
previousVersion
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
   132
    "return the value of the instance variable 'previousVersion' (automatically generated)"
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
   133
1073
627aafb2cfec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 963
diff changeset
   134
    ^ previousVersion
627aafb2cfec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 963
diff changeset
   135
!
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
   136
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
   137
previousVersion:something
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
   138
    "set the value of the instance variable 'previousVersion' (automatically generated)"
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
   139
1073
627aafb2cfec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 963
diff changeset
   140
    previousVersion := something.
627aafb2cfec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 963
diff changeset
   141
!
956
0c6c209df4e9 keep previousVersion of method in changeSet
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
   142
1234
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   143
previousVersionSource
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   144
    "return the value of the instance variable 'previousVersion' (automatically generated)"
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   145
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   146
    previousVersion isNil ifTrue:[^ nil].
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   147
    ^ previousVersion source
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   148
!
2edbb63a70b7 james' package changes
james
parents: 1199
diff changeset
   149
648
b7e0ef4b3781 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   150
selector
b7e0ef4b3781 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   151
    ^ selector
b7e0ef4b3781 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   152
b7e0ef4b3781 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
   153
    "Created: / 6.2.1998 / 13:29:25 / cg"
911
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
   154
!
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
   155
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
   156
selector:aSymbol
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
   157
    selector := aSymbol
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
   158
cecf421ee767 VW5i compatibility
Claus Gittinger <cg@exept.de>
parents: 896
diff changeset
   159
    "Created: / 6.2.1998 / 13:29:25 / cg"
0
470788421600 Initial revision
claus
parents:
diff changeset
   160
! !
470788421600 Initial revision
claus
parents:
diff changeset
   161
849
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   162
!MethodChange methodsFor:'applying'!
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   163
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   164
apply
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   165
    "apply the change"
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   166
1322
8ff0023c7694 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1307
diff changeset
   167
    |className class|
8ff0023c7694 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1307
diff changeset
   168
8ff0023c7694 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1307
diff changeset
   169
    className := self className.
1296
60bdb70db933 handle Ns.Class syntax (vw fileIn)
Claus Gittinger <cg@exept.de>
parents: 1288
diff changeset
   170
1322
8ff0023c7694 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1307
diff changeset
   171
    class := Smalltalk classNamed:className.
1196
928f537ddeac more for vw-XML fileIn
Claus Gittinger <cg@exept.de>
parents: 1073
diff changeset
   172
    class isNil ifTrue:[
1487
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   173
        class := Parser evaluate:className.
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   174
        class isNil ifTrue:[
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   175
            (className startsWith:'Root::') ifTrue:[
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   176
                className := className copyFrom:7.
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   177
                class := Smalltalk classNamed:className.
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   178
                class isNil ifTrue:[
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   179
                    class := Parser evaluate:className
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   180
                ]
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   181
            ] ifFalse:[
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   182
                (className startsWith:'Core.') ifTrue:[
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   183
                    className := className copyFrom:6.
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   184
                    class := Smalltalk classNamed:className.
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   185
                    class isNil ifTrue:[
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   186
                        class := Parser evaluate:className
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   187
                    ]
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   188
                ].
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   189
            ].
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   190
            class isNil ifTrue:[
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   191
                (className startsWith:'Smalltalk.') ifTrue:[
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   192
                    className := className copyFrom:11.
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   193
                    class := Smalltalk classNamed:className.
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   194
                    class isNil ifTrue:[
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   195
                        class := Parser evaluate:className
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   196
                    ]
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   197
                ].
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   198
            ].
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   199
            class := Parser evaluate:className.
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   200
            class isNil ifTrue:[
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   201
                self error:('Cannot apply change for missing class: ' , className).
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   202
            ].
56ddb1c71218 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1474
diff changeset
   203
        ].
1196
928f537ddeac more for vw-XML fileIn
Claus Gittinger <cg@exept.de>
parents: 1073
diff changeset
   204
    ].
849
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   205
    class compile:source classified:methodCategory logged:true.
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   206
! !
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   207
784
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   208
!MethodChange methodsFor:'comparing'!
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   209
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   210
isForSameAs:changeB
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   211
    "return true, if the given change represents a change for the same
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   212
     thingy as the receiver (i.e. same method, same definition etc.)."
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   213
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   214
    "/ I am a methodChange - B must be as well.
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   215
    changeB isMethodChange ifFalse:[^ false].   
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   216
1199
53f7de3f5c9b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1196
diff changeset
   217
    selector ~= changeB selector ifTrue:[^ false].
784
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   218
    className ~= changeB className ifTrue:[^ false].
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   219
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   220
    ^ true
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   221
!
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   222
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   223
sameAs:changeB
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   224
    "return true, if the given change represents the same change as the receiver."
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   225
798
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 784
diff changeset
   226
    (self isForSameAs:changeB) ifFalse:[^ false].   
1509
e3f924fdfb6c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   227
    (self sameSourceAs:changeB) ifTrue:[^ true].
784
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   228
1509
e3f924fdfb6c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   229
    ^ false.
784
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   230
1509
e3f924fdfb6c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1487
diff changeset
   231
    "Modified: / 25-07-2006 / 11:23:27 / cg"
784
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   232
! !
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   233
1325
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   234
!MethodChange methodsFor:'converting'!
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   235
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   236
asNamedMethodChange
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   237
    ^ NamedMethodChange fromMethodChange:self
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   238
! !
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   239
963
a4fb4b9f7e72 category change
Claus Gittinger <cg@exept.de>
parents: 956
diff changeset
   240
!MethodChange methodsFor:'printing & storing'!
0
470788421600 Initial revision
claus
parents:
diff changeset
   241
7
1ec2a2047025 *** empty log message ***
claus
parents: 4
diff changeset
   242
printOn:aStream
800
3c41a8705c48 comment
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
   243
    "append a user printed representation of the receiver to aStream.
3c41a8705c48 comment
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
   244
     The format is suitable for a human - not meant to be read back."
3c41a8705c48 comment
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
   245
1325
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   246
    aStream 
1512
2a7a41afb1e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1509
diff changeset
   247
        nextPutAll:(self className ? 'unnamed'); 
1325
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   248
        space; 
1474
08052118490e more support for alien namespaces (VW7)
Claus Gittinger <cg@exept.de>
parents: 1468
diff changeset
   249
        nextPutAll:(selector ? '?'); 
1394
392398eeac68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1325
diff changeset
   250
        nextPutAll:' {'; 
392398eeac68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1325
diff changeset
   251
        nextPutAll:methodCategory; 
1512
2a7a41afb1e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1509
diff changeset
   252
        nextPutAll:'}'
2a7a41afb1e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1509
diff changeset
   253
2a7a41afb1e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1509
diff changeset
   254
    "Modified: / 03-08-2006 / 02:04:24 / cg"
779
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   255
!
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   256
896
035d5613a20c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 852
diff changeset
   257
printWithoutClassNameOn:aStream
035d5613a20c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 852
diff changeset
   258
    (className endsWith:' class') ifTrue:[
035d5613a20c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 852
diff changeset
   259
        aStream nextPutAll:'class '
035d5613a20c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 852
diff changeset
   260
    ].
035d5613a20c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 852
diff changeset
   261
    aStream nextPutAll:selector 
035d5613a20c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 852
diff changeset
   262
!
035d5613a20c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 852
diff changeset
   263
035d5613a20c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 852
diff changeset
   264
printWithoutOwningClassOn:aStream
035d5613a20c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 852
diff changeset
   265
    self halt.
779
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   266
    (className endsWith:' class') ifTrue:[
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   267
        aStream nextPutAll:'class '
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   268
    ].
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   269
    aStream nextPutAll:selector 
0
470788421600 Initial revision
claus
parents:
diff changeset
   270
! !
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   271
652
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   272
!MethodChange methodsFor:'queries'!
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   273
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   274
isMethodChange
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   275
    ^ true
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   276
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   277
    "Created: / 7.2.1998 / 19:26:59 / cg"
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   278
! !
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   279
1325
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   280
!MethodChange::NamedMethodChange class methodsFor:'instance creation'!
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   281
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   282
fromMethodChange:aMethodChange
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   283
    ^ self new cloneInstanceVariablesFrom:aMethodChange
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   284
! !
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   285
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   286
!MethodChange::NamedMethodChange methodsFor:'accessing'!
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   287
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   288
changeName:something
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   289
    changeName := something.
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   290
! !
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   291
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   292
!MethodChange::NamedMethodChange methodsFor:'printing & storing'!
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   293
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   294
printOn:aStream
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   295
    changeName notNil ifTrue:[
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   296
        changeName printOn:aStream.
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   297
        ^ self.
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   298
    ].
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   299
    super printOn:aStream
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   300
! !
b874a070362e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1322
diff changeset
   301
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   302
!MethodChange class methodsFor:'documentation'!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   303
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   304
version
1512
2a7a41afb1e2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1509
diff changeset
   305
    ^ '$Header: /cvs/stx/stx/libbasic3/MethodChange.st,v 1.42 2006-08-07 13:48:09 cg Exp $'
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   306
! !