src/JavaArray.st
author vranyj1
Mon, 05 Nov 2012 00:12:55 +0000
branchjk_new_structure
changeset 1805 4367809f7516
parent 1581 70fbc03d2d82
permissions -rw-r--r--
Java wrapping refactored Dynamic proxy method now invokes #javaWrap only if it necessary, to save some time. Individual wraping methods for Java wrapper classes moved to those classes as extension method and instances are created using constructors. This should save some time also...
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
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1511
diff changeset
   133
!JavaArray class methodsFor:'accessing - java'!
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1511
diff changeset
   134
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1511
diff changeset
   135
javaMirrorClass
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1511
diff changeset
   136
    ^self == JavaArray ifTrue:[
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1511
diff changeset
   137
        super javaMirrorClass
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1511
diff changeset
   138
    ] ifFalse:[
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1511
diff changeset
   139
        JavaMirror mirrorClassForJavaArray
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1511
diff changeset
   140
    ]
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1511
diff changeset
   141
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1511
diff changeset
   142
    "Created: / 31-07-2012 / 18:28:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1511
diff changeset
   143
! !
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1511
diff changeset
   144
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   145
!JavaArray class methodsFor:'autoboxing support'!
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   146
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   147
javaUnwrap: anObject
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   148
   "Given a Java array, create a corresponding Smalltalk array.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   149
    Called by interop proxies"
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   150
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   151
    | sarray |
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   152
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   153
    sarray := Array new: anObject size.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   154
    1 to: sarray size do:[:i|
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   155
        sarray at: i put: (componentClass javaUnwrap: (anObject at: i)).
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   156
    ].
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   157
    ^sarray.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   158
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   159
    "Created: / 18-04-2012 / 08:23:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   160
!
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   161
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   162
javaWrap: anObject
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   163
   "Given a Smalltalk array, create a corresponding Java array.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   164
    Called by interop proxies"
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   165
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   166
    | jarray |
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   167
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   168
    self assert: anObject isSequenceable.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   169
    jarray := self new: anObject size.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   170
    1 to: jarray size do:[:i|
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   171
        jarray at: i put: (componentClass javaWrap: (anObject at: i)).
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   172
    ].
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   173
    ^jarray.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   174
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   175
    "Created: / 18-04-2012 / 08:21:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1805
4367809f7516 Java wrapping refactored
vranyj1
parents: 1581
diff changeset
   176
!
4367809f7516 Java wrapping refactored
vranyj1
parents: 1581
diff changeset
   177
4367809f7516 Java wrapping refactored
vranyj1
parents: 1581
diff changeset
   178
javaWrapRequired
4367809f7516 Java wrapping refactored
vranyj1
parents: 1581
diff changeset
   179
    "Returns true, if a #javaWrap: has to be called
4367809f7516 Java wrapping refactored
vranyj1
parents: 1581
diff changeset
   180
     prior an instance of Smalltalk object is passed 
4367809f7516 Java wrapping refactored
vranyj1
parents: 1581
diff changeset
   181
     as an argument to Java method, whoose formal tyoe
4367809f7516 Java wrapping refactored
vranyj1
parents: 1581
diff changeset
   182
     is the receiver. "
4367809f7516 Java wrapping refactored
vranyj1
parents: 1581
diff changeset
   183
4367809f7516 Java wrapping refactored
vranyj1
parents: 1581
diff changeset
   184
    ^ true
4367809f7516 Java wrapping refactored
vranyj1
parents: 1581
diff changeset
   185
4367809f7516 Java wrapping refactored
vranyj1
parents: 1581
diff changeset
   186
    "Created: / 04-11-2012 / 23:33:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   187
! !
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1155
diff changeset
   188
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   189
!JavaArray class methodsFor:'class creation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   190
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   191
javaArrayClass
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   192
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   193
    ^self javaArrayClassFor: self.
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   194
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   195
    "Created: / 11-06-2011 / 23:35:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   196
!
fc38cc6ed478 Small refactoring
vranyj1
parents: 812
diff changeset
   197
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 960
diff changeset
   198
javaArrayClassFor: aJavaClass 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 960
diff changeset
   199
    | meta  cls |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   200
1511
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   201
    ^JavaVM arrayClassFor: aJavaClass ifAbsentPut:[
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   202
        meta := Metaclass new.
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   203
        meta setSuperclass: JavaArray class.
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   204
        meta instSize: JavaArray class instSize.
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   205
        cls := meta new.
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   206
        cls setSuperclass: JavaArray.
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   207
        cls flags: JavaArray flags.
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   208
        cls instSize: JavaArray instSize.
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   209
        cls setComponentClass: aJavaClass.
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   210
        cls setName: (aJavaClass name , '[]') asSymbol.
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   211
         "Kludge, spec says" "All methods of class Object may be invoked on an array."
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   212
        cls setMethodDictionary: (JavaVM classForName: 'java.lang.Object') 
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   213
                    methodDictionary.
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   214
        cls
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   215
    ]
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   216
    "
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   217
        JavaArray javaArrayClassFor: Object
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   218
    "
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   219
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   220
    "Created: / 17-12-2010 / 13:45:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1511
7bba867f71e3 - JavaClass
vranyj1
parents: 1481
diff changeset
   221
    "Modified: / 05-07-2012 / 23:23:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   222
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   223
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   224
!JavaArray class methodsFor:'queries'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   225
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   226
hasInterface:aJavaInterface
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   227
    "return true, if I respond to all methods as
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   228
     aJavaInterface"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   229
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   230
    ^false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   231
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   232
    "Modified: / 19-12-2010 / 16:45:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   233
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   234
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   235
isAbstract
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   236
    "return true, if the receiver is abstract
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   237
     (i.e. may not have instances)"
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: / 19-12-2010 / 16:45:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   242
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   243
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   244
isFinal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   245
    "return true, if the receiver is final
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   246
     (i.e. may not be subclassed)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   247
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   248
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   249
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   250
    "Modified: / 19-12-2010 / 16:45:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   251
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   252
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   253
isInitialized
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   254
    "return true, if the receiver is initialized"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   255
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   256
    ^ true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   257
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   258
    "Modified: / 07-05-1998 / 12:23:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   259
    "Modified: / 19-12-2010 / 16:45:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   260
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   261
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   262
isInterface
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   263
    "return true, if the receiver is an interface"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   264
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   265
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   266
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   267
    "Modified: / 07-05-1998 / 12:23:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   268
    "Modified: / 19-12-2010 / 16:45:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   269
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   270
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   271
isJavaArrayClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   272
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   273
    ^true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   274
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   275
    "Created: / 19-12-2010 / 17:05:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   276
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   277
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   278
isJavaReferenceType
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   280
    ^true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   282
    "Created: / 20-12-2010 / 21:58:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   283
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   284
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   285
isJavaType
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   286
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   287
    ^true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   288
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   289
    "Created: / 20-12-2010 / 21:58:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   290
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   291
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   292
isObsolete
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   293
    "return true, if the receiver is obsolete
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   294
     Java classes are never."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   295
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   296
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   298
    "Modified: / 07-08-1997 / 19:04:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   299
    "Modified: / 19-12-2010 / 16:45:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   300
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   301
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   302
isPublic
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   303
    "return true, if the receiver is public"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   305
    ^ true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   306
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   307
    "Modified: / 19-12-2010 / 16:45:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   308
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   309
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   310
isUnresolved
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   311
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   312
    ^false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   314
    "Created: / 21-12-2010 / 12:51:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   315
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   316
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   317
!JavaArray class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   318
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   319
version_SVN
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   320
    ^ '$Id$'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   321
! !