allBehaviors vs. allClasses
authorClaus Gittinger <cg@exept.de>
Sun, 03 Sep 2000 16:45:58 +0200
changeset 5581 7bef1c75fb06
parent 5580 374e843aa424
child 5582 737d121ae7de
allBehaviors vs. allClasses
Behavior.st
Class.st
ClassDescription.st
NameSpace.st
ObjectMemory.st
Project.st
--- a/Behavior.st	Sun Sep 03 16:37:50 2000 +0200
+++ b/Behavior.st	Sun Sep 03 16:45:58 2000 +0200
@@ -1604,21 +1604,21 @@
     "evaluate aBlock for all of my subclasses.
      There is no specific order, in which the entries are enumerated.
      Warning:
-	This will only enumerate globally known classes - for anonymous
-	behaviors, you have to walk over all instances of Behavior."
+        This will only enumerate globally known classes - for anonymous
+        behaviors, you have to walk over all instances of Behavior."
 
     self isMeta ifTrue:[
-	"/ metaclasses are not found via Smalltalk allBehaviorsDo:
-	"/ here, walk over classes and enumerate corresponding metas.
-	self soleInstance allSubclassesDo:[:aSubClass |
-	    aBlock value:(aSubClass class)
-	].
+        "/ metaclasses are not found via Smalltalk allClassesDo:
+        "/ here, walk over classes and enumerate corresponding metas.
+        self soleInstance allSubclassesDo:[:aSubClass |
+            aBlock value:(aSubClass class)
+        ].
     ] ifFalse:[
-	Smalltalk allBehaviorsDo:[:aClass |
-	    (aClass isSubclassOf:self) ifTrue:[
-		aBlock value:aClass
-	    ]
-	]
+        Smalltalk allClassesDo:[:aClass |
+            (aClass isSubclassOf:self) ifTrue:[
+                aBlock value:aClass
+            ]
+        ]
     ]
 
     "
@@ -1679,24 +1679,34 @@
 
     |coll|
 
+    self isMeta ifTrue:[
+        self halt.
+        "/ metaclasses are not found via Smalltalk allClassesDo:
+        "/ here, walk over classes and enumerate corresponding metas.
+        self soleInstance subclassesDo:[:aSubClass |
+            aBlock value:(aSubClass class)
+        ].
+        ^ self
+    ].
+
     "/ use cached information (avoid class hierarchy search)
     "/ if possible
 
     SubclassInfo isNil ifTrue:[
-	Behavior subclassInfo
+        Behavior subclassInfo
     ].
     SubclassInfo notNil ifTrue:[
-	coll := SubclassInfo at:self ifAbsent:nil.
-	coll notNil ifTrue:[
-	    coll do:aBlock.
-	].
-	^ self
+        coll := SubclassInfo at:self ifAbsent:nil.
+        coll notNil ifTrue:[
+            coll do:aBlock.
+        ].
+        ^ self
     ].
 
