MethodChange.st
author Claus Gittinger <cg@exept.de>
Tue, 07 Dec 1999 15:19:29 +0100
changeset 850 5efe4b98c509
parent 849 d31825895bb2
child 852 1acd7d3ed3fc
permissions -rw-r--r--
checkin from browser
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
470788421600 Initial revision
claus
parents:
diff changeset
    13
ClassChange subclass:#MethodChange
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    14
	instanceVariableNames:'selector methodCategory privacy'
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    15
	classVariableNames:''
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    16
	poolDictionaries:''
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    17
	category:'System-Changes'
0
470788421600 Initial revision
claus
parents:
diff changeset
    18
!
470788421600 Initial revision
claus
parents:
diff changeset
    19
25
claus
parents: 10
diff changeset
    20
!MethodChange class methodsFor:'documentation'!
claus
parents: 10
diff changeset
    21
claus
parents: 10
diff changeset
    22
copyright
claus
parents: 10
diff changeset
    23
"
claus
parents: 10
diff changeset
    24
 COPYRIGHT (c) 1993 by Claus Gittinger
claus
parents: 10
diff changeset
    25
	       All Rights Reserved
10
676ce0471de4 *** empty log message ***
claus
parents: 7
diff changeset
    26
25
claus
parents: 10
diff changeset
    27
 This software is furnished under a license and may be used
claus
parents: 10
diff changeset
    28
 only in accordance with the terms of that license and with the
claus
parents: 10
diff changeset
    29
 inclusion of the above copyright notice.   This software may not
claus
parents: 10
diff changeset
    30
 be provided or otherwise made available to, or used by, any
claus
parents: 10
diff changeset
    31
 other person.  No title to or ownership of the software is
claus
parents: 10
diff changeset
    32
 hereby transferred.
claus
parents: 10
diff changeset
    33
"
claus
parents: 10
diff changeset
    34
!
claus
parents: 10
diff changeset
    35
45
claus
parents: 39
diff changeset
    36
documentation
claus
parents: 39
diff changeset
    37
"
claus
parents: 39
diff changeset
    38
    instances represent method-changes (as done in the browser). 
claus
parents: 39
diff changeset
    39
    They are typically held in a ChangeSet.
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    40
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    41
    [author:]
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
    42
        Claus Gittinger
45
claus
parents: 39
diff changeset
    43
"
25
claus
parents: 10
diff changeset
    44
! !
10
676ce0471de4 *** empty log message ***
claus
parents: 7
diff changeset
    45
0
470788421600 Initial revision
claus
parents:
diff changeset
    46
!MethodChange class methodsFor:'instance creation'!
470788421600 Initial revision
claus
parents:
diff changeset
    47
102
3f85fe87cc58 include category in methodChanges
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    48
class:cls selector:sel source:src category:cat
3f85fe87cc58 include category in methodChanges
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    49
    ^ self basicNew class:cls selector:sel source:src category:cat
0
470788421600 Initial revision
claus
parents:
diff changeset
    50
! !
470788421600 Initial revision
claus
parents:
diff changeset
    51
470788421600 Initial revision
claus
parents:
diff changeset
    52
!MethodChange methodsFor:'accessing'!
470788421600 Initial revision
claus
parents:
diff changeset
    53
850
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
    54
changeSelector
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
    55
    ^ selector
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
    56
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
    57
    "Created: / 6.2.1998 / 13:29:25 / cg"
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
    58
!
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
    59
102
3f85fe87cc58 include category in methodChanges
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    60
class:cls selector:sel source:src category:cat
0
470788421600 Initial revision
claus
parents:
diff changeset
    61
    className := cls name.
470788421600 Initial revision
claus
parents:
diff changeset
    62
    selector := sel.
102
3f85fe87cc58 include category in methodChanges
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    63
    source := src.
3f85fe87cc58 include category in methodChanges
Claus Gittinger <cg@exept.de>
parents: 85
diff changeset
    64
    methodCategory := cat
648
b7e0ef4b3781 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    65
!
b7e0ef4b3781 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    66
654
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    67
className:clsName selector:sel source:src category:cat
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    68
    className := clsName.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    69
    selector := sel.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    70
    source := src.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    71
    methodCategory := cat
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    72
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    73
    "Created: / 16.2.1998 / 12:29:49 / cg"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    74
