"{ Package: 'stx:libbasic3' }"
ClassChange subclass:#ClassInitializeChange
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'System-Changes'
!
!ClassInitializeChange class methodsFor:'documentation'!
documentation
"
Change for class initialization chunk. Unlike DoItChange,
ClassInitializeChange handles namespaces and private classes
properly.
[author:]
Jan Vrany <jan.vrany@fit.cvut.cz>
[instance variables:]
[class variables:]
[see also:]
"
! !
!ClassInitializeChange methodsFor:'accessing'!
source
"return the source of the change"
source isNil ifTrue:[
^ String streamContents:[ :s |
(nameSpaceName notNil and:[ nameSpaceName ~= 'Smalltalk' ]) ifTrue:[
s nextPutAll: '"{ NameSpace: '; nextPutAll: nameSpaceName; nextPutAll: ' }"'; cr; cr.
s nextPutAll: self className; nextPutAll: ' initialize!!'; cr.
].
]
].
^ source
"Created: / 21-03-2014 / 17:43:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ClassInitializeChange methodsFor:'applying'!
apply
"apply the change"
| class |
class := self changeClass.
class isNil ifTrue:[
self error:('Class %1 does not (yet?) exists' bindWith: self fullClassName).
^ self.
].
class initialize.
"Created: / 21-03-2014 / 17:38:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ClassInitializeChange class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/libbasic3/ClassInitializeChange.st,v 1.1 2014-03-21 18:32:07 vrany Exp $'
!
version_CVS
^ '$Header: /cvs/stx/stx/libbasic3/ClassInitializeChange.st,v 1.1 2014-03-21 18:32:07 vrany Exp $'
! !