--- a/Class.st Tue Mar 30 20:46:42 2004 +0200
+++ b/Class.st Tue Mar 30 20:53:26 2004 +0200
@@ -2323,9 +2323,9 @@
fileOutClassInstVarDefinitionOn:aStream
"append an expression to define my classInstanceVariables on aStream"
- self
- fileOutClassInstVarDefinitionOn:aStream
- withNameSpace:false
+ self class
+ fileOutClassInstVarDefinitionOn:aStream
+ withNameSpace:false
!
fileOutClassInstVarDefinitionOn:aStream withNameSpace:withNameSpace
@@ -3287,7 +3287,7 @@
"append an instvars-record to aStream"
- aClass fileOutClassInstVarDefinitionOn:aStream withNameSpace:true.
+ aClass class fileOutClassInstVarDefinitionOn:aStream withNameSpace:true.
aStream nextPutChunkSeparator.
!
@@ -4698,5 +4698,5 @@
!Class class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.468 2004-03-22 12:03:29 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.469 2004-03-30 18:53:08 cg Exp $'
! !
--- a/Metaclass.st Tue Mar 30 20:46:42 2004 +0200
+++ b/Metaclass.st Tue Mar 30 20:53:26 2004 +0200
@@ -541,6 +541,52 @@
"Modified: / 18.3.1999 / 18:15:46 / stefan"
!
+fileOutClassInstVarDefinitionOn:aStream withNameSpace:withNameSpace
+ "append an expression to define my classInstanceVariables on aStream"
+
+ |anySuperClassInstVar|
+
+ myClass isLoaded ifFalse:[
+ ^ myClass basicFileOutDefinitionOn:aStream withNameSpace:withNameSpace
+ ].
+
+ withNameSpace ifTrue:[
+ myClass name printOn:aStream.
+ ] ifFalse:[
+ myClass printClassNameOn:aStream.
+ ].
+ aStream nextPutAll:' class instanceVariableNames:'''.
+ self printInstVarNamesOn:aStream indent:8.
+ aStream nextPutAll:''''.
+
+ "mhmh - good idea; saw this in SmallDraw sourcecode ..."
+
+ anySuperClassInstVar := false.
+ myClass allSuperclassesDo:[:aSuperClass |
+ aSuperClass class instVarNames do:[:ignored | anySuperClassInstVar := true].
+ ].
+
+ aStream cr; cr; nextPut:(Character doubleQuote); cr; space.
+ anySuperClassInstVar ifFalse:[
+ aStream
+ nextPutLine:'No other class instance variables are inherited by this class.'.
+ ] ifTrue:[
+ aStream
+ nextPutLine:'The following class instance variables are inherited by this class:'.
+ aStream cr.
+ myClass allSuperclassesDo:[:aSuperClass |
+ aStream tab; nextPutAll:aSuperClass name; nextPutAll:' - '.
+ aStream nextPutLine:(aSuperClass class instanceVariableString).
+ ].
+
+ ].
+ aStream nextPut:(Character doubleQuote); cr.
+
+ "Created: / 10.12.1995 / 16:31:25 / cg"
+ "Modified: / 1.4.1997 / 16:00:33 / stefan"
+ "Modified: / 3.2.2000 / 23:05:28 / cg"
+!
+
fileOutDefinitionOn:aStream
myClass fileOutClassInstVarDefinitionOn:aStream
@@ -743,7 +789,7 @@
!Metaclass class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Metaclass.st,v 1.188 2004-03-19 08:17:11 ca Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Metaclass.st,v 1.189 2004-03-30 18:53:26 cg Exp $'
! !
Metaclass initialize!