-    Smalltalk allBehaviorsDo:[:aClass |
-	(aClass superclass == self) ifTrue:[
-	    aBlock value:aClass
-	]
+    Smalltalk allClassesDo:[:aClass |
+        (aClass superclass == self) ifTrue:[
+            aBlock value:aClass
+        ]
     ]
 
     "
@@ -4149,5 +4159,5 @@
 !Behavior class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Behavior.st,v 1.176 2000-08-22 22:15:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Behavior.st,v 1.177 2000-09-03 14:45:58 cg Exp $'
 ! !
--- a/Class.st	Sun Sep 03 16:37:50 2000 +0200
+++ b/Class.st	Sun Sep 03 16:45:58 2000 +0200
@@ -3370,8 +3370,8 @@
     |set|
 
     set := IdentitySet new.
-    Smalltalk allBehaviorsDo:[:aClass | 
-	aClass superclass isNil ifTrue:[set add:aClass]
+    Smalltalk allClassesDo:[:aClass | 
+        aClass superclass isNil ifTrue:[set add:aClass]
     ].
     ^ set asOrderedCollection
 
@@ -4477,5 +4477,5 @@
 !Class class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.377 2000-08-22 22:16:13 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.378 2000-09-03 14:45:10 cg Exp $'
 ! !
--- a/ClassDescription.st	Sun Sep 03 16:37:50 2000 +0200
+++ b/ClassDescription.st	Sun Sep 03 16:45:58 2000 +0200
@@ -499,17 +499,17 @@
     "evaluate aBlock for all classes in aCategory;
      no specific order is defined."
 
-    Smalltalk allBehaviorsDo:[:aClass |
-	aClass isMeta ifFalse:[
-	    (aClass category = aCategory) ifTrue:[
-		aBlock value:aClass
-	    ]
-	].
+    Smalltalk allClassesDo:[:aClass |
+        aClass isMeta ifFalse:[
+            (aClass category = aCategory) ifTrue:[
+                aBlock value:aClass
+            ]
+        ].
     ]
 
     "
      Class allClassesInCategory:'Kernel-Classes' 
-			     do:[:class |Transcript showCR:class name]
+                             do:[:class |Transcript showCR:class name]
     "
 
     "Created: 1.4.1997 / 23:45:09 / stefan"
@@ -522,12 +522,12 @@
     |classes|
 
     classes := OrderedCollection new.
-    Smalltalk allBehaviorsDo:[:aClass |
-	aClass isMeta ifFalse:[
-	    (aClass category = aCategory) ifTrue:[
-		classes add:aClass
-	    ]
-	]
+    Smalltalk allClassesDo:[:aClass |
+        aClass isMeta ifFalse:[
+            (aClass category = aCategory) ifTrue:[
+                classes add:aClass
+            ]
+        ]
     ].
     classes topologicalSort:[:a :b | b isSubclassOf:a].
     classes do:aBlock
@@ -3716,6 +3716,6 @@
 !ClassDescription class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.107 2000-08-22 13:47:04 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.108 2000-09-03 14:45:01 cg Exp $'
 ! !
 ClassDescription initialize!
--- a/NameSpace.st	Sun Sep 03 16:37:50 2000 +0200
+++ b/NameSpace.st	Sun Sep 03 16:45:58 2000 +0200
@@ -217,7 +217,7 @@
     |classes|
 
     classes := IdentitySet new.
-    self allBehaviorsDo:[:aClass | classes add:aClass].
+    self allClassesDo:[:aClass | classes add:aClass].
     ^ classes
 
     "Modified: 20.12.1996 / 15:34:50 / cg"
@@ -227,7 +227,7 @@
     |classes|
 
     classes := IdentitySet new.
-    self allBehaviorsDo:[:aClass | 
+    self allClassesDo:[:aClass | 
         classes add:aClass.
         aClass addAllPrivateClassesTo:classes.
     ].
@@ -342,6 +342,20 @@
     "Modified: / 18.3.1999 / 17:21:06 / cg"
 !
 
+allClassesDo:aBlock
+    "enumerate all classes in this namespace"
+
+    Smalltalk allClassesDo:[:aClass |
+        (aClass isBehavior and:[aClass isMeta not]) ifTrue:[
+            aClass nameSpace == self ifTrue:[
+                aBlock value:aClass
+            ].
+        ]
+    ].
+
+    "Modified: / 18.3.1999 / 17:21:06 / cg"
+!
+
 keysDo:aBlock
     "enumerate all class names in this namespace"
 
@@ -433,7 +447,7 @@
     |set|
 
     set := IdentitySet with:Smalltalk.
-    Smalltalk allBehaviorsDo:[:aClass |
+    Smalltalk allClassesDo:[:aClass |
         (aClass isNameSpace 
         and:[aClass ~~ NameSpace
         and:[aClass ~~ Smalltalk]]) ifTrue:[
@@ -466,5 +480,5 @@
 !NameSpace class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/NameSpace.st,v 1.40 2000-08-31 10:04:54 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/NameSpace.st,v 1.41 2000-09-03 14:44:37 cg Exp $'
 ! !
--- a/ObjectMemory.st	Sun Sep 03 16:37:50 2000 +0200
+++ b/ObjectMemory.st	Sun Sep 03 16:45:58 2000 +0200
@@ -3782,8 +3782,8 @@
      You may help the system a bit, in providing a lowSpaceCleanup method 
      in your classes which have lots of data kept somewhere (usually, cached data)."
 
-    Smalltalk allBehaviorsDo:[:aClass |
-	aClass lowSpaceCleanup
+    Smalltalk allClassesDo:[:aClass |
+        aClass lowSpaceCleanup
     ].
 
     "Created: 12.4.1996 / 14:57:28 / cg"
@@ -4896,7 +4896,7 @@
     "
     fn := aFileName asFilename.
     fn exists ifTrue:[
-	fn renameTo:(fn withSuffix:'sav')
+        fn renameTo:(fn withSuffix:'sav')
     ].
 
     "
@@ -4908,22 +4908,22 @@
     "
      ST-80 compatibility; send #preSnapshot to all classes
     "
-    Smalltalk allBehaviorsDo:[:aClass |
-	aClass preSnapshot
+    Smalltalk allClassesDo:[:aClass |
+        aClass preSnapshot
     ].
 
     ok := self primSnapShotOn:aFileName.
 
     ok ifTrue:[
-	Class addChangeRecordForSnapshot:aFileName.
+        Class addChangeRecordForSnapshot:aFileName.
     ].
 
 
     "
      ST-80 compatibility; send #postSnapshot to all classes
     "
-    Smalltalk allBehaviorsDo:[:aClass |
-	aClass postSnapshot
+    Smalltalk allClassesDo:[:aClass |
+        aClass postSnapshot
     ].
     self changed:#finishedSnapshot.  "/ ST-80 compatibility
     ^ ok
@@ -5047,6 +5047,6 @@
 !ObjectMemory class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ObjectMemory.st,v 1.188 2000-07-12 12:31:48 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ObjectMemory.st,v 1.189 2000-09-03 14:44:25 cg Exp $'
 ! !
 ObjectMemory initialize!
--- a/Project.st	Sun Sep 03 16:37:50 2000 +0200
+++ b/Project.st	Sun Sep 03 16:45:58 2000 +0200
@@ -22,15 +22,15 @@
 	category:'System-Support'
 !
 
-Object subclass:#ClassInfo
-	instanceVariableNames:'conditionForInclusion className classFileName'
+Object subclass:#MethodInfo
+	instanceVariableNames:'conditionForInclusion methodName className fileName'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:Project
 !
 
-Object subclass:#MethodInfo
-	instanceVariableNames:'conditionForInclusion methodName className fileName'
+Object subclass:#ClassInfo
+	instanceVariableNames:'conditionForInclusion className classFileName'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:Project
@@ -3485,7 +3485,7 @@
     ].
 
     methods := IdentitySet new.
-    Smalltalk allBehaviorsDo:[:cls |
+    Smalltalk allClassesDo:[:cls |
         |classToCheck|
 
         classToCheck := cls.
@@ -3745,56 +3745,6 @@
     "Modified: 14.2.1997 / 15:38:47 / cg"
 ! !
 
-!Project::ClassInfo methodsFor:'accessing'!
-
-classFileName
-    "return the value of the instance variable 'classFileName' (automatically generated)"
-
-    ^ classFileName!
-
-classFileName:something
-    "set the value of the instance variable 'classFileName' (automatically generated)"
-
-    classFileName := something.!
-
-className
-    "return the value of the instance variable 'className' (automatically generated)"
-
-    ^ className!
-
-className:something
-    "set the value of the instance variable 'className' (automatically generated)"
-
-    className := something.!
-
-conditionForInclusion
-    "return the value of the instance variable 'conditionForInclusion' (automatically generated)"
-
-    ^ conditionForInclusion!
-
-conditionForInclusion:something
-    "set the value of the instance variable 'conditionForInclusion' (automatically generated)"
-
-    conditionForInclusion := something.! !
-
-!Project::ClassInfo methodsFor:'printing & storing'!
-
-displayString
-    ^ 'ClassInfo: ' , className
-! !
-
-!Project::ClassInfo methodsFor:'queries'!
-
-theClass
-    |cls|
-
-    cls := Smalltalk classNamed:className.
-    cls isNil ifTrue:[ ^ nil].
-    ^ cls
-
-    "Created: / 26.9.1999 / 13:39:00 / cg"
-! !
-
 !Project::MethodInfo methodsFor:'accessing'!
 
 className
@@ -3864,9 +3814,59 @@
     "Created: / 26.9.1999 / 13:39:07 / cg"
 ! !
 
+!Project::ClassInfo methodsFor:'accessing'!
+
+classFileName
+    "return the value of the instance variable 'classFileName' (automatically generated)"
+
+    ^ classFileName!
+
+classFileName:something
+    "set the value of the instance variable 'classFileName' (automatically generated)"
+
+    classFileName := something.!
+
+className
+    "return the value of the instance variable 'className' (automatically generated)"
+
+    ^ className!
+
+className:something
+    "set the value of the instance variable 'className' (automatically generated)"
+
+    className := something.!
+
+conditionForInclusion
+    "return the value of the instance variable 'conditionForInclusion' (automatically generated)"
+
+    ^ conditionForInclusion!
+
+conditionForInclusion:something
+    "set the value of the instance variable 'conditionForInclusion' (automatically generated)"
+
+    conditionForInclusion := something.! !
+
+!Project::ClassInfo methodsFor:'printing & storing'!
+
+displayString
+    ^ 'ClassInfo: ' , className
+! !
+
+!Project::ClassInfo methodsFor:'queries'!
+
+theClass
+    |cls|
+
+    cls := Smalltalk classNamed:className.
+    cls isNil ifTrue:[ ^ nil].
+    ^ cls
+
+    "Created: / 26.9.1999 / 13:39:00 / cg"
+! !
+
 !Project class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Project.st,v 1.160 2000-08-22 11:10:29 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Project.st,v 1.161 2000-09-03 14:44:13 cg Exp $'
 ! !
 Project initialize!