--- a/ChangeSet.st Mon Mar 13 16:50:38 2006 +0100
+++ b/ChangeSet.st Thu Mar 16 10:12:45 2006 +0100
@@ -13,7 +13,7 @@
"{ Package: 'stx:libbasic3' }"
OrderedCollection subclass:#ChangeSet
- instanceVariableNames:'changedClasses'
+ instanceVariableNames:'changedClasses changeSelectors'
classVariableNames:''
poolDictionaries:''
category:'System-Changes'
@@ -498,6 +498,31 @@
"Created: / 4.2.2000 / 18:30:59 / cg"
!
+changeSelectors
+ "return a collection of all selectors for which changes are in this changeSet"
+
+ |selectors|
+
+ changeSelectors isNil ifTrue:[
+ selectors := IdentitySet new.
+ self do:[:chg |
+ |cls|
+
+ chg notNil ifTrue:[
+ chg isMethodChange ifTrue:[
+ selectors add:chg selector
+ ]
+ ]
+ ].
+ changeSelectors := selectors.
+ ].
+ ^ changeSelectors.
+
+ "
+ ChangeSet current changeSelectors
+ "
+!
+
changedClasses
"return a collection of all classes for which changes are in this changeSet"
@@ -791,6 +816,11 @@
changedClasses notNil ifTrue:[
changedClasses add:aChange changeClass.
].
+ changeSelectors notNil ifTrue:[
+ aChange isMethodChange ifTrue:[
+ changeSelectors add:aChange selector.
+ ].
+ ].
"/ aChange sendChangeNotificationThroughSmalltalk.
self changed:#addChange: with:aChange.
@@ -808,7 +838,7 @@
removeAll:aCollection
aCollection notEmpty ifTrue:[
super removeAll:aCollection.
- changedClasses := nil.
+ changedClasses := changeSelectors := nil.
self changed:#removeAll: with:aCollection.
]
!
@@ -837,6 +867,8 @@
includesChangeForClass:aClass selector:selector
|nameOfClass|
+ (self changedClasses includes:aClass) ifFalse:[^ false].
+
nameOfClass := aClass name.
^ self contains:[:aChange |
@@ -979,7 +1011,7 @@
changesToRemove add:aChange
]
].
- changedClasses := nil.
+ changedClasses := changeSelectors := nil.
changesToRemove notEmpty ifTrue:[
self removeAll:changesToRemove
].
@@ -1973,5 +2005,5 @@
!ChangeSet class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.126 2006-03-13 15:50:38 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.127 2006-03-16 09:12:45 cg Exp $'
! !