oops - care for the case, where the superclasses namespace
authortm
Tue, 09 Mar 1999 22:44:58 +0100
changeset 4038 bbf575d41f34
parent 4037 1715c72ce46f
child 4039 88c4db2ca7ac
oops - care for the case, where the superclasses namespace is different from mine (but not Smalltalk), when generating a class definition (which is not a full-path definition)
Class.st
--- a/Class.st	Tue Mar 09 15:59:17 1999 +0100
+++ b/Class.st	Tue Mar 09 22:44:58 1999 +0100
@@ -1760,65 +1760,73 @@
     owner := self owningClass.
 
     owner isNil ifTrue:[
-	ns := self nameSpace.
+        ns := self nameSpace.
     ] ifFalse:[
-	ns := self topOwningClass nameSpace
+        ns := self topOwningClass nameSpace
     ].
     fullName := FileOutNameSpaceQuerySignal raise == true.
         
     ((owner isNil and:[fullName not])
     or:[owner notNil and:[forceNameSpace and:[fullName not]]]) ifTrue:[
-	(ns notNil and:[ns ~~ Smalltalk]) ifTrue:[
-	    nsName := ns name.
-	    (nsName includes:$:) ifTrue:[
-		nsName := '''' , nsName , ''''
-	    ].
+        (ns notNil and:[ns ~~ Smalltalk]) ifTrue:[
+            nsName := ns name.
+            (nsName includes:$:) ifTrue:[
+                nsName := '''' , nsName , ''''
+            ].
 "/            aStream nextPutLine:'"{ NameSpace: ' , nsName , ' }"'; cr.
-	    aStream nextPutAll:'"{ NameSpace: '.
-	    syntaxHilighting ifTrue:[aStream bold].
-	    aStream nextPutAll:nsName.
-	    syntaxHilighting ifTrue:[aStream normal].
-	    aStream nextPutAll:' }"'; cr; cr.
-	]
+            aStream nextPutAll:'"{ NameSpace: '.
+            syntaxHilighting ifTrue:[aStream bold].
+            aStream nextPutAll:nsName.
+            syntaxHilighting ifTrue:[aStream normal].
+            aStream nextPutAll:' }"'; cr; cr.
+        ]
     ].
 
     "take care of nil-superclass"
     superclass isNil ifTrue:[
-	s := 'nil'
+        s := 'nil'
     ] ifFalse:[
-	fullName ifTrue:[
-	    s := superclass name
-	] ifFalse:[
-	    (ns == superclass nameSpace 
-	    and:[superclass owningClass isNil]) ifTrue:[
-		s := superclass nameWithoutPrefix
-	    ] ifFalse:[
-		"/ a very special (rare) situation:
-		"/ my superclass resides in another nameSpace,
-		"/ but there is something else named like this
-		"/ to be found in my nameSpace (or a private class)
-
-		superName := superclass nameWithoutNameSpacePrefix asSymbol.
-		cls := self privateClassesAt:superName.
-		cls isNil ifTrue:[
-		    (topOwner := self topOwningClass) isNil ifTrue:[
-			ns := self nameSpace.
-			ns notNil ifTrue:[
-			    cls := ns privateClassesAt:superName
-			] ifFalse:[
-			    "/ self error:'unexpected nil namespace'
-			]
-		    ] ifFalse:[
-			cls := topOwner nameSpace at:superName.
-		    ]
-		].
-		(cls notNil and:[cls ~~ superclass]) ifTrue:[
-		    s := superclass nameSpace name , '::' , superName
-		] ifFalse:[
-		    s := superName
-		]
-	    ]
-	]
+        fullName ifTrue:[
+            s := superclass name
+        ] ifFalse:[
+            (ns == superclass nameSpace 
+            and:[superclass owningClass isNil]) ifTrue:[
+                s := superclass nameWithoutPrefix
+            ] ifFalse:[
+                "/ a very special (rare) situation:
+                "/ my superclass resides in another nameSpace,
+                "/ but there is something else named like this
+                "/ to be found in my nameSpace (or a private class)
+
+                superName := superclass nameWithoutNameSpacePrefix asSymbol.
+                cls := self privateClassesAt:superName.
+                cls isNil ifTrue:[
+                    (topOwner := self topOwningClass) isNil ifTrue:[
+                        ns := self nameSpace.
+                        ns notNil ifTrue:[
+                            cls := ns privateClassesAt:superName
+                        ] ifFalse:[
+                            "/ self error:'unexpected nil namespace'
+                        ]
+                    ] ifFalse:[
+                        cls := topOwner nameSpace at:superName.
+                    ]
+                ].
+                (cls notNil and:[cls ~~ superclass]) ifTrue:[
+                    s := superclass nameSpace name , '::' , superName
+                ] ifFalse:[
+                    "/ no class with that name found in my namespace ...
+                    "/ if the superclass resides in Smalltalk,
+                    "/ suppress prefix.
+                    (superclass nameSpace notNil 
+                    and:[superclass nameSpace ~~ Smalltalk]) ifTrue:[
+                        s := superclass nameSpace name , '::' , superName
+                    ] ifFalse:[
+                        s := superName
+                    ]
+                ]
+            ]
+        ]
     ].
 
     syntaxHilighting ifTrue:[aStream bold].
