src/JavaArray.st
branchjk_new_structure
changeset 1481 28b926d3cdb5
parent 1155 d6f6d5fc0343
child 1511 7bba867f71e3
--- a/src/JavaArray.st	Mon Apr 16 09:49:21 2012 +0000
+++ b/src/JavaArray.st	Wed Apr 18 07:18:32 2012 +0000
@@ -130,6 +130,39 @@
     "Created: / 22-05-2011 / 18:03:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!JavaArray class methodsFor:'autoboxing support'!
+
+javaUnwrap: anObject
+   "Given a Java array, create a corresponding Smalltalk array.
+    Called by interop proxies"
+
+    | sarray |
+
+    sarray := Array new: anObject size.
+    1 to: sarray size do:[:i|
+        sarray at: i put: (componentClass javaUnwrap: (anObject at: i)).
+    ].
+    ^sarray.
+
+    "Created: / 18-04-2012 / 08:23:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+javaWrap: anObject
+   "Given a Smalltalk array, create a corresponding Java array.
+    Called by interop proxies"
+
+    | jarray |
+
+    self assert: anObject isSequenceable.
+    jarray := self new: anObject size.
+    1 to: jarray size do:[:i|
+        jarray at: i put: (componentClass javaWrap: (anObject at: i)).
+    ].
+    ^jarray.
+
+    "Created: / 18-04-2012 / 08:21:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !JavaArray class methodsFor:'class creation'!
 
 javaArrayClass