--- a/ClassChange.st Wed Jun 18 17:44:33 2003 +0200
+++ b/ClassChange.st Wed Jun 18 17:44:53 2003 +0200
@@ -150,15 +150,28 @@
apply
"apply the change"
+ Parser evaluate:(self source)
+"/ |ns|
+"/
+"/ ns := Class nameSpaceQuerySignal isHandled
+"/ ifTrue:[ Class nameSpaceQuerySignal query ]
+"/ ifFalse:[ self nameSpace ].
+"/
+"/ Class nameSpaceQuerySignal answer:ns do:[
+"/ Parser evaluate:(self source)
+"/ ].
+!
+
+fullClassName
|ns|
- ns := Class nameSpaceQuerySignal isHandled
- ifTrue:[ Class nameSpaceQuerySignal query ]
- ifFalse:[ self nameSpace ].
+ "/ used to be ^ className;
+ "/
+ "/ now include a translation from vw namespace to stx nameSpace
- Class nameSpaceQuerySignal answer:ns do:[
- Parser evaluate:(self source)
- ].
+ ns := self nameSpaceName.
+ ns = 'Smalltalk' ifTrue:[^ self className].
+ ^ ns , '::' , self className
!
nameSpace
@@ -171,13 +184,18 @@
!
nameSpaceName
+ |ns cnm idx|
+
(className includes:$:) ifTrue:[
"/ in a namespace
^ className upTo:$:.
].
- (className includes:$.) ifTrue:[
+ (idx := className indexOf:$.) ~~ 0 ifTrue:[
"/ in a namespace
- ^ className upTo:$..
+ ns := className copyTo:(idx - 1).
+ cnm := className copyFrom:(idx + 1).
+ "cheat: VW namespaces"
+ ^ self nameSpaceForVWNamespace:ns class:cnm ifAbsent:ns
].
^ nil
! !
@@ -198,12 +216,12 @@
!ClassChange methodsFor:'queries'!
cutNameSpaceOf:aString
+ |dotIndex|
+
aString notNil ifTrue:[
- (aString startsWith:'Kernel.') ifTrue:[
- ^ aString copyFrom:'Kernel.' size+1
- ].
- (aString startsWith:'Core.') ifTrue:[
- ^ aString copyFrom:'Core.' size+1
+ dotIndex := aString indexOf:$..
+ dotIndex ~~ 0 ifTrue:[
+ ^ aString copyFrom:dotIndex+1
].
].
^ aString
@@ -211,10 +229,19 @@
isClassChange
^ true
+!
+
+nameSpaceForVWNamespace:ns class:className ifAbsent:default
+ ns = 'Core' ifTrue:[^ 'Smalltalk'].
+ ns = 'Kernel' ifTrue:[^ 'Smalltalk'].
+ ns = 'Graphics' ifTrue:[^ 'Smalltalk'].
+ ns = 'OS' ifTrue:[^ 'Smalltalk'].
+ ns = 'Smalltalk' ifTrue:[^ 'Smalltalk'].
+ ^ default value
! !
!ClassChange class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic3/ClassChange.st,v 1.35 2003-06-03 16:24:51 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/ClassChange.st,v 1.36 2003-06-18 15:44:53 cg Exp $'
! !