@@ -1828,16 +1836,16 @@
     self basicFileOutInstvarTypeKeywordOn:aStream.
 
     (fullName and:[owner isNil]) ifTrue:[
-	aStream nextPutAll:'#'''.
-	syntaxHilighting ifTrue:[aStream bold].
-	aStream nextPutAll:(self name).
-	syntaxHilighting ifTrue:[aStream normal].
-	aStream nextPutAll:''''.
+        aStream nextPutAll:'#'''.
+        syntaxHilighting ifTrue:[aStream bold].
+        aStream nextPutAll:(self name).
+        syntaxHilighting ifTrue:[aStream normal].
+        aStream nextPutAll:''''.
     ] ifFalse:[
-	aStream nextPut:$#.
-	syntaxHilighting ifTrue:[aStream bold].
-	aStream nextPutAll:(self nameWithoutPrefix).
-	syntaxHilighting ifTrue:[aStream normal].
+        aStream nextPut:$#.
+        syntaxHilighting ifTrue:[aStream bold].
+        aStream nextPutAll:(self nameWithoutPrefix).
+        syntaxHilighting ifTrue:[aStream normal].
     ].
 
     aStream crtab. 
@@ -1859,25 +1867,25 @@
 
     aStream crtab.
     owner isNil ifTrue:[
-	"/ a public class
-	aStream nextPutAll:'category:'.
-	category isNil ifTrue:[
-	    s := ''''''
-	] ifFalse:[
-	    s := category asString storeString
-	].
-	aStream nextPutAll:s.
+        "/ a public class
+        aStream nextPutAll:'category:'.
+        category isNil ifTrue:[
+            s := ''''''
+        ] ifFalse:[
+            s := category asString storeString
+        ].
+        aStream nextPutAll:s.
     ] ifFalse:[
-	"/ a private class
-	aStream nextPutAll:'privateIn:'.
-	syntaxHilighting ifTrue:[aStream bold].
-	fullName ifTrue:[
-	    s := owner name.
-	] ifFalse:[
-	    s := owner nameWithoutNameSpacePrefix.
-	].
-	aStream nextPutAll:s.
-	syntaxHilighting ifTrue:[aStream normal].
+        "/ a private class
+        aStream nextPutAll:'privateIn:'.
+        syntaxHilighting ifTrue:[aStream bold].
+        fullName ifTrue:[
+            s := owner name.
+        ] ifFalse:[
+            s := owner nameWithoutNameSpacePrefix.
+        ].
+        aStream nextPutAll:s.
+        syntaxHilighting ifTrue:[aStream normal].
     ].
     aStream cr
 
@@ -3907,5 +3915,5 @@
 !Class class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.331 1999-03-03 21:31:49 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.332 1999-03-09 21:44:58 tm Exp $'
 ! !