JavaArray.st
branchcvs_MAIN
changeset 3360 1a8899091305
parent 3324 a58245c0e83a
child 3412 df11bb428463
--- a/JavaArray.st	Fri Feb 14 14:27:26 2014 +0100
+++ b/JavaArray.st	Wed Jan 28 03:12:08 2015 +0100
@@ -1,9 +1,9 @@
 "
- COPYRIGHT (c) 1996-2011 by Claus Gittinger
+ COPYRIGHT (c) 1996-2015 by Claus Gittinger
 
  New code and modifications done at SWING Research Group [1]:
 
- COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+ COPYRIGHT (c) 2010-2015 by Jan Vrany, Jan Kurs and Marcel Hlopko
                             SWING Research Group, Czech Technical University in Prague
 
  This software is furnished under a license and may be used
@@ -20,7 +20,7 @@
 "
 "{ Package: 'stx:libjava' }"
 
-Array variableSubclass:#JavaArray
+Array subclass:#JavaArray
 	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
@@ -38,11 +38,11 @@
 
 copyright
 "
- COPYRIGHT (c) 1996-2011 by Claus Gittinger
+ COPYRIGHT (c) 1996-2015 by Claus Gittinger
 
  New code and modifications done at SWING Research Group [1]:
 
- COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+ COPYRIGHT (c) 2010-2015 by Jan Vrany, Jan Kurs and Marcel Hlopko
                             SWING Research Group, Czech Technical University in Prague
 
  This software is furnished under a license and may be used
@@ -207,7 +207,7 @@
         cls flags: (JavaArray flags bitOr:Behavior flagJavaArray).
         cls instSize: JavaArray instSize.
         cls setComponentClass: aJavaClass.
-        cls setName: (aJavaClass name , '[]') asSymbol.
+        cls setName: ((aJavaClass isJavaClass ifTrue:[aJavaClass binaryName] ifFalse:[aJavaClass name]) , '[]') asSymbol.
          "Kludge, spec says" "All methods of class Object may be invoked on an array."
         cls setMethodDictionary: (JavaVM classForName: 'java.lang.Object') 
                     methodDictionary.
@@ -218,7 +218,7 @@
     "
 
     "Created: / 17-12-2010 / 13:45:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 05-07-2012 / 23:23:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 08-10-2013 / 23:02:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaArray class methodsFor:'queries'!
@@ -241,6 +241,17 @@
     "Modified: / 19-12-2010 / 16:45:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+isCloneable
+    "Return true, if the receiver implements java.lang.Cloneable,
+     i.e., if it can be cloned using Object#clone().
+
+     Java arrays are cloneable"
+
+    ^ true
+
+    "Created: / 12-11-2013 / 01:05:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 isFinal
     "return true, if the receiver is final
      (i.e. may not be subclassed)"
@@ -314,10 +325,44 @@
     "Created: / 21-12-2010 / 12:51:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!JavaArray methodsFor:'vm support'!
+
+_ARRAYLENGTH: cls
+    ^self basicSize
+
+    "Created: / 14-05-2013 / 10:10:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+_CHECKCAST: cls
+    JavaVM _CHECKCAST: self _: cls.
+%{
+    void ___checkcast_bind();
+    ___checkcast_bind(__pilc, __Class(self));
+
+%}.    
+    ^self  
+
+    "Created: / 14-05-2013 / 10:09:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+_INSTANCEOF: cls
+    | r |
+    
+    r := JavaVM _INSTANCEOF: self _: cls.
+%{
+    void ___instanceof_bind();
+    ___instanceof_bind(__pilc, __Class(self), r);
+
+%}. 
+    ^r
+
+    "Created: / 14-05-2013 / 10:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !JavaArray class methodsFor:'documentation'!
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libjava/JavaArray.st,v 1.6 2013-09-06 00:41:12 vrany Exp $'
+    ^ '$Header: /cvs/stx/stx/libjava/JavaArray.st,v 1.7 2015-01-28 02:10:49 vrany Exp $'
 !
 
 version_HG