changed #forPackage:saveClassDefinitionsOn:
authorjames
Thu, 10 Apr 2003 08:26:37 +0200
changeset 1238 b59fc0746f8c
parent 1237 2a2ce9717fef
child 1239 4804c8cac426
changed #forPackage:saveClassDefinitionsOn: stops private classes being filed out twice. Checks ownersClass to see if it is part of the same package.
packages/StxPackageFileWriter.st
--- a/packages/StxPackageFileWriter.st	Wed Apr 09 20:02:55 2003 +0200
+++ b/packages/StxPackageFileWriter.st	Thu Apr 10 08:26:37 2003 +0200
@@ -87,7 +87,16 @@
         aWriteStream nextPutAll:'"Class Definitions"!!'.
         aWriteStream cr.
         aPackage classNames do:[:aClass |
-            self fileOutClass:(Smalltalk at:aClass) on:aWriteStream.
+            aClass nameSpace isNamespace ifTrue:[
+                self fileOutClass:(Smalltalk at:aClass) on:aWriteStream.
+            ] ifFalse:[| ownerClass |
+                "aClass is a privateClass"
+                ownerClass := aClass nameSpace package.
+                ownerClass package == aPackage name ifFalse:[
+                ]. "ifTrue:[
+                    Do nothing - the class has already been filed out by its ownerClass!!
+                ]."
+            ]
         ].
         aWriteStream cr.
         aWriteStream nextPutAll:'"End of Class Definitions"!!'.
@@ -420,5 +429,5 @@
 !StxPackageFileWriter class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/packages/StxPackageFileWriter.st,v 1.1 2003-04-09 11:34:02 james Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/packages/StxPackageFileWriter.st,v 1.2 2003-04-10 06:26:37 james Exp $'
 ! !