ChangeSet.st
branchjv
changeset 3088 e1f7c7f799f8
parent 3080 0febf2fdcb76
child 3095 5843e7139014
--- a/ChangeSet.st	Thu Sep 27 10:24:03 2012 +0100
+++ b/ChangeSet.st	Thu Sep 27 20:37:25 2012 +0100
@@ -553,7 +553,6 @@
     "Created: / 27.10.1997 / 13:52:54 / cg"
 ! !
 
-
 !ChangeSet class methodsFor:'Compatibility-VW'!
 
 component: component definition: anObject change: changeSymbol
@@ -708,12 +707,6 @@
     "Modified: / 31-07-2012 / 15:37:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!ChangeSet class methodsFor:'others'!
-
-version_CVS
-    ^ '§Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.197 2012/08/13 14:22:06 stefan Exp §'
-! !
-
 !ChangeSet class methodsFor:'queries'!
 
 current
@@ -1111,7 +1104,6 @@
     "Created: / 05-12-2009 / 12:32:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !ChangeSet methodsFor:'misc'!
 
 addPatch:nameOfPatch
@@ -1120,7 +1112,6 @@
     ^ self
 ! !
 
-
 !ChangeSet methodsFor:'private-accessing'!
 
 addChange:aChange
@@ -1395,7 +1386,10 @@
     "Created: / 25-10-2006 / 18:06:55 / cg"
 !
 
-selectForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:aCollectionOfClasses
+selectClassesForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:aCollectionOfClasses
+    "return the set of classes from a given collection, for which I have changes.
+     Returns a collection of classes"
+
     |selected alreadyProcessed classes prev|
 
     classes := aCollectionOfClasses collect:[:eachClass | eachClass theNonMetaclass] as:Array.
@@ -1425,6 +1419,37 @@
     ].
     ^ selected.
 
+    "Created: / 04-09-2012 / 14:01:37 / cg"
+!
+
+selectForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:aCollectionOfClasses
+    "select changes for one of a given class.
+     Returns a collection of changes"
+
+    |selected  classes |
+
+    classes := aCollectionOfClasses collect:[:eachClass | eachClass theNonMetaclass] as:Array.
+
+    selected := ChangeSet new.
+
+    self do:[:eachChange | 
+        |changeClassName changeClass isIn|
+
+        changeClass := eachChange changeClass.
+        (changeClass notNil) ifTrue:[
+            changeClass := changeClass theNonMetaclass.
+            ((classes includes:changeClass)
+                or: [
+                    changeClass isPrivate
+                    and: [ (classes includes:changeClass owningClass) ]
+                ]
+            ) ifTrue:[
+                selected add: eachChange
+            ].
+        ]
+    ].
+    ^ selected.
+
     "Created: / 08-09-2011 / 04:38:32 / cg"
 ! !
 
@@ -3461,7 +3486,7 @@
 !
 
 version_SVN
-    ^ '$Id:: ChangeSet.st 1959 2012-09-05 15:46:10Z vranyj1                                                                         $'
+    ^ '$Id:: ChangeSet.st 1971 2012-09-27 19:37:25Z vranyj1                                                                         $'
 ! !
 
 !ChangeSet::ClassSourceWriter::ClassInfo class methodsFor:'instance creation'!
@@ -3850,6 +3875,22 @@
 
 !ChangeSet::DiffSet methodsFor:'queries'!
 
+changedClasses
+    |allChangedClasses|
+
+    allChangedClasses := Set new.
+    allChangedClasses addAll:(onlyInArg changedClasses).
+    allChangedClasses addAll:(onlyInReceiver changedClasses).
+    changed do:[:eachChangePair | 
+        allChangedClasses add:(eachChangePair first changeClass).
+        allChangedClasses add:(eachChangePair second changeClass).
+    ].
+    allChangedClasses remove:nil ifAbsent:[].
+    ^ allChangedClasses
+
+    "Created: / 26-09-2012 / 15:39:18 / cg"
+!
+
 isEmpty
     ^ changed isEmpty
     and:[ onlyInReceiver isEmpty
@@ -4118,9 +4159,13 @@
 !ChangeSet class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ChangeSet.st 1959 2012-09-05 15:46:10Z vranyj1 $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.200 2012/09/26 16:34:02 cg Exp $'
+!
+
+version_CVS
+    ^ '§Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.200 2012/09/26 16:34:02 cg Exp §'
 !
 
 version_SVN
-    ^ '$Id: ChangeSet.st 1959 2012-09-05 15:46:10Z vranyj1 $'
+    ^ '$Id: ChangeSet.st 1971 2012-09-27 19:37:25Z vranyj1 $'
 ! !