3339 |
3339 |
3340 self hasSpecClassAndSelector ifFalse:[ |
3340 self hasSpecClassAndSelector ifFalse:[ |
3341 self doDefineClassAndSelector isNil ifTrue: [^nil] |
3341 self doDefineClassAndSelector isNil ifTrue: [^nil] |
3342 ]. |
3342 ]. |
3343 |
3343 |
3344 specClass notNil ifTrue:[ |
3344 (specClass notNil and: [(cls := Smalltalk at: specClass asSymbol) isClass]) ifFalse:[ |
3345 (specClass includes:$:) ifFalse:[ |
|
3346 (ns := Smalltalk defaultNameSpace) notNil ifTrue:[ |
|
3347 cls := ns at:specClass asSymbol |
|
3348 ]. |
|
3349 ]. |
|
3350 cls isNil ifTrue:[ |
|
3351 (specClass startsWith:'Smalltalk::') ifTrue:[ |
|
3352 cls := Smalltalk at: (specClass copyFrom:12) asSymbol. |
|
3353 ] ifFalse:[ |
|
3354 cls := Smalltalk at: specClass asSymbol. |
|
3355 ] |
|
3356 ]. |
|
3357 ns := cls nameSpace. |
|
3358 ]. |
|
3359 cls isClass ifFalse:[ |
|
3360 self warn:('Oops - cannot save - class not found: ' , specClass). |
3345 self warn:('Oops - cannot save - class not found: ' , specClass). |
3361 ^nil |
3346 ^nil |
3362 ]. |
3347 ]. |
3363 |
3348 |
3364 ns ~~ Smalltalk defaultNameSpace ifTrue:[ |
3349 "/ specClass notNil ifTrue:[ |
3365 specClass := ns name , '::' , cls nameWithoutNameSpacePrefix. |
3350 "/ (specClass includes:$:) ifFalse:[ |
3366 ] ifFalse:[ |
3351 "/ (ns := Smalltalk defaultNameSpace) notNil ifTrue:[ |
3367 specClass := cls name. |
3352 "/ cls := ns at:specClass asSymbol |
3368 ]. |
3353 "/ ]. |
|
3354 "/ ]. |
|
3355 "/ cls isNil ifTrue:[ |
|
3356 "/ (specClass startsWith:'Smalltalk::') ifTrue:[ |
|
3357 "/ cls := Smalltalk at: (specClass copyFrom:12) asSymbol. |
|
3358 "/ ] ifFalse:[ |
|
3359 "/ cls := Smalltalk at: specClass asSymbol. |
|
3360 "/ ] |
|
3361 "/ ]. |
|
3362 "/ ns := cls nameSpace. |
|
3363 "/ ]. |
|
3364 "/ cls isClass ifFalse:[ |
|
3365 "/ self warn:('Oops - cannot save - class not found: ' , specClass). |
|
3366 "/ ^nil |
|
3367 "/ ]. |
|
3368 "/ |
|
3369 "/ ns ~~ Smalltalk defaultNameSpace ifTrue:[ |
|
3370 "/ specClass := ns name , '::' , cls nameWithoutNameSpacePrefix. |
|
3371 "/ ] ifFalse:[ |
|
3372 "/ specClass := cls name. |
|
3373 "/ ]. |
3369 |
3374 |
3370 painter := self painter. |
3375 painter := self painter. |
3371 painter |
3376 painter |
3372 className:specClass |
3377 className:specClass |
3373 superclassName:specSuperclass |
3378 superclassName:specSuperclass |