src/JavaArray.st
author vranyj1
Wed, 18 Apr 2012 07:18:32 +0000
branchjk_new_structure
changeset 1481 28b926d3cdb5
parent 1155 d6f6d5fc0343
child 1511 7bba867f71e3
permissions -rw-r--r--
- JUnitTestCaseProxy added: #isTestSelector: - stx_libjava changed: #classNamesAndAttributes #extensionMethodNames #preRequisites - JavaArray added: #javaUnwrap: #javaWrap: - JavaVM changed: #_sun_java2d_cmm_lcms_LCMS_getTagData: #_sun_java2d_cmm_lcms_LCMS_getTagSize: #commonClose: - JavaClass variable renamed in: #isThrowable - extensions ...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
     1
"
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
     2
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1035
diff changeset
     3
1155
vranyj1
parents: 1152
diff changeset
     4
 New code and modifications done at SWING Research Group [1]:
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1035
diff changeset
     5
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
     6
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
     7
                            SWING Research Group, Czech Technical University in Prague
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
     8
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
     9
 This software is furnished under a license and may be used
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    10
 only in accordance with the terms of that license and with the
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    12
 be provided or otherwise made available to, or used by, any
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    13
 other person.  No title to or ownership of the software is
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    14
 hereby transferred.
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    15
1155
vranyj1
parents: 1152
diff changeset
    16
 [1] Code written at SWING Research Group contains a signature
vranyj1
parents: 1152
diff changeset
    17
     of one of the above copright owners. For exact set of such code,
vranyj1
parents: 1152
diff changeset
    18
     see the differences between this version and version stx:libjava
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1035
diff changeset
    19
     as of 1.9.2010
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    20
"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    21
"{ Package: 'stx:libjava' }"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    22
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    23
Array variableSubclass:#JavaArray
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    24
	instanceVariableNames:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    25
	classVariableNames:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    26
	poolDictionaries:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    27
	category:'Languages-Java-Classes'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    28
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    29
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    30
JavaArray class instanceVariableNames:'componentClass'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    31
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    32
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    33
 No other class instance variables are inherited by this class.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    34
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    35
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    36
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    37
!JavaArray class methodsFor:'documentation'!
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    38
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    39
copyright
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    40
"
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    41
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1035
diff changeset
    42
1155
vranyj1
parents: 1152
diff changeset
    43
 New code and modifications done at SWING Research Group [1]:
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1035
diff changeset
    44
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    45
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    46
                            SWING Research Group, Czech Technical University in Prague
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    47
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    48
 This software is furnished under a license and may be used
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    49
 only in accordance with the terms of that license and with the
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    50
 inclusion of the above copyright notice.   This software may not
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    51
 be provided or otherwise made available to, or used by, any
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    52
 other person.  No title to or ownership of the software is
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    53
 hereby transferred.
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    54
1155
vranyj1
parents: 1152
diff changeset
    55
 [1] Code written at SWING Research Group contains a signature
vranyj1
parents: 1152
diff changeset
    56
     of one of the above copright owners. For exact set of such code,
vranyj1
parents: 1152
diff changeset
    57
     see the differences between this version and version stx:libjava
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1035
diff changeset
    58
     as of 1.9.2010
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    59
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    60
"
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 851
diff changeset
    61
! !
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    62
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    63
!JavaArray class methodsFor:'initialization'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    64
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    65
classInit
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    66
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    67
    componentClass isJavaClass ifTrue:[
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    68
        ^componentClass classInit
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    69
    ].
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    70
    componentClass isJavaArrayClass ifTrue:[
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    71
        componentClass javaComponentClass isJavaPrimitiveType ifFalse:[
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    72
            ^componentClass classInit
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    73
        ]
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    74
    ]
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    75
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    76
    "Created: / 21-10-2011 / 11:03:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    77
!
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    78
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    79
setComponentClass:aClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    80
    componentClass := aClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    81
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    82
    "Created: / 17-12-2010 / 13:25:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    83
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    84
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    85
!JavaArray class methodsFor:'accessing'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    86
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 877
diff changeset
    87
classLoader
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 877
diff changeset
    88
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 877
diff changeset
    89
    ^self javaComponentClass classLoader
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 877
diff changeset
    90
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 877
diff changeset
    91
    "Created: / 31-08-2011 / 22:22:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 877
diff changeset
    92
!
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 877
diff changeset
    93
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    94
javaClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    95
    ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    96
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    97
    "Created: / 19-12-2010 / 17:09:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    98
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    99
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   100
javaComponentClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   101
    ^ componentClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   102
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   103
    "Created: / 20-12-2010 / 22:02:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   104
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   105
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   106
javaName
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 957
diff changeset
   107
1c7fd32d1f26 Few fixes
vranyj1
parents: 957
diff changeset
   108
    componentClass isJavaArrayClass ifTrue:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 957
diff changeset
   109
        ^'[' , componentClass javaName.
1c7fd32d1f26 Few fixes
vranyj1
parents: 957
diff changeset
   110
    ].
1c7fd32d1f26 Few fixes
vranyj1
parents: 957
diff changeset
   111
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   112
    ^'[L' , componentClass javaName, ';'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   113
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   114
    "Created: / 25-02-2011 / 19:29:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
812
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   115
!
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   116
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   117
javaPackage
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   118
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   119
    ^componentClass javaPackage
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   120
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   121
    "Created: / 22-05-2011 / 18:07:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   122
