JavaClass.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 28 Aug 2013 09:16:36 +0100
branchdevelopment
changeset 2674 8b3736c87626
parent 2648 f871848ecfa8
child 2705 e693added0af
permissions -rw-r--r--
Added InetAddressTests to cover different layouts in different OpenJDK 6. There seems to be at least two different clas layouts for Inet4Address and Inet6Address. This testcase should test whether native methods handle both layouts correctly.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
454
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
     1
"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
     2
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
     3
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
     4
 New code and modifications done at SWING Research Group [1]:
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
     5
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
     6
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
     7
                            SWING Research Group, Czech Technical University in Prague
454
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
     8
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
     9
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    10
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    12
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    13
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    14
 hereby transferred.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
    15
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    16
 [1] Code written at SWING Research Group contains a signature
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    17
     of one of the above copright owners. For exact set of such code,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    18
     see the differences between this version and version stx:libjava
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    19
     as of 1.9.2010
2080
452972372142 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 749
diff changeset
    20
"
674
f83368a07379 *** empty log message ***
cg
parents: 654
diff changeset
    21
"{ Package: 'stx:libjava' }"
f83368a07379 *** empty log message ***
cg
parents: 654
diff changeset
    22
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
    23
JavaBehavior subclass:#JavaClass
2476
d24ce8174195 JavaClass can now keep it's classfile bytes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2434
diff changeset
    24
	instanceVariableNames:'classLoader fullName sourceFile sourceString classfileBytes
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    25
		fields staticFields annotations protectionDomain signatureJ
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    26
		versions'
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
    27
	classVariableNames:'ArgumentConversionErrorSignal OrderOfClassInits'
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    28
	poolDictionaries:'JavaConstants'
2107
f4509f6767fa category change
Claus Gittinger <cg@exept.de>
parents: 2106
diff changeset
    29
	category:'Languages-Java-Classes'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    30
!
083530508d9c intitial checkin
cg
parents:
diff changeset
    31
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    32
Object subclass:#JavaClassVersionDiedHandler
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    33
	instanceVariableNames:''
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    34
	classVariableNames:''
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    35
	poolDictionaries:''
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    36
	privateIn:JavaClass
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    37
!
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    38
133
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    39
!JavaClass class methodsFor:'documentation'!
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    40
454
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    41
copyright
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    42
"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
    43
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    44
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    45
 New code and modifications done at SWING Research Group [1]:
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    46
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
    47
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    48
                            SWING Research Group, Czech Technical University in Prague
454
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    49
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    50
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    51
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    52
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    53
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    54
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    55
 hereby transferred.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
    56
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    57
 [1] Code written at SWING Research Group contains a signature
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    58
     of one of the above copright owners. For exact set of such code,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    59
     see the differences between this version and version stx:libjava
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    60
     as of 1.9.2010
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    61
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
    62
"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
    63
!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
    64
133
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    65
examples
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    66
"
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    67
    (Java at:'java.util.Stack') new inspect
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    68
    (Java at:'java.util.Vector') new inspect
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    69
"
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    70
! !
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    71
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
    72
!JavaClass class methodsFor:'instance creation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    73
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    74
fullName:aString
90
918e2740098c resolve rewritten
cg
parents: 86
diff changeset
    75
    self shouldNotImplement.
918e2740098c resolve rewritten
cg
parents: 86
diff changeset
    76
    ^ self new flags:0; setFullName:aString
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    77
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    78
!
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    79
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    80
fullName:aString numStatic:nStatic
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    81
    |meta cls classLoader |
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    82
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
    83
    "/ check for a JAVA nameSpace to exist
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
    84
    JAVA isNil ifTrue:[
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    85
        JavaPackage name:'JAVA'
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
    86
    ].
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
    87
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    88
    classLoader := JavaClassReader classLoaderQuerySignal query.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    89
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    90
    "create the metaclass first"
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    91
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    92
    meta := JavaMetaclass new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    93
    meta setSuperclass:self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    94
    meta instSize:(meta superclass instSize + nStatic).
172
c3a531a73cda *** empty log message ***
cg
parents: 170
diff changeset
    95
"/    meta setName:(aString , 'class') asSymbol.
c3a531a73cda *** empty log message ***
cg
parents: 170
diff changeset
    96
"/    meta setClassVariableString:''.
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
    97
    meta flags:(meta flags bitOr:Behavior flagJavaClass).
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
    98
"/    meta setSuperclass:JavaObject class.
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    99
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   100
    "then let the new meta create the class"
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   101
    cls := meta new.
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   102
    cls setSuperclass:JavaObject.
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   103
    cls instSize:0.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   104
    cls setName:('JAVA::' , aString).   
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   105
    cls flags:0.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   106
590
b0de66f7e728 *** empty log message ***
cg
parents: 587
diff changeset
   107
    cls setAccessFlags:0.
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   108
"/    cls setClassVariableString:''.
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   109
    cls setInstanceVariableString:''.
2143
4fe17c2f531c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2118
diff changeset
   110
    cls setCategory:#java.
590
b0de66f7e728 *** empty log message ***
cg
parents: 587
diff changeset
   111
    cls setFullName:aString.
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   112
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   113
    ^ cls
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   114
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   115
    "Created: / 15-04-1996 / 15:52:55 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   116
    "Modified: / 03-01-1998 / 22:32:25 / cg"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   117
    "Modified: / 04-04-2012 / 09:36:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   118
!
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   119
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   120
name:aString
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   121
    self shouldNotImplement
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   122
083530508d9c intitial checkin
cg
parents:
diff changeset
   123
    "Created: 15.4.1996 / 15:52:55 / cg"
083530508d9c intitial checkin
cg
parents:
diff changeset
   124
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
   125
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   126
!JavaClass class methodsFor:'boxing-unboxing'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   127
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   128
box: stArgumentsCollection to: typesCollection
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   129
    " box smalltalk arguments collection to Java arguments "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   130
    ^ stArgumentsCollection with: typesCollection collect: [ :stObject :javaType |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   131
        (JavaTypeBox  typeBoxForJava: javaType) box: stObject.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   132
    ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   133
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   134
    "Created: / 25-09-2011 / 20:20:35 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   135
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   136
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   137
unbox:jObj returnType: returnType
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   138
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   139
    "JV@2011-02-04"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   140
    "Hack for primitive types"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   141
    "/    JK: it is hack, but it is fast :)
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   142
    (JavaDescriptor baseTypesByTypeName keys includes: returnType) ifTrue:[^jObj].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   143
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   144
    ^ (JavaTypeBox typeBoxForJava: returnType) unbox: jObj.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   145
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   146
    "Created: / 30-08-2011 / 22:13:41 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   147
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   148
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   149
!JavaClass class methodsFor:'class initialization'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   150
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   151
initialize
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   152
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   153
    ArgumentConversionErrorSignal := Signal new notifierString:'argument conversion error'.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   154
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   155
    "Created: / 20-10-2010 / 11:11:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   156
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   157
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   158
!JavaClass class methodsFor:'method lookup'!
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   159
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   160
canConvertArgsToJava:argArray asSpecifiedIn:argSigSpecArray
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   161
    "given a smalltalk argument array, return true, if these can be converted to java objects as appropriate."
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   162
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   163
    argArray
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   164
	with:argSigSpecArray
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   165
	do:[:arg :type |
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   166
		self
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   167
		    convertToJava:arg
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   168
		    type:type
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   169
		    ifFail:[:msg :default| ^ false]].
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   170
    ^ true
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   171
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   172
    "Created: / 5.11.1998 / 18:25:05 / cg"
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   173
    "Modified: / 6.11.1998 / 00:45:58 / cg"
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   174
!
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   175
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   176
convertArgsToJava:argArray asSpecifiedIn:argSigSpecArray numArgs:na
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   177
    "given a smalltalk argument array, convert to java objects as appropriate.
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   178
     Currently, only Strings and booleans are converted."
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   179
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   180
    |sigIndex newArgIndex newArgArray|
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   181
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   182
    sigIndex := newArgIndex := 1.
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   183
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   184
    newArgArray := Array new:na.
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   185
    argArray do:[:arg |
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   186
	|type newArg|
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   187
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   188
	type := argSigSpecArray at:sigIndex.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   189
	sigIndex := sigIndex + 1.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   190
	newArg := self convertToJava:arg type:type.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   191
	newArgArray at:newArgIndex put:newArg.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   192
	newArgIndex := newArgIndex + 1.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   193
	(type == #long or:[type == #double]) ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   194
	    newArgIndex > na ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   195
		self halt:'should not happen'
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   196
	    ].
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   197
	    newArgArray at:newArgIndex put:nil.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   198
	    newArgIndex := newArgIndex + 1.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   199
	]
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   200
    ].
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   201
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   202
    ^ newArgArray
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   203
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   204
    "Created: / 5.11.1998 / 18:30:57 / cg"
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   205
    "Modified: / 6.11.1998 / 00:45:00 / cg"
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   206
!
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   207
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   208
convertToJava:arg type:type
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   209
    "given a smalltalk argument, convert to a java object as appropriate."
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   210
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   211
    ^ self
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   212
        convertToJava:arg
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   213
        type:type
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   214
        ifFail:[:msg :default |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   215
                    ArgumentConversionErrorSignal
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   216
                        raiseWith:arg
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   217
                        errorString:msg.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   218
                    default
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   219
               ]
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   220
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   221
    "Created: / 06-11-1998 / 00:45:13 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   222
    "Modified: / 20-10-2010 / 11:08:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   223
