--- a/Class.st Sat Mar 22 14:19:44 1997 +0100
+++ b/Class.st Sat Mar 22 16:19:44 1997 +0100
@@ -924,7 +924,8 @@
privateClasses
"{ Pragma: +optSpace }"
- "return a collection of my private classes (if any); nil otherwise"
+ "return a collection of my private classes (if any); nil otherwise.
+ The classes are in any order."
|classes myName|
@@ -940,16 +941,14 @@
]
]
].
- classes size == 0 ifTrue:[
- ^ nil
- ].
- ^ classes asOrderedCollection topologicalSort:[:a :b | b isSubclassOf:a].
+ ^ classes
"
Object privateClasses
+ ObjectMemory privateClasses
"
- "Modified: 2.1.1997 / 14:08:35 / cg"
+ "Modified: 22.3.1997 / 16:18:09 / cg"
!
privateClassesAt:aClassNameSymbol
@@ -977,6 +976,28 @@
"Modified: 14.10.1996 / 17:23:36 / cg"
!
+privateClassesSorted
+ "{ Pragma: +optSpace }"
+
+ "return a collection of my private classes (if any); nil otherwise.
+ The classes are sorted by inheritance."
+
+ |classes|
+
+ classes := self privateClasses.
+ (classes notNil and:[classes notEmpty]) ifTrue:[
+ classes := classes asOrderedCollection topologicalSort:[:a :b | b isSubclassOf:a].
+ ].
+ ^ classes.
+
+ "
+ Object privateClassesSorted
+ "
+
+ "Created: 22.3.1997 / 16:10:42 / cg"
+ "Modified: 22.3.1997 / 16:11:20 / cg"
+!
+
removeClassVarName:aString
"{ Pragma: +optSpace }"
@@ -1573,7 +1594,7 @@
"/
"/ names of private classes
"/
- privateClasses := self privateClasses.
+ privateClasses := self privateClassesSorted.
privateClasses size storeBinaryOn:stream manager:manager.
privateClasses size > 0 ifTrue:[
privateClasses do:[:aClass |
@@ -1598,7 +1619,7 @@
"
"Modified: 7.6.1996 / 13:39:02 / stefan"
- "Modified: 15.10.1996 / 21:13:32 / cg"
+ "Modified: 22.3.1997 / 16:13:02 / cg"
!
storeBinaryDefinitionOf: anAssociation on: stream manager: manager
@@ -2343,11 +2364,12 @@
|classes|
- (classes := self privateClasses) notNil ifTrue:[
+ (classes := self privateClasses) size > 0 ifTrue:[
classes do:aBlock
].
"Created: 26.10.1996 / 12:28:57 / cg"
+ "Modified: 22.3.1997 / 16:17:36 / cg"
! !
!Class methodsFor:'fileIn interface'!
@@ -2828,8 +2850,6 @@
fileOutAllDefinitionsOn:aStream
"append expressions on aStream, which defines myself and all of my private classes."
- |privateClasses|
-
self fileOutDefinitionOn:aStream.
aStream nextPutChunkSeparator.
aStream cr; cr.
@@ -2843,18 +2863,16 @@
aStream cr; cr
].
- (privateClasses := self privateClasses) notNil ifTrue:[
- privateClasses do:[:aClass |
- aClass fileOutAllDefinitionsOn:aStream
- ]
+ self privateClassesSorted do:[:aClass |
+ aClass fileOutAllDefinitionsOn:aStream
]
"Created: 15.10.1996 / 11:15:19 / cg"
- "Modified: 15.10.1996 / 11:26:30 / cg"
+ "Modified: 22.3.1997 / 16:11:56 / cg"
!
fileOutAllMethodsOn:aStream
- |collectionOfCategories privateClasses|
+ |collectionOfCategories|
collectionOfCategories := self class categories asSortedCollection.
collectionOfCategories notNil ifTrue:[
@@ -2871,13 +2889,12 @@
]
].
- (privateClasses := self privateClasses) notNil ifTrue:[
- privateClasses do:[:aClass |
- aClass fileOutAllMethodsOn:aStream
- ]
+ self privateClassesSorted do:[:aClass |
+ aClass fileOutAllMethodsOn:aStream
].
"Created: 15.10.1996 / 11:13:00 / cg"
+ "Modified: 22.3.1997 / 16:12:17 / cg"
!
fileOutCategory:aCategory
@@ -3161,7 +3178,7 @@
"file out my definition and all methods onto aStream"
|collectionOfCategories copyrightMethod copyrightText comment versionMethod skippedMethods
- meta privateClasses|
+ meta|
self isLoaded ifFalse:[
^ FileOutErrorSignal
@@ -3169,8 +3186,6 @@
errorString:'will not fileOut unloaded classes'
].
- privateClasses := self privateClasses.
-
meta := self class.
"
@@ -3292,10 +3307,8 @@
"/
"/ any private classes' methods
"/
- privateClasses notNil ifTrue:[
- privateClasses do:[:aClass |
- aClass fileOutAllMethodsOn:aStream
- ].
+ self privateClassesSorted do:[:aClass |
+ aClass fileOutAllMethodsOn:aStream
].
@@ -3316,7 +3329,7 @@
]
"Created: 15.11.1995 / 12:53:06 / cg"
- "Modified: 21.12.1996 / 13:54:01 / cg"
+ "Modified: 22.3.1997 / 16:12:47 / cg"
!
fileOutPrimitiveDefinitionsOn:aStream
@@ -4843,6 +4856,6 @@
!Class class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.264 1997-03-22 13:18:56 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.265 1997-03-22 15:19:44 cg Exp $'
! !
Class initialize!