!
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   123
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   124
lookupMethodByNameAndType: aJavaNameAndType 
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   125
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   126
    "Trick, since java arrays should respond to all messages
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   127
     understood by java.lang.object"    
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   128
    ^ (Java at:'java.lang.Object') lookupMethodByNameAndType: aJavaNameAndType
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   129
62e917825364 - JavaDescriptor, JavaResolver, JavaArray: fixes for primitive and array types
vranyj1
parents: 752
diff changeset
   130
    "Created: / 22-05-2011 / 18:03:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   131
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   132
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   133
!JavaArray class methodsFor:'autoboxing support'!
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   134
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   135
javaUnwrap: anObject
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   136
   "Given a Java array, create a corresponding Smalltalk array.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   137
    Called by interop proxies"
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   138
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   139
    | sarray |
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   140
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   141
    sarray := Array new: anObject size.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   142
    1 to: sarray size do:[:i|
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   143
        sarray at: i put: (componentClass javaUnwrap: (anObject at: i)).
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   144
    ].
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   145
    ^sarray.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   146
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   147
    "Created: / 18-04-2012 / 08:23:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   148
!
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   149
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   150
javaWrap: anObject
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   151
   "Given a Smalltalk array, create a corresponding Java array.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   152
    Called by interop proxies"
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   153
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   154
    | jarray |
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   155
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   156
    self assert: anObject isSequenceable.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   157
    jarray := self new: anObject size.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   158
    1 to: jarray size do:[:i|
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   159
        jarray at: i put: (componentClass javaWrap: (anObject at: i)).
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   160
    ].
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   161
    ^jarray.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   162
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   163
    "Created: / 18-04-2012 / 08:21:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   164
! !
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   165
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   166
!JavaArray class methodsFor:'class creation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   167
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   168
javaArrayClass
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   169
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   170
    ^self javaArrayClassFor: self.
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   171
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   172
    "Created: / 11-06-2011 / 23:35:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   173
!
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   174
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 960
diff changeset
   175
javaArrayClassFor: aJavaClass 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 960
diff changeset
   176
    | meta  cls |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   177
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   178
    meta := Metaclass new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   179
    meta setSuperclass: JavaArray class.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   180
    meta instSize: JavaArray class instSize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   181
    cls := meta new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   182
    cls setSuperclass: JavaArray.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   183
    cls flags: JavaArray flags.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   184
    cls instSize: JavaArray instSize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   185
    cls setComponentClass: aJavaClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   186
    cls setName: (aJavaClass name , '[]') asSymbol.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 960
diff changeset
   187
     "Kludge, spec says" "All methods of class Object may be invoked on an array."
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 960
diff changeset
   188
    cls setMethodDictionary: (JavaVM classForName: 'java.lang.Object') 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 960
diff changeset
   189
                methodDictionary.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 960
diff changeset
   190
    ^ cls
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   191
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   192
    "
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 960
diff changeset
   193
        JavaArray javaArrayClassFor: Object"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   194
    "Created: / 17-12-2010 / 13:45:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   195
    "Modified: / 01-03-2011 / 14:55:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   196
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   197
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   198
!JavaArray class methodsFor:'queries'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   199
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   200
hasInterface:aJavaInterface
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   201
    "return true, if I respond to all methods as
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   202
     aJavaInterface"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   203
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   204
    ^false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   205
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   206
    "Modified: / 19-12-2010 / 16:45:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   207
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   208
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   209
isAbstract
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   210
    "return true, if the receiver is abstract
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   211
     (i.e. may not have instances)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   212
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   213
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   214
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   215
    "Modified: / 19-12-2010 / 16:45:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   216
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   217
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   218
isFinal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   219
    "return true, if the receiver is final
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   220
     (i.e. may not be subclassed)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   222
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   223
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   224
    "Modified: / 19-12-2010 / 16:45:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   225
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   227
isInitialized
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   228
    "return true, if the receiver is initialized"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   229
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   230
    ^ true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   231
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   232
    "Modified: / 07-05-1998 / 12:23:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   233
    "Modified: / 19-12-2010 / 16:45:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   234
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   235
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   236
isInterface
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   237
    "return true, if the receiver is an interface"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   238
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   239
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   240
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   241
    "Modified: / 07-05-1998 / 12:23:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   242
    "Modified: / 19-12-2010 / 16:45:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   243
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   244
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   245
isJavaArrayClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   246
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   247
    ^true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   248
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   249
    "Created: / 19-12-2010 / 17:05:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   250
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   251
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   252
isJavaReferenceType
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   253
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   254
    ^true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   255
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   256
    "Created: / 20-12-2010 / 21:58:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   257
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   258
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   259
isJavaType
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   260
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   261
    ^true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   262
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   263
    "Created: / 20-12-2010 / 21:58:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   264
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   265
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   266
isObsolete
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   267
    "return true, if the receiver is obsolete
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   268
     Java classes are never."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   269
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   270
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   271
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   272
    "Modified: / 07-08-1997 / 19:04:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   273
    "Modified: / 19-12-2010 / 16:45:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   274
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   275
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   276
isPublic
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   277
    "return true, if the receiver is public"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   279
    ^ true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   280
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   281
    "Modified: / 19-12-2010 / 16:45:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   282
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   283
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   284
isUnresolved
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   285
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   286
    ^false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   287
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   288
    "Created: / 21-12-2010 / 12:51:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   289
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   290
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   291
!JavaArray class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   292
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   293
version_SVN
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   294
    ^ '$Id$'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   295
! !