--- a/MCClassDefinition.st Sat May 05 21:23:43 2012 +0200
+++ b/MCClassDefinition.st Wed Jun 13 13:04:59 2012 +0200
@@ -271,20 +271,50 @@
!MCClassDefinition methodsFor:'converting'!
asChange
+ |instVarNamesString classVarNamesString classInstVarNamesString poolDictionariesString
+ definitionSelector|
+ instVarNamesString := self instVarNames asStringWith:' '.
+ classVarNamesString := self classVarNames asStringWith:' '.
+ classInstVarNamesString := self classInstVarNames asStringWith:' '.
+ poolDictionariesString := self poolDictionaries asStringWith:' '.
+
+ definitionSelector := #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'.
+ type ~~ #normal ifTrue:[
+ type == #variable ifTrue:[
+ definitionSelector := #'variableSubclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'.
+ ] ifFalse:[
+ type == #bytes ifTrue:[
+ definitionSelector := #'variableByteSubclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'.
+ ] ifFalse:[
+ type == #words ifTrue:[
+ "for Squeak compatibility: that is long-words !!!!!!!!"
+ definitionSelector := #'variableLongSubclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'.
+ ] ifFalse:[
+ type == #compiledMethod ifTrue:[
+ definitionSelector := #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'.
+ ] ifFalse:[
+self halt:'unhandled class-type'.
+ ]
+ ]
+ ]
+ ]
+ ].
^ClassDefinitionChange new
mcDefinition: self;
+ definitionSelector: definitionSelector;
className: name;
superClassName: superclassName;
- instanceVariableNames: (String streamContents: [:s|self instVarNames do:[:nm|s nextPutAll: nm; space]]) ;
- classVariableNames: (String streamContents: [:s|self classVarNames do:[:nm|s nextPutAll: nm; space]]) ;
- classInstanceVariableNames: (String streamContents: [:s|self classInstVarNames do:[:nm|s nextPutAll: nm; space]]) ;
+ instanceVariableNames: instVarNamesString ;
+ classVariableNames: classVarNamesString ;
+ classInstanceVariableNames: classInstVarNamesString ;
+ poolDictionaries: poolDictionariesString ;
category: category;
yourself
"Created: / 13-10-2010 / 17:11:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 08-11-2010 / 17:56:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 04-09-2011 / 19:50:56 / cg"
+ "Modified: / 13-06-2012 / 12:57:38 / cg"
! !
!MCClassDefinition methodsFor:'initializing'!
@@ -574,11 +604,11 @@
!MCClassDefinition class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassDefinition.st,v 1.7 2011-11-25 16:46:22 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassDefinition.st,v 1.8 2012-06-13 11:04:59 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassDefinition.st,v 1.7 2011-11-25 16:46:22 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/goodies/monticello/MCClassDefinition.st,v 1.8 2012-06-13 11:04:59 cg Exp $'
!
version_SVN