JavaClassRegistry.st
branchdevelopment
changeset 2705 e693added0af
parent 2676 a9d6293ac6d5
child 2711 a00302fe5083
child 2730 272689c14005
--- a/JavaClassRegistry.st	Mon Sep 02 10:08:10 2013 +0100
+++ b/JavaClassRegistry.st	Tue Sep 03 01:18:46 2013 +0100
@@ -359,7 +359,7 @@
      notifies system, so the class become visible by
      Smalltalk"
 
-    | nameComponents accessor ns |
+    | nameComponents accessor nsName ns  |
 
     javaclass isSynthetic ifTrue:[ ^ self ].
     nameComponents := javaclass name asCollectionOfSubstringsSeparatedBy:$/.
@@ -382,13 +382,19 @@
     "/ under the name JAVA::java::foo::bar
 
     accessor := javaclass"JavaClassAccessor fullName: aString".    
-    ns := JAVA.
+    nsName := javaclass topNameSpaceName.
+    ns := Smalltalk at: nsName.
+    ns isNil ifTrue:[
+        JavaPackage name:nsName.
+        ns := Smalltalk at: nsName
+    ].
 
     nameComponents size > 1 ifTrue:[
         | s |
 
         s := '' writeStream.
-        s nextPutAll:'JAVA'.
+
+        s nextPutAll: nsName.       
         nameComponents from:1 to:(nameComponents size - 1) do:[:aPart |
             s nextPutAll:'::'.
             s nextPutAll:aPart
@@ -402,6 +408,7 @@
 
     ns isNameSpace ifTrue:[
         ns at:nameComponents last asSymbol put:accessor.
+        javaclass setEnvironment: ns.
     ].
 
 
@@ -410,7 +417,7 @@
     ].
 
     "Created: / 04-04-2012 / 10:01:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 04-08-2013 / 03:39:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-09-2013 / 00:41:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 registerClasses: classes
@@ -449,25 +456,10 @@
     "Unregisters given class from Smalltalk system dictionary
      so the class is no longer visible from Smalltalk"
 
-    | nameComponents ns |
+    | ns |
 
     javaclass isSynthetic ifTrue:[ ^ self ].
-    ns := JAVA.
-    nameComponents size > 1 ifTrue:[
-        | s |
-
-        s := '' writeStream.
-        s nextPutAll:'JAVA'.
-        nameComponents from:1 to:(nameComponents size - 1) do:[:aPart |
-            s nextPutAll:'::'.
-            s nextPutAll:aPart
-        ].
-        Metaclass confirmationQuerySignal answer:false do:[
-            Class withoutUpdatingChangesDo:[
-                ns := JavaPackage fullName:(s contents).
-            ]
-        ]
-    ].
+    ns := javaclass nameSpace.
 
     ns isNameSpace ifTrue:[
         "/Hmmm hmm, how to remove class from a namespace?.
@@ -479,7 +471,7 @@
     ].
 
     "Created: / 04-04-2012 / 10:01:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 18-04-2013 / 22:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 03-09-2013 / 00:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 unregisterClassLoader: aJavaClassLoader