!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    75
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    76
className:clsName selector:sel source:src category:cat privacy:priv
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    77
    className := clsName.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    78
    selector := sel.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    79
    source := src.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    80
    methodCategory := cat.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    81
    privacy := priv.
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    82
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    83
    "Created: / 16.2.1998 / 12:29:49 / cg"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    84
    "Modified: / 16.2.1998 / 14:28:12 / cg"
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    85
!
edeb63d98088 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 652
diff changeset
    86
652
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
    87
methodCategory
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
    88
    ^ methodCategory
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
    89
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
    90
    "Created: / 7.2.1998 / 19:47:53 / cg"
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
    91
!
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
    92
648
b7e0ef4b3781 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    93
selector
b7e0ef4b3781 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 235
diff changeset
    94
    ^ selector
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
    "Created: / 6.2.1998 / 13:29:25 / cg"
0
470788421600 Initial revision
claus
parents:
diff changeset
    97
! !
470788421600 Initial revision
claus
parents:
diff changeset
    98
849
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
    99
!MethodChange methodsFor:'applying'!
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   100
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   101
apply
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   102
    "apply the change"
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   103
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   104
    |class|
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   105
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   106
    class := Smalltalk classNamed:className.
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   107
    class compile:source classified:methodCategory logged:true.
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   108
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   109
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   110
! !
d31825895bb2 preps to allow applying
Claus Gittinger <cg@exept.de>
parents: 800
diff changeset
   111
784
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   112
!MethodChange methodsFor:'comparing'!
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   113
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   114
isForSameAs:changeB
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   115
    "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
   116
     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
   117
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   118
    "/ 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
   119
    changeB isMethodChange ifFalse:[^ false].   
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   120
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   121
    className ~= changeB className ifTrue:[^ false].
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   122
    selector ~= changeB selector ifTrue:[^ false].
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   123
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   124
    ^ true
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   125
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   126
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   127
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   128
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   129
!
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   130
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   131
sameAs:changeB
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   132
    "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
   133
798
999fff0aa0d0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 784
diff changeset
   134
    (self isForSameAs:changeB) ifFalse:[^ false].   
784
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   135
    ^ self sameSourceAs:changeB
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   136
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   137
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   138
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   139
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   140
! !
1e50cc7fd07d added compare methods #sameAs: and #isForSameAs:
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
   141
0
470788421600 Initial revision
claus
parents:
diff changeset
   142
!MethodChange methodsFor:'printing'!
470788421600 Initial revision
claus
parents:
diff changeset
   143
7
1ec2a2047025 *** empty log message ***
claus
parents: 4
diff changeset
   144
printOn:aStream
800
3c41a8705c48 comment
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
   145
    "append a user printed representation of the receiver to aStream.
3c41a8705c48 comment
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
   146
     The format is suitable for a human - not meant to be read back."
3c41a8705c48 comment
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
   147
7
1ec2a2047025 *** empty log message ***
claus
parents: 4
diff changeset
   148
    aStream nextPutAll:className; 
800
3c41a8705c48 comment
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
   149
                 space; 
3c41a8705c48 comment
Claus Gittinger <cg@exept.de>
parents: 798
diff changeset
   150
            nextPutAll:selector 
779
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   151
!
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   152
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   153
printWithoutClassOn:aStream
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   154
    (className endsWith:' class') ifTrue:[
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   155
        aStream nextPutAll:'class '
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   156
    ].
d2c59a219cbc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
   157
    aStream nextPutAll:selector 
0
470788421600 Initial revision
claus
parents:
diff changeset
   158
! !
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   159
652
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   160
!MethodChange methodsFor:'queries'!
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   161
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   162
isMethodChange
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   163
    ^ true
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   164
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   165
    "Created: / 7.2.1998 / 19:26:59 / cg"
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   166
! !
b9e4b4465a2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 648
diff changeset
   167
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   168
!MethodChange class methodsFor:'documentation'!
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   169
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   170
version
850
5efe4b98c509 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 849
diff changeset
   171
    ^ '$Header: /cvs/stx/stx/libbasic3/MethodChange.st,v 1.22 1999-12-07 14:19:29 cg Exp $'
235
3ebfdc6edab9 documentation
Claus Gittinger <cg@exept.de>
parents: 102
diff changeset
   172
! !