# HG changeset patch # User Claus Gittinger # Date 1080672806 -7200 # Node ID 357428ca03c5b2fe0bcf1f62ecee559e6a2819ce # Parent 9720407471d63313076fce5513a77a51be1401e5 classInstVar definition string (for non-ST metaclasses) diff -r 9720407471d6 -r 357428ca03c5 Class.st --- 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 $' ! ! diff -r 9720407471d6 -r 357428ca03c5 Metaclass.st --- 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!