class: VSEPackageFileSourceWriter
authorClaus Gittinger <cg@exept.de>
Tue, 27 Jan 2015 21:34:51 +0100
changeset 3716 16aa34f422bf
parent 3715 addab0fe940d
child 3717 3890b66b1244
class: VSEPackageFileSourceWriter class definition changed: #fileOutPackage:on:
VSEPackageFileSourceWriter.st
--- a/VSEPackageFileSourceWriter.st	Tue Jan 27 21:29:28 2015 +0100
+++ b/VSEPackageFileSourceWriter.st	Tue Jan 27 21:34:51 2015 +0100
@@ -13,7 +13,7 @@
 
 "{ NameSpace: Smalltalk }"
 
-SmalltalkChunkFileSourceWriter subclass:#VSEPackageFileSourceWriter
+VSEFileSourceWriter subclass:#VSEPackageFileSourceWriter
 	instanceVariableNames:'packageName'
 	classVariableNames:''
 	poolDictionaries:''
@@ -75,13 +75,23 @@
 !VSEPackageFileSourceWriter class methodsFor:'utilities'!
 
 fileOutPackage:packageID on:aStream
-    |classesToFileout writer|
+    |classesToFileout methodsToFileOut writer|
 
     aStream lineEndCRLF.
 
     classesToFileout := Smalltalk allClassesInPackage:packageID.
+    classesToFileout := classesToFileout reject:[:cls | cls isSubclassOf: ProjectDefinition ].
     classesToFileout topologicalSort:[:a :b | b isSubclassOf:a].
 
+    methodsToFileOut := self extensionMethodsFor:packageID.
+
+    classesToFileout do:[:eachClass |
+        self ensureNoUnicodeInClass:eachClass
+    ].
+    methodsToFileOut do:[:eachClass |
+        self ensureNoUnicodeInMethod:eachClass
+    ].
+
     writer := VSEPackageFileSourceWriter new.
     writer packageName:packageID.
     writer writeHeaderOn:aStream.
@@ -91,7 +101,7 @@
 
         method := rewriteQuery method.
         source := rewriteQuery source.
-        source := VSEChunkFileSourceWriter vseSourceRewriter rewriteMethod:method.
+        source := self vseSourceRewriter rewriteMethod:method.
         rewriteQuery proceedWith:source.
     ] do:[
         classesToFileout do:[:eachClass |
@@ -99,18 +109,9 @@
         ].
 
         "/ fileout extensions
-        Smalltalk allClassesDo:[:eachClass |
-            (classesToFileout includes:eachClass) ifFalse:[
-                eachClass instAndClassSelectorsAndMethodsDo:[:sel :mthd |
-                    |mPckg|
-
-                    mPckg := mthd package.
-                    (mPckg = packageID and:[mPckg ~= eachClass package]) ifTrue:[
-                        writer fileOutMethod:mthd on:aStream.
-                        aStream cr.
-                    ]
-                ]
-            ].
+        methodsToFileOut do:[:eachMethod |
+            writer fileOutMethod:eachMethod on:aStream.
+            aStream cr.
         ].
     ].
 ! !
@@ -313,10 +314,10 @@
 !VSEPackageFileSourceWriter class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/VSEPackageFileSourceWriter.st,v 1.2 2015-01-27 15:16:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/VSEPackageFileSourceWriter.st,v 1.3 2015-01-27 20:34:51 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic3/VSEPackageFileSourceWriter.st,v 1.2 2015-01-27 15:16:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/VSEPackageFileSourceWriter.st,v 1.3 2015-01-27 20:34:51 cg Exp $'
 ! !