--- a/ChangeSet.st Tue Nov 05 16:11:48 2002 +0100
+++ b/ChangeSet.st Fri Nov 08 17:20:14 2002 +0100
@@ -19,6 +19,15 @@
category:'System-Changes'
!
+Object subclass:#ChangeFileReader
+ instanceVariableNames:'inputStream parseTree changeAction changeSet selector receiver
+ arguments receiverSelector receiverReceiver lineNumber position
+ className methodSelector'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:ChangeSet
+!
+
Object subclass:#DiffSet
instanceVariableNames:'changed onlyInReceiver onlyInArg'
classVariableNames:''
@@ -53,330 +62,44 @@
!ChangeSet class methodsFor:'instance creation'!
-changesFromParseTree:aTree andStream:aStream lineNumber:initialLineNumberOrNil position:initialPositionOrNil do:aBlock
- "given a parse-tree (from parsing some changes source/chunk),
- create changes and evaluate aBlock on each.
- The block is invoked with the change and a lineNumberOrNil as
- arg; the lineNumber is only valid, if the underlying stream
- provides line-numbers; otherwise, nil is passed."
-
- |changes sel className categoryName
- methodSource methodSelector change parser
- oldName newName priv receiver receiverVarName
- receiverSelector receiverReceiver primSource
- nameSpace lineNumberOrNil posOrNil|
-
- lineNumberOrNil := initialLineNumberOrNil.
- posOrNil := initialPositionOrNil.
-
-"/ nameSpace := Class nameSpaceQuerySignal query.
-"/ nameSpace isNil ifTrue:[nameSpace := Smalltalk].
-
- sel := aTree selector.
- receiver := aTree receiver.
- receiver isMessage ifTrue:[
- receiverSelector := receiver selector.
- receiverReceiver := receiver receiver.
- ] ifFalse:[
- receiver isVariable ifTrue:[
- receiverVarName := receiver name
- ]
- ].
-
- (sel == #'methods'
- or:[(sel == #'methodsFor:')
- or:[(sel == #'publicMethodsFor:')
- or:[(sel == #'privateMethodsFor:')
- or:[(sel == #'methodsFor:stamp:')
- or:[(sel == #'ignoredMethodsFor:')]]]]]) ifTrue:[
- (sel == #'ignoredMethodsFor:') ifTrue:[
- priv := #ignored.
- ] ifFalse:[
- priv := nil
- ].
- (receiver isUnaryMessage
- and:[receiverSelector == #class]) ifTrue:[
- className := (receiverReceiver name) , ' class'.
- ] ifFalse:[
- className := (receiver name).
- ].
-"/ nameSpace ~~ Smalltalk ifTrue:[
-"/ className := nameSpace name , '::' , className
-"/ ].
- sel == #'methods' ifTrue:[
- categoryName := 'uncategorized'
- ] ifFalse:[
- categoryName := (aTree arguments at:1) evaluate.
- ].
- aStream skipSeparators.
- lineNumberOrNil := aStream lineNumber.
- posOrNil := aStream position.
- methodSource := aStream nextChunk.
- changes := OrderedCollection new.
-
- [methodSource notEmpty] whileTrue:[
- parser := Parser
- parseMethodArgAndVarSpecification:methodSource
- in:nil
- ignoreErrors:true
- ignoreWarnings:true
- parseBody:false.
-
- parser isNil ifTrue:[
- "/ something wierd ...
- methodSelector := '????'.
- ] ifFalse:[
- methodSelector := parser selector.
- ].
-
- change := MethodChange new.
- change
- className:className
- selector:methodSelector
- source:methodSource
- category:categoryName
- privacy:priv.
- aBlock value:change value:lineNumberOrNil value:posOrNil.
-
- aStream skipSeparators.
- lineNumberOrNil := aStream lineNumber.
- posOrNil := aStream position.
- methodSource := aStream nextChunk.
- ].
- ^ true
- ].
-
- sel == #'removeSelector:' ifTrue:[
- (receiver isUnaryMessage
- and:[receiverSelector == #class]) ifTrue:[
- className := (receiverReceiver name) , ' class'.
- ] ifFalse:[
- className := (receiver name).
- ].
-"/ nameSpace ~~ Smalltalk ifTrue:[
-"/ className := nameSpace name , '::' , className
-"/ ].
- methodSelector := (aTree arguments at:1) evaluate.
- change := MethodRemoveChange new.
- change
- className:className
- selector:methodSelector.
- aBlock value:change value:lineNumberOrNil value:posOrNil.
- ^ true
- ].
-
- "/ any subclass definiton selector ?
- (Behavior definitionSelectors includes:sel)
- ifTrue:[
- className := (aTree arguments at:1) evaluate.
-"/ nameSpace ~~ Smalltalk ifTrue:[
-"/ className := nameSpace name , '::' , className
-"/ ].
- nameSpace := Class nameSpaceQuerySignal query.
- nameSpace ~~ Smalltalk ifTrue:[
- className := nameSpace name , '::' , className
- ].
-
- change := ClassDefinitionChange new.
- change
- className:className;
- source:(aTree printString).
- change package:(Class packageQuerySignal query).
-"/ nameSpace ~~ Smalltalk ifTrue:[
-"/ change nameSpaceName:(nameSpace name).
-"/ ].
-"/
- aBlock value:change value:lineNumberOrNil value:posOrNil.
- ^ true
- ].
-
- sel == #'renameCategory:to:' ifTrue:[
- (receiver isUnaryMessage
- and:[receiverSelector == #class]) ifTrue:[
- className := (receiverReceiver name) , ' class'.
- ] ifFalse:[
- className := (receiver name).
- ].
-"/ nameSpace ~~ Smalltalk ifTrue:[
-"/ className := nameSpace name , '::' , className
-"/ ].
- change := MethodCategoryRenameChange new.
- change
- className:className;
- oldCategoryName:(aTree arguments at:1) evaluate
- newCategoryName:(aTree arguments at:2) evaluate.
- aBlock value:change value:lineNumberOrNil value:posOrNil.
- ^ true
- ].
-
- (sel == #'category:'
- or:[sel == #'privacy:']) ifTrue:[
- (receiver isMessage
- and:[receiverSelector == #'compiledMethodAt:']) ifTrue:[
- (receiverReceiver isUnaryMessage
- and:[receiverReceiver selector == #class]) ifTrue:[
- className := (receiverReceiver receiver name) , ' class'.
- ] ifFalse:[
- className := (receiverReceiver name).
- ].
-"/ nameSpace ~~ Smalltalk ifTrue:[
-"/ className := nameSpace name , '::' , className
-"/ ].
- methodSelector := (receiver arguments at:1) evaluate.
-
- sel == #'category:' ifTrue:[
- change := MethodCategoryChange new.
- change
- className:className
- selector:methodSelector
- category:(aTree arguments at:1) evaluate.
- ] ifFalse:[
- change := MethodPrivacyChange new.
- change
- className:className
- selector:methodSelector
- privacy:(aTree arguments at:1) evaluate.
- ].
-
- aBlock value:change value:lineNumberOrNil value:posOrNil.
- ^ true
- ] ifFalse:[
- self error:'unexpected change' mayProceed:true
- ].
- ].
-
- sel == #'comment:' ifTrue:[
- (receiver isUnaryMessage
- and:[receiverSelector == #class]) ifTrue:[
- className := (receiverReceiver name) , ' class'.
- ] ifFalse:[
- className := (receiver name).
- ].
-"/ nameSpace ~~ Smalltalk ifTrue:[
-"/ className := nameSpace name , '::' , className
-"/ ].
-
- change := ClassCommentChange new.
- change
- className:className
- comment:(aTree arguments at:1) evaluate.
- change source:(aTree printString).
- aBlock value:change value:lineNumberOrNil value:posOrNil.
- ^ true
- ].
-
- sel == #'instanceVariableNames:' ifTrue:[
- (receiver isUnaryMessage
- and:[receiverSelector == #class]) ifTrue:[
- className := (receiverReceiver name) , ' class'.
- ] ifFalse:[
- className := (receiver name).
- ].
-"/ nameSpace ~~ Smalltalk ifTrue:[
-"/ className := nameSpace name , '::' , className
-"/ ].
- change := ClassInstVarDefinitionChange new.
- change className:className.
- change source:(aTree printString).
- aBlock value:change value:lineNumberOrNil value:posOrNil.
- ^ true
- ].
-
- sel == #'removeClass:' ifTrue:[
- (receiverVarName == #Smalltalk) ifTrue:[
- className := (aTree arguments at:1) name.
-"/ nameSpace ~~ Smalltalk ifTrue:[
-"/ className := nameSpace name , '::' , className
-"/ ].
-
- change := ClassRemoveChange new.
- change className:className.
- aBlock value:change value:lineNumberOrNil value:posOrNil.
- ^ true
- ] ifFalse:[
- self error:'unexpected receiver in #name: message' mayProceed:true
- ].
- ].
-
- sel == #'renameClass:to:' ifTrue:[
- (receiverVarName == #Smalltalk) ifTrue:[
- oldName := (aTree arguments at:1) name.
- newName := (aTree arguments at:2) evaluate.
-
- change := ClassRenameChange new.
- change oldName:oldName newName:newName.
- aBlock value:change value:lineNumberOrNil value:posOrNil.
- ^ true
- ] ifFalse:[
- self error:'unexpected receiver in #name: message' mayProceed:true
- ].
- ].
-
- sel == #'name:' ifTrue:[
- ((receiverVarName == #Namespace)
- or:[receiverVarName == #NameSpace]) ifTrue:[
- className := (aTree arguments at:1) evaluate.
-
- change := NameSpaceCreationChange new.
- change name:className.
- aBlock value:change value:lineNumberOrNil value:posOrNil.
- ^ true
- ] ifFalse:[
- self error:'unexpected receiver in #name: message' mayProceed:true
- ].
- ].
-
- (sel == #'primitiveDefinitions'
- or:[sel == #'primitiveFunctions'
- or:[sel == #'primitiveVariables']]) ifTrue:[
- (receiver isUnaryMessage
- and:[receiverSelector == #class]) ifTrue:[
- className := (receiverReceiver name) , ' class'.
- ] ifFalse:[
- className := (receiver name).
- ].
-"/ nameSpace ~~ Smalltalk ifTrue:[
-"/ className := nameSpace name , '::' , className
-"/ ].
-
- aStream skipSeparators.
- primSource := aStream nextChunk.
-
- sel == #'primitiveDefinitions' ifTrue:[
- change := ClassPrimitiveDefinitionsChange new
- ] ifFalse:[
- sel == #'primitiveFunctions' ifTrue:[
- change := ClassPrimitiveFunctionsChange new
- ] ifFalse:[
- change := ClassPrimitiveVariablesChange new
- ]
- ].
- change class:className source:primSource.
- aBlock value:change value:lineNumberOrNil value:posOrNil.
- ^ true
- ].
-
- ^ false
-
- "Created: / 16.2.1998 / 13:42:40 / cg"
- "Modified: / 15.12.1999 / 00:29:06 / cg"
-!
-
changesFromStream:aStream do:aBlock
"enumerate changes from a stream and invoke aBlock on each.
The block is invoked with the change and a lineNumberOrNil as
arg; the lineNumber is only valid, if the underlying stream
provides line-numbers; otherwise, nil is passed."
+ ^ self changesFromStream:aStream format:#chunk do:aBlock
+
+ "
+ ChangeSet fromStream:('changes' asFilename readStream)
+ ChangeSet fromStream:('patches' asFilename readStream)
+ ChangeSet fromStream:(Object source asString readStream)
+ "
+
+ "Created: / 16.2.1998 / 12:19:34 / cg"
+ "Modified: / 14.12.1999 / 15:23:16 / cg"
+!
+
+changesFromStream:aStream format:format do:aBlock
+ "enumerate changes from a stream and invoke aBlock on each.
+ The block is invoked with the change and a lineNumberOrNil as
+ arg; the lineNumber is only valid, if the underlying stream
+ provides line-numbers; otherwise, nil is passed."
+
|chunk sawExcla lastTimeStamp s change nameSpace package
- lineNumber pos|
+ lineNumber pos reader|
nameSpace := Smalltalk.
package := Class packageQuerySignal query.
+ reader := ChangeFileReader new changeSet:self.
+ reader changeAction:aBlock.
+ reader inputStream:aStream.
[aStream atEnd] whileFalse:[
- aStream skipSeparators.
- sawExcla := aStream peekFor:$!!.
+ format == #chunk ifTrue:[
+ aStream skipSeparators.
+ sawExcla := aStream peekFor:$!!.
+ ].
lineNumber := aStream lineNumber.
pos := aStream position.
chunk := aStream nextChunk.
@@ -392,12 +115,12 @@
ignoreWarnings:true
inNameSpace:nameSpace.
- tree == #Error ifTrue:[
- change := DoItChange new.
- change source:chunk.
- aBlock value:change value:lineNumber value:pos.
- ] ifFalse:[
- (tree notNil and:[tree ~~ #Error]) ifTrue:[
+ tree notNil ifTrue:[
+ tree == #Error ifTrue:[
+ change := DoItChange new.
+ change source:chunk.
+ aBlock value:change value:lineNumber value:pos.
+ ] ifFalse:[
"/ if there is any nameSpace directive in there, extract it.
((ns := parser currentNameSpace) notNil
and:[ns ~~ nameSpace]) ifTrue:[
@@ -423,18 +146,17 @@
]
] ifFalse:[
tree isMessage ifTrue:[
- (self
- changesFromParseTree:tree
- andStream:aStream
- lineNumber:lineNumber
- position:pos
- do:aBlock) ifFalse:[
+ (reader
+ changesFromParseTree:tree
+ lineNumber:lineNumber
+ position:pos
+ ) ifFalse:[
change := DoItChange new.
change source:chunk.
aBlock value:change value:lineNumber value:pos.
]
] ifFalse:[
- self error:'unexpected change-chunk' mayProceed:true
+ self error:'unexpected change-chunk' mayProceed:true.
]
]
]
@@ -504,6 +226,30 @@
"Modified: / 14.12.1999 / 15:23:16 / cg"
!
+fromSIFStream:aStream
+ "build a changeSet from a SIF stream, containing chunks
+ in smalltalk interchange format.
+ Return the changeSet."
+
+ ^ self fromSIFStream:aStream while:[:thisChange | true]
+!
+
+fromSIFStream:aStream while:aConditionBlock
+ "build a changeSet from a SIF stream, containing chunks
+ in smalltalk interchange format.
+ Return the changeSet."
+
+ |changeSet|
+
+ changeSet := self new.
+ self changesFromStream:aStream format:#sif do:[:aChange :lineNumberOrNil :posOrNil |
+ changeSet add:aChange.
+ (aConditionBlock value:aChange) ifFalse:[^ changeSet].
+ ].
+
+ ^ changeSet
+!
+
fromStream:aStream
"build a changeSet from a stream, containing chunks.
(i.e. either a classes sourceFile or a change-file).
@@ -1222,6 +968,410 @@
^ret
! !
+!ChangeSet::ChangeFileReader methodsFor:'accessing'!
+
+changeAction:aBlock
+ changeAction := aBlock.
+!
+
+changeSet:something
+ "set the value of the instance variable 'changeSet' (automatically generated)"
+
+ changeSet := something.
+!
+
+inputStream:aStream
+ inputStream := aStream.
+! !
+
+!ChangeSet::ChangeFileReader methodsFor:'helpers'!
+
+classNameOf:aReceiver
+ (aReceiver isUnaryMessage
+ and:[aReceiver selector == #class]) ifTrue:[
+ ^ (aReceiver receiver name) , ' class'.
+ ].
+ ^ aReceiver name
+!
+
+receiversClassName
+ ^ self classNameOf:receiver
+! !
+
+!ChangeSet::ChangeFileReader methodsFor:'reading'!
+
+changesFromParseTree:aTree lineNumber:initialLineNumberOrNil position:initialPositionOrNil
+ "given a parse-tree (from parsing some changes source/chunk),
+ create changes and evaluate changeAction on each.
+ The chnageAction-block is invoked with the change and a lineNumberOrNil as
+ arg; the lineNumber is only valid, if the underlying inputStream
+ provides line-numbers; otherwise, nil is passed."
+
+ lineNumber := initialLineNumberOrNil.
+ position := initialPositionOrNil.
+ parseTree := aTree.
+
+ selector := aTree selector.
+ receiver := aTree receiver.
+ arguments := aTree arguments.
+
+ receiver isMessage ifTrue:[
+ receiverSelector := receiver selector.
+ receiverReceiver := receiver receiver.
+ ].
+
+ ^ self processChange
+! !
+
+!ChangeSet::ChangeFileReader methodsFor:'reading-private'!
+
+handleClassCommentChange
+ |change|
+
+ className := self receiversClassName.
+"/ nameSpace ~~ Smalltalk ifTrue:[
+"/ className := nameSpace name , '::' , className
+"/ ].
+
+ change := ClassCommentChange new.
+ change className:className comment:(arguments at:1) evaluate.
+ change source:(parseTree printString).
+ changeAction value:change value:lineNumber value:position.
+ ^ true
+!
+
+handleClassDefinitionChange
+ |nameSpace change|
+
+ className := (arguments at:1) evaluate.
+"/ nameSpace ~~ Smalltalk ifTrue:[
+"/ className := nameSpace name , '::' , className
+"/ ].
+ nameSpace := Class nameSpaceQuerySignal query.
+ nameSpace ~~ Smalltalk ifTrue:[
+ className := nameSpace name , '::' , className
+ ].
+
+ change := ClassDefinitionChange new.
+ change className:className; source:(parseTree printString).
+
+ change package:(Class packageQuerySignal query).
+"/ nameSpace ~~ Smalltalk ifTrue:[
+"/ change nameSpaceName:(nameSpace name).
+"/ ].
+"/
+ changeAction value:change value:lineNumber value:position.
+ ^ true
+!
+
+handleClassInstanceVariableDefinitionChange
+ |change|
+
+ className := self receiversClassName.
+
+"/ nameSpace ~~ Smalltalk ifTrue:[
+"/ className := nameSpace name , '::' , className
+"/ ].
+ change := ClassInstVarDefinitionChange new.
+ change className:className.
+ change source:(parseTree printString).
+ changeAction value:change value:lineNumber value:position.
+ ^ true
+!
+
+handleMethodCategoryChange
+ |change|
+
+ (receiver isMessage
+ and:[receiverSelector == #'compiledMethodAt:']) ifFalse:[
+ self error:'unexpected change' mayProceed:true.
+ ^ false.
+ ].
+ className := self classNameOf:receiverReceiver.
+
+"/ nameSpace ~~ Smalltalk ifTrue:[
+"/ className := nameSpace name , '::' , className
+"/ ].
+ methodSelector := (receiver arguments at:1) evaluate.
+
+ change := MethodCategoryChange new.
+ change
+ className:className
+ selector:methodSelector
+ category:(arguments at:1) evaluate.
+
+ changeAction value:change value:lineNumber value:position.
+ ^ true
+!
+
+handleMethodCategoryRenameChange
+ |change|
+
+ className := self receiversClassName.
+"/ nameSpace ~~ Smalltalk ifTrue:[
+"/ className := nameSpace name , '::' , className
+"/ ].
+
+ change := MethodCategoryRenameChange new.
+ change
+ className:className;
+ oldCategoryName:(arguments at:1) evaluate
+ newCategoryName:(arguments at:2) evaluate.
+
+ changeAction value:change value:lineNumber value:position.
+ ^ true
+!
+
+handleMethodChange
+ |priv categoryName methodSource changes change parser |
+
+ (selector == #'ignoredMethodsFor:') ifTrue:[
+ priv := #ignored.
+ ] ifFalse:[
+ priv := nil
+ ].
+ className := self receiversClassName.
+"/ nameSpace ~~ Smalltalk ifTrue:[
+"/ className := nameSpace name , '::' , className
+"/ ].
+ selector == #'methods' ifTrue:[
+ categoryName := 'uncategorized'
+ ] ifFalse:[
+ categoryName := (arguments at:1) evaluate.
+ ].
+ inputStream skipSeparators.
+ lineNumber := inputStream lineNumber.
+ position := inputStream position.
+ methodSource := inputStream nextChunk.
+ changes := OrderedCollection new.
+
+ [methodSource notEmpty] whileTrue:[
+ parser := Parser
+ parseMethodArgAndVarSpecification:methodSource
+ in:nil
+ ignoreErrors:true
+ ignoreWarnings:true
+ parseBody:false.
+
+ parser isNil ifTrue:[
+ "/ something wierd ...
+ methodSelector := '????'.
+ ] ifFalse:[
+ methodSelector := parser selector.
+ ].
+
+ change := MethodChange new.
+ change
+ className:className
+ selector:methodSelector
+ source:methodSource
+ category:categoryName
+ privacy:priv.
+
+ changeAction value:change value:lineNumber value:position.
+
+ inputStream skipSeparators.
+ lineNumber := inputStream lineNumber.
+ position := inputStream position.
+ methodSource := inputStream nextChunk.
+ ].
+ ^ true
+!
+
+handleMethodPrivacyChange
+ |change|
+
+ (receiver isMessage
+ and:[receiverSelector == #'compiledMethodAt:']) ifFalse:[
+ self error:'unexpected change' mayProceed:true.
+ ^ false.
+ ].
+
+ className := self classNameOf:receiverReceiver.
+"/ nameSpace ~~ Smalltalk ifTrue:[
+"/ className := nameSpace name , '::' , className
+"/ ].
+ methodSelector := (receiver arguments at:1) evaluate.
+
+ change := MethodPrivacyChange new.
+ change
+ className:className
+ selector:methodSelector
+ privacy:(arguments at:1) evaluate.
+
+ changeAction value:change value:lineNumber value:position.
+ ^ true
+!
+
+handleNameSpaceCreationChange
+ |receiverVarName change|
+
+ ((receiverVarName == #Namespace)
+ or:[receiverVarName == #NameSpace]) ifFalse:[
+ self error:'unexpected receiver in #name: message' mayProceed:true.
+ ^ false
+ ].
+
+ className := (arguments at:1) evaluate.
+
+ change := NameSpaceCreationChange new.
+ change name:className.
+ changeAction value:change value:lineNumber value:position.
+ ^ true
+!
+
+handlePrimitiveChange
+ |change primSource|
+
+ className := self receiversClassName.
+"/ nameSpace ~~ Smalltalk ifTrue:[
+"/ className := nameSpace name , '::' , className
+"/ ].
+
+ inputStream skipSeparators.
+ primSource := inputStream nextChunk.
+
+ selector == #'primitiveDefinitions' ifTrue:[
+ change := ClassPrimitiveDefinitionsChange new
+ ] ifFalse:[
+ selector == #'primitiveFunctions' ifTrue:[
+ change := ClassPrimitiveFunctionsChange new
+ ] ifFalse:[
+ change := ClassPrimitiveVariablesChange new
+ ]
+ ].
+ change class:className source:primSource.
+ changeAction value:change value:lineNumber value:position.
+ ^ true
+!
+
+handleRemoveClassChange
+ |receiverVarName change|
+
+ receiver isVariable ifTrue:[
+ receiverVarName := receiver name
+ ].
+
+ (receiverVarName == #Smalltalk) ifFalse:[
+ self error:'unexpected receiver in remove-class message' mayProceed:true.
+ ^ false
+ ].
+
+ className := (arguments at:1) name.
+"/ nameSpace ~~ Smalltalk ifTrue:[
+"/ className := nameSpace name , '::' , className
+"/ ].
+
+ change := ClassRemoveChange new.
+ change className:className.
+ changeAction value:change value:lineNumber value:position.
+ ^ true
+!
+
+handleRemoveMethodChange
+ |change|
+
+ className := self receiversClassName.
+"/ nameSpace ~~ Smalltalk ifTrue:[
+"/ className := nameSpace name , '::' , className
+"/ ].
+ methodSelector := (arguments at:1) evaluate.
+ change := MethodRemoveChange new.
+ change className:className selector:methodSelector.
+ changeAction value:change value:lineNumber value:position.
+ ^ true
+!
+
+handleRenameClassChange
+ |receiverVarName oldName newName change|
+
+ receiver isVariable ifTrue:[
+ receiverVarName := receiver name
+ ].
+
+ (receiverVarName == #Smalltalk) ifFalse:[
+ self error:'unexpected receiver in #name: message' mayProceed:true.
+ ^ false.
+ ].
+
+ oldName := (arguments at:1) name.
+ newName := (arguments at:2) evaluate.
+
+ change := ClassRenameChange new.
+ change oldName:oldName newName:newName.
+ changeAction value:change value:lineNumber value:position.
+ ^ true
+!
+
+processChange
+ "given a parse-tree (from parsing some changes source/chunk),
+ create changes and evaluate changeAction on each.
+ The block is invoked with the change and a lineNumberOrNil as
+ arg; the lineNumber is only valid, if the underlying stream
+ provides line-numbers; otherwise, nil is passed."
+
+ (selector == #'methods'
+ or:[(selector == #'methodsFor:')
+ or:[(selector == #'publicMethodsFor:')
+ or:[(selector == #'privateMethodsFor:')
+ or:[(selector == #'methodsFor:stamp:')
+ or:[(selector == #'ignoredMethodsFor:')]]]]]) ifTrue:[
+ ^ self handleMethodChange.
+ ].
+
+ selector == #'removeSelector:' ifTrue:[
+ ^ self handleRemoveMethodChange.
+ ].
+
+ "/ any subclass definiton selector ?
+ (Behavior definitionSelectors includes:selector)
+ ifTrue:[
+ ^ self handleClassDefinitionChange.
+ ].
+
+ selector == #'renameCategory:to:' ifTrue:[
+ ^ self handleMethodCategoryRenameChange.
+ ].
+
+ (selector == #'category:') ifTrue:[
+ ^ self handleMethodCategoryChange.
+ ].
+ (selector == #'privacy:') ifTrue:[
+ ^ self handleMethodPrivacyChange.
+ ].
+
+ selector == #'comment:' ifTrue:[
+ ^ self handleClassCommentChange.
+ ].
+
+ selector == #'instanceVariableNames:' ifTrue:[
+ ^ self handleClassInstanceVariableDefinitionChange
+ ].
+
+ selector == #'removeClass:' ifTrue:[
+ ^ self handleRemoveClassChange.
+ ].
+
+ selector == #'renameClass:to:' ifTrue:[
+ ^ self handleRenameClassChange.
+ ].
+
+ selector == #'name:' ifTrue:[
+ ^ self handleNameSpaceCreationChange.
+ ].
+
+ (selector == #'primitiveDefinitions'
+ or:[selector == #'primitiveFunctions'
+ or:[selector == #'primitiveVariables']]) ifTrue:[
+ ^ self handlePrimitiveChange.
+ ].
+
+ ^ false
+
+ "Created: / 16.2.1998 / 13:42:40 / cg"
+ "Modified: / 15.12.1999 / 00:29:06 / cg"
+! !
+
!ChangeSet::DiffSet methodsFor:'accessing'!
changed
@@ -1266,5 +1416,5 @@
!ChangeSet class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.82 2002-10-15 13:19:26 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.83 2002-11-08 16:20:14 cg Exp $'
! !