!
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   224
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   225
convertToJava: arg type: type ifFail: failBlock 
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   226
    "given a smalltalk argument, convert to a java object as appropriate.
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   227
     Currently, only a few types are converted."
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   228
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   229
    | expectedCls  f  failValue |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   230
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   231
    type == #boolean ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   232
        arg == true ifTrue: [ ^ 1 ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   233
        arg == false ifTrue: [ ^ 0 ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   234
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   235
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   236
    type == #int ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   237
        arg isInteger ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   238
            (arg between: (16r8000000 * -1) and: 16r7FFFFFFF) ifTrue: [ ^ arg ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   239
            ^ failBlock value: ('integer range; cannot convert argument to ' , type)
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   240
                value: 0.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   241
        ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   242
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   243
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   244
    type == #long ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   245
        arg isInteger ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   246
            (arg "(-1 * 16r800000000000000) -->" between: -576460752303423488
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   247
                and: 16r7FFFFFFFFFFFFFFF) ifTrue: [ ^ arg ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   248
            ^ failBlock value: ('integer range; cannot convert argument to ' , type)
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   249
                value: 0
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   250
        ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   251
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   252
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   253
    (type == #float) ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   254
        arg isLimitedPrecisionReal ifTrue: [ ^ arg asShortFloat ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   255
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0.0.
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   256
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   257
    (type = 'java.lang.Float') ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   258
        arg isLimitedPrecisionReal ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   259
            f := (Java at: 'java.lang.Float') new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   260
            f perform: #'<init>(F)V' with: (arg asShortFloat).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   261
            self halt.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   262
            ^ f.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   263
        ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   264
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0.0.
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   265
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   266
    (type = 'java.lang.Double') ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   267
        arg isLimitedPrecisionReal ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   268
            f := (Java at: 'java.lang.Double') new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   269
            f perform: #'<init>(D)V' with: (arg asFloat).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   270
            self halt.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   271
            ^ f.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   272
        ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   273
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0.0.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   274
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   275
    (type == #double) ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   276
        arg isLimitedPrecisionReal ifTrue: [ ^ arg asFloat ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   277
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0.0.
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   278
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   279
    (type == #char) ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   280
        arg isCharacter ifTrue: [ ^ arg asciiValue ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   281
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   282
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   283
    (type = 'char[]') ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   284
        arg isString ifTrue: [ ^ arg ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   285
        ^ failBlock value: ('cannot convert argument to ' , type) value: ''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   286
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   287
    (type = 'int[]') ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   288
        (arg isArray or: [ arg isMemberOf: SignedIntegerArray ]) ifTrue: [ ^ arg ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   289
        ^ failBlock value: ('cannot convert argument to ' , type) value: ''
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   290
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   291
    (type = 'long[]') ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   292
        (arg isArray or: [ arg isMemberOf: SignedIntegerArray ]) ifTrue: [ ^ arg ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   293
        ^ failBlock value: ('cannot convert argument to ' , type) value: ''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   294
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   295
    (type = 'float[]') ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   296
        (arg isArray or: [ arg isMemberOf: FloatArray ]) ifTrue: [ ^ arg ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   297
        ^ failBlock value: ('cannot convert argument to ' , type) value: ''
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   298
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   299
    (type = 'double[]') ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   300
        (arg isArray or: [ arg isMemberOf: DoubleArray ]) ifTrue: [ ^ arg ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   301
        ^ failBlock value: ('cannot convert argument to ' , type) value: ''
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   302
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   303
    (type endsWith: '[]') ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   304
        (arg isArray or: [ arg isNil ]) ifTrue: [ ^ arg ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   305
        ^ failBlock value: ('cannot convert argument to ' , type) value: ''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   306
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   307
    expectedCls := JavaVM classForName: type.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   308
    (arg isKindOf: expectedCls) ifTrue: [
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   309
        "/ matches class and subclasses
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   310
        ^ arg
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   311
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   312
    (type = 'java.lang.Object') ifTrue: [
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   313
        "/ matches any
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   314
        ^ arg
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   315
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   316
    (type = 'java.lang.String') ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   317
        arg isString ifTrue: [ ^ Java as_String: arg ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   318
        failValue := ''
2080
452972372142 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 749
diff changeset
   319
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   320
    arg isNil ifTrue: [
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   321
        "/ matches any
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   322
        ^ arg
456
bbed0c5ce05f checkin from browser
cg
parents: 454
diff changeset
   323
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   324
    self halt.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   325
    ^ failBlock value: ('cannot convert argument to ' , type) value: failValue
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   326
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   327
    "Created: / 06-11-1998 / 00:46:19 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   328
    "Modified: / 06-11-2001 / 13:28:29 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   329
    "Modified: / 17-01-2011 / 10:08:04 / kursjan <kursjan@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   330
    "Modified: / 17-03-2011 / 14:09:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   331
!
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   332
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   333
convertToSmalltalk:jObj type:type
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   334
    "given a java return value, convert to a smalltalk object as appropriate.
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   335
     Currently, only a few types are converted."
336
263450c8902e checkin from browser
cg
parents: 321
diff changeset
   336
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   337
    "JV@2011-02-04"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   338
    "Hack for primitive types"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   339
    (JavaDescriptor baseTypesByTypeName keys includes: type) ifTrue:[^jObj].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   340
    "jObj is registered for the specified type?"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   341
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   342
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   343
    (JavaObjectDictionary new reflectionOf: jObj class name)  = (Java classForName: type) ifTrue: [
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   344
        ^ jObj
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   345
    ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   346
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   347
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   348
    type == #boolean ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   349
        jObj == 0 ifTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   350
            ^ false
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   351
        ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   352
        ^ true
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   353
    ].
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   354
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   355
    type == #void ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   356
        ^ nil
336
263450c8902e checkin from browser
cg
parents: 321
diff changeset
   357
    ].
263450c8902e checkin from browser
cg
parents: 321
diff changeset
   358
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   359
    (type = 'java.lang.String') ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   360
        ^ Java as_ST_String:jObj
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   361
    ].
336
263450c8902e checkin from browser
cg
parents: 321
diff changeset
   362
433
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   363
"/    (type = 'java.lang.Float') ifTrue:[
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   364
"/        ^ jObj instVarNamed:'value'
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   365
"/    ].
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   366
"/    (type = 'java.lang.Double') ifTrue:[
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   367
"/        ^ jObj instVarNamed:'value'
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   368
"/    ].
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   369
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   370
    (type == #char) ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   371
        jObj isInteger ifTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   372
            ^ Character value:jObj
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   373
        ].
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   374
    ].
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   375
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   376
    ^ jObj
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   377
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   378
    "Created: / 06-11-1998 / 00:49:53 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   379
    "Modified: / 11-11-1998 / 02:08:11 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   380
    "Modified: / 17-01-2011 / 10:42:56 / kursjan <kursjan@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   381
    "Modified: / 08-04-2011 / 17:04:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
336
263450c8902e checkin from browser
cg
parents: 321
diff changeset
   382
!
263450c8902e checkin from browser
cg
parents: 321
diff changeset
   383
236
46195f733e51 *** empty log message ***
cg
parents: 229
diff changeset
   384
lookupMethod:selector numArgs:nargs in:aClass static:staticMethod
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   385
    "lookup a method"
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   386
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   387
    |method cls sel|
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   388
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   389
    sel := selector.
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   390
    (sel includes:$:) ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   391
	sel := sel copyTo:(sel indexOf:$:)-1
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   392
    ].
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   393
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   394
    sel := sel asSymbolIfInterned.
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   395
    sel notNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   396
	cls := aClass.
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   397
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   398
	[cls notNil
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   399
	and:[cls ~~ JavaObject
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   400
	and:[cls ~~ JavaClass]]] whileTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   401
	    cls methodDictionary keysAndValuesDo:[:jSel :m |
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   402
		|aMethod|
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   403
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   404
		aMethod := m.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   405
		aMethod isWrapped ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   406
		    aMethod := aMethod originalMethod
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   407
		].
456
bbed0c5ce05f checkin from browser
cg
parents: 454
diff changeset
   408
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   409
		((jSel == sel)
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   410
		or:[aMethod name = sel
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   411
		or:[aMethod signatureNameWithoutReturnType = sel]])
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   412
		ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   413
		    aMethod numArgs == nargs ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   414
			staticMethod == (aMethod isStatic) ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   415
			    ^ m
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   416
			]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   417
		    ]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   418
		]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   419
	    ].
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   420
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   421
	    cls := cls superclass.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   422
	].
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   423
    ].
375
988259a6fa03 checkin from browser
cg
parents: 360
diff changeset
   424
"/ self halt.
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   425
    ^ nil
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   426
375
988259a6fa03 checkin from browser
cg
parents: 360
diff changeset
   427
    "Created: / 17.8.1997 / 18:25:47 / cg"
456
bbed0c5ce05f checkin from browser
cg
parents: 454
diff changeset
   428
    "Modified: / 16.11.1998 / 16:46:48 / cg"
415
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   429
!
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   430
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   431
lookupMethods:selector numArgs:nargs in:aClass static:staticMethod
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   432
    "lookup methods matching a selector.
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   433
     This is a special entry for doesNotUnderstand redirection
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   434
     (the caller must select the one method which fits the argument(s) best."
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   435
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   436
    |methods cls sel|
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   437
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   438
    sel := selector.
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   439
    (sel includes:$:) ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   440
	sel := sel copyTo:(sel indexOf:$:)-1
415
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   441
    ].
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   442
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   443
    sel := sel asSymbolIfInterned.
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   444
    sel notNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   445
	cls := aClass.
415
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   446
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   447
	[cls notNil
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   448
	and:[cls ~~ JavaObject
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   449
	and:[cls ~~ JavaClass]]] whileTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   450
	    cls methodDictionary keysAndValuesDo:[:jSel :aMethod |
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   451
		((jSel == sel)
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   452
		or:[aMethod name = sel
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   453
		or:[aMethod signatureNameWithoutReturnType = sel]])
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   454
		ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   455
		    (nargs isNil
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   456
		    or:[aMethod numArgs == nargs]) ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   457
			staticMethod == (aMethod isStatic) ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   458
			    methods isNil ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   459
				methods := OrderedCollection new
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   460
			    ].
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   461
			    methods add:aMethod
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   462
			]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   463
		    ]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   464
		]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   465
	    ].
415
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   466
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   467
	    cls := cls superclass.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   468
	].
415
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   469
    ].
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   470
    ^ methods ? #()
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   471
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   472
    "Created: / 4.11.1998 / 19:04:51 / cg"
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   473
    "Modified: / 4.11.1998 / 19:31:33 / cg"
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   474
! !
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   475
2578
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   476
!JavaClass class methodsFor:'others'!
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   477
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   478
version_HG
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   479
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   480
    ^ '$Changeset: <not expanded> $'
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   481
! !
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   482
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   483
!JavaClass class methodsFor:'signature parsing'!
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   484
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   485
initialValueFromSignature:aSignature
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   486
    "given a signature, return an initializer value"
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   487
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   488
    |s|
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   489
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   490
    s := aSignature readStream.
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   491
    ^ self initialValueFromStream:s.
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   492
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   493
    "
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   494
     JavaClass initialValueFromSignature:'LObject;'
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   495
     JavaClass initialValueFromSignature:'B'
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   496
     JavaClass initialValueFromSignature:'I'
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   497
    "
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   498
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   499
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   500
! !
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   501
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   502
!JavaClass class methodsFor:'special'!
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   503
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   504
deinitClasses
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   505
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   506
    Smalltalk allClassesDo:
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   507
        [:cls|cls isJavaClass ifTrue:[cls deinit]].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   508
    self flushClassesInitOrder.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   509
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   510
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   511
        JavaClass deinitClasses
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   512
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   513
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   514
    "Created: / 25-10-2010 / 16:47:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   515
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   516
2104
1b6366474dbf isReal -> isLimitedPrecisionReal
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   517
flushClassesInitOrder
1b6366474dbf isReal -> isLimitedPrecisionReal
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   518
    OrderOfClassInits := nil
1b6366474dbf isReal -> isLimitedPrecisionReal
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   519
1b6366474dbf isReal -> isLimitedPrecisionReal
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   520
    "Created: / 6.11.2001 / 09:49:49 / cg"
1b6366474dbf isReal -> isLimitedPrecisionReal
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   521
!
1b6366474dbf isReal -> isLimitedPrecisionReal
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   522
435
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   523
orderOfClassInits
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   524
    ^ OrderOfClassInits
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   525
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   526
    "Created: / 12.11.1998 / 15:35:57 / cg"
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   527
!
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   528
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   529
setInstanceVariableStringFromFields:f in:aClass
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   530
    |varNames|
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   531
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   532
    varNames := ''.
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   533
    f do:[:aField |
172
c3a531a73cda *** empty log message ***
cg
parents: 170
diff changeset
   534
	varNames := varNames , aField name , ' '
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   535
    ].
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   536
    aClass setInstanceVariableString:varNames.
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   537
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   538
    "Created: 15.4.1996 / 16:42:52 / cg"
435
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   539
!
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   540
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   541
startRememberingOrderOfClassInits
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   542
    OrderOfClassInits := OrderedCollection new.
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   543
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   544
    "Created: / 12.11.1998 / 15:26:32 / cg"
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   545
    "Modified: / 12.11.1998 / 15:29:10 / cg"
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   546
! !
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   547
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   548
!JavaClass methodsFor:'accessing'!
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   549
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   550
allFields
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   551
    "Returns all fields, including those inherited from
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   552
     a superclass"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   553
    | cls all |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   554
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   555
    cls := self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   556
    all  := OrderedCollection new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   557
    [ cls isJavaClass ] whileTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   558
        all addAll: cls fields.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   559
        cls := cls superclass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   560
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   561
    ^all.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   562
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   563
    "Created: / 04-04-2012 / 01:37:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   564
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   565
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   566
allInterfaces
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   567
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   568
    | ifaces cls |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   569
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   570
    ifaces := Set new.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   571
    cls := self.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   572
    [ cls isJavaClass ] whileTrue:
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   573
        [cls interfaces do:[:iface| ifaces add: iface; addAll: iface allInterfaces].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   574
        cls := cls superclass].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   575
    ^ifaces.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   576
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   577
    "Created: / 05-02-2011 / 23:51:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   578
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   579
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   580
allStaticFields
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   581
    "Returns all fields, including those inherited from
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   582
     a superclass"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   583
    | cls all |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   584
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   585
    cls := self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   586
    all  := OrderedCollection new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   587
    [ cls isJavaClass ] whileTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   588
        all addAll: cls staticFields.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   589
        cls := cls superclass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   590
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   591
    ^all.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   592
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   593
    "Created: / 04-04-2012 / 01:37:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   594
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   595
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   596
annotations
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   597
    ^ annotations ifNil:[JavaClassAnnotationContainer empty].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   598
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   599
    "Modified: / 03-03-2011 / 22:52:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   600
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   601
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   602
annotations:something
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   603
    annotations := something.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   604
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   605
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   606
classLoader
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   607
    ^ classLoader
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   608
!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   609
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   610
classLoader:classLoaderOrNil
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   611
    classLoader := classLoaderOrNil.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   612
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   613
    "Modified: / 18-02-2012 / 20:21:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   614
!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   615
2476
d24ce8174195 JavaClass can now keep it's classfile bytes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2434
diff changeset
   616
classfileBytes
d24ce8174195 JavaClass can now keep it's classfile bytes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2434
diff changeset
   617
    ^ classfileBytes
d24ce8174195 JavaClass can now keep it's classfile bytes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2434
diff changeset
   618
!
d24ce8174195 JavaClass can now keep it's classfile bytes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2434
diff changeset
   619
651
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   620
compiledMethodAt:name
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   621
    "redefined to find the constructor"
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   622
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   623
    |m|
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   624
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   625
    m := super compiledMethodAt:name.
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   626
    m isNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   627
	name = self lastName ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   628
	    ^ super compiledMethodAt:#'<init>()V'
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   629
	].
651
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   630
    ].
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   631
    ^ m
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   632
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   633
    "
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   634
     JAVA::java::lang::Object compiledMethodAt:#Object
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   635
    "
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   636
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   637
    "Created: / 24.12.1999 / 02:02:50 / cg"
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   638
    "Modified: / 24.12.1999 / 02:04:46 / cg"
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   639
!
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   640
185
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   641
compiledMethodAt:name signature:sig
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   642
    "lookup the classes methodDictionary"
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   643
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   644
    methodDictionary keysAndValuesDo:[:mFullSelector :aMethod |
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
   645
	aMethod name == name ifTrue:[
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
   646
	    aMethod signature == sig ifTrue:[
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
   647
		^ aMethod
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
   648
	    ]
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
   649
	]
185
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   650
    ].
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   651
    ^ nil
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   652
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   653
    "Created: 1.8.1997 / 00:01:58 / cg"
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   654
!
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   655
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   656
constantPool
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   657
    ^ constantPool
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   658
!
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   659
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   660
ensureHasAnnotations
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   661
    annotations ifNil: [ annotations := JavaAnnotationContainer for: self ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   662
    ^ annotations
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   663
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   664
    "Created: / 25-02-2011 / 16:02:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   665
    "Modified: / 16-03-2011 / 17:13:47 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   666
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   667
83
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   668
fields
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   669
    ^ fields
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   670
!
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   671
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   672
fullName
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   673
    ^ fullName
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 7
diff changeset
   674
!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 7
diff changeset
   675
90
918e2740098c resolve rewritten
cg
parents: 86
diff changeset
   676
javaClass
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   677
90
918e2740098c resolve rewritten
cg
parents: 86
diff changeset
   678
    ^ self
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   679
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   680
    "Modified: / 22-05-2011 / 13:32:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   681
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   682
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   683
javaComponentClass
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   684
    ^self.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   685
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   686
    "Created: / 20-12-2010 / 22:02:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   687
    "Modified: / 30-05-2011 / 23:26:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
691
8dcc24aeaa95 *** empty log message ***
cg
parents: 689
diff changeset
   688
!
8dcc24aeaa95 *** empty log message ***
cg
parents: 689
diff changeset
   689
2085
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   690
javaName
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   691
    "the javaname - as seen by a java programmer.
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   692
     (with '/'s replaced by dots) extract from the fullName"
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   693
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   694
    ^ fullName copyReplaceAll:$/ with:$.
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   695
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   696
    "
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   697
     Java allClasses first fullName
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   698
     Java allClasses first name
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   699
     Java allClasses first javaName
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   700
     Java allClasses first javaPackage
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   701
     Java allClasses first package
2085
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   702
    "
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   703
!
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   704
684
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   705
javaPackage
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   706
    "the javaPackage - as seen by a java programmer.
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   707
     (with '/'s replaced by dots) extract from the fullName"
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   708
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   709
    |components|
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   710
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   711
    components := fullName asCollectionOfSubstringsSeparatedBy:$/.
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   712
    components size > 1 ifTrue:[
2554
46bb4696954a Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 2436
diff changeset
   713
        ^ (components copyButLast:1) asStringWith:$.
684
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   714
    ].
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   715
    ^ fullName
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   716
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   717
    "
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   718
     Java allClasses first fullName
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   719
     Java allClasses first javaPackage
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   720
     Java allClasses first package
684
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   721
    "
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   722
!
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   723
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   724
javaPackageAsDirname
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   725
    "the javaPackage - as directory in class path"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   726
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   727
    |components|
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   728
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   729
    components := fullName asCollectionOfSubstringsSeparatedBy:$/.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   730
    components size > 1 ifTrue:[
2554
46bb4696954a Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 2436
diff changeset
   731
        ^ (components copyButLast:1) asStringWith: Filename separator
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   732
    ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   733
    ^ fullName
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   734
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   735
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   736
     Java allClasses first fullName
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   737
     Java allClasses first javaPackage      
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   738
     Java allClasses first package
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   739
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   740
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   741
    "Created: / 30-11-2010 / 12:17:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   742
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   743
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   744
javaWrapperClass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   745
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   746
    fullName == #'java/lang/String' ifTrue:[ ^ String ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   747
    self error:'Should not happen'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   748
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   749
    "Created: / 20-04-2012 / 20:03:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   750
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   751
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   752
lastName
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   753
    ^ fullName copyFrom:(fullName lastIndexOf:$/)+1
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   754
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   755
    "Created: / 5.11.1998 / 19:16:00 / cg"
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   756
!
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   757
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 7
diff changeset
   758
name
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   759
    ^ name "/ fullName
22
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   760
!
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   761
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   762
nameSpace
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   763
    ^ NameSpace name:#JAVA
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   764
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   765
    "Created: / 20-01-1997 / 13:04:30 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   766
    "Modified: / 11-04-2012 / 23:25:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   767
!
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   768
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   769
nameWithoutNameSpacePrefix
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   770
    ^ fullName
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   771
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   772
    "Created: 20.1.1997 / 13:05:30 / cg"
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   773
!
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   774
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   775
nameWithoutPrefix
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   776
    ^ self lastName
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   777
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   778
    "Created: / 20-01-1997 / 13:06:06 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   779
    "Modified: / 20-04-2012 / 18:35:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   780
!
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   781
22
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   782
package
684
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   783
    "the package (as seen by a smalltalk programmer)
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   784
     extract from the fullName, (with '/'s) and prepend 'java:'"
22
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   785
686
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
   786
    |components p i|
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
   787
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
   788
    i := fullName lastIndexOf:$/.
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
   789
    p := fullName copyTo:i - 1.
2083
85a87edefd8e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
   790
    p size == 0 ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   791
	^ 'java'
2083
85a87edefd8e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
   792
    ].
686
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
   793
"/    components := fullName asCollectionOfSubstringsSeparatedBy:$/.
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
   794
"/    components size > 1 ifTrue:[
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
   795
"/        p := (components copyWithoutLast:1) asStringWith:$/
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
   796
"/    ] ifFalse:[
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
   797
"/        p := fullName
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
   798
"/    ].
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
   799
684
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   800
    ^ 'java:' , p
22
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   801
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   802
    "
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   803
     Java allClasses first fullName
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   804
     Java allClasses first package
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   805
     Java allClasses first javaPackage
22
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   806
    "
24
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
   807
!
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
   808
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   809
protectionDomain
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   810
    ^ protectionDomain
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   811
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   812
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   813
protectionDomain:something
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   814
    protectionDomain := something.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   815
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   816
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   817
runtimeVisibleAnnotationsAsBytesOrNil
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   818
    annotations ifNil:[ ^ nil ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   819
    annotations runtimeVisible ifNil:[ ^ nil ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   820
    ^ annotations runtimeVisible bytes
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   821
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   822
    "Created: / 25-02-2011 / 16:48:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   823
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   824
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   825
setSignature: aSymbol
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   826
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   827
    signatureJ := aSymbol
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   828
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   829
    "Created: / 13-08-2011 / 00:30:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   830
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   831
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   832
signatureJ
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   833
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   834
    "stupid naming, but superclass defines signature too"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   835
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   836
    ^signatureJ
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   837
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   838
    "Created: / 13-08-2011 / 00:30:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   839
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   840
76
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   841
source
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   842
    ^ sourceString notNil 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   843
            ifTrue: [  sourceString ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   844
            ifFalse:[ Java classSourceOf:self ]
76
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   845
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   846
    "
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   847
     (Java at:'java.awt.Frame') source
175
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
   848
     (Java at:'ArcTest') source
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
   849
     (Java at:'ArcCanvas') source
76
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   850
    "
175
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
   851
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   852
    "Modified: / 30-07-1997 / 14:31:01 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   853
    "Modified: / 18-02-2012 / 19:10:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
76
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   854
!
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   855
24
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
   856
sourceFile
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
   857
    ^ sourceFile
83
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   858
!
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   859
2529
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
   860
sourceString
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
   861
    ^sourceString
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
   862
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
   863
    "Created: / 19-04-2013 / 09:28:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
   864
!
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
   865
83
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   866
staticFields
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   867
    ^ staticFields
132
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
   868
!
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
   869
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   870
superinterface
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   871
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   872
    | ifaces |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   873
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   874
    self assert: self isInterface message: 'Type must be an interface'.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   875
    (ifaces := self interfaces) size == 0 ifTrue:[^nil].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   876
    ifaces size = 1 ifTrue:[^ifaces first].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   877
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   878
    self error: 'Should not happen!!'.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   879
    ^nil
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   880
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   881
    "Created: / 04-02-2011 / 12:35:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   882
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   883
132
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
   884
typeOfField:aFieldName
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
   885
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
   886
    fields do:[:aField |
172
c3a531a73cda *** empty log message ***
cg
parents: 170
diff changeset
   887
	aField name = aFieldName ifTrue:[
c3a531a73cda *** empty log message ***
cg
parents: 170
diff changeset
   888
	    ^ aField type
c3a531a73cda *** empty log message ***
cg
parents: 170
diff changeset
   889
	]
132
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
   890
    ].
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
   891
    self error:'no such field'
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
   892
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
   893
    "
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   894
     (JAVA at:#'java/awt/image/ColorModel') typeOfField:'pixel_bits'
132
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
   895
    "
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
   896
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
   897
    "Modified: 21.1.1997 / 22:48:28 / cg"
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   898
!
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   899
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   900
versions
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   901
    "
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   902
    Return all existing versions of this class.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   903
    A new version is added when a class is 
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   904
    updated by runtime code reload and removed when all instances of 
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   905
        the version die 
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   906
    "
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   907
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   908
    ^ versions.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   909
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   910
    "Created: / 14-04-2013 / 12:10:54 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   911
!
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   912
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   913
versions: aWeakArray
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   914
    "
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   915
    set this class' versions. It is expected that all versions of the 
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   916
    class will share the same weak array instance.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   917
    "
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   918
    versions := aWeakArray.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   919
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
   920
    "Created: / 14-04-2013 / 12:28:09 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   921
! !
2578
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   922
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   923
!JavaClass methodsFor:'accessing - java'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   924
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   925
javaMirror
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   926
    ^self javaMirrorClass forClass: self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   927
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   928
    "Created: / 01-08-2012 / 00:18:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   929
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   930
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   931
javaMirrorClass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   932
    ^JavaMirror mirrorClassForJavaClass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   933
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   934
    "Created: / 31-07-2012 / 17:39:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   935
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   936
213
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
   937
!JavaClass methodsFor:'adding / removing'!
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
   938
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
   939
removeFromSystem
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
   940
     Java removeClass:self
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
   941
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
   942
    "Created: 12.8.1997 / 02:46:51 / cg"
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
   943
! !
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
   944
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   945
!JavaClass methodsFor:'autoboxing'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   946
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   947
javaBox:anObject 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   948
    ^ anObject
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   949
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   950
    "Created: / 14-08-2011 / 22:58:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   951
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   952
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   953
javaUnwrap: object
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   954
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   955
    | nm |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   956
    nm := object class name.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   957
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   958
    nm == #'java/lang/Byte' ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   959
        ^object instVarNamed: #value.    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   960
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   961
    nm == #'java/lang/Short' ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   962
        ^object instVarNamed: #value.    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   963
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   964
    nm == #'java/lang/Integer' ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   965
        ^object instVarNamed: #value.    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   966
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   967
    nm == #'java/lang/Long' ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   968
        ^object instVarNamed: #value.    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   969
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   970
    nm == #'java/lang/Character' ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   971
        ^Character codePoint: (object instVarNamed: #value)
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   972
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   973
    nm == #'java/lang/Boolean' ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   974
        ^(object instVarNamed: #value) == 1
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   975
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   976
    nm == #'java/lang/String' ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   977
        ^ Java as_ST_String: object
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   978
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   979
    nm == #'java/lang/Class' ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   980
        ^ JavaVM classForJavaClassObject: object
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   981
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   982
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   983
    ^object
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   984
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   985
    "Created: / 10-12-2011 / 19:54:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   986
    "Modified: / 12-12-2011 / 18:05:29 / kursjan <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   987
    "Modified: / 21-08-2012 / 13:16:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   988
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   989
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   990
javaWrap: object
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   991
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   992
    object isNil ifTrue:[ ^ nil ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   993
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   994
    object class isJavaPrimitiveType ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   995
       (self name == #'java/lang/Object' or:[self == object class javaWrapperClass]) ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   996
            ^object class javaWrapperClass newCleared
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   997
                instVarNamed: #value put: object;
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   998
                yourself
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   999
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1000
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1001
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1002
    object isString ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1003
        (self name == #'java/lang/Object' or:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1004
        self name == #'java/lang/String']) ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1005
            ^ Java as_String: object
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1006
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1007
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1008
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1009
    ^object
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1010
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1011
    "Modified: / 12-12-2011 / 18:05:29 / kursjan <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1012
    "Created: / 24-02-2012 / 19:32:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1013
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1014
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1015
!JavaClass methodsFor:'browser interface'!
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1016
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1017
isVisualStartable
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1018
    "return true, if this is an application class,
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1019
     which can be started via #open"
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1020
    "/ if I have a main() method, I am
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1021
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1022
    (self compiledMethodAt: #'main([Ljava/lang/String;)V') notNil ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1023
        ^ true
413
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1024
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1025
    (self isSubclassOf: (JavaVM at: 'java/applet/Applet')) ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1026
        ^ true.
2087
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1027
    ].
413
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1028
    ^ false
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1029
!
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1030
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1031
open
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1032
    "start a thread for my main method"
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1033
413
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1034
    "/ if I have a main, call it ...
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1035
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1036
    (self compiledMethodAt:#'main([Ljava/lang/String;)V') notNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1037
	^ self startMain
413
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1038
    ].
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1039
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1040
    "/ otherwise, create a frame and wrap me;
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1041
    "/ as in:
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1042
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1043
"/    public static void main(String args[]) {
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1044
"/        Frame f = new Frame("myName");
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1045
"/        mySelf me = new mySelf();
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1046
"/
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1047
"/        me.init();
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1048
"/        me.start();
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1049
"/
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1050
"/        f.add("Center", me);
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1051
"/        f.setSize(300, 300);
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1052
"/        f.show();
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1053
"/    }
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1054
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1055
    ^ self startApplet
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1056
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1057
    "Created: / 15.1.1998 / 17:18:30 / cg"
413
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1058
    "Modified: / 3.11.1998 / 22:51:47 / cg"
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1059
! !
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1060
183
d1d05241d1f5 checkin from browser
cg
parents: 181
diff changeset
  1061
!JavaClass methodsFor:'compiler interface'!
d1d05241d1f5 checkin from browser
cg
parents: 181
diff changeset
  1062
566
72e93eb27907 checkin from browser
cg
parents: 546
diff changeset
  1063
browserClass
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1064
    "return the browser to use for this class -
566
72e93eb27907 checkin from browser
cg
parents: 546
diff changeset
  1065
     this can be redefined in special classes, to get different browsers"
72e93eb27907 checkin from browser
cg
parents: 546
diff changeset
  1066
679
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  1067
"/    ^ JavaBrowser
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  1068
    ^ super browserClass.
566
72e93eb27907 checkin from browser
cg
parents: 546
diff changeset
  1069
72e93eb27907 checkin from browser
cg
parents: 546
diff changeset
  1070
    "Modified: / 14.10.1998 / 15:28:38 / cg"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1071
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1072
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1073
syntaxHighlighterClass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1074
    "return the class to use for syntaxHighlighting (prettyPrinting) this class -
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1075
     this can be redefined in special classes, to highlight classes with
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1076
     Lisp, Prolog, ASN1, Basic :-) or whatever syntax."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1077
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1078
    ^ self class == JavaClass ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1079
        super syntaxHighlighterClass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1080
    ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1081
        JavaLanguage instance syntaxHighlighterClass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1082
    ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1083
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1084
    "Created: / 15-02-2012 / 01:43:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
183
d1d05241d1f5 checkin from browser
cg
parents: 181
diff changeset
  1085
! !
d1d05241d1f5 checkin from browser
cg
parents: 181
diff changeset
  1086
624
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1087
!JavaClass methodsFor:'compiling'!
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1088
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1089
recompileMethodsAccessingGlobal:aGlobalKey
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1090
    "/ dummy for now
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1091
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1092
    "Created: / 9.11.1999 / 16:42:09 / cg"
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1093
! !
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1094
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  1095
!JavaClass methodsFor:'documentation support'!
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  1096
626
cg
parents: 625
diff changeset
  1097
htmlDocumentation
cg
parents: 625
diff changeset
  1098
    ^ nil "/ replace by access to javadoc-generated documentation later
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  1099
626
cg
parents: 625
diff changeset
  1100
    "Modified: 22.3.1997 / 14:18:50 / cg"
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  1101
! !
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  1102
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1103
!JavaClass methodsFor:'exception handling support'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1104
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1105
accepts: signal
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1106
    "Return true, iff receicer is a throwable and
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1107
     handles given signal (presumably another throwable class)"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1108
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1109
    | cls |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1110
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1111
    signal isJavaClass ifFalse:[ ^ false ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1112
    self == signal ifTrue:[ ^ true ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1113
    cls := signal.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1114
    [ cls ~~ JavaObject ] whileTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1115
        self == cls ifTrue:[ ^ true ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1116
        cls := cls superclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1117
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1118
    ^false
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1119
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1120
    "Created: / 18-03-2012 / 14:19:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1121
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1122
2648
f871848ecfa8 Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1123
handlerForSignal:exceptionHandler context:theContext originator:originator
f871848ecfa8 Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1124
    ^nil
f871848ecfa8 Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1125
f871848ecfa8 Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1126
!
f871848ecfa8 Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1127
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1128
handles: anObject
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1129
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1130
    Transcript showCR:'>>>> JavaClass>>handles: ' , anObject printString.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1131
    Transcript showCR:'     from: ', thisContext sender printString.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1132
    ^false
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1133
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1134
    "Created: / 18-03-2012 / 14:19:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1135
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1136
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1137
isControlInterrupt
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1138
    ^false
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1139
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1140
    "Created: / 20-08-2012 / 14:17:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1141
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1142
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1143
isExceptionCreator
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1144
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1145
"/    ^false
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1146
    ^self isThrowable
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1147
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1148
    "Created: / 18-03-2012 / 20:34:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1149
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1150
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1151
isExceptionHandler
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1152
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1153
"/    ^false
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1154
    ^self isThrowable
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1155
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1156
    "Created: / 18-03-2012 / 14:18:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1157
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1158
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1159
isQuerySignal
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1160
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1161
    ^false
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1162
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1163
    "Created: / 18-03-2012 / 22:18:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1164
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1165
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1166
isThrowable
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1167
    "Returns true, if the receiver is an instance
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1168
     of java.lang.Throwable, false otherwise"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1169
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1170
    | cls |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1171
    cls := self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1172
    [ cls ~~ JavaObject ] whileTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1173
        cls name == #'java/lang/Throwable' ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1174
            ^true
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1175
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1176
        cls := cls superclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1177
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1178
    ^false
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1179
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1180
    "Created: / 18-03-2012 / 20:35:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1181
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1182
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1183
mapyProceed
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1184
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1185
    "Created: / 18-03-2012 / 20:35:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1186
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1187
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1188
parent
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1189
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1190
    ^nil
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1191
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1192
    "Created: / 18-03-2012 / 22:19:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1193
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1194
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1195
signal
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1196
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1197
    ^self class.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1198
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1199
    "Created: / 05-07-2012 / 08:56:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1200
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1201
312
f753abec575a more app-starters
cg
parents: 281
diff changeset
  1202
!JavaClass methodsFor:'executing programs'!
f753abec575a more app-starters
cg
parents: 281
diff changeset
  1203
626
cg
parents: 625
diff changeset
  1204
startApplet
2087
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1205
    |f me stub top appFrame|
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1206
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1207
    top := StandardSystemView new.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1208
    appFrame := JavaEmbeddedFrameView new.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1209
    appFrame origin:0.0@0.0 corner:1.0@1.0.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1210
    top addSubView:appFrame.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1211
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1212
    appFrame appletIsPreloaded:true.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1213
    appFrame codeURL:'file:/dummy'.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1214
    appFrame codeBaseURL:'file:/dummy'.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1215
    appFrame autoSetupApplet:true.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1216
    appFrame autoStartApplet:true.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1217
    appFrame autoDestroyApplet:true.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1218
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1219
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1220
    top open.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1221
    ^ self.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1222
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1223
    "/ TODO: setup embeddedAppletFrame correctly
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1224
    "/ (for getParameter to work ...)
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1225
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1226
    "/ create a frame and wrap me;
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1227
    "/ as in:
693
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1228
2087
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1229
"/    public static void main(String args[]) {
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1230
"/        Frame f = new Frame("myName");
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1231
"/        mySelf me = new mySelf();
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1232
"/
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1233
"/        me.init();
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1234
"/        me.start();
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1235
"/
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1236
"/        f.add("Center", me);
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1237
"/        f.setSize(300, 300);
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1238
"/        f.show();
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1239
"/    }
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1240
    f := (Java at:'java.awt.Frame') basicNew.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1241
    f perform:#'<init>(Ljava/lang/String;)V' with:(Java as_String:self name).
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1242
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1243
    me := self basicNew.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1244
    me perform:#'<init>()V'.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1245
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1246
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1247
    stub := (Java at:'netscape.applet.EmbeddedAppletFrame') new.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1248
    me instVarNamed:'stub' put:stub.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1249
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1250
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1251
    me perform:#'init()V'.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1252
    me perform:#'start()V'.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1253
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1254
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1255
    f perform:#'add(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component;'
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1256
	 with:(Java as_String:'Center')
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1257
	 with:me.
2087
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1258
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1259
    f perform:#'setSize(II)V' with:300 with:300.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1260
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1261
    f perform:#'show()V'.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1262
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1263
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1264
    "Modified: / 3.11.1998 / 23:04:41 / cg"
693
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1265
    "/ TODO: setup embeddedAppletFrame correctly
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1266
    "/ (for getParameter to work ...)
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1267
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1268
    "/ create a frame and wrap me;
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1269
    "/ as in:
626
cg
parents: 625
diff changeset
  1270
693
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1271
"/    public static void main(String args[]) {
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1272
"/        Frame f = new Frame("myName");
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1273
"/        mySelf me = new mySelf();
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1274
"/
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1275
"/        me.init();
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1276
"/        me.start();
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1277
"/
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1278
"/        f.add("Center", me);
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1279
"/        f.setSize(300, 300);
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1280
"/        f.show();
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1281
"/    }
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1282
    f := (Java at:'java.awt.Frame') basicNew.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1283
    f perform:#'<init>(Ljava/lang/String;)V' with:(Java as_String:self name).
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1284
self halt.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1285
    me := self basicNew.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1286
    me perform:#'<init>()V'.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1287
self halt.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1288
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1289
    stub := (Java at:'netscape.applet.EmbeddedAppletFrame') new.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1290
    me instVarNamed:'stub' put:stub.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1291
self halt.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1292
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1293
    me perform:#'init()V'.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1294
    me perform:#'start()V'.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1295
self halt.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1296
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1297
    f perform:#'add(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component;'
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1298
	 with:(Java as_String:'Center')
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1299
	 with:me.
626
cg
parents: 625
diff changeset
  1300
self halt.
413
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1301
    f perform:#'setSize(II)V' with:300 with:300.
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1302
self halt.
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1303
    f perform:#'show()V'.
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1304
self halt.
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1305
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1306
    "Modified: / 3.11.1998 / 23:04:41 / cg"
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1307
!
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1308
626
cg
parents: 625
diff changeset
  1309
startMain
cg
parents: 625
diff changeset
  1310
    "start a thread for my main() method"
cg
parents: 625
diff changeset
  1311
cg
parents: 625
diff changeset
  1312
    ^ self startMainWithArgumentString:nil
cg
parents: 625
diff changeset
  1313
cg
parents: 625
diff changeset
  1314
    "Modified: / 30.12.1998 / 20:24:58 / cg"
cg
parents: 625
diff changeset
  1315
!
312
f753abec575a more app-starters
cg
parents: 281
diff changeset
  1316
626
cg
parents: 625
diff changeset
  1317
startMainWithArgumentString:aCommandLineString
cg
parents: 625
diff changeset
  1318
    "start a thread for my main() method, passing a string with arguments"
cg
parents: 625
diff changeset
  1319
cg
parents: 625
diff changeset
  1320
    |p|
312
f753abec575a more app-starters
cg
parents: 281
diff changeset
  1321
626
cg
parents: 625
diff changeset
  1322
    p := Java javaProcessForMainOf:self argumentString:aCommandLineString.
cg
parents: 625
diff changeset
  1323
    p notNil ifTrue:[
2561
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1324
        p resume.
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1325
        AbortOperationRequest handle:[:ex |
626
cg
parents: 625
diff changeset
  1326
p == JavaVM javaScreenUpdaterThread ifTrue:[self halt].
654
da8d060a3150 checkin from browser
cg
parents: 651
diff changeset
  1327
p == JavaVM javaEventQueueThread ifTrue:[self halt].
2561
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1328
            p terminate.
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1329
            ex reject.
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1330
        ] do:[
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1331
            p waitUntilTerminated
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1332
        ].
508
21d8af9a9b41 checkin from browser
cg
parents: 492
diff changeset
  1333
    ]
21d8af9a9b41 checkin from browser
cg
parents: 492
diff changeset
  1334
654
da8d060a3150 checkin from browser
cg
parents: 651
diff changeset
  1335
    "Modified: / 24.12.1999 / 02:35:04 / cg"
626
cg
parents: 625
diff changeset
  1336
! !
312
f753abec575a more app-starters
cg
parents: 281
diff changeset
  1337
626
cg
parents: 625
diff changeset
  1338
!JavaClass methodsFor:'fileOut'!
cg
parents: 625
diff changeset
  1339
cg
parents: 625
diff changeset
  1340
basicFileOutDefinitionOn:aStream withNameSpace:nameSpaceBoolean
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1341
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1342
    | source |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1343
    source := self theNonMetaclass source.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1344
    source notNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1345
        aStream nextPutAll: source
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1346
    ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1347
        JavaDecompiler definitionOf:self on:aStream
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1348
    ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1349
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1350
    "Modified: / 22-03-1997 / 14:30:28 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1351
    "Modified: / 14-12-2011 / 22:22:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
626
cg
parents: 625
diff changeset
  1352
!
cg
parents: 625
diff changeset
  1353
cg
parents: 625
diff changeset
  1354
fileOut
cg
parents: 625
diff changeset
  1355
    self warn:'fileOut not yet supported'
cg
parents: 625
diff changeset
  1356
cg
parents: 625
diff changeset
  1357
    "Modified: 22.3.1997 / 14:30:28 / cg"
cg
parents: 625
diff changeset
  1358
    "Created: 22.3.1997 / 14:35:43 / cg"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1359
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1360
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1361
fileOutInto: directory 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1362
    "writes itself into the given directory including package hierarchy"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1363
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1364
    | packageDir |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1365
    packageDir := directory / self javaPackageAsDirname.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1366
    packageDir recursiveMakeDirectory.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1367
    packageDir / (self lastName , '.java') 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1368
        writingFileDo: [:out | self fileOutOn: out ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1369
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1370
    "Created: / 08-12-2012 / 22:32:19 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1371
    "Modified: / 09-12-2012 / 09:07:58 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1372
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1373
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1374
fileOutMethod:aMethod on:aStream
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1375
    "file out aMethod onto aStream. Used for example to write individual changeChunks"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1376
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1377
    |cat source privacy|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1378
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1379
    self assert: aMethod programmingLanguage isSmalltalk.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1380
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1381
    aStream nextPutChunkSeparator.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1382
"/    aStream nextPutAll: 'JAVA'.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1383
"/    (self name tokensBasedOn: $/) do:[:each|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1384
"/        aStream space; nextPutAll: each.        
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1385
"/    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1386
    aStream nextPutAll:'(Java classForName:'''.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1387
    aStream nextPutAll:(self name copyReplaceAll:$/ with: $.).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1388
    aStream nextPutAll:''')'.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1389
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1390
    (privacy := aMethod privacy) ~~ #public ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1391
        aStream space; nextPutAll:privacy; nextPutAll:'MethodsFor:'.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1392
    ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1393
        aStream nextPutAll:' methodsFor:'.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1394
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1395
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1396
    cat := aMethod category ? ''.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1397
    aStream nextPutAll:cat asString storeString.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1398
    aStream nextPutChunkSeparator; cr; cr.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1399
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1400
    source := aMethod source.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1401
    source isNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1402
        FileOutErrorSignal
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1403
            raiseRequestWith:self
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1404
            errorString:(' - no source for method: ' ,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1405
                         self name , '>>' ,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1406
                         (self selectorAtMethod:aMethod))
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1407
    ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1408
        aStream nextChunkPut:source.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1409
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1410
    aStream space.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1411
    aStream nextPutChunkSeparator.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1412
    aStream cr
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1413
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1414
    "Created: / 05-09-2012 / 00:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1415
    "Modified: / 07-11-2012 / 23:43:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1416
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1417
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1418
fileOutOn: aWriteStream
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1419
aWriteStream nextPutAll: self theNonMetaclass source.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1420
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1421
    "Created: / 08-12-2012 / 22:25:28 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1422
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1423
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1424
!JavaClass methodsFor:'interop support'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1425
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1426
perform:aMessage onReceiver:receiver from:sender ifNotFound:aBlock
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1427
2521
c8bbef09a411 Added skipInDebuggerWklkback pragma to show the relevant context when
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2504
diff changeset
  1428
    <resource: #skipInDebuggersWalkBack>
c8bbef09a411 Added skipInDebuggerWklkback pragma to show the relevant context when
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2504
diff changeset
  1429
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1430
    | lo method  selector class args|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1431
    selector := aMessage selector.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1432
    args := aMessage arguments.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1433
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1434
    (selector includes: $() ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1435
        "Java selector, search static methods"    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1436
        method := methodDictionary at:selector ifAbsent:[nil].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1437
        method notNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1438
            method isStatic ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1439
                ^ method
2648
f871848ecfa8 Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1440
                    valueWithReceiver:self arguments:args selector:selector search:self class 
f871848ecfa8 Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1441
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1442
            ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1443
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1444
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1445
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1446
    class := self class.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1447
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1448
    JavaLookup isNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1449
        (Smalltalk loadPackage: 'stx:libjava/experiments') ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1450
            self error: 'You should load package stx:libjava/experiments if you want some interop - still experimental' mayProceed: true.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1451
            ^nil                        
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1452
        ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1453
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1454
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1455
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1456
    lo := class getLookupObject isNil ifTrue: [ JavaLookup instance ] ifFalse: [ class lookupObject ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1457
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1458
    method := lo lookupMethodForSelector: selector
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1459
            directedTo: class
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1460
            for: receiver
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1461
            withArguments: args
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1462
            from: thisContext sender
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1463
            ilc: nil.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1464
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1465
    method isNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1466
        ^aBlock value.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1467
    ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1468
        ^ method valueWithReceiver: receiver arguments: args
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1469
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1470
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1471
    "Created: / 19-09-2011 / 23:33:06 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1472
    "Modified: / 10-04-2012 / 16:47:31 / kursjan"
2648
f871848ecfa8 Fixes in syntax highlighting and support for accepting code in the debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1473
    "Modified: / 09-08-2013 / 00:48:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
  1474
! !
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
  1475
43
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  1476
!JavaClass methodsFor:'java initialization'!
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  1477
626
cg
parents: 625
diff changeset
  1478
classInit
cg
parents: 625
diff changeset
  1479
    "call the classes JAVA clinit function"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1480
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1481
    | m |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1482
    (accessFlags bitAnd: ACX_INITIALIZED) ~~ 0 ifTrue: [ ^ self ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1483
    (accessFlags bitAnd: ACX_INITIALIZING) ~~ 0 ifTrue: [ ^ self ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1484
    accessFlags := accessFlags bitOr: ACX_INITIALIZING.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1485
    superclass ~~ JavaObject ifTrue: [ superclass classInit ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1486
     "JV@2011-12-03: Also call initializeStaticFields"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1487
    self initializeStaticFields.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1488
    m := self compiledMethodAt: #'<clinit>()V'.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1489
    m notNil ifTrue: [         
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1490
            "/Logger log: ('calling <clinit>()V of %1' bindWith: self name) severity: #trace facility: 'JVM'.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1491
            OrderOfClassInits notNil ifTrue: [ OrderOfClassInits add: self. ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1492
            m 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1493
                valueWithReceiver: self
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1494
                arguments: #()
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1495
                selector: #'<clinit>()V'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1496
                search: self class
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1497
                sender: nil.						      
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1498
           "/Logger log: ('calling <clinit>()V of %1 done' bindWith: self name) severity: #trace facility: 'JVM'.
626
cg
parents: 625
diff changeset
  1499
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1500
    accessFlags := accessFlags bitOr:  ACX_INITIALIZED. 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1501
    accessFlags := accessFlags bitAnd: ACX_INITIALIZING bitInvert32.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1502
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1503
    (JavaVM booted and: [JavaVM eagerResolvingEnabled] )ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1504
        JavaClassReader classLoaderQuerySignal answer: classLoader
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1505
            do: [ self resolveAll. ]
626
cg
parents: 625
diff changeset
  1506
    ].
cg
parents: 625
diff changeset
  1507
cg
parents: 625
diff changeset
  1508
    "
cg
parents: 625
diff changeset
  1509
     JavaVM instructionTrace:true.
cg
parents: 625
diff changeset
  1510
     JavaVM callTrace:true.
cg
parents: 625
diff changeset
  1511
cg
parents: 625
diff changeset
  1512
     (Java classNamed:'java.lang.String') classInit
cg
parents: 625
diff changeset
  1513
     (Java classNamed:'java.lang.System') classInit
cg
parents: 625
diff changeset
  1514
cg
parents: 625
diff changeset
  1515
     (Java classNamed:'java/io/FileDescriptor') classInit
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1516
     (Java classNamed:'java.util.Properties') classInit"
175
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
  1517
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1518
    "Modified: / 12-11-1998 / 15:41:11 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1519
    "Modified: / 18-08-2011 / 19:37:33 / jv"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1520
    "Modified: / 03-12-2011 / 12:19:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1521
    "Modified: / 08-12-2011 / 21:05:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1522
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1523
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1524
classInitInternal
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1525
    "Called by the JIT-compiled code when a class needs to be initialized"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1526
2583
064a97a8936d Fix in classInitInternal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2578
diff changeset
  1527
    | m |
064a97a8936d Fix in classInitInternal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2578
diff changeset
  1528
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1529
    self classInit.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1530
    "Force recompilation"
2583
064a97a8936d Fix in classInitInternal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2578
diff changeset
  1531
    (m := thisContext sender method) isJavaMethod ifTrue:[m flushCode].
064a97a8936d Fix in classInitInternal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2578
diff changeset
  1532
064a97a8936d Fix in classInitInternal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2578
diff changeset
  1533
626
cg
parents: 625
diff changeset
  1534
!
cg
parents: 625
diff changeset
  1535
cg
parents: 625
diff changeset
  1536
initializeStaticFields
cg
parents: 625
diff changeset
  1537
    staticFields isNil ifTrue:[^ self].
cg
parents: 625
diff changeset
  1538
cg
parents: 625
diff changeset
  1539
    staticFields do:[:f |
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1540
        |val type|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1541
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1542
        (val := f constantValue) isNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1543
            "/ careful: int/long etc. constants must be initialized
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1544
            "/ with correct type.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1545
            type := f type.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1546
            type == #long ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1547
                val := 0.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1548
            ] ifFalse:[type == #int ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1549
                val := 0.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1550
            ] ifFalse:[type == #float ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1551
                val := 0.0 asShortFloat
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1552
            ] ifFalse:[type == #double ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1553
                val := 0.0
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1554
            ] ifFalse:[type == #byte ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1555
                val := 0.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1556
            ] ifFalse:[type == #char ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1557
                val := 0.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1558
            ] ifFalse:[type == #'unsigned short' ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1559
                val := 0.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1560
            ] ifFalse:[type == #boolean ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1561
                val := 0.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1562
            ]]]]]]]].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1563
        ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1564
            val class == JavaStringRef2 ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1565
                val := val resolve
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1566
            ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1567
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1568
        self instVarNamed:(f name) put:val.
60
a763b1780ec0 checkin from browser
cg
parents: 54
diff changeset
  1569
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1570
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1571
    "Modified: / 03-12-2011 / 12:28:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1572
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1573
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1574
resolveAll
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1575
    "resolve every ref in constantPool"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1576
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1577
    constantPool do: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1578
        :each | 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1579
        (each isJavaRef or: [ each isJavaNameAndType ]) ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1580
            each resolve: false
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1581
        ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1582
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1583
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1584
    "Created: / 18-11-2011 / 15:26:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1585
    "Modified: / 23-02-2012 / 17:14:09 / Marcel Hlopko <hlopik@gmail.com>"
626
cg
parents: 625
diff changeset
  1586
! !
cg
parents: 625
diff changeset
  1587
cg
parents: 625
diff changeset
  1588
!JavaClass methodsFor:'java instance creation'!
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1589
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1590
basicNew
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1591
    "Create a new cleared JAVA instance. Its instVars are cleared to the 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1592
     corresponding typed values; however, constructor is not invoked."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1593
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1594
    "/ Reimplemeted for speed as a C function. That function is
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1595
    "/ also called from JIT-compiled code, resulting in 40-50% speedup
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1596
    "/ when running Java code
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1597
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1598
%{  
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1599
    extern OBJ ___new();
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1600
    RETURN ( ___new(self) );
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1601
%}.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1602
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1603
     memory allocation failed.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1604
     When we arrive here, there was no memory, even after
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1605
     a garbage collect.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1606
     This means, that the VM wanted to get some more memory from the
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1607
     Operatingsystem, which was not kind enough to give it.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1608
     Bad luck - you should increase the swap space on your machine.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1609
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1610
    ^ ObjectMemory allocationFailureSignal raise.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1611
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1612
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1613
    "/ Following code is original Smalltalk implementation"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1614
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1615
        
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1616
    "/| newJavaObject  
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1617
    "/  sz            "{ Class: SmallInteger }" 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1618
    "/  offs          "{ Class: SmallInteger }"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1619
    "/|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1620
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1621
    (accessFlags bitAnd: ACX_ABSTRACT_OR_INTERFACE) ~~ 0 ifTrue: [ 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1622
        JavaVM throwInstantiationExceptionFor: self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1623
        ^ nil 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1624
    ].            
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1625
    newJavaObject := super basicNew.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1626
    offs := JavaObject instSize.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1627
    offs > 0 ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1628
        "Assume first is lockword"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1629
        newJavaObject instVarAt: 1 put: 0.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1630
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1631
    initValues notNil ifTrue: [ 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1632
        sz := self instSize.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1633
        offs + 1  to: sz do: [:i | newJavaObject instVarAt: i put: (initValues at: i - offs) ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1634
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1635
    self hasFinalize ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1636
        newJavaObject registerForFinalization
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1637
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1638
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1639
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1640
    ^ newJavaObject
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1641
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1642
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1643
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1644
     (Java classNamed:'java.lang.String') basicNew inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1645
     (Java classNamed:'java.lang.String') newCleared inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1646
     (Java classNamed:'java.lang.String') new inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1647
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1648
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1649
    "Created: / 02-11-2012 / 21:02:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1650
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1651
626
cg
parents: 625
diff changeset
  1652
initValueFor:instVarName
cg
parents: 625
diff changeset
  1653
    |idx field|
cg
parents: 625
diff changeset
  1654
cg
parents: 625
diff changeset
  1655
    idx := fields findFirst:[:field | field name = instVarName].
cg
parents: 625
diff changeset
  1656
    idx == 0 ifTrue:[
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1657
        superclass ~~ JavaObject ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1658
            ^ superclass initValueFor:instVarName
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1659
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1660
        ^0 "/lockWord"
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
  1661
    ] ifFalse:[
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1662
        field := fields at:idx.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1663
        ^ field initialValue
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
  1664
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1665
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1666
    "Modified: / 26-08-2012 / 20:08:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
  1667
!
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
  1668
626
cg
parents: 625
diff changeset
  1669
newCleared
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1670
    <resource: #obsolete>
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1671
    "Use #basicNew"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1672
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1673
    ^self basicNew
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1674
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1675
    "Modified: / 13-11-1998 / 14:10:45 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1676
    "Modified: / 10-03-2011 / 22:38:40 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1677
    "Modified: / 02-11-2012 / 21:08:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
451
50d24dc93f8b checkin from browser
cg
parents: 438
diff changeset
  1678
!
50d24dc93f8b checkin from browser
cg
parents: 438
diff changeset
  1679
626
cg
parents: 625
diff changeset
  1680
newWith_String:argString
cg
parents: 625
diff changeset
  1681
    "create a new instance, preset its fields,
cg
parents: 625
diff changeset
  1682
     and call its JAVA init function passing a String arg"
cg
parents: 625
diff changeset
  1683
cg
parents: 625
diff changeset
  1684
    |newJavaObject|
cg
parents: 625
diff changeset
  1685
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1686
    newJavaObject := self basicNew.
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1687
    newJavaObject
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1688
        perform:#'<init>(Ljava/lang/String;)V'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1689
        with:(Java as_String:argString).
626
cg
parents: 625
diff changeset
  1690
    ^ newJavaObject
cg
parents: 625
diff changeset
  1691
cg
parents: 625
diff changeset
  1692
    "
cg
parents: 625
diff changeset
  1693
     ((Java classNamed:'java.lang.ArrayStoreException') newWith_String:'foo') inspect
cg
parents: 625
diff changeset
  1694
    "
cg
parents: 625
diff changeset
  1695
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1696
    "Modified: / 04-11-1998 / 18:04:34 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1697
    "Created: / 13-11-1998 / 14:17:01 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1698
    "Modified: / 02-11-2012 / 21:11:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
626
cg
parents: 625
diff changeset
  1699
!
cg
parents: 625
diff changeset
  1700
cg
parents: 625
diff changeset
  1701
newWith_int:arg
cg
parents: 625
diff changeset
  1702
    "create a new instance, preset its fields,
cg
parents: 625
diff changeset
  1703
     and call its JAVA init function passing an int arg"
cg
parents: 625
diff changeset
  1704
cg
parents: 625
diff changeset
  1705
    |newJavaObject|
cg
parents: 625
diff changeset
  1706
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1707
    newJavaObject := self basicNew.
626
cg
parents: 625
diff changeset
  1708
    newJavaObject perform:#'<init>(I)V' with:arg.
cg
parents: 625
diff changeset
  1709
    ^ newJavaObject
cg
parents: 625
diff changeset
  1710
cg
parents: 625
diff changeset
  1711
    "
cg
parents: 625
diff changeset
  1712
     ((Java classNamed:'java.lang.Integer') newWith_int:123) inspect
451
50d24dc93f8b checkin from browser
cg
parents: 438
diff changeset
  1713
    "
50d24dc93f8b checkin from browser
cg
parents: 438
diff changeset
  1714
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1715
    "Modified: / 04-11-1998 / 18:04:34 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1716
    "Created: / 13-11-1998 / 14:17:01 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1717
    "Modified: / 02-11-2012 / 21:11:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1718
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1719
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1720
!JavaClass methodsFor:'java instance creation-proxying'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1721
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1722
new
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1723
    "create a new instance, preset its fields,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1724
     and call its JAVA init function"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1725
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1726
    |newJavaObject|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1727
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1728
    newJavaObject := self basicNew.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1729
    newJavaObject initialize.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1730
    ^ newJavaObject
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1731
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1732
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1733
     (Java classNamed:'java.lang.String') basicNew inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1734
     (Java classNamed:'java.lang.String') newCleared inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1735
     (Java classNamed:'java.lang.String') new inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1736
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1737
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1738
    "Modified: / 04-11-1998 / 18:04:34 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1739
    "Modified: / 09-06-2012 / 21:48:36 / Jan Kurs (kursjan@fit.cvut.cz)"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1740
    "Modified: / 02-11-2012 / 21:10:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1741
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1742
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1743
new: arg1
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1744
    "create a new instance and call one-arg constructor"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1745
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1746
    |newJavaObject|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1747
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1748
    newJavaObject := self basicNew.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1749
    newJavaObject perform:#'<init>:' with: arg1.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1750
    ^ newJavaObject
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1751
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1752
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1753
     (Java classNamed:'java.lang.String') basicNew inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1754
     (Java classNamed:'java.lang.String') newCleared inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1755
     (Java classNamed:'java.lang.String') new inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1756
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1757
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1758
    "Modified: / 04-11-1998 / 18:04:34 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1759
    "Created: / 17-03-2012 / 15:09:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1760
    "Modified: / 02-11-2012 / 21:10:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1761
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1762
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1763
new: arg1 _: arg2
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1764
    ^self new: arg1 with: arg2
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1765
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1766
    "Modified: / 04-11-1998 / 18:04:34 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1767
    "Created: / 17-03-2012 / 15:12:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1768
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1769
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1770
new: arg1 _: arg2 _: arg3
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1771
    ^self new: arg1 with: arg2 with: arg3
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1772
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1773
    "Modified: / 04-11-1998 / 18:04:34 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1774
    "Created: / 17-03-2012 / 15:13:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1775
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1776
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1777
new: arg1 _: arg2 _: arg3 _: arg4
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1778
    ^self new: arg1 with: arg2 with: arg3 with: arg4
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1779
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1780
    "Modified: / 04-11-1998 / 18:04:34 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1781
    "Created: / 17-03-2012 / 15:13:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1782
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1783
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1784
new: arg1 _: arg2 _: arg3 _: arg4 _: arg5
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1785
    ^ self 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1786
        new: arg1
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1787
        with: arg2
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1788
        with: arg3
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1789
        with: arg4
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1790
        with: arg5
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1791
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1792
    "Modified: / 04-11-1998 / 18:04:34 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1793
    "Created: / 17-03-2012 / 15:13:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1794
    "Created: / 03-04-2012 / 12:17:46 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1795
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1796
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1797
new: arg1 with: arg2
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1798
    "create a new instance and call 2-arg constructor"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1799
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1800
    |newJavaObject|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1801
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1802
    newJavaObject := self basicNew.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1803
    newJavaObject perform:#'<init>:_:' with: arg1 with: arg2.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1804
    ^ newJavaObject
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1805
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1806
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1807
     (Java classNamed:'java.lang.String') basicNew inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1808
     (Java classNamed:'java.lang.String') newCleared inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1809
     (Java classNamed:'java.lang.String') new inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1810
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1811
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1812
    "Modified: / 04-11-1998 / 18:04:34 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1813
    "Created: / 17-03-2012 / 15:12:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1814
    "Modified: / 02-11-2012 / 21:10:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1815
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1816
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1817
new: arg1 with: arg2 with: arg3
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1818
    "create a new instance and call 3-arg constructor"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1819
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1820
    |newJavaObject|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1821
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1822
    newJavaObject := self basicNew.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1823
    newJavaObject perform:#'<init>:_:_:' with: arg1 with: arg2 with: arg3.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1824
    ^ newJavaObject
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1825
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1826
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1827
     (Java classNamed:'java.lang.String') basicNew inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1828
     (Java classNamed:'java.lang.String') newCleared inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1829
     (Java classNamed:'java.lang.String') new inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1830
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1831
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1832
    "Modified: / 04-11-1998 / 18:04:34 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1833
    "Created: / 17-03-2012 / 15:12:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1834
    "Modified: / 02-11-2012 / 21:10:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1835
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1836
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1837
new: arg1 with: arg2 with: arg3 with: arg4
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1838
    "create a new instance and call 4-arg constructor"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1839
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1840
    |newJavaObject|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1841
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1842
    newJavaObject := self basicNew.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1843
    newJavaObject perform:#'<init>:_:_:_:' with: arg1 with: arg2 with: arg3 with: arg4.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1844
    ^ newJavaObject
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1845
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1846
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1847
     (Java classNamed:'java.lang.String') basicNew inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1848
     (Java classNamed:'java.lang.String') newCleared inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1849
     (Java classNamed:'java.lang.String') new inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1850
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1851
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1852
    "Modified: / 04-11-1998 / 18:04:34 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1853
    "Created: / 17-03-2012 / 15:12:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1854
    "Modified: / 02-11-2012 / 21:10:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1855
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1856
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1857
new: arg1 with: arg2 with: arg3 with: arg4 with: arg5
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1858
    "create a new instance and call 4-arg constructor"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1859
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1860
    | newJavaObject |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1861
    newJavaObject := self basicNew.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1862
    newJavaObject 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1863
        perform: #'<init>:_:_:_:_:'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1864
        with: arg1
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1865
        with: arg2
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1866
        with: arg3
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1867
        with: arg4
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1868
        with: arg5.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1869
    ^ newJavaObject
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1870
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1871
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1872
     (Java classNamed:'java.lang.String') basicNew inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1873
     (Java classNamed:'java.lang.String') newCleared inspect
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1874
     (Java classNamed:'java.lang.String') new inspect"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1875
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1876
    "Modified: / 04-11-1998 / 18:04:34 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1877
    "Created: / 17-03-2012 / 15:12:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1878
    "Created: / 02-04-2012 / 10:52:22 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1879
    "Modified: / 02-11-2012 / 21:10:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  1880
! !
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  1881
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
  1882
!JavaClass methodsFor:'message sending'!
43
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  1883
626
cg
parents: 625
diff changeset
  1884
doesNotUnderstand:aMessage
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1885
    | sender |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1886
    sender := thisContext sender.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1887
    ^self 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1888
        perform: aMessage 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1889
        onReceiver: self 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1890
        from: sender 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1891
        ifNotFound: [ super doesNotUnderstand: aMessage ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1892
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1893
    "Modified: / 16-11-1998 / 16:50:56 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1894
    "Modified: / 19-09-2011 / 23:43:56 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1895
    "Modified (comment): / 01-01-2012 / 19:36:41 / kursjan <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1896
    "Modified: / 03-01-2012 / 21:02:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1897
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1898
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1899
lookupFieldFor:fname static: searchStatic onlyPublic: publicOnly
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1900
    "Lookup a field with given name in class and all 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1901
     its subclasses, return an instance of JavaField
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1902
     or nil, if none is found.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1903
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1904
     If searchStatic is true, static fields are searched,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1905
     otherwise it searches inst and interface fields.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1906
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1907
     If publicOnly is true, only public field are searched"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1908
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1909
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1910
    | cls field |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1911
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1912
    cls := self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1913
    [ cls ~~ JavaObject ] whileTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1914
        searchStatic ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1915
            field := cls findStaticFieldByName: fname.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1916
            field isNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1917
                field := cls findInterfaceFieldByName: fname 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1918
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1919
            ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1920
        ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1921
            field := cls findInstFieldByName: fname
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1922
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1923
        field notNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1924
            (publicOnly and:[field isPublic not]) ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1925
                ^ nil
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1926
            ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1927
                ^ field
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1928
            ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1929
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1930
        cls := cls superclass.
626
cg
parents: 625
diff changeset
  1931
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1932
    ^nil.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1933
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1934
    "Created: / 17-03-2012 / 16:41:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
79
9604109538d8 checkin from browser
cg
parents: 77
diff changeset
  1935
!
9604109538d8 checkin from browser
cg
parents: 77
diff changeset
  1936
626
cg
parents: 625
diff changeset
  1937
lookupMethodFor:selector
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1938
    |method cls sel queue |
626
cg
parents: 625
diff changeset
  1939
cg
parents: 625
diff changeset
  1940
    sel := selector asSymbolIfInterned.
cg
parents: 625
diff changeset
  1941
    sel notNil ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1942
        queue := OrderedCollection with: self.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1943
        [ queue isEmpty ] whileFalse:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1944
            cls := queue removeFirst.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1945
            method := cls compiledMethodAt:sel.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1946
            method notNil ifTrue:[ ^ method ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1947
            cls isInterface ifFalse:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1948
                cls superclass ~~ JavaObject ifTrue:[queue add: cls superclass]
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1949
            ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1950
            queue addAll: cls interfaces.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1951
        ].
43
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  1952
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1953
    "/cls ifNotNil:[^super lookupMethodFor: selector].
43
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  1954
    ^ nil
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1955
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1956
    "Modified: / 19-10-2011 / 17:19:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
438
9142cf2fc8fa code cleanup
cg
parents: 435
diff changeset
  1957
!
9142cf2fc8fa code cleanup
cg
parents: 435
diff changeset
  1958
626
cg
parents: 625
diff changeset
  1959
performStatic:selector
cg
parents: 625
diff changeset
  1960
    "send a static message, without args."
cg
parents: 625
diff changeset
  1961
cg
parents: 625
diff changeset
  1962
    |javaMethod sel|
cg
parents: 625
diff changeset
  1963
cg
parents: 625
diff changeset
  1964
    sel := selector asSymbolIfInterned.
cg
parents: 625
diff changeset
  1965
    sel notNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1966
	javaMethod := methodDictionary at:sel.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1967
	javaMethod notNil ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1968
	    javaMethod isStatic ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1969
		^ javaMethod
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1970
		    valueWithReceiver:self
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1971
		    arguments:#()
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1972
	    ]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1973
	].
626
cg
parents: 625
diff changeset
  1974
    ].
cg
parents: 625
diff changeset
  1975
cg
parents: 625
diff changeset
  1976
    ^ self doesNotUnderstand:(Message selector:selector)
438
9142cf2fc8fa code cleanup
cg
parents: 435
diff changeset
  1977
9142cf2fc8fa code cleanup
cg
parents: 435
diff changeset
  1978
    "Modified: / 15.1.1998 / 00:31:27 / cg"
9142cf2fc8fa code cleanup
cg
parents: 435
diff changeset
  1979
    "Created: / 12.11.1998 / 16:29:20 / cg"
626
cg
parents: 625
diff changeset
  1980
!
cg
parents: 625
diff changeset
  1981
cg
parents: 625
diff changeset
  1982
performStatic:selector with:arg
cg
parents: 625
diff changeset
  1983
    "send a static message, with one args."
cg
parents: 625
diff changeset
  1984
cg
parents: 625
diff changeset
  1985
    |javaMethod sel|
cg
parents: 625
diff changeset
  1986
cg
parents: 625
diff changeset
  1987
    sel := selector asSymbolIfInterned.
cg
parents: 625
diff changeset
  1988
    sel notNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1989
	javaMethod := methodDictionary at:sel.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1990
	javaMethod notNil ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1991
	    javaMethod isStatic ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1992
		^ javaMethod
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1993
		    valueWithReceiver:self
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1994
		    arguments:(Array with:arg)
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1995
		    selector:selector
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1996
		    search:nil
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1997
		    sender:nil
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1998
	    ]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1999
	].
626
cg
parents: 625
diff changeset
  2000
    ].
cg
parents: 625
diff changeset
  2001
cg
parents: 625
diff changeset
  2002
    ^ self doesNotUnderstand:(Message selector:selector argument:arg)
cg
parents: 625
diff changeset
  2003
cg
parents: 625
diff changeset
  2004
    "Modified: / 15.1.1998 / 00:31:27 / cg"
cg
parents: 625
diff changeset
  2005
    "Created: / 10.12.1998 / 21:50:29 / cg"
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  2006
! !
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  2007
2436
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2008
!JavaClass methodsFor:'misc ui support'!
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2009
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2010
iconInBrowserSymbol
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2011
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2012
    <resource: #programImage>
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2013
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2014
    | jle jlre |
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2015
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2016
    self isInterface ifTrue:[
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2017
        self isPrivate ifTrue:[^#javaPrivateInterfaceBrowserIcon].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2018
        self isProtected ifTrue:[^#javaProtectedInterfaceBrowserIcon].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2019
        ^#javaPublicInterfaceBrowserIcon    
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2020
    ].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2021
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2022
    self isEnum ifTrue:[
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2023
        self isPrivate ifTrue:[^#javaPrivateEnumBrowserIcon].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2024
        self isProtected ifTrue:[^#javaProtectedEnumBrowserIcon].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2025
        ^#javaPublicEnumBrowserIcon    
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2026
    ].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2027
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2028
    (jle := Java at:'java.lang.Exception') notNil ifTrue:[
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2029
        (jlre := Java at:'java.lang.RuntimeException') notNil ifTrue:[
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2030
            (self includesBehavior: jlre) ifTrue:[
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2031
                ^#javaRuntimeExceptionBrowserIcon
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2032
            ]
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2033
        ].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2034
        (self includesBehavior: jle) ifTrue:[
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2035
            ^#javaExceptionBrowserIcon
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2036
        ]
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2037
    ].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2038
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2039
    self isPrivate ifTrue:[^#javaPrivateClassBrowserIcon].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2040
    self isProtected ifTrue:[^#javaProtectedClassBrowserIcon].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2041
    ^#javaPublicClassBrowserIcon
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2042
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2043
    "Created: / 20-12-2010 / 19:11:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2044
! !
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2045
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2046
!JavaClass methodsFor:'printOut'!
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2047
626
cg
parents: 625
diff changeset
  2048
printNameInHierarchy
cg
parents: 625
diff changeset
  2049
    "return my name as printed in the hierarchy"
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2050
626
cg
parents: 625
diff changeset
  2051
    ^ self displayString
cg
parents: 625
diff changeset
  2052
cg
parents: 625
diff changeset
  2053
    "Modified: 22.3.1997 / 14:16:55 / cg"
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2054
!
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2055
626
cg
parents: 625
diff changeset
  2056
printOutOn:aStream
cg
parents: 625
diff changeset
  2057
    self warn:'printOut not yet supported'
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2058
626
cg
parents: 625
diff changeset
  2059
    "Created: 22.3.1997 / 14:36:12 / cg"
cg
parents: 625
diff changeset
  2060
!
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2061
626
cg
parents: 625
diff changeset
  2062
printOutProtocolOn:aStream
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2063
    self warn:'printOut not yet supported'
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2064
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2065
    "Created: 22.3.1997 / 14:36:28 / cg"
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2066
! !
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2067
626
cg
parents: 625
diff changeset
  2068
!JavaClass methodsFor:'printing & storing'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
  2069
626
cg
parents: 625
diff changeset
  2070
displayString
cg
parents: 625
diff changeset
  2071
    ^ fullName copyReplaceAll:$/ with:$.
cg
parents: 625
diff changeset
  2072
cg
parents: 625
diff changeset
  2073
"/    ^ 'JAVA-' , name .
cg
parents: 625
diff changeset
  2074
"/    ^ name , '(Java)'  "/ 'JavaClass(' , name , ')'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
  2075
360
e3df9401df00 use #copyReplaceAll:with:
cg
parents: 357
diff changeset
  2076
    "Created: / 15.4.1996 / 16:02:48 / cg"
e3df9401df00 use #copyReplaceAll:with:
cg
parents: 357
diff changeset
  2077
    "Modified: / 18.7.1998 / 22:56:30 / cg"
626
cg
parents: 625
diff changeset
  2078
! !
cg
parents: 625
diff changeset
  2079
cg
parents: 625
diff changeset
  2080
!JavaClass methodsFor:'private accessing'!
cg
parents: 625
diff changeset
  2081
cg
parents: 625
diff changeset
  2082
addMethod:m name:name signature:signature
cg
parents: 625
diff changeset
  2083
    |sel|
63
74442cd26c02 changes for new methodDict
cg
parents: 60
diff changeset
  2084
626
cg
parents: 625
diff changeset
  2085
    sel := (name , signature) asSymbol.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2086
    self primAddSelector:sel withMethod:m.
626
cg
parents: 625
diff changeset
  2087
    ^ self.
cg
parents: 625
diff changeset
  2088
cg
parents: 625
diff changeset
  2089
"/    selectorArray isNil ifTrue:[
cg
parents: 625
diff changeset
  2090
"/        selectorArray := #().
cg
parents: 625
diff changeset
  2091
"/        methodArray := #()
cg
parents: 625
diff changeset
  2092
"/    ].
cg
parents: 625
diff changeset
  2093
"/    selectorArray := selectorArray copyWith:(name , signature) asSymbol. "/ name.
cg
parents: 625
diff changeset
  2094
"/"/    selectorArray := selectorArray copyWith:name asSymbol. "/ name.
98
bd1f320e757e *** empty log message ***
cg
parents: 90
diff changeset
  2095
"/    methodArray := methodArray copyWith:m
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
  2096
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2097
    "Created: / 15-04-1996 / 16:42:52 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2098
    "Modified: / 04-04-2012 / 01:18:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
  2099
!
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
  2100
626
cg
parents: 625
diff changeset
  2101
addSelector:newSelector withMethod:newMethod
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2102
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2103
    ^super addSelector:newSelector withMethod:newMethod
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2104
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2105
"/    "redefined to not flush smalltalk caches and send NO smalltalk-class
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2106
"/     change notification. Will eventually flush Java caches."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2107
"/
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2108
"/    |nargs oldMethod|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2109
"/
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2110
"/    oldMethod := self compiledMethodAt:newSelector.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2111
"/    (self primAddSelector:newSelector withMethod:newMethod) ifFalse:[^ false].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2112
"/
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2113
"/    ^ true
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2114
"/
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2115
"/
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2116
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2117
    "Created: / 20-01-1997 / 13:00:48 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2118
    "Modified: / 20-04-2012 / 20:27:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
  2119
!
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
  2120
626
cg
parents: 625
diff changeset
  2121
setAccessFlags:flags
3
e3c2a84b2a72 checkin from browser
cg
parents: 1
diff changeset
  2122
    accessFlags := flags.
1
083530508d9c intitial checkin
cg
parents:
diff changeset
  2123
083530508d9c intitial checkin
cg
parents:
diff changeset
  2124
    "Created: 15.4.1996 / 16:42:52 / cg"
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
  2125
!
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
  2126
2476
d24ce8174195 JavaClass can now keep it's classfile bytes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2434
diff changeset
  2127
setClassfileBytes: aByteArray
d24ce8174195 JavaClass can now keep it's classfile bytes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2434
diff changeset
  2128
    self assert: aByteArray isByteArray.    
d24ce8174195 JavaClass can now keep it's classfile bytes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2434
diff changeset
  2129
    classfileBytes := aByteArray
d24ce8174195 JavaClass can now keep it's classfile bytes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2434
diff changeset
  2130
d24ce8174195 JavaClass can now keep it's classfile bytes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2434
diff changeset
  2131
    "Created: / 29-03-2013 / 23:57:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73
a1268823f1a4 *** empty log message ***
cg
parents: 71
diff changeset
  2132
!
a1268823f1a4 *** empty log message ***
cg
parents: 71
diff changeset
  2133
626
cg
parents: 625
diff changeset
  2134
setFields:f
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2135
    | nignored nvals vals names |
626
cg
parents: 625
diff changeset
  2136
cg
parents: 625
diff changeset
  2137
    JavaClass setInstanceVariableStringFromFields:f in:self.
cg
parents: 625
diff changeset
  2138
cg
parents: 625
diff changeset
  2139
    instSize := superclass instSize + f size.
cg
parents: 625
diff changeset
  2140
    fields := f.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2141
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2142
    f withIndexDo:[:field :index|
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2143
        field setClass: self.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2144
        field setIndex: superclass instSize + index.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2145
    ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2146
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2147
    "Now, collect initValues. Ignore the lockword, if any"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2148
    nignored := JavaObject instSize. "/except possible instvars in JavaObject (lockword)
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2149
    nvals := self instSize - nignored. 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2150
    nvals > 0 ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2151
        vals := Array new: nvals.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2152
        names := self allInstVarNames.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2153
        JavaObject instSize + 1 to: names size do:[:i|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2154
            | val |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2155
            val := self initValueFor: (names at: i).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2156
            val notNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2157
                vals at: i - nignored put: val.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2158
                initValues := vals.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2159
            ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2160
        ].
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2161
    ]
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
  2162
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2163
    "Created: / 15-04-1996 / 16:42:52 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2164
    "Modified: / 06-11-1998 / 01:53:01 / cg"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2165
    "Modified: / 02-11-2012 / 21:49:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
  2166
!
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
  2167
626
cg
parents: 625
diff changeset
  2168
setFullName:aString
cg
parents: 625
diff changeset
  2169
    |nameComponents|
cg
parents: 625
diff changeset
  2170
cg
parents: 625
diff changeset
  2171
    fullName := aString asSymbol.
686
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
  2172
"/    nameComponents := aString asCollectionOfSubstringsSeparatedBy:$/.
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
  2173
"/    name := nameComponents last asSymbol.
aa412739da79 *** empty log message ***
cg
parents: 684
diff changeset
  2174
    name := fullName.
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
  2175
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
  2176
    "Created: / 15.4.1996 / 16:42:52 / cg"
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
  2177
    "Modified: / 5.11.1998 / 19:14:39 / cg"
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
  2178
!
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
  2179
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2180
setInterfaces: i
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2181
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2182
    super setInterfaces: i.
626
cg
parents: 625
diff changeset
  2183
    i size > 0 ifTrue:[
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2184
        i do:[:iface|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2185
            iface name = 'groovy/lang/GroovyObject' ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2186
                self class changeClassTo: GroovyMetaclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2187
                self class setSuperclass: GroovyClass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2188
            ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2189
        ]
110
dfb03e2ea321 *** empty log message ***
cg
parents: 98
diff changeset
  2190
    ]
dfb03e2ea321 *** empty log message ***
cg
parents: 98
diff changeset
  2191
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2192
    "Created: / 20-02-2012 / 22:47:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2193
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2194
2529
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
  2195
setSource: aStringOrNil
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
  2196
    self assert: (aStringOrNil isNil or:[aStringOrNil isString]).
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
  2197
    sourceString := aStringOrNil
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2198
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2199
    "Created: / 15-04-1996 / 16:42:52 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2200
    "Created: / 18-02-2012 / 19:10:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2529
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
  2201
    "Modified: / 19-04-2013 / 09:30:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
110
dfb03e2ea321 *** empty log message ***
cg
parents: 98
diff changeset
  2202
!
dfb03e2ea321 *** empty log message ***
cg
parents: 98
diff changeset
  2203
626
cg
parents: 625
diff changeset
  2204
setSourceFile:aFilename
cg
parents: 625
diff changeset
  2205
    sourceFile := aFilename.
cg
parents: 625
diff changeset
  2206
cg
parents: 625
diff changeset
  2207
    "Created: 15.4.1996 / 16:42:52 / cg"
cg
parents: 625
diff changeset
  2208
!
cg
parents: 625
diff changeset
  2209
cg
parents: 625
diff changeset
  2210
setStaticFields:f
cg
parents: 625
diff changeset
  2211
    JavaClass setInstanceVariableStringFromFields:f in:self class.
cg
parents: 625
diff changeset
  2212
cg
parents: 625
diff changeset
  2213
    staticFields := f.
cg
parents: 625
diff changeset
  2214
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2215
    "Modified: / 17-08-2011 / 09:26:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
626
cg
parents: 625
diff changeset
  2216
!
60
a763b1780ec0 checkin from browser
cg
parents: 54
diff changeset
  2217
626
cg
parents: 625
diff changeset
  2218
setSuperclass:aClass
cg
parents: 625
diff changeset
  2219
    |iVars numIvars|
247
67dd93db3d80 adapt to change in ClassDescription
cg
parents: 236
diff changeset
  2220
626
cg
parents: 625
diff changeset
  2221
    aClass isNil ifTrue:[
cg
parents: 625
diff changeset
  2222
	super setSuperclass:JavaObject
cg
parents: 625
diff changeset
  2223
    ] ifFalse:[
cg
parents: 625
diff changeset
  2224
	(aClass isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
cg
parents: 625
diff changeset
  2225
	    self halt.
cg
parents: 625
diff changeset
  2226
	].
cg
parents: 625
diff changeset
  2227
	super setSuperclass:aClass.
cg
parents: 625
diff changeset
  2228
    ].
cg
parents: 625
diff changeset
  2229
cg
parents: 625
diff changeset
  2230
    iVars := self instVarNames.
cg
parents: 625
diff changeset
  2231
    ((numIvars := iVars size) > 0) ifTrue:[
cg
parents: 625
diff changeset
  2232
	(superclass notNil and:[(superclass isMemberOf:JavaUnresolvedClassConstant) not]) ifTrue:[
cg
parents: 625
diff changeset
  2233
	    instSize := superclass instSize + numIvars
cg
parents: 625
diff changeset
  2234
	] ifFalse:[
cg
parents: 625
diff changeset
  2235
	    instSize := numIvars
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
  2236
	]
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  2237
    ].
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
  2238
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
  2239
    "Created: 15.4.1996 / 16:42:52 / cg"
247
67dd93db3d80 adapt to change in ClassDescription
cg
parents: 236
diff changeset
  2240
    "Modified: 22.8.1997 / 15:06:45 / cg"
626
cg
parents: 625
diff changeset
  2241
! !
1
083530508d9c intitial checkin
cg
parents:
diff changeset
  2242
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2243
!JavaClass methodsFor:'private-changes management'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2244
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2245
writingChangeWithTimeStamp:doStampIt do:aBlock
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2246
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2247
    "No changes for Java classes now"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2248
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2249
    "Created: / 14-12-2010 / 18:07:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2250
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2251
626
cg
parents: 625
diff changeset
  2252
!JavaClass methodsFor:'queries'!
cg
parents: 625
diff changeset
  2253
cg
parents: 625
diff changeset
  2254
canBeSubclassed
cg
parents: 625
diff changeset
  2255
    "return true, if its allowed to create subclasses of the receiver."
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2256
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2257
    self isFinal ifTrue:[^ false].
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2258
    self isInterface ifTrue:[^ false].
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2259
    ^ true
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2260
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2261
    "Created: / 5.11.1998 / 23:04:50 / cg"
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2262
!
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2263
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2264
canHaveExtensions
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2265
    ^false
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2266
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2267
    "Created: / 13-04-2012 / 18:55:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2268
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2269
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2270
containsMethodsAnnotatedWith:aJavaTypeName 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2271
    | methods |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2272
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2273
    methods := self selectMethodsAnnotatedWith:aJavaTypeName.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2274
    methods size > 0 ifTrue:[ ^ true ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2275
    (self name ~= #'java/lang/Object') 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2276
        ifTrue:[ ^ superclass containsMethodsAnnotatedWith:aJavaTypeName. ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2277
    ^ false.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2278
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2279
    "Created: / 02-03-2011 / 23:01:14 / Marcel Hlopko <hlopik@gmail.com>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2280
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2281
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2282
hasFinalize
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2283
    ^ (accessFlags bitAnd:ACX_HASFINALIZE) ~~ 0
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2284
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2285
    "Created: / 02-11-2012 / 18:50:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2286
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2287
626
cg
parents: 625
diff changeset
  2288
hasInterface:aJavaInterface
cg
parents: 625
diff changeset
  2289
    "return true, if I respond to all methods as
cg
parents: 625
diff changeset
  2290
     required by the argument, an aJavaInterface"
cg
parents: 625
diff changeset
  2291
cg
parents: 625
diff changeset
  2292
    interfaces size > 0 ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2293
	self interfaces do:[:if |
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2294
	    aJavaInterface == if ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2295
		^ true
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2296
	    ].
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2297
	]
626
cg
parents: 625
diff changeset
  2298
    ].
cg
parents: 625
diff changeset
  2299
    superclass isJavaClass ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2300
	^ superclass hasInterface:aJavaInterface
626
cg
parents: 625
diff changeset
  2301
    ].
cg
parents: 625
diff changeset
  2302
    ^ false.
cg
parents: 625
diff changeset
  2303
cg
parents: 625
diff changeset
  2304
"/    aJavaInterface methodDictionary keysAndValuesDo:[:sel :mthd |
587
131f0c4afb89 checkin from browser
cg
parents: 582
diff changeset
  2305
"/        (self canUnderstand:sel) ifFalse:[
131f0c4afb89 checkin from browser
cg
parents: 582
diff changeset
  2306
"/            ^ false.
131f0c4afb89 checkin from browser
cg
parents: 582
diff changeset
  2307
"/        ]
131f0c4afb89 checkin from browser
cg
parents: 582
diff changeset
  2308
"/    ].
53
e10c1dd4ea3b checkin from browser
cg
parents: 52
diff changeset
  2309
    ^ true
281
67c5b913b645 *** empty log message ***
cg
parents: 264
diff changeset
  2310
67c5b913b645 *** empty log message ***
cg
parents: 264
diff changeset
  2311
    "Modified: / 28.1.1998 / 01:46:16 / cg"
587
131f0c4afb89 checkin from browser
cg
parents: 582
diff changeset
  2312
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
  2313
!
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
  2314
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2315
hasMagicAccessRights
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2316
    "Classes subclassing from sun.reflect.MagicAccessorImpl are not subject to access rights checks. Another non-documented gem found in openjdk sources :)"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2317
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2318
    | magicAccessor |
2578
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
  2319
    magicAccessor := JavaVM classNamed: 'sun.reflect.MagicAccessorImpl' definedBy: nil.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2320
    ^ magicAccessor notNil and: [ self includesBehavior: magicAccessor ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2321
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2322
    "Created: / 18-11-2012 / 16:11:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2578
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
  2323
    "Modified: / 02-05-2013 / 01:23:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2324
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2325
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2326
isAnonymous
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2327
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2328
    | i |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2329
    i := name lastIndexOf: $$.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2330
    i ~~ 0 ifTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2331
        i + 1 to: name size do:[:i|
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2332
            (name at:i) isDigit ifFalse:[^false].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2333
        ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2334
        ^true
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2335
    ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2336
    ^false
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2337
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2338
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2339
        (Java at:'java.io.Console') isAnonymous
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2340
        (Java at:'java.io.Console$1') isAnonymous
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2341
        (Java at:'java.io.Console$1$1') isAnonymous
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2342
        (Java at:'sun.misc.Launcher$ExtClassLoader') isAnonymous
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2343
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2344
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2345
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2346
    "Created: / 18-03-1997 / 17:48:01 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2347
    "Created: / 07-08-2011 / 15:50:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2348
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2349
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2350
isFullyResolved
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2351
constantPool do: [:each | (each isJavaRef and: [each isResolved not]) ifTrue: [^false]].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2352
^ true.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2354
    "Created: / 08-12-2011 / 20:44:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2355
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2356
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2357
isJavaArrayClass
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2358
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2359
    ^false
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2360
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2361
    "Created: / 05-02-2011 / 22:20:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2362
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2363
626
cg
parents: 625
diff changeset
  2364
isJavaClass
148
db560ebab8b5 *** empty log message ***
cg
parents: 133
diff changeset
  2365
    ^ self ~~ JavaClass
db560ebab8b5 *** empty log message ***
cg
parents: 133
diff changeset
  2366
db560ebab8b5 *** empty log message ***
cg
parents: 133
diff changeset
  2367
    "Created: 18.3.1997 / 17:48:01 / cg"
db560ebab8b5 *** empty log message ***
cg
parents: 133
diff changeset
  2368
!
db560ebab8b5 *** empty log message ***
cg
parents: 133
diff changeset
  2369
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2370
isJavaClassType
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2371
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2372
    ^self isInterface not
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2373
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2374
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2375
        (Java classForName:'java.lang.Class') isJavaClassType  
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2376
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2377
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2378
    "Created: / 11-02-2011 / 08:09:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2379
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2380
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2381
isJavaInterfaceType
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2382
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2383
    ^self isInterface
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2384
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2385
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2386
        (Java classForName:'java.lang.Class') isJavaInterfaceType  
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2387
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2388
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2389
    "Created: / 11-02-2011 / 08:09:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2390
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2391
626
cg
parents: 625
diff changeset
  2392
isJavaMethodRef
cg
parents: 625
diff changeset
  2393
    ^ false
cg
parents: 625
diff changeset
  2394
cg
parents: 625
diff changeset
  2395
    "Created: / 9.11.1999 / 15:42:10 / cg"
cg
parents: 625
diff changeset
  2396
!
cg
parents: 625
diff changeset
  2397
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2398
isJavaPrimitiveType
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2399
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2400
    ^false
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2401
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2402
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2403
        (Java classForName:'java.lang.Class') isJavaPrimitiveType  
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2404
        ByteArray isJavaPrimitiveType                              
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2405
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2406
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2407
    "Created: / 21-12-2010 / 23:03:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2408
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2409
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2410
isJavaReferenceType
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2411
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2412
    ^true
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2413
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2414
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2415
        (Java classForName:'java.lang.Class') isJavaReferenceType 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2416
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2417
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2418
    "Created: / 20-12-2010 / 21:54:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2419
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2420
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2421
isJavaType
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2422
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2423
    ^true
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2424
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2425
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2426
        (Java classForName:'java.lang.Class') isJavaType  
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2427
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2428
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2429
    "Created: / 20-12-2010 / 21:53:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2430
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2431
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2432
isJavaWrapperClass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2433
    "Returns true, iff receiver is one of the Java wrapper classes or String"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2434
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2435
    name == #'java/lang/Byte' ifTrue:[^true].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2436
    name == #'java/lang/Short' ifTrue:[^true].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2437
    name == #'java/lang/Integer' ifTrue:[^true].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2438
    name == #'java/lang/Long' ifTrue:[^true].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2439
    name == #'java/lang/Character' ifTrue:[^true].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2440
    name == #'java/lang/Boolean' ifTrue:[^true].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2441
    name == #'java/lang/String' ifTrue:[^true]."/Not really a wrapper, but..."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2442
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2443
    ^false.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2444
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2445
    "Created: / 26-12-2011 / 22:03:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2446
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2447
626
cg
parents: 625
diff changeset
  2448
isUnresolved
cg
parents: 625
diff changeset
  2449
    "return true, if the receiver is unresolved;
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2450
     javaClasses are never; JavaUnresolvedClasses are always"
345
7cfa66af11a0 checkin from browser
cg
parents: 336
diff changeset
  2451
90
918e2740098c resolve rewritten
cg
parents: 86
diff changeset
  2452
    ^ false
345
7cfa66af11a0 checkin from browser
cg
parents: 336
diff changeset
  2453
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2454
    "Modified: / 07-05-1998 / 12:23:14 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2455
    "Created: / 06-03-2011 / 22:57:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
175
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
  2456
!
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
  2457
679
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  2458
nameInBrowser
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  2459
    "return a nameString as shown in browsers"
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  2460
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  2461
    ^ self name copyReplaceAll:$/ with:$.
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  2462
!
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  2463
626
cg
parents: 625
diff changeset
  2464
nameSpacePath
cg
parents: 625
diff changeset
  2465
    |parts s|
cg
parents: 625
diff changeset
  2466
cg
parents: 625
diff changeset
  2467
    parts := self fullName asCollectionOfSubstringsSeparatedBy:$/.
cg
parents: 625
diff changeset
  2468
    s := '' writeStream.
cg
parents: 625
diff changeset
  2469
    s nextPutAll:'JAVA'.
cg
parents: 625
diff changeset
  2470
    parts from:1 to:(parts size - 1) do:[:aPart |
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2471
	s nextPutAll:'::'.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2472
	s nextPutAll:aPart
626
cg
parents: 625
diff changeset
  2473
    ].
cg
parents: 625
diff changeset
  2474
    ^ s contents
cg
parents: 625
diff changeset
  2475
cg
parents: 625
diff changeset
  2476
    "
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2477
     JAVA::java::lang::Object fullName
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2478
     JAVA::java::lang::Object nameSpacePath
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2479
     JAVA::java::lang::Object name
393
1efe41b5bc98 #removeClass: fix
cg
parents: 375
diff changeset
  2480
    "
1efe41b5bc98 #removeClass: fix
cg
parents: 375
diff changeset
  2481
1efe41b5bc98 #removeClass: fix
cg
parents: 375
diff changeset
  2482
    "Modified: / 19.10.1998 / 20:07:24 / cg"
1efe41b5bc98 #removeClass: fix
cg
parents: 375
diff changeset
  2483
!
1efe41b5bc98 #removeClass: fix
cg
parents: 375
diff changeset
  2484
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2485
selectMethodsAnnotatedWith:aJavaTypeName 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2486
    ^ self methodDictionary values select:
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2487
            [:method | 
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2488
            (method isJavaMethod 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2489
                and:[method annotations notNil
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2490
                    and:[(method annotations runtimeVisible at:aJavaTypeName ifAbsent:nil) notNil]])].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2491
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2492
    "Created: / 02-03-2011 / 23:06:42 / Marcel Hlopko <hlopik@gmail.com>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2493
    "Modified: / 14-12-2011 / 22:35:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2494
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2495
626
cg
parents: 625
diff changeset
  2496
supportsMethodCategories
cg
parents: 625
diff changeset
  2497
    ^ self isJavaClass not
175
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
  2498
626
cg
parents: 625
diff changeset
  2499
    "Created: / 30.7.1997 / 14:58:58 / cg"
cg
parents: 625
diff changeset
  2500
    "Modified: / 7.5.1998 / 12:25:54 / cg"
cg
parents: 625
diff changeset
  2501
!
321
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 312
diff changeset
  2502
626
cg
parents: 625
diff changeset
  2503
typeName
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2504
    ^ 'L' , self fullName , ';'.
321
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 312
diff changeset
  2505
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 312
diff changeset
  2506
    "
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2507
     (Java at:'java.util.Stack') typeName"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2508
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2509
    "Modified: / 10-02-1998 / 17:13:26 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2510
    "Modified: / 02-03-2011 / 22:48:40 / Marcel Hlopko <hlopik@gmail.com>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2511
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2512
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2513
!JavaClass methodsFor:'queries-protocol'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2514
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2515
equalsOrIsSubclassOf: aJavaClass 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2516
    self = aJavaClass ifTrue: [^true].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2517
    ^ self isSubclassOf:aJavaClass.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2518
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2519
    "Created: / 30-05-2011 / 23:07:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2520
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2521
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2522
includesBehavior: aClass 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2523
    ^ (aClass isJavaClass not or: [ aClass isInterface not ]) 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2524
        ifTrue: [ self name == aClass name or:[ super includesBehavior: aClass ]]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2525
        ifFalse: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2526
            self name == aClass name or: [ self allInterfaces includes: aClass ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2527
        ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2528
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2529
    "Created: / 05-02-2011 / 23:44:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2530
    "Modified: / 11-02-2011 / 09:12:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2531
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2532
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2533
isSubclassOf: aClass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2534
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2535
    | cls |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2536
    aClass isNil ifTrue:[^false].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2537
    cls := self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2538
    [ cls notNil ] whileTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2539
        "JV-2011-10-20: Q: is one subclass of another if its
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2540
         are subclass but loaded using different classloader?"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2541
        cls == aClass ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2542
            ^true
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2543
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2544
        cls := cls superclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2545
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2546
    ^false
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2547
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2548
    "Created: / 20-10-2011 / 16:15:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2549
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2550
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2551
!JavaClass methodsFor:'reflection'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2552
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2553
findInstFieldByName: fieldName 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2554
    "tries to find a field in current class (not superclasses)"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2555
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2556
    | result |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2557
    result := self fields 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2558
                detect: [:each | each name = fieldName ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2559
                ifNone: [ nil ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2560
    ^ result.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2561
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2562
    "Created: / 07-12-2011 / 23:05:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2563
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2564
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2565
findInterfaceFieldByName: fieldName 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2566
    | result  seenIfaces  ifaces |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2567
    ifaces := OrderedCollection withAll: self interfaces.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2568
    seenIfaces := Set new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2569
    [ ifaces notEmpty ] whileTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2570
        | iface |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2571
        iface := ifaces removeFirst.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2572
        result := iface staticFields 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2573
                    detect: [:each | each name = fieldName ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2574
                    ifNone: [ nil ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2575
        result notNil ifTrue: [ ^ result ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2576
        seenIfaces add: iface.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2577
        iface interfaces do: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2578
            :each | 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2579
            (seenIfaces includes: each) not ifTrue: [ ifaces add: each ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2580
        ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2581
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2582
    ^ nil.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2583
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2584
    "Created: / 07-12-2011 / 23:05:46 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2585
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2586
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2587
findStaticFieldByName: fieldName 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2588
    "tries to find a field in current class (not superclasses)"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2589
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2590
    | result |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2591
    result := self staticFields 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2592
                detect: [:each | each name = fieldName ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2593
                ifNone: [ nil ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2594
    ^ result.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2595
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2596
    "Created: / 07-12-2011 / 23:05:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2597
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2598
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2599
lookupFieldByNameAndType: aJavaNameAndType 
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2600
    | field  cls |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2601
    cls := self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2602
    [ cls ~~ JavaObject ] whileTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2603
        field := cls findInstFieldByName: aJavaNameAndType name.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2604
        field notNil ifTrue: [ ^ field ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2605
        field := cls findStaticFieldByName: aJavaNameAndType name.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2606
        field notNil ifTrue: [ ^ field ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2607
        field := cls findInterfaceFieldByName: aJavaNameAndType name.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2608
        field notNil ifTrue: [ ^ field ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2609
        cls := cls superclass.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2610
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2611
    self breakPoint: #mh.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2612
    ^ nil.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2613
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2614
    "Created: / 11-04-2011 / 21:27:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2615
    "Modified: / 13-08-2011 / 00:46:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2616
    "Modified: / 07-12-2011 / 23:05:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2617
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2618
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2619
lookupMethodByNameAndType: aJavaNameAndType 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2620
    ^ self lookupMethodFor: aJavaNameAndType selector.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2621
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2622
    "Created: / 11-04-2011 / 21:28:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2623
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2624
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2625
lookupStaticFieldByNameAndType: aJavaNameAndType 
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2626
    | field  cls |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2627
    cls := self.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2628
    [ cls ~= JavaObject ] whileTrue: [
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2629
        field := cls findStaticFieldByName: aJavaNameAndType name.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2630
        field notNil ifTrue: [ ^ field ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2631
        field := cls findInterfaceFieldByName: aJavaNameAndType name.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2632
        field notNil ifTrue: [ ^ field ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2633
        cls := cls superclass.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2634
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2635
    self breakPoint: #mh.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2636
    ^ nil.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2637
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2638
    "Created: / 11-04-2011 / 21:27:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2639
    "Modified: / 26-08-2011 / 18:27:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2640
    "Modified: / 07-12-2011 / 23:06:11 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
626
cg
parents: 625
diff changeset
  2641
! !
cg
parents: 625
diff changeset
  2642
cg
parents: 625
diff changeset
  2643
!JavaClass methodsFor:'special'!
cg
parents: 625
diff changeset
  2644
cg
parents: 625
diff changeset
  2645
asClassPointerRef
cg
parents: 625
diff changeset
  2646
"/ self halt.
cg
parents: 625
diff changeset
  2647
     ^ self
cg
parents: 625
diff changeset
  2648
cg
parents: 625
diff changeset
  2649
    "Created: / 10.11.1998 / 02:07:01 / cg"
cg
parents: 625
diff changeset
  2650
    "Modified: / 8.1.1999 / 14:11:26 / cg"
428
4b400c64ccec checkin from browser
cg
parents: 426
diff changeset
  2651
!
4b400c64ccec checkin from browser
cg
parents: 426
diff changeset
  2652
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2653
deinit
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2654
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2655
    accessFlags := accessFlags bitClear: ACX_INITIALIZED.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2656
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2657
    "Created: / 25-10-2010 / 12:28:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2658
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2659
626
cg
parents: 625
diff changeset
  2660
deref
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2661
	^ self
428
4b400c64ccec checkin from browser
cg
parents: 426
diff changeset
  2662
626
cg
parents: 625
diff changeset
  2663
    "Created: / 10.11.1998 / 02:08:06 / cg"
428
4b400c64ccec checkin from browser
cg
parents: 426
diff changeset
  2664
!
4b400c64ccec checkin from browser
cg
parents: 426
diff changeset
  2665
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2666
javaArrayClass
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2667
    "/ self halt.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2668
    "/  ^ Array
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2669
    
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2670
    ^ JavaArray javaArrayClassFor:self
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2671
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2672
    "Created: / 10-11-1998 / 02:07:32 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2673
    "Modified: / 08-01-1999 / 14:11:34 / cg"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2674
    "Modified: / 05-07-2012 / 23:24:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2675
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2676
626
cg
parents: 625
diff changeset
  2677
updateClassRefsFrom:oldClass to:newClass
cg
parents: 625
diff changeset
  2678
    self == oldClass ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2679
	self makeObsolete.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2680
	^ self
626
cg
parents: 625
diff changeset
  2681
    ].
cg
parents: 625
diff changeset
  2682
cg
parents: 625
diff changeset
  2683
    constantPool updateClassRefsFrom:oldClass to:newClass.
cg
parents: 625
diff changeset
  2684
    interfaces notNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2685
	interfaces := interfaces collect:[:anInterface |
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2686
					    anInterface == oldClass ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2687
						newClass isNil ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2688
						    nil "/ replace by an unresolvedInterface
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2689
						] ifFalse:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2690
						    newClass
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2691
						]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2692
					    ] ifFalse:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2693
						anInterface
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2694
					    ]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2695
					 ]
626
cg
parents: 625
diff changeset
  2696
    ]
cg
parents: 625
diff changeset
  2697
cg
parents: 625
diff changeset
  2698
    "Modified: / 4.2.1998 / 22:08:19 / cg"
203
67af98594672 *** empty log message ***
cg
parents: 200
diff changeset
  2699
! !
67af98594672 *** empty log message ***
cg
parents: 200
diff changeset
  2700
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2701
!JavaClass methodsFor:'support - refactorings'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2702
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2703
directlyDefinesMethod: aSelector 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2704
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2705
    ^self methodDictionary includes: aSelector.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2706
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2707
    "Created: / 16-03-2011 / 14:21:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2708
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2709
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2710
metaclass
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2711
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2712
    ^self class
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2713
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2714
    "Created: / 16-03-2011 / 14:22:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2715
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2716
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2717
!JavaClass methodsFor:'support - sUnit'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2718
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2719
asTestCase
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2720
    self isTestletLike 
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2721
        ifTrue: [^ TestletTestCaseProxy for: self ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2722
    ^ JUnitTestCaseProxy for: self.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2723
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2724
    "Created: / 04-03-2011 / 08:20:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2725
    "Modified: / 29-04-2011 / 17:52:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2726
    "Modified: / 07-05-2011 / 18:59:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2727
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2728
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2729
asTestlet
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2730
    ^ TestletTestCaseProxy for: self
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2731
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2732
    "Created: / 29-04-2011 / 16:53:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2733
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2734
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2735
buildSuite
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2736
    self isTestletLike ifTrue: [ ^(TestletTestCaseProxy for: self) buildSuite ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2737
^ (JUnitTestCaseProxy for: self) buildSuite
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2738
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2739
    "Created: / 29-05-2011 / 22:45:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2740
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2741
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2742
isJUnitTestCaseLike
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2743
    | cls |
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2744
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2745
    "try JUnit 4.x"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2746
    (self containsMethodsAnnotatedWith: #'Lorg/junit/Test;') ifTrue: [ 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2747
        ^ true 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2748
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2749
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2750
    "Try jUnit 3.x"    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2751
    cls := self superclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2752
    [ cls notNil ] whileTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2753
        cls name == #'junit/framework/TestCase' ifTrue:[ ^ true ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2754
        cls := cls superclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2755
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2756
    ^false
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2757
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2758
        JAVA::java::lang::Object isTestCaseLike
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2759
        JAVA::stx::libjava::tests::junit::JUnit3Tests isTestCaseLike
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2760
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2761
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2762
    "Created: / 23-10-2011 / 22:04:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2763
    "Modified: / 11-01-2013 / 00:03:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2764
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2765
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2766
isTestCaseLike
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2767
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2768
    JavaVM booted ifFalse:[ ^ false ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2769
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2770
    ^self isJUnitTestCaseLike or:[ self isTestletLike ]
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2771
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2772
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2773
        JAVA::java::lang::Object isTestCaseLike
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2774
        JAVA::stx::libjava::tests::junit::JUnit3Tests isTestCaseLike"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2775
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2776
    "Created: / 28-02-2011 / 21:31:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2777
    "Modified: / 02-03-2011 / 23:08:02 / Marcel Hlopko <hlopik@gmail.com>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2778
    "Modified: / 29-05-2011 / 22:48:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2779
    "Modified: / 02-12-2011 / 23:09:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2780
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2781
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2782
isTestSelector: selector
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2783
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2784
    "Hack, you're right, blame on me"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2785
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2786
    | junit_framework_TestCase m |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2787
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2788
    ((selector == #'test(Lgnu/testlet/TestHarness;)V')
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2789
        and:[self ~~ (Java at:'gnu.testlet.Testlet')])
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2790
            ifTrue:[^true].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2791
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2792
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2793
    junit_framework_TestCase := Java at:'junit.framework.TestCase'.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2794
    (junit_framework_TestCase notNil and:
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2795
        [self includesBehavior:junit_framework_TestCase])
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2796
        ifTrue:[^selector startsWith: 'test'].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2797
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2798
    m := self lookupSelector: selector.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2799
    "Sorry fo that, but I need this method to be fast"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2800
    ^m notNil and:[m annotations runtimeVisible includesKey: 'Lorg/junit/Test;'].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2801
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2802
    "Modified: / 02-03-2011 / 23:08:02 / Marcel Hlopko <hlopik@gmail.com>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2803
    "Created: / 04-03-2011 / 07:07:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2804
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2805
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2806
isTestletLike
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2807
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2808
    ^self interfaceNames includes:'gnu.testlet.Testlet'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2809
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2810
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2811
        self interfaces
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2812
    "
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2813
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2814
    "Modified: / 02-03-2011 / 23:08:02 / Marcel Hlopko <hlopik@gmail.com>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2815
    "Created: / 29-04-2011 / 17:02:22 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2816
    "Modified: / 13-02-2013 / 09:36:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2817
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2818
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2819
!JavaClass methodsFor:'unwind'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2820
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2821
unwindHandlerInContext: aContext 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2822
    "given a context which has been marked for unwind,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2823
     retrieve the handler block. This method is called when ST
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2824
     exception raises and stack is unwinding. JavaClass instance
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2825
     has an opportunity to clean up monitors"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2826
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2827
    ^ JavaVM unwindHandlerForJavaContext: aContext.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2828
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2829
    "Created: / 08-11-2011 / 12:25:15 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2830
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2831
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2832
!JavaClass methodsFor:'versions'!
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2833
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2834
mergeVersionsWith: aJavaClass
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2835
    "
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2836
    take both self and aJavaClass and ensure that:
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2837
    1) both share the same versions array instance
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2838
    2) versions instance includes both self and aJavaClass.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2839
    "
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2840
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2841
    (self versions isNil and: [ aJavaClass versions isNil ]) ifTrue: [
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2842
|versions|
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2843
        versions := WeakArray with: self with: aJavaClass.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2844
        versions addDependent: JavaClass::JavaClassVersionDiedHandler new.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2845
        self versions: versions.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2846
        aJavaClass versions: versions.        
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2847
        ^ self.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2848
    ].
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2849
    self versions isNil ifTrue: [
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2850
        self versions: aJavaClass versions.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2851
        self versions add: self.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2852
        ^ self.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2853
    ].
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2854
    aJavaClass versions isNil ifTrue: [
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2855
        aJavaClass versions: self versions.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2856
        self versions add: aJavaClass.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2857
        ^ self.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2858
    ].
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2859
    self error: 'merge of two classes both of which have multiple versions not supported'.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2860
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2861
    "Created: / 14-04-2013 / 13:44:03 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2862
! !
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2863
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2864
!JavaClass::JavaClassVersionDiedHandler class methodsFor:'documentation'!
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2865
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2866
history
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2867
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2868
    "Created: #update:with:from: / 14-04-2013 / 14:04:20 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2869
! !
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2870
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2871
!JavaClass::JavaClassVersionDiedHandler methodsFor:'notification'!
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2872
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2873
update:aParameter with:anArgument from:source
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2874
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2875
    aParameter = #ElementExpired ifFalse: [
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2876
        self error: 'only #ElementExpired updates supported'.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2877
    ].
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2878
    self assert: (source notNil and: [ source size >= 1 ]).
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2879
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2880
    source size = 1 ifTrue: [
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2881
        "only one version remaining - we can start caching. Let's change the flag"
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2882
        | javaClass |
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2883
        javaClass := (source at: 1).
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2884
        javaClass markCacheable.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2885
    ].
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2886
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2887
    "Created: / 14-04-2013 / 14:04:20 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  2888
! !
2578
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
  2889
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
  2890
!JavaClass class methodsFor:'documentation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
  2891
083530508d9c intitial checkin
cg
parents:
diff changeset
  2892
version
2561
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  2893
    ^ '$Header: /cvs/stx/stx/libjava/JavaClass.st,v 1.135 2013-04-27 12:31:15 cg Exp $'
2197
6c7576efbf16 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2894
!
6c7576efbf16 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2895
6c7576efbf16 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2896
version_CVS
2561
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  2897
    ^ '$Header: /cvs/stx/stx/libjava/JavaClass.st,v 1.135 2013-04-27 12:31:15 cg Exp $'
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2898
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2899
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2900
version_SVN
2566
f1cea8b752ba Merged branch default (CVS HEAD)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2529 2561
diff changeset
  2901
    ^ 'Id'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
  2902
! !
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2903
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2904
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2905
JavaClass initialize!