src/JavaClassAccessor.st
branchjk_new_structure
changeset 1430 9331b0e95098
parent 1390 4a623c4ec05f
child 1453 f7a8861cdbe1
--- a/src/JavaClassAccessor.st	Mon Mar 19 09:19:05 2012 +0000
+++ b/src/JavaClassAccessor.st	Mon Mar 19 15:31:04 2012 +0000
@@ -21,7 +21,7 @@
 "{ Package: 'stx:libjava' }"
 
 Object subclass:#JavaClassAccessor
-	instanceVariableNames:'name fullName package'
+	instanceVariableNames:'name fullName package loading'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Languages-Java-Classes'
@@ -79,7 +79,14 @@
     | cls |
 
     cls := self theClassOrNil.
-    cls isNil ifTrue:[cls := Java classForName: (fullName copyReplaceAll: $/ with: $.)].
+    cls isNil ifTrue:[
+        [ 
+            loading := true.
+            cls := Java classForName: (fullName copyReplaceAll: $/ with: $.)
+        ] ensure:[
+            loading := false
+        ].
+    ].
     ^cls
 
     "Created: / 28-02-2012 / 19:22:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -157,6 +164,15 @@
     ^true
 
     "Created: / 28-02-2012 / 20:08:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isLoaded
+
+    loading ifTrue:[ ^ false ].
+    self theClass. "/Force load"
+    ^true
+
+    "Created: / 19-03-2012 / 10:44:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaClassAccessor class methodsFor:'documentation'!