src/JavaArray.st
branchjk_new_structure
changeset 752 ff7bc6428c9c
child 812 62e917825364
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/JavaArray.st	Fri Apr 08 12:02:36 2011 +0000
@@ -0,0 +1,172 @@
+"{ Package: 'stx:libjava' }"
+
+Array variableSubclass:#JavaArray
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Languages-Java-Classes'
+!
+
+JavaArray class instanceVariableNames:'componentClass'
+
+"
+ No other class instance variables are inherited by this class.
+"
+!
+
+
+!JavaArray class methodsFor:'initialization'!
+
+setComponentClass:aClass
+    componentClass := aClass.
+
+    "Created: / 17-12-2010 / 13:25:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaArray class methodsFor:'accessing'!
+
+javaClass
+    ^ self
+
+    "Created: / 19-12-2010 / 17:09:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+javaComponentClass
+    ^ componentClass
+
+    "Created: / 20-12-2010 / 22:02:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+javaName
+    ^'[L' , componentClass javaName, ';'
+
+    "Created: / 25-02-2011 / 19:29:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaArray class methodsFor:'class creation'!
+
+javaArrayClassFor: aJavaClass
+
+    | meta cls |
+
+    meta := Metaclass new.
+    meta setSuperclass: JavaArray class.
+    meta instSize: JavaArray class instSize.
+    cls := meta new.
+    cls setSuperclass: JavaArray.
+    cls flags: JavaArray flags.
+    cls instSize: JavaArray instSize.
+    cls setComponentClass: aJavaClass.
+    cls setName: (aJavaClass name , '[]') asSymbol.
+    "Kludge, spec says"
+    "All methods of class Object may be invoked on an array."
+    cls setMethodDictionary: (Java classForName: 'java.lang.Object') methodDictionary.
+
+    ^cls
+
+    "
+        JavaArray javaArrayClassFor: Object
+    "
+
+    "Created: / 17-12-2010 / 13:45:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-03-2011 / 14:55:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaArray class methodsFor:'queries'!
+
+hasInterface:aJavaInterface
+    "return true, if I respond to all methods as
+     aJavaInterface"
+
+    ^false
+
+    "Modified: / 19-12-2010 / 16:45:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isAbstract
+    "return true, if the receiver is abstract
+     (i.e. may not have instances)"
+
+    ^ false
+
+    "Modified: / 19-12-2010 / 16:45:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isFinal
+    "return true, if the receiver is final
+     (i.e. may not be subclassed)"
+
+    ^ false
+
+    "Modified: / 19-12-2010 / 16:45:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isInitialized
+    "return true, if the receiver is initialized"
+
+    ^ true
+
+    "Modified: / 07-05-1998 / 12:23:54 / cg"
+    "Modified: / 19-12-2010 / 16:45:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isInterface
+    "return true, if the receiver is an interface"
+
+    ^ false
+
+    "Modified: / 07-05-1998 / 12:23:39 / cg"
+    "Modified: / 19-12-2010 / 16:45:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isJavaArrayClass
+
+    ^true
+
+    "Created: / 19-12-2010 / 17:05:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isJavaReferenceType
+
+    ^true
+
+    "Created: / 20-12-2010 / 21:58:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isJavaType
+
+    ^true
+
+    "Created: / 20-12-2010 / 21:58:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isObsolete
+    "return true, if the receiver is obsolete
+     Java classes are never."
+
+    ^ false
+
+    "Modified: / 07-08-1997 / 19:04:28 / cg"
+    "Modified: / 19-12-2010 / 16:45:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isPublic
+    "return true, if the receiver is public"
+
+    ^ true
+
+    "Modified: / 19-12-2010 / 16:45:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isUnresolved
+
+    ^false
+
+    "Created: / 21-12-2010 / 12:51:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaArray class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id$'
+! !