JavaClass.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sun, 26 Apr 2015 21:07:30 +0100
changeset 3442 e59716e00703
parent 3424 9cce89694276
child 3508 622620308fee
permissions -rw-r--r--
Oops, fix for commit 48320b2d4: Use first element of binding to read bound value For workspace variables it does not matter much as both values are valueholders, however in inspector and for debugger, binding contains block with fixed number of arguments.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
454
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
     1
"
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3303
diff changeset
     2
 COPYRIGHT (c) 1996-2015 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
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3303
diff changeset
     6
 COPYRIGHT (c) 2010-2015 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
3326
a373d416ae8c Fix in JavaClass>>annotations
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
    23
"{ NameSpace: Smalltalk }"
a373d416ae8c Fix in JavaClass>>annotations
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
    24
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
    25
JavaBehavior subclass:#JavaClass
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
    26
	instanceVariableNames:'classLoader binaryName fields staticFields annotations'
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
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
    32
MethodDictionary variableSubclass:#Attributes
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
    33
	instanceVariableNames:''
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
    34
	classVariableNames:'Empty'
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
    35
	poolDictionaries:''
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
    36
	privateIn:JavaClass
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
    37
!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
    38
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    39
Object subclass:#JavaClassVersionDiedHandler
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    40
	instanceVariableNames:''
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    41
	classVariableNames:''
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    42
	poolDictionaries:''
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    43
	privateIn:JavaClass
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    44
!
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
    45
133
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    46
!JavaClass class methodsFor:'documentation'!
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    47
454
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    48
copyright
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    49
"
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3303
diff changeset
    50
 COPYRIGHT (c) 1996-2015 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
    51
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
    52
 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
    53
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3303
diff changeset
    54
 COPYRIGHT (c) 2010-2015 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
    55
                            SWING Research Group, Czech Technical University in Prague
454
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    56
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    57
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    58
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    59
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    60
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    61
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 451
diff changeset
    62
 hereby transferred.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
    63
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
    64
 [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
    65
     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
    66
     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
    67
     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
    68
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
    69
"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
    70
!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
    71
133
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    72
examples
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    73
"
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    74
    (Java at:'java.util.Stack') new inspect
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    75
    (Java at:'java.util.Vector') new inspect
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    76
"
adaf7cad0bc2 checkin from browser
cg
parents: 132
diff changeset
    77
! !
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    78
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
    79
!JavaClass class methodsFor:'instance creation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    80
3424
9cce89694276 Catch up in JavaClass class>>binaryName:numStatic: after changes in ClassDescription.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3417
diff changeset
    81
binaryName: binaryName numStatic: nstatics
9cce89694276 Catch up in JavaClass class>>binaryName:numStatic: after changes in ClassDescription.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3417
diff changeset
    82
    | binaryNameSym meta  cls |
9cce89694276 Catch up in JavaClass class>>binaryName:numStatic: after changes in ClassDescription.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3417
diff changeset
    83
9cce89694276 Catch up in JavaClass class>>binaryName:numStatic: after changes in ClassDescription.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3417
diff changeset
    84
    binaryNameSym := binaryName asSymbol.
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    85
    "create the metaclass first"
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
    86
    meta := JavaMetaclass new.
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
    87
    meta setSuperclass: self.
3424
9cce89694276 Catch up in JavaClass class>>binaryName:numStatic: after changes in ClassDescription.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3417
diff changeset
    88
    meta instSize: (meta superclass instSize + nstatics).
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
    89
172
c3a531a73cda *** empty log message ***
cg
parents: 170
diff changeset
    90
"/    meta setName:(aString , 'class') asSymbol.
c3a531a73cda *** empty log message ***
cg
parents: 170
diff changeset
    91
"/    meta setClassVariableString:''.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
    92
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
    93
    meta flags: (meta flags bitOr: Behavior flagJavaClass).
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
    94
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
    95
"/    meta setSuperclass:JavaObject class. "then let the new meta create the class"
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
    96
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    97
    cls := meta new.
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
    98
    cls setSuperclass: JavaObject.
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
    99
    cls instSize: 0.
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   100
    cls flags: 0.
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   101
    cls setAccessFlags: 0.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   102
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   103
"/    cls setClassVariableString:''.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   104
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   105
    cls setInstanceVariableString: ''.
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   106
    cls setCategory: #java.
2956
17be352f0130 Added lockWord to JavaBehavior to enable thinlocking for static methods and resolver.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2937
diff changeset
   107
    cls setLockWord.
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   108
3424
9cce89694276 Catch up in JavaClass class>>binaryName:numStatic: after changes in ClassDescription.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3417
diff changeset
   109
    cls setBinaryName: binaryNameSym.
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   110
    "Make sure `name` slot of Java classes always contain a symbol.
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   111
     There's code in the VM which compares class names, therefore having nil
2847
5ea0697eef5f Hack for old VM JavaClass>>binaryName:numStatic:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2846
diff changeset
   112
     there causes segfault.
5ea0697eef5f Hack for old VM JavaClass>>binaryName:numStatic:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2846
diff changeset
   113
5ea0697eef5f Hack for old VM JavaClass>>binaryName:numStatic:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2846
diff changeset
   114
     Also, because __jbindnative() reads class name slot (instead of binaryName),
5ea0697eef5f Hack for old VM JavaClass>>binaryName:numStatic:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2846
diff changeset
   115
     temporarily set Class.name slot to its binary name. This is certainly
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   116
     kludge, but allows old VM to work with new naming scheme. Will wanish."
3424
9cce89694276 Catch up in JavaClass class>>binaryName:numStatic: after changes in ClassDescription.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3417
diff changeset
   117
    cls setName: binaryNameSym.
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   118
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   119
    ^ cls
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   120
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   121
    "Created: / 15-04-1996 / 15:52:55 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   122
    "Modified: / 03-01-1998 / 22:32:25 / cg"
3424
9cce89694276 Catch up in JavaClass class>>binaryName:numStatic: after changes in ClassDescription.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3417
diff changeset
   123
    "Modified: / 12-04-2015 / 11:23:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   124
!
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   125
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   126
name:aString
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   127
    self shouldNotImplement
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   128
083530508d9c intitial checkin
cg
parents:
diff changeset
   129
    "Created: 15.4.1996 / 15:52:55 / cg"
083530508d9c intitial checkin
cg
parents:
diff changeset
   130
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
   131
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
   132
!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
   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
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
   135
    " 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
   136
    ^ 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
   137
        (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
   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
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
    "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
   141
!
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
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
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
   144
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
    "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
   146
    "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
   147
    "/    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
   148
    (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
   149
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   150
    ^ (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
   151
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   152
    "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
   153
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   154
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   155
!JavaClass class methodsFor:'class initialization'!
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
initialize
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   158
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   159
    ArgumentConversionErrorSignal := Signal new notifierString:'argument conversion error'.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   160
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   161
    "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
   162
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   163
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   164
!JavaClass class methodsFor:'method lookup'!
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   165
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   166
canConvertArgsToJava:argArray asSpecifiedIn:argSigSpecArray
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   167
    "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
   168
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   169
    argArray
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   170
	with:argSigSpecArray
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   171
	do:[:arg :type |
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   172
		self
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   173
		    convertToJava:arg
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   174
		    type:type
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   175
		    ifFail:[:msg :default| ^ false]].
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   176
    ^ true
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   177
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   178
    "Created: / 5.11.1998 / 18:25:05 / cg"
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   179
    "Modified: / 6.11.1998 / 00:45:58 / cg"
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   180
!
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   181
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   182
convertArgsToJava:argArray asSpecifiedIn:argSigSpecArray numArgs:na
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   183
    "given a smalltalk argument array, convert to java objects as appropriate.
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   184
     Currently, only Strings and booleans are converted."
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   185
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   186
    |sigIndex newArgIndex newArgArray|
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   187
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   188
    sigIndex := newArgIndex := 1.
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   189
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   190
    newArgArray := Array new:na.
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   191
    argArray do:[:arg |
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   192
	|type newArg|
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   193
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   194
	type := argSigSpecArray at:sigIndex.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   195
	sigIndex := sigIndex + 1.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   196
	newArg := self convertToJava:arg type:type.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   197
	newArgArray at:newArgIndex put:newArg.
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
	(type == #long or:[type == #double]) ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   200
	    newArgIndex > na ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   201
		self halt:'should not happen'
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   202
	    ].
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   203
	    newArgArray at:newArgIndex put:nil.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   204
	    newArgIndex := newArgIndex + 1.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   205
	]
426
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
    ^ newArgArray
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   209
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   210
    "Created: / 5.11.1998 / 18:30:57 / cg"
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   211
    "Modified: / 6.11.1998 / 00:45:00 / cg"
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   212
!
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   213
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   214
convertToJava:arg type:type
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   215
    "given a smalltalk argument, convert to a java object as appropriate."
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   216
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   217
    ^ self
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   218
        convertToJava:arg
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   219
        type:type
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   220
        ifFail:[:msg :default |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   221
                    ArgumentConversionErrorSignal
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   222
                        raiseWith:arg
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   223
                        errorString:msg.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   224
                    default
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   225
               ]
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   226
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   227
    "Created: / 06-11-1998 / 00:45:13 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   228
    "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
   229
!
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   230
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   231
convertToJava: arg type: type ifFail: failBlock
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   232
    "given a smalltalk argument, convert to a java object as appropriate.
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   233
     Currently, only a few types are converted."
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   234
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
   235
    | 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
   236
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
    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
   238
        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
   239
        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
   240
        ^ 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
   241
    ].
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
    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
   243
        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
   244
            (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
   245
            ^ 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
   246
                value: 0.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   247
        ].
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
   248
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   249
    ].
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
   250
    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
   251
        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
   252
            (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
   253
                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
   254
            ^ 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
   255
                value: 0
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
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
        ^ 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
   258
    ].
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
    (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
   260
        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
   261
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0.0.
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   262
    ].
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
   263
    (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
   264
        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
   265
            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
   266
            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
   267
            self halt.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   268
            ^ f.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   269
        ].
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
   270
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0.0.
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   271
    ].
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
   272
    (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
   273
        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
   274
            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
   275
            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
   276
            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
   277
            ^ f.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
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
        ^ 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
   280
    ].
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
    (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
   282
        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
   283
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0.0.
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   284
    ].
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
   285
    (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
   286
        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
   287
        ^ failBlock value: ('cannot convert argument to ' , type) value: 0
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   288
    ].
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
   289
    (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
   290
        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
   291
        ^ 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
   292
    ].
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
    (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
   294
        (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
   295
        ^ failBlock value: ('cannot convert argument to ' , type) value: ''
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   296
    ].
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
   297
    (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
   298
        (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
   299
        ^ 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
   300
    ].
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
    (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
   302
        (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
   303
        ^ failBlock value: ('cannot convert argument to ' , type) value: ''
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   304
    ].
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
   305
    (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
   306
        (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
   307
        ^ failBlock value: ('cannot convert argument to ' , type) value: ''
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   308
    ].
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
   309
    (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
   310
        (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
   311
        ^ 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
   312
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   313
    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
   314
    (arg isKindOf: expectedCls) ifTrue: [
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   315
        "/ matches class and subclasses
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   316
        ^ arg
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   317
    ].
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
   318
    (type = 'java.lang.Object') ifTrue: [
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   319
        "/ matches any
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   320
        ^ arg
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   321
    ].
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
   322
    (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
   323
        arg isString ifTrue: [ ^ Java as_String: arg ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   324
        failValue := ''
2080
452972372142 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 749
diff changeset
   325
    ].
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
   326
    arg isNil ifTrue: [
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   327
        "/ matches any
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   328
        ^ arg
456
bbed0c5ce05f checkin from browser
cg
parents: 454
diff changeset
   329
    ].
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
   330
    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
   331
    ^ failBlock value: ('cannot convert argument to ' , type) value: failValue
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   332
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   333
    "Created: / 06-11-1998 / 00:46:19 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   334
    "Modified: / 06-11-2001 / 13:28:29 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   335
    "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
   336
    "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
   337
!
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   338
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   339
convertToSmalltalk:jObj type:type
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   340
    "given a java return value, convert to a smalltalk object as appropriate.
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   341
     Currently, only a few types are converted."
336
263450c8902e checkin from browser
cg
parents: 321
diff changeset
   342
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   343
    "JV@2011-02-04"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   344
    "Hack for primitive types"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   345
    (JavaDescriptor baseTypesByTypeName keys includes: type) ifTrue:[^jObj].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   346
    "jObj is registered for the specified type?"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   347
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   348
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   349
    (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
   350
        ^ jObj
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
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   353
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   354
    type == #boolean ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   355
        jObj == 0 ifTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   356
            ^ false
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   357
        ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   358
        ^ true
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   359
    ].
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   360
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   361
    type == #void ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   362
        ^ nil
336
263450c8902e checkin from browser
cg
parents: 321
diff changeset
   363
    ].
263450c8902e checkin from browser
cg
parents: 321
diff changeset
   364
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   365
    (type = 'java.lang.String') ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   366
        ^ Java as_ST_String:jObj
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   367
    ].
336
263450c8902e checkin from browser
cg
parents: 321
diff changeset
   368
433
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   369
"/    (type = 'java.lang.Float') ifTrue:[
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   370
"/        ^ jObj instVarNamed:'value'
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   371
"/    ].
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   372
"/    (type = 'java.lang.Double') ifTrue:[
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   373
"/        ^ jObj instVarNamed:'value'
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   374
"/    ].
d9d6841784f1 checkin from browser
cg
parents: 428
diff changeset
   375
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   376
    (type == #char) ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   377
        jObj isInteger ifTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   378
            ^ Character value:jObj
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   379
        ].
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   380
    ].
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   381
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   382
    ^ jObj
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
   383
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   384
    "Created: / 06-11-1998 / 00:49:53 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   385
    "Modified: / 11-11-1998 / 02:08:11 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   386
    "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
   387
    "Modified: / 08-04-2011 / 17:04:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
336
263450c8902e checkin from browser
cg
parents: 321
diff changeset
   388
!
263450c8902e checkin from browser
cg
parents: 321
diff changeset
   389
236
46195f733e51 *** empty log message ***
cg
parents: 229
diff changeset
   390
lookupMethod:selector numArgs:nargs in:aClass static:staticMethod
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   391
    "lookup a method"
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   392
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   393
    |method cls sel|
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   394
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   395
    sel := selector.
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   396
    (sel includes:$:) ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   397
	sel := sel copyTo:(sel indexOf:$:)-1
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   398
    ].
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   399
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   400
    sel := sel asSymbolIfInterned.
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   401
    sel notNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   402
	cls := aClass.
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   403
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   404
	[cls notNil
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   405
	and:[cls ~~ JavaObject
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   406
	and:[cls ~~ JavaClass]]] whileTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   407
	    cls methodDictionary keysAndValuesDo:[:jSel :m |
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   408
		|aMethod|
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   409
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   410
		aMethod := m.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   411
		aMethod isWrapped ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   412
		    aMethod := aMethod originalMethod
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   413
		].
456
bbed0c5ce05f checkin from browser
cg
parents: 454
diff changeset
   414
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   415
		((jSel == sel)
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   416
		or:[aMethod name = sel
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   417
		or:[aMethod signatureNameWithoutReturnType = sel]])
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   418
		ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   419
		    aMethod numArgs == nargs ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   420
			staticMethod == (aMethod isStatic) ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   421
			    ^ m
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   422
			]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   423
		    ]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   424
		]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   425
	    ].
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   426
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   427
	    cls := cls superclass.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   428
	].
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   429
    ].
375
988259a6fa03 checkin from browser
cg
parents: 360
diff changeset
   430
"/ self halt.
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   431
    ^ nil
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   432
375
988259a6fa03 checkin from browser
cg
parents: 360
diff changeset
   433
    "Created: / 17.8.1997 / 18:25:47 / cg"
456
bbed0c5ce05f checkin from browser
cg
parents: 454
diff changeset
   434
    "Modified: / 16.11.1998 / 16:46:48 / cg"
415
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   435
!
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   436
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   437
lookupMethods:selector numArgs:nargs in:aClass static:staticMethod
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   438
    "lookup methods matching a selector.
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   439
     This is a special entry for doesNotUnderstand redirection
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   440
     (the caller must select the one method which fits the argument(s) best."
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   441
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   442
    |methods cls sel|
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   443
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   444
    sel := selector.
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   445
    (sel includes:$:) ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   446
	sel := sel copyTo:(sel indexOf:$:)-1
415
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   447
    ].
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   448
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   449
    sel := sel asSymbolIfInterned.
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   450
    sel notNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   451
	cls := aClass.
415
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   452
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   453
	[cls notNil
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   454
	and:[cls ~~ JavaObject
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   455
	and:[cls ~~ JavaClass]]] whileTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   456
	    cls methodDictionary keysAndValuesDo:[:jSel :aMethod |
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   457
		((jSel == sel)
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   458
		or:[aMethod name = sel
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   459
		or:[aMethod signatureNameWithoutReturnType = sel]])
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   460
		ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   461
		    (nargs isNil
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   462
		    or:[aMethod numArgs == nargs]) ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   463
			staticMethod == (aMethod isStatic) ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   464
			    methods isNil ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   465
				methods := OrderedCollection new
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   466
			    ].
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   467
			    methods add:aMethod
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   468
			]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   469
		    ]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   470
		]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   471
	    ].
415
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   472
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   473
	    cls := cls superclass.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   474
	].
415
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   475
    ].
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   476
    ^ methods ? #()
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   477
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   478
    "Created: / 4.11.1998 / 19:04:51 / cg"
b8abde6f5a0d cleanup (removed obsolete invoke stuff)
cg
parents: 413
diff changeset
   479
    "Modified: / 4.11.1998 / 19:31:33 / cg"
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   480
! !
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
   481
2578
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   482
!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
   483
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   484
version_HG
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   485
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   486
    ^ '$Changeset: <not expanded> $'
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   487
! !
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
   488
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   489
!JavaClass class methodsFor:'signature parsing'!
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   490
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   491
initialValueFromSignature:aSignature
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   492
    "given a signature, return an initializer value"
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   493
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   494
    |s|
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   495
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   496
    s := aSignature readStream.
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   497
    ^ self initialValueFromStream:s.
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   498
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   499
    "
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   500
     JavaClass initialValueFromSignature:'LObject;'
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   501
     JavaClass initialValueFromSignature:'B'
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   502
     JavaClass initialValueFromSignature:'I'
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   503
    "
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   504
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   505
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   506
! !
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   507
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   508
!JavaClass class methodsFor:'special'!
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   509
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   510
deinitClasses
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   511
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   512
    Smalltalk allClassesDo:
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   513
        [:cls|cls isJavaClass ifTrue:[cls deinit]].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   514
    self flushClassesInitOrder.
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
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   517
        JavaClass deinitClasses
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   518
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   519
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   520
    "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
   521
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   522
2104
1b6366474dbf isReal -> isLimitedPrecisionReal
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   523
flushClassesInitOrder
1b6366474dbf isReal -> isLimitedPrecisionReal
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   524
    OrderOfClassInits := nil
1b6366474dbf isReal -> isLimitedPrecisionReal
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   525
1b6366474dbf isReal -> isLimitedPrecisionReal
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   526
    "Created: / 6.11.2001 / 09:49:49 / cg"
1b6366474dbf isReal -> isLimitedPrecisionReal
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   527
!
1b6366474dbf isReal -> isLimitedPrecisionReal
Claus Gittinger <cg@exept.de>
parents: 2102
diff changeset
   528
435
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   529
orderOfClassInits
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   530
    ^ OrderOfClassInits
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   531
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   532
    "Created: / 12.11.1998 / 15:35:57 / cg"
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   533
!
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   534
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   535
setInstanceVariableStringFromFields:f in:aClass
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   536
    |varNames|
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   537
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   538
    varNames := ''.
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   539
    f do:[:aField |
172
c3a531a73cda *** empty log message ***
cg
parents: 170
diff changeset
   540
	varNames := varNames , aField name , ' '
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   541
    ].
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   542
    aClass setInstanceVariableString:varNames.
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   543
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   544
    "Created: 15.4.1996 / 16:42:52 / cg"
435
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   545
!
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   546
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   547
startRememberingOrderOfClassInits
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   548
    OrderOfClassInits := OrderedCollection new.
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   549
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   550
    "Created: / 12.11.1998 / 15:26:32 / cg"
de6d4b3a67ac remember class init-order
cg
parents: 433
diff changeset
   551
    "Modified: / 12.11.1998 / 15:29:10 / cg"
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   552
! !
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   553
2603
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   554
!JavaClass methodsFor:'* uncategorized *'!
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   555
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   556
includesInterface: interface
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   557
    | cls |
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   558
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   559
    self == interface ifTrue: [ ^ true ].
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   560
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   561
    cls := self.
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   562
    [ cls isJavaClass ] whileTrue:[
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   563
        cls interfaces do:[:i|(i includesInterface: interface) ifTrue:[ ^ true ]].
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   564
        cls := cls superclass.
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   565
    ].
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   566
    ^ false.
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   567
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   568
    "Created: / 21-05-2013 / 00:06:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   569
! !
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
   570
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   571
!JavaClass methodsFor:'accessing'!
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   572
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
   573
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
   574
    "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
   575
     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
   576
    | 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
   577
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   578
    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
   579
    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
   580
    [ 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
   581
        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
   582
        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
   583
    ].
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
    ^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
   585
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
    "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
   587
!
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
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   589
allInterfaces
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   590
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   591
    | ifaces cls |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   592
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   593
    ifaces := Set new.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   594
    cls := self.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   595
    [ cls isJavaClass ] whileTrue:
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   596
        [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
   597
        cls := cls superclass].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   598
    ^ifaces.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   599
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   600
    "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
   601
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   602
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
   603
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
   604
    "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
   605
     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
   606
    | 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
   607
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   608
    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
   609
    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
   610
    [ 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
   611
        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
   612
        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
   613
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   614
    ^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
   615
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   616
    "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
   617
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   618
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   619
annotations
3326
a373d416ae8c Fix in JavaClass>>annotations
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
   620
    annotations isNil ifTrue:[
a373d416ae8c Fix in JavaClass>>annotations
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
   621
        ^ JavaClassAnnotationContainer empty
3196
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   622
    ].
3326
a373d416ae8c Fix in JavaClass>>annotations
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
   623
    ^ annotations
a373d416ae8c Fix in JavaClass>>annotations
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
   624
a373d416ae8c Fix in JavaClass>>annotations
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
   625
    "Modified: / 11-01-2015 / 07:47:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   626
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   627
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   628
annotations:something
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   629
    annotations := something.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   630
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   631
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   632
binaryName
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   633
    "Returns binary name of the class (i.e., name with slashes).
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   634
     To get name as seen by programmer, use #javaName"
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   635
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   636
    ^ binaryName
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   637
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   638
    "Created: / 08-10-2013 / 19:24:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   639
!
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   640
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   641
classLoader
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   642
    ^ classLoader
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   643
!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   644
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
   645
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
   646
    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
   647
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   648
    "Modified: / 18-02-2012 / 20:21:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   649
!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   650
651
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   651
compiledMethodAt:name
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   652
    "redefined to find the constructor"
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   653
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   654
    |m|
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   655
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   656
    m := super compiledMethodAt:name.
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   657
    m isNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   658
	name = self lastName ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   659
	    ^ super compiledMethodAt:#'<init>()V'
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   660
	].
651
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   661
    ].
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   662
    ^ m
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   663
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   664
    "
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   665
     JAVA::java::lang::Object compiledMethodAt:#Object
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   666
    "
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   667
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   668
    "Created: / 24.12.1999 / 02:02:50 / cg"
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   669
    "Modified: / 24.12.1999 / 02:04:46 / cg"
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   670
!
c4f8130fb962 checkin from browser
cg
parents: 626
diff changeset
   671
185
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   672
compiledMethodAt:name signature:sig
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   673
    "lookup the classes methodDictionary"
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   674
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   675
    methodDictionary keysAndValuesDo:[:mFullSelector :aMethod |
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
   676
	aMethod name == name ifTrue:[
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
   677
	    aMethod signature == sig ifTrue:[
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
   678
		^ aMethod
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
   679
	    ]
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
   680
	]
185
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   681
    ].
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   682
    ^ nil
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   683
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   684
    "Created: 1.8.1997 / 00:01:58 / cg"
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   685
!
99ff1b6d90fe *** empty log message ***
cg
parents: 183
diff changeset
   686
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   687
constantPool
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   688
    ^ constantPool
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   689
!
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   690
3199
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   691
declaringClass
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   692
    | innerClassesAttr |
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   693
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   694
    innerClassesAttr := self getAttribute: #InnerClasses.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   695
    innerClassesAttr notNil ifTrue:[
3290
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
   696
        innerClassesAttr do:[:each |
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
   697
            | innerClassRef outerClassRef |
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
   698
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   699
            innerClassRef := self constantPool at: each innerClassRefIndex.
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   700
            outerClassRef := each outerClassRefIndex ~~ 0 ifTrue:[ self constantPool at: each outerClassRefIndex  ] ifFalse:[ nil ].
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   701
            (innerClassRef name = binaryName and:[outerClassRef notNil]) ifTrue:[
3290
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
   702
                ^ outerClassRef resolve: false.
3199
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   703
            ]
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   704
        ].
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   705
    ].
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   706
    ^ nil
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   707
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   708
    "Created: / 04-08-2014 / 22:42:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3290
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
   709
    "Modified: / 03-12-2014 / 14:23:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3199
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   710
!
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   711
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   712
enclosingClass
3204
ea55682eefe7 Align JavaClass>>enclosingClass with java.lang.Class.getEnclosingClass()
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3199
diff changeset
   713
    "Returns the immediately enclosing class of the underlying
ea55682eefe7 Align JavaClass>>enclosingClass with java.lang.Class.getEnclosingClass()
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3199
diff changeset
   714
     this class.  If the this class is a top level class this
ea55682eefe7 Align JavaClass>>enclosingClass with java.lang.Class.getEnclosingClass()
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3199
diff changeset
   715
     method returns nil."
ea55682eefe7 Align JavaClass>>enclosingClass with java.lang.Class.getEnclosingClass()
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3199
diff changeset
   716
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   717
    | enclosingMethodAttr |
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   718
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   719
    enclosingMethodAttr := self getAttribute: #EnclosingMethod.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   720
    enclosingMethodAttr isNil ifTrue:[
3204
ea55682eefe7 Align JavaClass>>enclosingClass with java.lang.Class.getEnclosingClass()
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3199
diff changeset
   721
        ^ self declaringClass
2733
3d97124aebf5 Fixes for syntax highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   722
    ].
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   723
    ^ (self constantPool at: enclosingMethodAttr first) resolve: false.
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   724
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   725
    "Created: / 13-09-2013 / 01:26:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3290
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
   726
    "Modified: / 03-12-2014 / 12:59:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   727
!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   728
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   729
enclosingMethod
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   730
    | enclosingMethodAttr enclosingClass |
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   731
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   732
    enclosingMethodAttr := self getAttribute: #EnclosingMethod.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   733
    enclosingMethodAttr isNil ifTrue:[ ^ nil ].
3290
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
   734
    enclosingMethodAttr second == 0 ifTrue:[ ^ nil ].
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   735
    enclosingClass := (self constantPool at: enclosingMethodAttr first) resolve: false.
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   736
    ^ enclosingClass compiledMethodAt: (self constantPool at: enclosingMethodAttr second) selector
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   737
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   738
    "Created: / 13-09-2013 / 01:28:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3290
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
   739
    "Modified: / 03-12-2014 / 13:00:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   740
!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
   741
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   742
ensureHasAnnotations
3196
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   743
    annotations isNil ifTrue:[
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   744
        annotations := JavaAnnotationContainer for:self
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   745
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   746
    ^ annotations
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   747
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   748
    "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
   749
    "Modified: / 16-03-2011 / 17:13:47 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
3196
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   750
    "Modified: / 04-08-2014 / 15:54:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   751
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   752
83
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   753
fields
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   754
    ^ fields
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   755
!
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   756
90
918e2740098c resolve rewritten
cg
parents: 86
diff changeset
   757
javaClass
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   758
90
918e2740098c resolve rewritten
cg
parents: 86
diff changeset
   759
    ^ self
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   760
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   761
    "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
   762
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   763
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   764
javaComponentClass
2908
064418faa2e3 Another pass over Mauve tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2906
diff changeset
   765
064418faa2e3 Another pass over Mauve tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2906
diff changeset
   766
    "/ this is really confusing design, should return nil here and only
064418faa2e3 Another pass over Mauve tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2906
diff changeset
   767
    "/ overwrite in JavaArray....
064418faa2e3 Another pass over Mauve tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2906
diff changeset
   768
    ^self
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   769
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   770
    "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
   771
    "Modified: / 30-05-2011 / 23:26:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2908
064418faa2e3 Another pass over Mauve tests.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2906
diff changeset
   772
    "Modified (comment): / 08-11-2013 / 23:07:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
691
8dcc24aeaa95 *** empty log message ***
cg
parents: 689
diff changeset
   773
!
8dcc24aeaa95 *** empty log message ***
cg
parents: 689
diff changeset
   774
2085
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   775
javaName
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   776
    "the javaname - as seen by a java programmer.
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   777
     (with '/'s replaced by dots) extract from the fullName"
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   778
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   779
    ^ binaryName copyReplaceAll:$/ with:$.
2085
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   780
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   781
    "
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   782
     Java allClasses first fullName
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   783
     Java allClasses first name
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   784
     Java allClasses first javaName
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   785
     Java allClasses first javaPackage
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   786
     Java allClasses first package
2085
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   787
    "
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   788
!
dc0785700fbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   789
684
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   790
javaPackage
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   791
    "the javaPackage - as seen by a java programmer.
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   792
     (with '/'s replaced by dots) extract from the fullName"
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   793
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   794
    |components|
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   795
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   796
    components := binaryName asCollectionOfSubstringsSeparatedBy:$/.
684
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   797
    components size > 1 ifTrue:[
2554
46bb4696954a Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 2436
diff changeset
   798
        ^ (components copyButLast:1) asStringWith:$.
684
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   799
    ].
3417
1cde6fd1d7c7 Fix in JavaClass>>javaPackage
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3388
diff changeset
   800
    ^ ''
684
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   801
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
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 javaPackage
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   805
     Java allClasses first package
684
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   806
    "
3417
1cde6fd1d7c7 Fix in JavaClass>>javaPackage
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3388
diff changeset
   807
1cde6fd1d7c7 Fix in JavaClass>>javaPackage
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3388
diff changeset
   808
    "Modified: / 27-03-2015 / 16:19:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
684
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   809
!
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   810
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   811
javaPackageAsDirname
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   812
    "the javaPackage - as directory in class path"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   813
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   814
    |components|
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   815
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   816
    components := binaryName asCollectionOfSubstringsSeparatedBy:$/.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   817
    components size > 1 ifTrue:[
2554
46bb4696954a Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 2436
diff changeset
   818
        ^ (components copyButLast:1) asStringWith: Filename separator
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   819
    ].
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   820
    ^ binaryName
2151
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
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   823
     Java allClasses first fullName
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   824
     Java allClasses first javaPackage
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   825
     Java allClasses first package
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
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   828
    "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
   829
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   830
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
   831
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
   832
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   833
    binaryName == #'java/lang/String' ifTrue:[ ^ String ].
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
   834
    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
   835
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   836
    "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
   837
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   838
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   839
lastName
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   840
    ^ binaryName copyFrom:(binaryName lastIndexOf:$/)+1
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   841
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   842
    "Created: / 5.11.1998 / 19:16:00 / cg"
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   843
!
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 418
diff changeset
   844
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   845
nameWithoutNameSpacePrefix
3180
a80e78c59918 Make JavaClass>>nameWithoutNameSpacePrefix returning the lastName.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3173
diff changeset
   846
    ^ self lastName
a80e78c59918 Make JavaClass>>nameWithoutNameSpacePrefix returning the lastName.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3173
diff changeset
   847
a80e78c59918 Make JavaClass>>nameWithoutNameSpacePrefix returning the lastName.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3173
diff changeset
   848
    "Created: / 20-01-1997 / 13:05:30 / cg"
a80e78c59918 Make JavaClass>>nameWithoutNameSpacePrefix returning the lastName.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3173
diff changeset
   849
    "Modified: / 25-07-2014 / 10:09:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   850
!
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   851
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   852
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
   853
    ^ 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
   854
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
   855
    "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
   856
    "Modified: / 20-04-2012 / 18:35:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   857
!
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
   858
22
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   859
package
3186
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   860
    "Return the package symbol of the class as seen by Smalltalk"
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   861
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   862
    | packageAnnotation p i |
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   863
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   864
    "/ First, look if the class is annotated by stx.libjava.annotation.Package.
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   865
    "/ If so, return annotation's value as package name...
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   866
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   867
    annotations notNil ifTrue:[
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   868
        packageAnnotation := annotations runtimeVisible at: 'Lstx/libjava/annotation/Package;' ifAbsent:[ nil ].
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   869
        packageAnnotation notNil ifTrue:[
3186
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   870
            ^ packageAnnotation value
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   871
        ].
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   872
    ].
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   873
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
   874
    ((self getAttribute: #EnclosingMethod) notNil or:[ (self getAttribute: #InnerClasses) notNil ]) ifTrue:[
3207
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
   875
        | top |
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
   876
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
   877
        top := self topEnclosingClass.
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
   878
        top notNil ifTrue:[ ^ top package ].
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
   879
    ].
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
   880
3186
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   881
    "/ If not, extract java package name and prepend java:.
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   882
    "/ For default package, return java:(default).
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   883
    i := binaryName lastIndexOf:$/.
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
   884
    p := binaryName copyTo:i - 1.
3186
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   885
    p isEmpty ifTrue:[
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   886
        ^ #'java:(default)'
2083
85a87edefd8e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2080
diff changeset
   887
    ].
684
d5ee4cc0ffc2 *** empty log message ***
cg
parents: 679
diff changeset
   888
    ^ 'java:' , p
22
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   889
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   890
    "
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   891
     Java allClasses first fullName
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   892
     Java allClasses first package
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   893
     Java allClasses first javaPackage
22
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   894
    "
3186
945bee015640 Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   895
3207
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
   896
    "Modified: / 05-08-2014 / 22:14:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
   897
!
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
   898
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   899
protectionDomain
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   900
    ^ attributes at: #ProtectionDomain ifAbsent:[ nil ]
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   901
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   902
    "Modified: / 07-12-2014 / 01:39:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   903
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   904
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   905
protectionDomain:something
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   906
    attributes  := attributes at: #ProtectionDomain putOrAppend: something
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   907
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   908
    "Modified: / 07-12-2014 / 01:40:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   909
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   910
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   911
runtimeVisibleAnnotationsAsBytesOrNil
3196
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   912
    annotations isNil ifTrue:[
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   913
        ^ nil
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   914
    ].
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   915
    annotations runtimeVisible isNil ifTrue:[
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   916
        ^ nil
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   917
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   918
    ^ annotations runtimeVisible bytes
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   919
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   920
    "Created: / 25-02-2011 / 16:48:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3196
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
   921
    "Modified: / 04-08-2014 / 15:54:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   922
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   923
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   924
setSignature: aSymbol
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   925
    attributes := attributes at: #GenericSignature putOrAppend: aSymbol.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   926
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   927
    "Created: / 13-08-2011 / 00:30:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   928
    "Modified: / 07-12-2014 / 01:39:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   929
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   930
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   931
signatureJ
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   932
    "stupid naming, but superclass defines signature too"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   933
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   934
    ^ attributes at: #GenericSignature ifAbsent:[ nil ]
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   935
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   936
    "Created: / 13-08-2011 / 00:30:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   937
    "Modified: / 07-12-2014 / 01:39:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   938
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
   939
76
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   940
source
3388
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   941
    "Returns a source of the class as String or nil of no source is found along the Java's source paths."
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   942
    | sourceString stream |
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   943
    (sourceString := self sourceString) notNil ifTrue: [ ^ sourceString ].
2737
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
   944
    ^ [
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
   945
        stream := self sourceStream.
2739
b34398d8856b Bugfix: JavaClass>>source: check for missing source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2737
diff changeset
   946
        stream notNil ifTrue:[
2780
7638771efcbe Fix in JavaClass>>source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2744
diff changeset
   947
            stream contents withTabsExpanded asString.
2739
b34398d8856b Bugfix: JavaClass>>source: check for missing source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2737
diff changeset
   948
        ] ifFalse:[
b34398d8856b Bugfix: JavaClass>>source: check for missing source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2737
diff changeset
   949
            nil
b34398d8856b Bugfix: JavaClass>>source: check for missing source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2737
diff changeset
   950
        ].
2737
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
   951
    ] ensure:[
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
   952
        stream notNil ifTrue:[stream close]
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
   953
    ].
76
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   954
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   955
    "
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   956
     (Java at:'java.awt.Frame') source
175
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
   957
     (Java at:'ArcTest') source
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
   958
     (Java at:'ArcCanvas') source
76
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   959
    "
175
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
   960
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
   961
    "Modified: / 30-07-1997 / 14:31:01 / cg"
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
   962
    "Modified: / 07-12-2014 / 01:32:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3388
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   963
    "Modified (comment): / 17-02-2015 / 13:43:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   964
!
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   965
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   966
sourceDecompiled
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   967
    "Returns a decompiled source code as String."
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   968
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   969
    | resources | 
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   970
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   971
    resources := self classResources.
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   972
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   973
    ^ String streamContents:[:s |
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   974
        s nextPutAll: '/**'; cr.
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   975
        s nextPutAll: ' * ' ; nextPutAll: (resources string: 'No source has been found along configured source path:'); cr.
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   976
        s nextPutAll: ' * ' ; cr.
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   977
        Java effectiveSourceDirectories do:[:d | 
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   978
            s nextPutAll: ' *     '; nextPutAll: d asString; cr.
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   979
        ].
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   980
        s nextPutAll: ' * ' ; cr.
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   981
        s nextPutAll: ' * ' ; nextPutAll: (resources string: 'You may add more source directories or archives by evaluating:'); cr.
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   982
        s nextPutAll: ' * ' ; cr.
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   983
        s nextPutAll: ' *     '; nextPutAll: 'Java addToSourceDirectories: ''/path/to/sources''.' ; cr.
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   984
        s nextPutAll: ' */'; cr.                                                                       
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   985
        JavaDecompiler definitionOf:self on:s
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   986
    ]
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   987
    "
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   988
    JAVA java lang Object sourceDecompiled
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   989
    "
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   990
848666cb09c2 JavaClass: added JavaClass>>sourceDecompiled with better description text.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3373
diff changeset
   991
    "Created: / 17-02-2015 / 12:07:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
76
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   992
!
9ff95e14dbfb *** empty log message ***
cg
parents: 74
diff changeset
   993
24
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
   994
sourceFile
3211
c771a69d7f7d Removed slot JavaClass#sourceFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3207
diff changeset
   995
    ^ classFilename
c771a69d7f7d Removed slot JavaClass#sourceFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3207
diff changeset
   996
c771a69d7f7d Removed slot JavaClass#sourceFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3207
diff changeset
   997
    "Modified: / 07-08-2014 / 12:26:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
83
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   998
!
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
   999
2737
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
  1000
sourceStream
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1001
    | sourceString |
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1002
    ^ (sourceString := self sourceString) notNil
2737
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
  1003
        ifTrue:[ sourceString readStream ]
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
  1004
        ifFalse:[Java classSourceStreamFor: self ]
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1005
2737
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
  1006
    "
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
  1007
     (Java at:'java.awt.Frame') source
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
  1008
     (Java at:'ArcTest') source
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
  1009
     (Java at:'ArcCanvas') source
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
  1010
    "
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
  1011
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
  1012
    "Created: / 19-09-2013 / 12:41:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1013
    "Modified: / 07-12-2014 / 01:32:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2737
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
  1014
!
83f8416e153c Cleanup. Change source API in `Java` to return stream rather than string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2733
diff changeset
  1015
2529
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
  1016
sourceString
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1017
    ^attributes at: #SourceString ifAbsent: [ nil ]
2529
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
  1018
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
  1019
    "Created: / 19-04-2013 / 09:28:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1020
    "Modified: / 07-12-2014 / 01:32:54 / 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
  1021
!
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
  1022
83
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
  1023
staticFields
2d61ef3579e4 *** empty log message ***
cg
parents: 79
diff changeset
  1024
    ^ staticFields
132
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
  1025
!
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
  1026
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1027
superinterface
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1028
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1029
    | ifaces |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1030
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1031
    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
  1032
    (ifaces := self interfaces) size == 0 ifTrue:[^nil].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1033
    ifaces size = 1 ifTrue:[^ifaces first].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1034
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1035
    self error: 'Should not happen!!'.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1036
    ^nil
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1037
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1038
    "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
  1039
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1040
2847
5ea0697eef5f Hack for old VM JavaClass>>binaryName:numStatic:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2846
diff changeset
  1041
theClass
5ea0697eef5f Hack for old VM JavaClass>>binaryName:numStatic:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2846
diff changeset
  1042
5ea0697eef5f Hack for old VM JavaClass>>binaryName:numStatic:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2846
diff changeset
  1043
    ^ self
5ea0697eef5f Hack for old VM JavaClass>>binaryName:numStatic:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2846
diff changeset
  1044
5ea0697eef5f Hack for old VM JavaClass>>binaryName:numStatic:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2846
diff changeset
  1045
!
5ea0697eef5f Hack for old VM JavaClass>>binaryName:numStatic:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2846
diff changeset
  1046
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1047
topEnclosingClass
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1048
    | current enclosing |
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1049
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1050
    current := enclosing := self enclosingClass.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1051
    [ current notNil ] whileTrue:[
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1052
        enclosing := current.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1053
        current := current enclosingClass.
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2561
diff changeset
  1054
    ].
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1055
    ^ enclosing
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1056
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1057
    "Created: / 13-09-2013 / 11:22:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1058
!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1059
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1060
topEnclosingMethod
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1061
    | current enclosing |
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1062
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1063
    current := enclosing := self enclosingMethod.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1064
    [ current notNil ] whileTrue:[
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1065
        enclosing := current.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1066
        current := current enclosingMethod.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1067
    ].
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1068
    ^ enclosing
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1069
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  1070
    "Created: / 13-09-2013 / 11:22:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2561
diff changeset
  1071
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2561
diff changeset
  1072
132
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
  1073
typeOfField:aFieldName
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
  1074
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
  1075
    fields do:[:aField |
172
c3a531a73cda *** empty log message ***
cg
parents: 170
diff changeset
  1076
	aField name = aFieldName ifTrue:[
c3a531a73cda *** empty log message ***
cg
parents: 170
diff changeset
  1077
	    ^ aField type
c3a531a73cda *** empty log message ***
cg
parents: 170
diff changeset
  1078
	]
132
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
  1079
    ].
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
  1080
    self error:'no such field'
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
  1081
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
  1082
    "
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1083
     (JAVA at:#'java/awt/image/ColorModel') typeOfField:'pixel_bits'
132
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
  1084
    "
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
  1085
03c680d3427b *** empty log message ***
cg
parents: 130
diff changeset
  1086
    "Modified: 21.1.1997 / 22:48:28 / cg"
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1087
!
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1088
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1089
versions
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1090
    "
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1091
    Return all existing versions of this class.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1092
    A new version is added when a class is
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1093
    updated by runtime code reload and removed when all instances of
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1094
        the version die
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1095
    "
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1096
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1097
    ^ attributes at: #Versions ifAbsent: [ nil ]
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1098
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1099
    "Created: / 14-04-2013 / 12:10:54 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1100
    "Modified: / 07-12-2014 / 01:36:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1101
!
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1102
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1103
versions: aWeakArray
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1104
    "
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1105
    set this class' versions. It is expected that all versions of the
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1106
    class will share the same weak array instance.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1107
    "
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1108
    attributes :=attributes at:#Versions putOrAppend: aWeakArray.
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1109
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  1110
    "Created: / 14-04-2013 / 12:28:09 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1111
    "Modified: / 07-12-2014 / 01:36:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2817
96f3e2254489 remove JavaConstantPool#ConstantPools weak array, use JavaVM registry instead
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2800
diff changeset
  1112
!
96f3e2254489 remove JavaConstantPool#ConstantPools weak array, use JavaVM registry instead
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2800
diff changeset
  1113
96f3e2254489 remove JavaConstantPool#ConstantPools weak array, use JavaVM registry instead
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2800
diff changeset
  1114
versionsArray
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1115
    | versions |
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1116
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1117
    versions := self versions.
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1118
    ^ versions isNil ifTrue: [ Array with: self ] ifFalse: [ versions ].
2817
96f3e2254489 remove JavaConstantPool#ConstantPools weak array, use JavaVM registry instead
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2800
diff changeset
  1119
96f3e2254489 remove JavaConstantPool#ConstantPools weak array, use JavaVM registry instead
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2800
diff changeset
  1120
    "Created: / 08-10-2013 / 18:38:52 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1121
    "Modified: / 07-12-2014 / 01:37:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
  1122
! !
2578
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
  1123
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
  1124
!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
  1125
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1126
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
  1127
    ^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
  1128
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
    "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
  1130
!
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
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
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
  1133
    ^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
  1134
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
    "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
  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
213
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
  1138
!JavaClass methodsFor:'adding / removing'!
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
  1139
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
  1140
removeFromSystem
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
  1141
     Java removeClass:self
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
  1142
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
  1143
    "Created: 12.8.1997 / 02:46:51 / cg"
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
  1144
! !
4b4b6ad3f5f8 *** empty log message ***
cg
parents: 204
diff changeset
  1145
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1146
!JavaClass methodsFor:'autoboxing'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1147
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1148
javaBox:anObject
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1149
    ^ anObject
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1150
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1151
    "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
  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
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
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
  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
    | nm |
2906
3dd946439657 Fix in JavaClass>>#javaUnwrap: care for nil/null.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2885
diff changeset
  1157
3dd946439657 Fix in JavaClass>>#javaUnwrap: care for nil/null.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2885
diff changeset
  1158
    object isNil ifTrue:[ ^ nil ].
3dd946439657 Fix in JavaClass>>#javaUnwrap: care for nil/null.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2885
diff changeset
  1159
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  1160
    nm := object class binaryName.
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
  1161
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
    nm == #'java/lang/Byte' ifTrue:[
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1163
        ^object instVarNamed: #value.
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
  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
    nm == #'java/lang/Short' ifTrue:[
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1166
        ^object instVarNamed: #value.
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
  1167
    ].
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
    nm == #'java/lang/Integer' ifTrue:[
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1169
        ^object instVarNamed: #value.
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
  1170
    ].
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
    nm == #'java/lang/Long' ifTrue:[
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1172
        ^object instVarNamed: #value.
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
  1173
    ].
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
    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
  1175
        ^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
  1176
    ].
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
    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
  1178
        ^(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
  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
    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
  1181
        ^ 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
  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
    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
  1184
        ^ 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
  1185
    ].
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
    ^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
  1188
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
    "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
  1190
    "Modified: / 12-12-2011 / 18:05:29 / kursjan <kursjan@fit.cvut.cz>"
2906
3dd946439657 Fix in JavaClass>>#javaUnwrap: care for nil/null.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2885
diff changeset
  1191
    "Modified: / 07-11-2013 / 12:50:56 / 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
  1192
!
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
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
  1195
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
    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
  1197
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
    object class isJavaPrimitiveType ifTrue:[
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  1199
       (self binaryName == #'java/lang/Object' or:[self == object class javaWrapperClass]) 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
  1200
            ^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
  1201
                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
  1202
                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
  1203
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1204
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1205
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1206
    object isString ifTrue:[
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  1207
        (self binaryName == #'java/lang/Object' or:[
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  1208
        self binaryName == #'java/lang/String']) 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
  1209
            ^ 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
  1210
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1211
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1212
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1213
    ^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
  1214
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1215
    "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
  1216
    "Created: / 24-02-2012 / 19:32:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  1217
    "Modified: / 08-10-2013 / 22:43:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1218
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1219
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1220
!JavaClass methodsFor:'browser interface'!
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1221
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1222
isVisualStartable
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1223
    "return true, if this is an application class,
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1224
     which can be started via #open"
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1225
    "/ if I have a main() method, I am
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1226
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
  1227
    (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
  1228
        ^ true
413
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1229
    ].
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
  1230
    (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
  1231
        ^ true.
2087
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1232
    ].
413
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1233
    ^ false
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1234
!
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1235
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1236
open
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1237
    "start a thread for my main method"
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1238
413
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1239
    "/ if I have a main, call it ...
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1240
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1241
    (self compiledMethodAt:#'main([Ljava/lang/String;)V') notNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1242
	^ self startMain
413
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1243
    ].
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1244
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1245
    "/ otherwise, create a frame and wrap me;
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1246
    "/ as in:
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1247
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1248
"/    public static void main(String args[]) {
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1249
"/        Frame f = new Frame("myName");
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1250
"/        mySelf me = new mySelf();
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1251
"/
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1252
"/        me.init();
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1253
"/        me.start();
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1254
"/
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1255
"/        f.add("Center", me);
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1256
"/        f.setSize(300, 300);
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1257
"/        f.show();
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1258
"/    }
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1259
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1260
    ^ self startApplet
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1262
    "Created: / 15.1.1998 / 17:18:30 / cg"
413
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1263
    "Modified: / 3.11.1998 / 22:51:47 / cg"
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1264
! !
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
  1265
183
d1d05241d1f5 checkin from browser
cg
parents: 181
diff changeset
  1266
!JavaClass methodsFor:'compiler interface'!
d1d05241d1f5 checkin from browser
cg
parents: 181
diff changeset
  1267
566
72e93eb27907 checkin from browser
cg
parents: 546
diff changeset
  1268
browserClass
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1269
    "return the browser to use for this class -
566
72e93eb27907 checkin from browser
cg
parents: 546
diff changeset
  1270
     this can be redefined in special classes, to get different browsers"
72e93eb27907 checkin from browser
cg
parents: 546
diff changeset
  1271
679
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  1272
"/    ^ JavaBrowser
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  1273
    ^ super browserClass.
566
72e93eb27907 checkin from browser
cg
parents: 546
diff changeset
  1274
72e93eb27907 checkin from browser
cg
parents: 546
diff changeset
  1275
    "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
  1276
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1277
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1278
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
  1279
    "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
  1280
     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
  1281
     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
  1282
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1283
    ^ 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
  1284
        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
  1285
    ] 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
  1286
        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
  1287
    ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1288
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1289
    "Created: / 15-02-2012 / 01:43:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
183
d1d05241d1f5 checkin from browser
cg
parents: 181
diff changeset
  1290
! !
d1d05241d1f5 checkin from browser
cg
parents: 181
diff changeset
  1291
624
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1292
!JavaClass methodsFor:'compiling'!
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1293
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1294
recompileMethodsAccessingGlobal:aGlobalKey
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1295
    "/ dummy for now
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1296
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1297
    "Created: / 9.11.1999 / 16:42:09 / cg"
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1298
! !
35975d55bbb5 checkin from browser
cg
parents: 619
diff changeset
  1299
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  1300
!JavaClass methodsFor:'documentation support'!
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  1301
626
cg
parents: 625
diff changeset
  1302
htmlDocumentation
cg
parents: 625
diff changeset
  1303
    ^ nil "/ replace by access to javadoc-generated documentation later
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  1304
626
cg
parents: 625
diff changeset
  1305
    "Modified: 22.3.1997 / 14:18:50 / cg"
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  1306
! !
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  1307
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
  1308
!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
  1309
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1310
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
  1311
    "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
  1312
     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
  1313
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1314
    | 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
  1315
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1316
    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
  1317
    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
  1318
    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
  1319
    [ 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
  1320
        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
  1321
        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
  1322
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1323
    ^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
  1324
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1325
    "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
  1326
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1327
2853
095a83d77fe3 Added #creator for mixed exception handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2851
diff changeset
  1328
creator
095a83d77fe3 Added #creator for mixed exception handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2851
diff changeset
  1329
095a83d77fe3 Added #creator for mixed exception handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2851
diff changeset
  1330
    ^self class.
095a83d77fe3 Added #creator for mixed exception handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2851
diff changeset
  1331
095a83d77fe3 Added #creator for mixed exception handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2851
diff changeset
  1332
    "Created: / 14-10-2013 / 11:29:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
095a83d77fe3 Added #creator for mixed exception handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2851
diff changeset
  1333
!
095a83d77fe3 Added #creator for mixed exception handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2851
diff changeset
  1334
2603
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1335
handlerForSignal:exceptionHandler context:theContext originator:originator
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1336
    ^nil
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1337
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1338
!
000dff7f0e7b Optimization of JavaClass>>includesBehavior:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2591
diff changeset
  1339
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
  1340
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
  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
    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
  1343
    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
  1344
    ^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
  1345
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
    "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
  1347
!
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
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
  1350
    ^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
  1351
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1352
    "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
  1353
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1354
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1355
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
  1356
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1357
"/    ^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
  1358
    ^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
  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
    "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
  1361
!
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
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
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
  1364
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
"/    ^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
  1366
    ^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
  1367
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
    "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
  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
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
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
  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
    ^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
  1374
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
    "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
  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
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
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
  1379
    "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
  1380
     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
  1381
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
    | 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
  1383
    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
  1384
    [ cls ~~ JavaObject ] whileTrue:[
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  1385
        cls binaryName == #'java/lang/Throwable' 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
  1386
            ^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
  1387
        ].
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
        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
  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
    ^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
  1391
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
    "Created: / 18-03-2012 / 20:35:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  1393
    "Modified: / 08-10-2013 / 22:36:04 / 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
  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
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
  1397
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
    ^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
  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
    "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
  1401
!
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
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
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
  1404
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 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
  1406
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
    "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
  1408
! !
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
312
f753abec575a more app-starters
cg
parents: 281
diff changeset
  1410
!JavaClass methodsFor:'executing programs'!
f753abec575a more app-starters
cg
parents: 281
diff changeset
  1411
626
cg
parents: 625
diff changeset
  1412
startApplet
2087
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1413
    |f me stub top appFrame|
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1414
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1415
    top := StandardSystemView new.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1416
    appFrame := JavaEmbeddedFrameView new.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1417
    appFrame origin:0.0@0.0 corner:1.0@1.0.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1418
    top addSubView:appFrame.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1419
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1420
    appFrame appletIsPreloaded:true.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1421
    appFrame codeURL:'file:/dummy'.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1422
    appFrame codeBaseURL:'file:/dummy'.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1423
    appFrame autoSetupApplet:true.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1424
    appFrame autoStartApplet:true.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1425
    appFrame autoDestroyApplet:true.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1426
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1427
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1428
    top open.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1429
    ^ self.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1430
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1431
    "/ TODO: setup embeddedAppletFrame correctly
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1432
    "/ (for getParameter to work ...)
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1433
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1434
    "/ create a frame and wrap me;
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1435
    "/ as in:
693
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1436
2087
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1437
"/    public static void main(String args[]) {
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1438
"/        Frame f = new Frame("myName");
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1439
"/        mySelf me = new mySelf();
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1440
"/
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1441
"/        me.init();
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1442
"/        me.start();
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1443
"/
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1444
"/        f.add("Center", me);
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1445
"/        f.setSize(300, 300);
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1446
"/        f.show();
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1447
"/    }
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1448
    f := (Java at:'java.awt.Frame') basicNew.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1449
    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
  1450
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1451
    me := self basicNew.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1452
    me perform:#'<init>()V'.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1453
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1454
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1455
    stub := (Java at:'netscape.applet.EmbeddedAppletFrame') new.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1456
    me instVarNamed:'stub' put:stub.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1457
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1458
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1459
    me perform:#'init()V'.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1460
    me perform:#'start()V'.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1461
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1462
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1463
    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
  1464
	 with:(Java as_String:'Center')
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1465
	 with:me.
2087
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1466
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1467
    f perform:#'setSize(II)V' with:300 with:300.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1468
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1469
    f perform:#'show()V'.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1470
self halt.
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1471
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2085
diff changeset
  1472
    "Modified: / 3.11.1998 / 23:04:41 / cg"
693
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1473
    "/ TODO: setup embeddedAppletFrame correctly
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1474
    "/ (for getParameter to work ...)
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1475
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1476
    "/ create a frame and wrap me;
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1477
    "/ as in:
626
cg
parents: 625
diff changeset
  1478
693
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1479
"/    public static void main(String args[]) {
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1480
"/        Frame f = new Frame("myName");
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1481
"/        mySelf me = new mySelf();
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1482
"/
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1483
"/        me.init();
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1484
"/        me.start();
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1485
"/
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1486
"/        f.add("Center", me);
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1487
"/        f.setSize(300, 300);
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1488
"/        f.show();
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1489
"/    }
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1490
    f := (Java at:'java.awt.Frame') basicNew.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1491
    f perform:#'<init>(Ljava/lang/String;)V' with:(Java as_String:self name).
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1492
self halt.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1493
    me := self basicNew.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1494
    me perform:#'<init>()V'.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1495
self halt.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1496
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1497
    stub := (Java at:'netscape.applet.EmbeddedAppletFrame') new.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1498
    me instVarNamed:'stub' put:stub.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1499
self halt.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1500
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1501
    me perform:#'init()V'.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1502
    me perform:#'start()V'.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1503
self halt.
2beae7b13cdb *** empty log message ***
cg
parents: 691
diff changeset
  1504
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1505
    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
  1506
	 with:(Java as_String:'Center')
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1507
	 with:me.
626
cg
parents: 625
diff changeset
  1508
self halt.
413
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1509
    f perform:#'setSize(II)V' with:300 with:300.
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1510
self halt.
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1511
    f perform:#'show()V'.
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1512
self halt.
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1513
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1514
    "Modified: / 3.11.1998 / 23:04:41 / cg"
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1515
!
51672b6b5010 checkin from browser
cg
parents: 407
diff changeset
  1516
626
cg
parents: 625
diff changeset
  1517
startMain
cg
parents: 625
diff changeset
  1518
    "start a thread for my main() method"
cg
parents: 625
diff changeset
  1519
cg
parents: 625
diff changeset
  1520
    ^ self startMainWithArgumentString:nil
cg
parents: 625
diff changeset
  1521
cg
parents: 625
diff changeset
  1522
    "Modified: / 30.12.1998 / 20:24:58 / cg"
cg
parents: 625
diff changeset
  1523
!
312
f753abec575a more app-starters
cg
parents: 281
diff changeset
  1524
626
cg
parents: 625
diff changeset
  1525
startMainWithArgumentString:aCommandLineString
cg
parents: 625
diff changeset
  1526
    "start a thread for my main() method, passing a string with arguments"
cg
parents: 625
diff changeset
  1527
cg
parents: 625
diff changeset
  1528
    |p|
312
f753abec575a more app-starters
cg
parents: 281
diff changeset
  1529
626
cg
parents: 625
diff changeset
  1530
    p := Java javaProcessForMainOf:self argumentString:aCommandLineString.
cg
parents: 625
diff changeset
  1531
    p notNil ifTrue:[
2561
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1532
        p resume.
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1533
        AbortOperationRequest handle:[:ex |
626
cg
parents: 625
diff changeset
  1534
p == JavaVM javaScreenUpdaterThread ifTrue:[self halt].
654
da8d060a3150 checkin from browser
cg
parents: 651
diff changeset
  1535
p == JavaVM javaEventQueueThread ifTrue:[self halt].
2561
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1536
            p terminate.
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1537
            ex reject.
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1538
        ] do:[
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1539
            p waitUntilTerminated
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  1540
        ].
508
21d8af9a9b41 checkin from browser
cg
parents: 492
diff changeset
  1541
    ]
21d8af9a9b41 checkin from browser
cg
parents: 492
diff changeset
  1542
654
da8d060a3150 checkin from browser
cg
parents: 651
diff changeset
  1543
    "Modified: / 24.12.1999 / 02:35:04 / cg"
626
cg
parents: 625
diff changeset
  1544
! !
312
f753abec575a more app-starters
cg
parents: 281
diff changeset
  1545
626
cg
parents: 625
diff changeset
  1546
!JavaClass methodsFor:'fileOut'!
cg
parents: 625
diff changeset
  1547
cg
parents: 625
diff changeset
  1548
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
  1549
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
    | 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
  1551
    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
  1552
    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
  1553
        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
  1554
    ] 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
  1555
        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
  1556
    ]
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
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
    "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
  1559
    "Modified: / 14-12-2011 / 22:22:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
626
cg
parents: 625
diff changeset
  1560
!
cg
parents: 625
diff changeset
  1561
cg
parents: 625
diff changeset
  1562
fileOut
cg
parents: 625
diff changeset
  1563
    self warn:'fileOut not yet supported'
cg
parents: 625
diff changeset
  1564
cg
parents: 625
diff changeset
  1565
    "Modified: 22.3.1997 / 14:30:28 / cg"
cg
parents: 625
diff changeset
  1566
    "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
  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
3215
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1569
fileOutAs:filenameString
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1570
    "create a file consisting of all methods in myself in
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1571
     sourceForm, from which the class can be reconstructed (by filing in).
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1572
     The given fileName should be a full path, including suffix.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1573
     Care is taken, to not clobber any existing file in
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1574
     case of errors (for example: disk full).
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1575
     Also, since the classes methods need a valid sourcefile, the current
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1576
     sourceFile may not be rewritten."
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1577
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1578
    |filename fileExists needRename sameFile s mySourceFileID anySourceRef outStream savFilename|
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1579
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1580
    self isLoaded ifFalse:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1581
        ^ FileOutErrorSignal
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1582
            raiseRequestWith:self
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1583
                 errorString:' - will not fileOut unloaded class: ', self name
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1584
    ].
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1585
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1586
    filename := filenameString asFilename.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1587
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1588
    "
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1589
     if file exists, copy the existing to a .sav-file,
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1590
     create the new file as XXX.new-file,
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1591
     and, if that worked rename afterwards ...
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1592
    "
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1593
    [
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1594
        fileExists := filename exists.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1595
        fileExists ifTrue:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1596
            sameFile := false.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1597
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1598
            "/ check carefully - maybe, my source does not really come from that
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1599
            "/ file (i.e. all of my methods have their source as string)
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1600
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1601
            anySourceRef := self sourceString isNil.
3215
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1602
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1603
            anySourceRef ifTrue:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1604
                s := self sourceStream.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1605
                s notNil ifTrue:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1606
                    OperatingSystem isUNIXlike ifTrue:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1607
                        mySourceFileID := s pathName asFilename info id.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1608
                        sameFile := (filename info id) == mySourceFileID.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1609
                    ] ifFalse:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1610
                        mySourceFileID := s pathName asFilename asAbsoluteFilename.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1611
                        sameFile := (filename asFilename asAbsoluteFilename) = mySourceFileID.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1612
                    ].
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1613
                    s close.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1614
                ] ifFalse:[
3215
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1615
                    sameFile := false.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1616
                ].
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1617
            ].
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1618
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1619
            sameFile ifTrue:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1620
                ^ FileOutErrorSignal
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1621
                    raiseRequestWith:filenameString
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1622
                    errorString:(' - may not overwrite sourcefile: %1\try again after loading sources in the browser' withCRs bindWith:filenameString)
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1623
            ].
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1624
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1625
            outStream := FileStream newTemporaryIn:filename directory.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1626
            outStream fileName accessRights:filename accessRights.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1627
            needRename := true
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1628
        ] ifFalse:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1629
            "/ another possible trap: if my sourceFileName is
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1630
            "/ the same as the written one AND the new files directory
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1631
            "/ is along the sourcePath, we also need a temporary file
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1632
            "/ first, to avoid accessing the newly written file.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1633
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1634
            self instAndClassMethodsDo:[:m |
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1635
                |mSrc mSrcFilename|
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1636
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1637
                (anySourceRef isNil and:[(mSrc := m sourceFilename) notNil]) ifTrue:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1638
                    mSrcFilename := mSrc asFilename.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1639
                    (mSrcFilename baseName = filename baseName
3215
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1640
                     and:[mSrcFilename exists]) ifTrue:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1641
                        anySourceRef := mSrcFilename.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1642
                    ]
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1643
                ]
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1644
            ].
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1645
            anySourceRef notNil ifTrue:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1646
                outStream := FileStream newTemporaryIn:filename directory.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1647
                outStream fileName accessRights:anySourceRef accessRights.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1648
                needRename := true
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1649
            ] ifFalse:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1650
                outStream := filename writeStream.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1651
                needRename := false
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1652
            ]
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1653
        ].
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1654
    ] on:FileStream openErrorSignal do:[:ex|
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1655
        ^ FileOutErrorSignal
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1656
                raiseRequestWith:filename name
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1657
                errorString:(' - cannot create file:', filename name)
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1658
    ].
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1659
    self fileOutOn:outStream.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1660
    outStream syncData; close.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1661
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1662
    "
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1663
     finally, replace the old-file
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1664
     be careful, if the old one is a symbolic link; in this case,
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1665
     we have to do a copy ...
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1666
    "
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1667
    needRename ifTrue:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1668
        fileExists ifTrue:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1669
            savFilename := filename addSuffix:'.sav~'.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1670
            filename renameTo:savFilename.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1671
        ].
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1672
        outStream fileName renameTo:filename.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1673
        fileExists ifTrue:[
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1674
            savFilename delete.
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1675
        ].
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1676
    ].
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1677
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1678
    "Created: / 08-08-2014 / 21:41:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1679
    "Modified: / 07-12-2014 / 01:33:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3215
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1680
!
1f63ee2cdd97 Fixed JavaClass>>fileOutAs:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3214
diff changeset
  1681
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1682
fileOutInto: directory
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
  1683
    "writes itself into the given directory including package hierarchy"
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1684
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
  1685
    | 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
  1686
    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
  1687
    packageDir recursiveMakeDirectory.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1688
    packageDir / (self lastName , '.java')
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
  1689
        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
  1690
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1691
    "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
  1692
    "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
  1693
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1694
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1695
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
  1696
    "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
  1697
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
    |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
  1699
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1700
    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
  1701
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1702
    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
  1703
"/    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
  1704
"/    (self name tokensBasedOn: $/) do:[:each|
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1705
"/        aStream space; nextPutAll: each.
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
  1706
"/    ].
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
    aStream nextPutAll:'(Java classForName:'''.
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  1708
    aStream nextPutAll:(self javaName).
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
  1709
    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
  1710
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1711
    (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
  1712
        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
  1713
    ] 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
  1714
        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
  1715
    ].
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
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
    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
  1718
    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
  1719
    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
  1720
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
    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
  1722
    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
  1723
        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
  1724
            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
  1725
            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
  1726
                         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
  1727
                         (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
  1728
    ] 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
  1729
        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
  1730
    ].
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
    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
  1732
    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
  1733
    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
  1734
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
    "Created: / 05-09-2012 / 00:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  1736
    "Modified: / 08-10-2013 / 22:43:03 / 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
  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
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
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
  1740
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
  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
    "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
  1743
! !
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
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
!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
  1746
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
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
  1748
2521
c8bbef09a411 Added skipInDebuggerWklkback pragma to show the relevant context when
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2504
diff changeset
  1749
    <resource: #skipInDebuggersWalkBack>
c8bbef09a411 Added skipInDebuggerWklkback pragma to show the relevant context when
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2504
diff changeset
  1750
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
  1751
    | 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
  1752
    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
  1753
    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
  1754
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
    (selector includes: $() ifTrue:[
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1756
        "Java selector, search static methods"
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
  1757
        method := methodDictionary at:selector ifAbsent:[nil].
2791
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2780
diff changeset
  1758
        (method notNil and:[method isStatic]) ifTrue:[
2937
65d127f0c9c1 Fix in interop - make sure the class is initialized when invoking static method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2916
diff changeset
  1759
            "/ Must ensure the class is initialized here!! See documentation
65d127f0c9c1 Fix in interop - make sure the class is initialized when invoking static method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2916
diff changeset
  1760
            "/ for INVOKESTATIC
65d127f0c9c1 Fix in interop - make sure the class is initialized when invoking static method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2916
diff changeset
  1761
            method javaClass classInit.
65d127f0c9c1 Fix in interop - make sure the class is initialized when invoking static method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2916
diff changeset
  1762
            "/ Now, fire the method
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1763
            ^ method valueWithReceiver:self arguments:args selector:selector search:self class
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
  1764
        ].
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
2715
6cb9da58d6b3 Fix in interop - delegate to receiver's class, not to `self class`...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
  1767
    class := receiver class.
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
  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
    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
  1770
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
    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
  1772
            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
  1773
            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
  1774
            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
  1775
            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
  1776
            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
  1777
2791
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2780
diff changeset
  1778
    ^ method isNil ifTrue:[
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2780
diff changeset
  1779
        aBlock value.
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
  1780
    ] ifFalse:[
2970
c9408352a572 Fix in JavaClass>>#perform:onReceiver:from:ifNotFound: pass selector/sender when evaluatinh method using Method>>valueWith:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
  1781
        method valueWithReceiver: receiver arguments: args selector: aMessage selector search: receiver class sender: sender
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
  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
    "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
  1785
    "Modified: / 10-04-2012 / 16:47:31 / kursjan"
2970
c9408352a572 Fix in JavaClass>>#perform:onReceiver:from:ifNotFound: pass selector/sender when evaluatinh method using Method>>valueWith:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2968
diff changeset
  1786
    "Modified: / 07-01-2014 / 13:41:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
  1787
! !
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
  1788
43
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  1789
!JavaClass methodsFor:'java initialization'!
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  1790
626
cg
parents: 625
diff changeset
  1791
classInit
2885
64b02ee49807 Addes synchronization in JavaClass>>classInit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2854
diff changeset
  1792
    "Perform the initialization of a class or interface. "
64b02ee49807 Addes synchronization in JavaClass>>classInit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2854
diff changeset
  1793
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
  1794
    | 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
  1795
    (accessFlags bitAnd: ACX_INITIALIZED) ~~ 0 ifTrue: [ ^ self ].
2885
64b02ee49807 Addes synchronization in JavaClass>>classInit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2854
diff changeset
  1796
2957
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1797
    self synchronized:[
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1798
        (((accessFlags bitAnd: ACX_INITIALIZED) == 0) and:[(accessFlags bitAnd: ACX_INITIALIZING) == 0]) ifTrue: [
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1799
            accessFlags := accessFlags bitOr: ACX_INITIALIZING.
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1800
            superclass ~~ JavaObject ifTrue: [ superclass classInit ].
3198
a4ddeef7c5e9 Class reading optimization [4/4]: defer cache flushing at class initialization time.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1801
a4ddeef7c5e9 Class reading optimization [4/4]: defer cache flushing at class initialization time.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1802
            "JV@2014-08-04: Flush caches here."
a4ddeef7c5e9 Class reading optimization [4/4]: defer cache flushing at class initialization time.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1803
            "/ Class reader does not flush caches, instead caches are flushed
a4ddeef7c5e9 Class reading optimization [4/4]: defer cache flushing at class initialization time.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1804
            "/ here, at the very last moment, when a class is actually initialized. This should
a4ddeef7c5e9 Class reading optimization [4/4]: defer cache flushing at class initialization time.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1805
            "/ be sufficent as an object cannot be sent a message unless a class is
a4ddeef7c5e9 Class reading optimization [4/4]: defer cache flushing at class initialization time.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1806
            "/ initialized first. This saves us a little bit of time when reading classes
a4ddeef7c5e9 Class reading optimization [4/4]: defer cache flushing at class initialization time.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1807
            "/ but cost time when initializing the class, so normally this is not much
a4ddeef7c5e9 Class reading optimization [4/4]: defer cache flushing at class initialization time.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1808
            "/ of a saving. However, this helps in cases Java class is only read into memory
a4ddeef7c5e9 Class reading optimization [4/4]: defer cache flushing at class initialization time.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1809
            "/ and never initialized - that's what JBrowser Workspace does.
a4ddeef7c5e9 Class reading optimization [4/4]: defer cache flushing at class initialization time.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1810
            ObjectMemory flushCaches.
a4ddeef7c5e9 Class reading optimization [4/4]: defer cache flushing at class initialization time.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1811
            "JV@2011-12-03: Also call initializeStaticFields"
2957
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1812
            self initializeStaticFields.
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1813
            m := self compiledMethodAt: #'<clinit>()V'.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1814
            m notNil ifTrue: [
2957
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1815
                    "/Logger log: ('calling <clinit>()V of %1' bindWith: self name) severity: #trace facility: 'JVM'.
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1816
                    OrderOfClassInits notNil ifTrue: [ OrderOfClassInits add: self. ].
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1817
                    m
2957
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1818
                        valueWithReceiver: self
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1819
                        arguments: #()
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1820
                        selector: #'<clinit>()V'
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1821
                        search: self class
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1822
                        sender: nil.
2957
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1823
                   "/Logger log: ('calling <clinit>()V of %1 done' bindWith: self name) severity: #trace facility: 'JVM'.
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1824
            ].
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1825
            accessFlags := accessFlags bitOr:  ACX_INITIALIZED.
2957
02b58c7079ac Added JavaObject>>synchronized: and JavaClass>>synchronized:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2956
diff changeset
  1826
            accessFlags := accessFlags bitAnd: ACX_INITIALIZING bitInvert32.
2885
64b02ee49807 Addes synchronization in JavaClass>>classInit.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2854
diff changeset
  1827
        ].
626
cg
parents: 625
diff changeset
  1828
    ].
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
  1829
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
    (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
  1831
        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
  1832
            do: [ self resolveAll. ]
626
cg
parents: 625
diff changeset
  1833
    ].
cg
parents: 625
diff changeset
  1834
cg
parents: 625
diff changeset
  1835
    "
cg
parents: 625
diff changeset
  1836
     JavaVM instructionTrace:true.
cg
parents: 625
diff changeset
  1837
     JavaVM callTrace:true.
cg
parents: 625
diff changeset
  1838
cg
parents: 625
diff changeset
  1839
     (Java classNamed:'java.lang.String') classInit
cg
parents: 625
diff changeset
  1840
     (Java classNamed:'java.lang.System') classInit
cg
parents: 625
diff changeset
  1841
cg
parents: 625
diff changeset
  1842
     (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
  1843
     (Java classNamed:'java.util.Properties') classInit"
175
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
  1844
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1845
    "Modified: / 12-11-1998 / 15:41:11 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1846
    "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
  1847
    "Modified: / 08-12-2011 / 21:05:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
3198
a4ddeef7c5e9 Class reading optimization [4/4]: defer cache flushing at class initialization time.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1848
    "Modified (comment): / 04-08-2014 / 17:05:11 / 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
  1849
!
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
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
  1852
    "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
  1853
2583
064a97a8936d Fix in classInitInternal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2578
diff changeset
  1854
    | m |
064a97a8936d Fix in classInitInternal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2578
diff changeset
  1855
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
  1856
    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
  1857
    "Force recompilation"
2583
064a97a8936d Fix in classInitInternal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2578
diff changeset
  1858
    (m := thisContext sender method) isJavaMethod ifTrue:[m flushCode].
064a97a8936d Fix in classInitInternal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2578
diff changeset
  1859
064a97a8936d Fix in classInitInternal.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2578
diff changeset
  1860
626
cg
parents: 625
diff changeset
  1861
!
cg
parents: 625
diff changeset
  1862
cg
parents: 625
diff changeset
  1863
initializeStaticFields
cg
parents: 625
diff changeset
  1864
    staticFields isNil ifTrue:[^ self].
cg
parents: 625
diff changeset
  1865
cg
parents: 625
diff changeset
  1866
    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
  1867
        |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
  1868
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
        (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
  1870
            "/ 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
  1871
            "/ 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
  1872
            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
  1873
            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
  1874
                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
  1875
            ] 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
  1876
                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
  1877
            ] 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
  1878
                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
  1879
            ] 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
  1880
                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
  1881
            ] 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
  1882
                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
  1883
            ] 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
  1884
                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
  1885
            ] 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
  1886
                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
  1887
            ] 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
  1888
                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
  1889
            ]]]]]]]].
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
        ] 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
  1891
            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
  1892
                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
  1893
            ].
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
        ].
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
        self instVarNamed:(f name) put:val.
60
a763b1780ec0 checkin from browser
cg
parents: 54
diff changeset
  1896
    ].
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
  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
    "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
  1899
!
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
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
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
  1902
    "resolve every ref in constantPool"
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1903
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
  1904
    constantPool do: [
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1905
        :each |
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
  1906
        (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
  1907
            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
  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
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
    "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
  1912
    "Modified: / 23-02-2012 / 17:14:09 / Marcel Hlopko <hlopik@gmail.com>"
626
cg
parents: 625
diff changeset
  1913
! !
cg
parents: 625
diff changeset
  1914
cg
parents: 625
diff changeset
  1915
!JavaClass methodsFor:'java instance creation'!
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1916
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
  1917
basicNew
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1918
    "Create a new cleared JAVA instance. Its instVars are cleared to the
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
  1919
     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
  1920
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
    "/ 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
  1922
    "/ 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
  1923
    "/ 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
  1924
2980
604d4f079e66 Fix in JavaClass>>basicNew initialize class if not already.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2970
diff changeset
  1925
    self isInitialized ifFalse:[
604d4f079e66 Fix in JavaClass>>basicNew initialize class if not already.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2970
diff changeset
  1926
        self classInit
604d4f079e66 Fix in JavaClass>>basicNew initialize class if not already.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2970
diff changeset
  1927
    ].
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  1928
%{
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
  1929
    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
  1930
    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
  1931
%}.
3214
c38fcee7b0da Fixes bad bug in Java thread handling that caused memory/resource leak.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3211
diff changeset
  1932
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  1933
    "Modified: / 07-12-2014 / 02:11:33 / 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
  1934
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1935
626
cg
parents: 625
diff changeset
  1936
initValueFor:instVarName
cg
parents: 625
diff changeset
  1937
    |idx field|
cg
parents: 625
diff changeset
  1938
cg
parents: 625
diff changeset
  1939
    idx := fields findFirst:[:field | field name = instVarName].
cg
parents: 625
diff changeset
  1940
    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
  1941
        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
  1942
            ^ 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
  1943
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1944
        ^0 "/lockWord"
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
  1945
    ] 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
  1946
        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
  1947
        ^ field initialValue
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
  1948
    ].
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
    "Modified: / 26-08-2012 / 20:08:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
  1951
!
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
  1952
626
cg
parents: 625
diff changeset
  1953
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
  1954
    <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
  1955
    "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
  1956
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  1957
    ^self basicNew
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1958
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1959
    "Modified: / 13-11-1998 / 14:10:45 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  1960
    "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
  1961
    "Modified: / 02-11-2012 / 21:08:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
451
50d24dc93f8b checkin from browser
cg
parents: 438
diff changeset
  1962
!
50d24dc93f8b checkin from browser
cg
parents: 438
diff changeset
  1963
626
cg
parents: 625
diff changeset
  1964
newWith_String:argString
cg
parents: 625
diff changeset
  1965
    "create a new instance, preset its fields,
cg
parents: 625
diff changeset
  1966
     and call its JAVA init function passing a String arg"
cg
parents: 625
diff changeset
  1967
cg
parents: 625
diff changeset
  1968
    |newJavaObject|
cg
parents: 625
diff changeset
  1969
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
  1970
    newJavaObject := self basicNew.
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  1971
    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
  1972
        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
  1973
        with:(Java as_String:argString).
626
cg
parents: 625
diff changeset
  1974
    ^ newJavaObject
cg
parents: 625
diff changeset
  1975
cg
parents: 625
diff changeset
  1976
    "
cg
parents: 625
diff changeset
  1977
     ((Java classNamed:'java.lang.ArrayStoreException') newWith_String:'foo') inspect
cg
parents: 625
diff changeset
  1978
    "
cg
parents: 625
diff changeset
  1979
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
  1980
    "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
  1981
    "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
  1982
    "Modified: / 02-11-2012 / 21:11:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
626
cg
parents: 625
diff changeset
  1983
!
cg
parents: 625
diff changeset
  1984
cg
parents: 625
diff changeset
  1985
newWith_int:arg
cg
parents: 625
diff changeset
  1986
    "create a new instance, preset its fields,
cg
parents: 625
diff changeset
  1987
     and call its JAVA init function passing an int arg"
cg
parents: 625
diff changeset
  1988
cg
parents: 625
diff changeset
  1989
    |newJavaObject|
cg
parents: 625
diff changeset
  1990
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
  1991
    newJavaObject := self basicNew.
626
cg
parents: 625
diff changeset
  1992
    newJavaObject perform:#'<init>(I)V' with:arg.
cg
parents: 625
diff changeset
  1993
    ^ newJavaObject
cg
parents: 625
diff changeset
  1994
cg
parents: 625
diff changeset
  1995
    "
cg
parents: 625
diff changeset
  1996
     ((Java classNamed:'java.lang.Integer') newWith_int:123) inspect
451
50d24dc93f8b checkin from browser
cg
parents: 438
diff changeset
  1997
    "
50d24dc93f8b checkin from browser
cg
parents: 438
diff changeset
  1998
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
  1999
    "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
  2000
    "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
  2001
    "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
  2002
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2003
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2004
!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
  2005
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2006
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
  2007
    "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
  2008
     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
  2009
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2010
    |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
  2011
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2012
    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
  2013
    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
  2014
    ^ 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
  2015
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2016
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2017
     (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
  2018
     (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
  2019
     (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
  2020
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2021
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2022
    "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
  2023
    "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
  2024
    "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
  2025
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2026
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2027
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
  2028
    "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
  2029
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2030
    |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
  2031
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2032
    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
  2033
    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
  2034
    ^ 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
  2035
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2036
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2037
     (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
  2038
     (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
  2039
     (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
  2040
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2041
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2042
    "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
  2043
    "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
  2044
    "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
  2045
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2046
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2047
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
  2048
    ^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
  2049
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2050
    "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
  2051
    "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
  2052
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2053
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2054
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
  2055
    ^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
  2056
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2057
    "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
  2058
    "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
  2059
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2060
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2061
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
  2062
    ^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
  2063
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2064
    "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
  2065
    "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
  2066
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2067
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2068
new: arg1 _: arg2 _: arg3 _: arg4 _: arg5
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2069
    ^ self
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
  2070
        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
  2071
        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
  2072
        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
  2073
        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
  2074
        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
  2075
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2076
    "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
  2077
    "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
  2078
    "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
  2079
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2080
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2081
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
  2082
    "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
  2083
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2084
    |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
  2085
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
    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
  2087
    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
  2088
    ^ 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
  2089
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2090
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2091
     (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
  2092
     (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
  2093
     (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
  2094
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2095
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2096
    "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
  2097
    "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
  2098
    "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
  2099
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2100
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2101
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
  2102
    "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
  2103
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
    |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
  2105
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
    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
  2107
    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
  2108
    ^ 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
  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
    "
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
     (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
  2112
     (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
  2113
     (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
  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
    "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
  2117
    "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
  2118
    "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
  2119
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2120
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2121
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
  2122
    "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
  2123
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2124
    |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
  2125
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2126
    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
  2127
    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
  2128
    ^ 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
  2129
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2130
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2131
     (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
  2132
     (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
  2133
     (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
  2134
    "
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
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2136
    "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
  2137
    "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
  2138
    "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
  2139
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2140
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2141
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
  2142
    "create a new instance and call 4-arg constructor"
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2143
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
  2144
    | 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
  2145
    newJavaObject := self basicNew.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2146
    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
  2147
        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
  2148
        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
  2149
        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
  2150
        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
  2151
        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
  2152
        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
  2153
    ^ 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
  2154
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
    "
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
     (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
  2157
     (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
  2158
     (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
  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
    "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
  2161
    "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
  2162
    "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
  2163
    "Modified: / 02-11-2012 / 21:10:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  2164
! !
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  2165
229
b91c9462ac83 *** empty log message ***
cg
parents: 215
diff changeset
  2166
!JavaClass methodsFor:'message sending'!
43
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  2167
626
cg
parents: 625
diff changeset
  2168
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
  2169
    | 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
  2170
    sender := thisContext sender.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2171
    ^self
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2172
        perform: aMessage
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2173
        onReceiver: self
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2174
        from: sender
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
  2175
        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
  2176
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2177
    "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
  2178
    "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
  2179
    "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
  2180
    "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
  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
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2183
lookupFieldFor:fname static: searchStatic onlyPublic: publicOnly
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2184
    "Lookup a field with given name in class and all
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
  2185
     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
  2186
     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
  2187
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
     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
  2189
     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
  2190
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2191
     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
  2192
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
    | 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
  2195
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2196
    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
  2197
    [ 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
  2198
        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
  2199
            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
  2200
            field isNil ifTrue:[
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2201
                field := cls findInterfaceFieldByName: fname
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
  2202
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2203
            ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2204
        ] 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
  2205
            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
  2206
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2207
        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
  2208
            (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
  2209
                ^ 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
  2210
            ] 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
  2211
                ^ 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
  2212
            ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2213
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2214
        cls := cls superclass.
626
cg
parents: 625
diff changeset
  2215
    ].
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
  2216
    ^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
  2217
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2218
    "Created: / 17-03-2012 / 16:41:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
79
9604109538d8 checkin from browser
cg
parents: 77
diff changeset
  2219
!
9604109538d8 checkin from browser
cg
parents: 77
diff changeset
  2220
626
cg
parents: 625
diff changeset
  2221
lookupMethodFor:selector
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2222
    |method cls sel queue |
626
cg
parents: 625
diff changeset
  2223
cg
parents: 625
diff changeset
  2224
    sel := selector asSymbolIfInterned.
cg
parents: 625
diff changeset
  2225
    sel notNil ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2226
        queue := OrderedCollection with: self.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2227
        [ queue isEmpty ] whileFalse:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2228
            cls := queue removeFirst.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2229
            method := cls compiledMethodAt:sel.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2230
            method notNil ifTrue:[ ^ method ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2231
            cls isInterface ifFalse:[
3373
54d9c4098e31 Fix in JavaClass: fixed bad bug in lookupMethodFor: - lookup method up to Object class, not just to JavaObject
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3329
diff changeset
  2232
                cls superclass notNil 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
  2233
            ].
3373
54d9c4098e31 Fix in JavaClass: fixed bad bug in lookupMethodFor: - lookup method up to Object class, not just to JavaObject
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3329
diff changeset
  2234
            cls isJavaClass ifTrue:[  
54d9c4098e31 Fix in JavaClass: fixed bad bug in lookupMethodFor: - lookup method up to Object class, not just to JavaObject
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3329
diff changeset
  2235
                queue addAll: cls interfaces.
54d9c4098e31 Fix in JavaClass: fixed bad bug in lookupMethodFor: - lookup method up to Object class, not just to JavaObject
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3329
diff changeset
  2236
            ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2237
        ].
43
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  2238
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2239
    "/cls ifNotNil:[^super lookupMethodFor: selector].
43
2c4ca2eb8d07 checkin from browser
cg
parents: 42
diff changeset
  2240
    ^ nil
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2241
3373
54d9c4098e31 Fix in JavaClass: fixed bad bug in lookupMethodFor: - lookup method up to Object class, not just to JavaObject
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3329
diff changeset
  2242
    "Modified: / 04-02-2015 / 15:14:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
438
9142cf2fc8fa code cleanup
cg
parents: 435
diff changeset
  2243
!
9142cf2fc8fa code cleanup
cg
parents: 435
diff changeset
  2244
626
cg
parents: 625
diff changeset
  2245
performStatic:selector
cg
parents: 625
diff changeset
  2246
    "send a static message, without args."
cg
parents: 625
diff changeset
  2247
cg
parents: 625
diff changeset
  2248
    |javaMethod sel|
cg
parents: 625
diff changeset
  2249
cg
parents: 625
diff changeset
  2250
    sel := selector asSymbolIfInterned.
cg
parents: 625
diff changeset
  2251
    sel notNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2252
	javaMethod := methodDictionary at:sel.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2253
	javaMethod notNil ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2254
	    javaMethod isStatic ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2255
		^ javaMethod
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2256
		    valueWithReceiver:self
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2257
		    arguments:#()
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2258
	    ]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2259
	].
626
cg
parents: 625
diff changeset
  2260
    ].
cg
parents: 625
diff changeset
  2261
cg
parents: 625
diff changeset
  2262
    ^ self doesNotUnderstand:(Message selector:selector)
438
9142cf2fc8fa code cleanup
cg
parents: 435
diff changeset
  2263
9142cf2fc8fa code cleanup
cg
parents: 435
diff changeset
  2264
    "Modified: / 15.1.1998 / 00:31:27 / cg"
9142cf2fc8fa code cleanup
cg
parents: 435
diff changeset
  2265
    "Created: / 12.11.1998 / 16:29:20 / cg"
626
cg
parents: 625
diff changeset
  2266
!
cg
parents: 625
diff changeset
  2267
cg
parents: 625
diff changeset
  2268
performStatic:selector with:arg
cg
parents: 625
diff changeset
  2269
    "send a static message, with one args."
cg
parents: 625
diff changeset
  2270
cg
parents: 625
diff changeset
  2271
    |javaMethod sel|
cg
parents: 625
diff changeset
  2272
cg
parents: 625
diff changeset
  2273
    sel := selector asSymbolIfInterned.
cg
parents: 625
diff changeset
  2274
    sel notNil ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2275
	javaMethod := methodDictionary at:sel.
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2276
	javaMethod notNil ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2277
	    javaMethod isStatic ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2278
		^ javaMethod
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2279
		    valueWithReceiver:self
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2280
		    arguments:(Array with:arg)
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2281
		    selector:selector
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2282
		    search:nil
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2283
		    sender:nil
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2284
	    ]
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2285
	].
626
cg
parents: 625
diff changeset
  2286
    ].
cg
parents: 625
diff changeset
  2287
cg
parents: 625
diff changeset
  2288
    ^ self doesNotUnderstand:(Message selector:selector argument:arg)
cg
parents: 625
diff changeset
  2289
cg
parents: 625
diff changeset
  2290
    "Modified: / 15.1.1998 / 00:31:27 / cg"
cg
parents: 625
diff changeset
  2291
    "Created: / 10.12.1998 / 21:50:29 / cg"
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  2292
! !
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  2293
2436
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2294
!JavaClass methodsFor:'misc ui support'!
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2295
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2296
iconInBrowserSymbol
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2297
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2298
    <resource: #programImage>
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2299
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2300
    | jle jlre |
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2301
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2302
    self isInterface ifTrue:[
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2303
        self isPrivate ifTrue:[^#javaPrivateInterfaceBrowserIcon].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2304
        self isProtected ifTrue:[^#javaProtectedInterfaceBrowserIcon].
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2305
        ^#javaPublicInterfaceBrowserIcon
2436
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2306
    ].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2307
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2308
    self isEnum ifTrue:[
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2309
        self isPrivate ifTrue:[^#javaPrivateEnumBrowserIcon].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2310
        self isProtected ifTrue:[^#javaProtectedEnumBrowserIcon].
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2311
        ^#javaPublicEnumBrowserIcon
2436
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2312
    ].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2313
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2314
    (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
  2315
        (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
  2316
            (self includesBehavior: jlre) ifTrue:[
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2317
                ^#javaRuntimeExceptionBrowserIcon
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2318
            ]
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2319
        ].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2320
        (self includesBehavior: jle) ifTrue:[
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2321
            ^#javaExceptionBrowserIcon
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2322
        ]
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2323
    ].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2324
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2325
    self isPrivate ifTrue:[^#javaPrivateClassBrowserIcon].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2326
    self isProtected ifTrue:[^#javaProtectedClassBrowserIcon].
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2327
    ^#javaPublicClassBrowserIcon
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2328
a2d9e86960c4 JavaClass: added iconInBrowserSymbol (used by Expecco)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
  2329
    "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
  2330
! !
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2331
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2332
!JavaClass methodsFor:'printOut'!
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2333
626
cg
parents: 625
diff changeset
  2334
printNameInHierarchy
cg
parents: 625
diff changeset
  2335
    "return my name as printed in the hierarchy"
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2336
626
cg
parents: 625
diff changeset
  2337
    ^ self displayString
cg
parents: 625
diff changeset
  2338
cg
parents: 625
diff changeset
  2339
    "Modified: 22.3.1997 / 14:16:55 / cg"
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2340
!
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2341
626
cg
parents: 625
diff changeset
  2342
printOutOn:aStream
cg
parents: 625
diff changeset
  2343
    self warn:'printOut not yet supported'
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2344
626
cg
parents: 625
diff changeset
  2345
    "Created: 22.3.1997 / 14:36:12 / cg"
cg
parents: 625
diff changeset
  2346
!
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2347
626
cg
parents: 625
diff changeset
  2348
printOutProtocolOn:aStream
160
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2349
    self warn:'printOut not yet supported'
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2350
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2351
    "Created: 22.3.1997 / 14:36:28 / cg"
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2352
! !
1890a9128220 more interfaces for regular browser
cg
parents: 157
diff changeset
  2353
626
cg
parents: 625
diff changeset
  2354
!JavaClass methodsFor:'printing & storing'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
  2355
626
cg
parents: 625
diff changeset
  2356
displayString
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2357
    ^ self javaName
626
cg
parents: 625
diff changeset
  2358
cg
parents: 625
diff changeset
  2359
"/    ^ 'JAVA-' , name .
cg
parents: 625
diff changeset
  2360
"/    ^ name , '(Java)'  "/ 'JavaClass(' , name , ')'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
  2361
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2362
    "Created: / 15-04-1996 / 16:02:48 / cg"
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2363
    "Modified: / 18-07-1998 / 22:56:30 / cg"
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2364
    "Modified: / 08-10-2013 / 19:22:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
626
cg
parents: 625
diff changeset
  2365
! !
cg
parents: 625
diff changeset
  2366
cg
parents: 625
diff changeset
  2367
!JavaClass methodsFor:'private accessing'!
cg
parents: 625
diff changeset
  2368
cg
parents: 625
diff changeset
  2369
addMethod:m name:name signature:signature
cg
parents: 625
diff changeset
  2370
    |sel|
63
74442cd26c02 changes for new methodDict
cg
parents: 60
diff changeset
  2371
626
cg
parents: 625
diff changeset
  2372
    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
  2373
    self primAddSelector:sel withMethod:m.
626
cg
parents: 625
diff changeset
  2374
    ^ self.
cg
parents: 625
diff changeset
  2375
cg
parents: 625
diff changeset
  2376
"/    selectorArray isNil ifTrue:[
cg
parents: 625
diff changeset
  2377
"/        selectorArray := #().
cg
parents: 625
diff changeset
  2378
"/        methodArray := #()
cg
parents: 625
diff changeset
  2379
"/    ].
cg
parents: 625
diff changeset
  2380
"/    selectorArray := selectorArray copyWith:(name , signature) asSymbol. "/ name.
cg
parents: 625
diff changeset
  2381
"/"/    selectorArray := selectorArray copyWith:name asSymbol. "/ name.
98
bd1f320e757e *** empty log message ***
cg
parents: 90
diff changeset
  2382
"/    methodArray := methodArray copyWith:m
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
  2383
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
  2384
    "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
  2385
    "Modified: / 04-04-2012 / 01:18:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
  2386
!
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
  2387
626
cg
parents: 625
diff changeset
  2388
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
  2389
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2390
    ^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
  2391
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2392
"/    "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
  2393
"/     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
  2394
"/
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2395
"/    |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
  2396
"/
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2397
"/    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
  2398
"/    (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
  2399
"/
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2400
"/    ^ 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
  2401
"/
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2402
"/
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2403
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2404
    "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
  2405
    "Modified: / 20-04-2012 / 20:27:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
  2406
!
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
  2407
626
cg
parents: 625
diff changeset
  2408
setAccessFlags:flags
3
e3c2a84b2a72 checkin from browser
cg
parents: 1
diff changeset
  2409
    accessFlags := flags.
1
083530508d9c intitial checkin
cg
parents:
diff changeset
  2410
083530508d9c intitial checkin
cg
parents:
diff changeset
  2411
    "Created: 15.4.1996 / 16:42:52 / cg"
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
  2412
!
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
  2413
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2414
setAttributes: aSequenceableCollection
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2415
    aSequenceableCollection isNil ifTrue:[
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2416
        attributes := Attributes empty.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2417
    ] ifFalse:[
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2418
        aSequenceableCollection class == Attributes ifTrue:[
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2419
            attributes := aSequenceableCollection
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2420
        ] ifFalse:[
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  2421
            attributes := Attributes new: aSequenceableCollection size // 2.
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  2422
            aSequenceableCollection pairWiseDo:[ :key :value | attributes at: key put: value. ]
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2423
        ]
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2424
    ]
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2425
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2426
    "Created: / 13-09-2013 / 00:57:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  2427
    "Modified: / 07-12-2014 / 01:57:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2428
!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2429
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2430
setBinaryName: aString
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2431
    binaryName := aString asSymbol.
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2432
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2433
    "Created: / 15-04-1996 / 16:42:52 / cg"
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2434
    "Modified: / 05-11-1998 / 19:14:39 / cg"
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2435
    "Modified (format): / 09-10-2013 / 00:43:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2436
!
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2437
626
cg
parents: 625
diff changeset
  2438
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
  2439
    | nignored nvals vals names |
626
cg
parents: 625
diff changeset
  2440
cg
parents: 625
diff changeset
  2441
    JavaClass setInstanceVariableStringFromFields:f in:self.
cg
parents: 625
diff changeset
  2442
cg
parents: 625
diff changeset
  2443
    instSize := superclass instSize + f size.
cg
parents: 625
diff changeset
  2444
    fields := f.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2445
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2446
    f withIndexDo:[:field :index|
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2447
        field setClass: self.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2448
        field setIndex: superclass instSize + index.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2449
    ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2450
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
  2451
    "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
  2452
    nignored := JavaObject instSize. "/except possible instvars in JavaObject (lockword)
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2453
    nvals := self instSize - nignored.
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
  2454
    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
  2455
        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
  2456
        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
  2457
        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
  2458
            | 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
  2459
            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
  2460
            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
  2461
                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
  2462
                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
  2463
            ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2464
        ].
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2465
    ]
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
  2466
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2467
    "Created: / 15-04-1996 / 16:42:52 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2468
    "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
  2469
    "Modified: / 02-11-2012 / 21:49:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
  2470
!
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
  2471
3100
cf2d8949d5a5 Better coding style of JavaClass/JavaBehaviour>>setInterfaces:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3097
diff changeset
  2472
setInterfaces: aCollection
cf2d8949d5a5 Better coding style of JavaClass/JavaBehaviour>>setInterfaces:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3097
diff changeset
  2473
cf2d8949d5a5 Better coding style of JavaClass/JavaBehaviour>>setInterfaces:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3097
diff changeset
  2474
    super setInterfaces: aCollection.
cf2d8949d5a5 Better coding style of JavaClass/JavaBehaviour>>setInterfaces:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3097
diff changeset
  2475
    aCollection notEmptyOrNil ifTrue:[
3290
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
  2476
        aCollection do:[:ifaceRefIndex|
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2477
            (self constantPool at: ifaceRefIndex) name = 'groovy/lang/GroovyObject' 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
  2478
                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
  2479
                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
  2480
            ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2481
        ]
110
dfb03e2ea321 *** empty log message ***
cg
parents: 98
diff changeset
  2482
    ]
dfb03e2ea321 *** empty log message ***
cg
parents: 98
diff changeset
  2483
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
  2484
    "Created: / 20-02-2012 / 22:47:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3290
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
  2485
    "Modified: / 27-11-2014 / 17:03:03 / 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
  2486
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2487
2956
17be352f0130 Added lockWord to JavaBehavior to enable thinlocking for static methods and resolver.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2937
diff changeset
  2488
setLockWord
17be352f0130 Added lockWord to JavaBehavior to enable thinlocking for static methods and resolver.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2937
diff changeset
  2489
    _lockWord_ := 0
17be352f0130 Added lockWord to JavaBehavior to enable thinlocking for static methods and resolver.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2937
diff changeset
  2490
17be352f0130 Added lockWord to JavaBehavior to enable thinlocking for static methods and resolver.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2937
diff changeset
  2491
    "Created: / 06-12-2013 / 23:00:16 / 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
  2492
!
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
2529
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
  2494
setSource: aStringOrNil
764ab6925cf5 Update compiler problems when old class is updated.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2521
diff changeset
  2495
    self assert: (aStringOrNil isNil or:[aStringOrNil isString]).
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  2496
    attributes := attributes at:#SourceString putOrAppend: 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
  2497
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2498
    "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
  2499
    "Created: / 18-02-2012 / 19:10:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  2500
    "Modified: / 07-12-2014 / 01:34:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
110
dfb03e2ea321 *** empty log message ***
cg
parents: 98
diff changeset
  2501
!
dfb03e2ea321 *** empty log message ***
cg
parents: 98
diff changeset
  2502
626
cg
parents: 625
diff changeset
  2503
setSourceFile:aFilename
3211
c771a69d7f7d Removed slot JavaClass#sourceFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3207
diff changeset
  2504
    classFilename := aFilename.
c771a69d7f7d Removed slot JavaClass#sourceFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3207
diff changeset
  2505
c771a69d7f7d Removed slot JavaClass#sourceFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3207
diff changeset
  2506
    "Created: / 15-04-1996 / 16:42:52 / cg"
c771a69d7f7d Removed slot JavaClass#sourceFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3207
diff changeset
  2507
    "Modified: / 07-08-2014 / 12:26:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
626
cg
parents: 625
diff changeset
  2508
!
cg
parents: 625
diff changeset
  2509
cg
parents: 625
diff changeset
  2510
setStaticFields:f
cg
parents: 625
diff changeset
  2511
    JavaClass setInstanceVariableStringFromFields:f in:self class.
cg
parents: 625
diff changeset
  2512
cg
parents: 625
diff changeset
  2513
    staticFields := f.
cg
parents: 625
diff changeset
  2514
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2515
    "Modified: / 17-08-2011 / 09:26:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
626
cg
parents: 625
diff changeset
  2516
!
60
a763b1780ec0 checkin from browser
cg
parents: 54
diff changeset
  2517
626
cg
parents: 625
diff changeset
  2518
setSuperclass:aClass
cg
parents: 625
diff changeset
  2519
    |iVars numIvars|
247
67dd93db3d80 adapt to change in ClassDescription
cg
parents: 236
diff changeset
  2520
626
cg
parents: 625
diff changeset
  2521
    aClass isNil ifTrue:[
cg
parents: 625
diff changeset
  2522
	super setSuperclass:JavaObject
cg
parents: 625
diff changeset
  2523
    ] ifFalse:[
cg
parents: 625
diff changeset
  2524
	(aClass isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
cg
parents: 625
diff changeset
  2525
	    self halt.
cg
parents: 625
diff changeset
  2526
	].
cg
parents: 625
diff changeset
  2527
	super setSuperclass:aClass.
cg
parents: 625
diff changeset
  2528
    ].
cg
parents: 625
diff changeset
  2529
cg
parents: 625
diff changeset
  2530
    iVars := self instVarNames.
cg
parents: 625
diff changeset
  2531
    ((numIvars := iVars size) > 0) ifTrue:[
cg
parents: 625
diff changeset
  2532
	(superclass notNil and:[(superclass isMemberOf:JavaUnresolvedClassConstant) not]) ifTrue:[
cg
parents: 625
diff changeset
  2533
	    instSize := superclass instSize + numIvars
cg
parents: 625
diff changeset
  2534
	] ifFalse:[
cg
parents: 625
diff changeset
  2535
	    instSize := numIvars
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 249
diff changeset
  2536
	]
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  2537
    ].
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
  2538
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
  2539
    "Created: 15.4.1996 / 16:42:52 / cg"
247
67dd93db3d80 adapt to change in ClassDescription
cg
parents: 236
diff changeset
  2540
    "Modified: 22.8.1997 / 15:06:45 / cg"
626
cg
parents: 625
diff changeset
  2541
! !
1
083530508d9c intitial checkin
cg
parents:
diff changeset
  2542
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2543
!JavaClass methodsFor:'private-accessing'!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2544
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2545
attributes
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2546
    "return the extra class attributes or nil"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2547
    ^ attributes
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2548
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2549
    "Created: / 13-09-2013 / 00:53:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2550
!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2551
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2552
attributes:aClassAttributesObject
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2553
    self shouldNotImplement
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2554
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2555
    "Created: / 13-09-2013 / 00:52:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2556
!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2557
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2558
classAttributes
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2559
    ^ self attributes
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2560
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2561
    "Created: / 13-09-2013 / 00:52:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2562
!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2563
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2564
classAttributes:aClassAttributesObject
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2565
    self shouldNotImplement.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2566
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2567
    "Created: / 13-09-2013 / 00:52:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2568
!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2569
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2570
getAttribute:key
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2571
    "get an attribute (by symbolic key)"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2572
3199
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
  2573
    ^ attributes at: key ifAbsent: nil
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2574
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2575
    "Created: / 13-09-2013 / 00:53:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3199
189c572dbe71 Fixed getDeclaringClass() native.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3180
diff changeset
  2576
    "Modified: / 04-08-2014 / 22:33:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2577
!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2578
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2579
setAttribute:key to:aValue
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2580
    self shouldNotImplement
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2581
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2582
    "Created: / 13-09-2013 / 00:54:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2583
! !
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  2584
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2585
!JavaClass methodsFor:'private-changes management'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2586
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2587
writingChangeWithTimeStamp:doStampIt do:aBlock
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2588
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2589
    "No changes for Java classes now"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2590
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2591
    "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
  2592
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2593
626
cg
parents: 625
diff changeset
  2594
!JavaClass methodsFor:'queries'!
cg
parents: 625
diff changeset
  2595
3301
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2596
anonymousClasses
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2597
    "Return set of anonymous classes defined in this class. Anonymous classes that 
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2598
     are not yet loaded are loaded but not initialized."
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2599
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2600
    ^ self anonymousClassesIgnoreUnloaded:false
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2601
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2602
    "Created: / 11-12-2014 / 17:33:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2603
!
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2604
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2605
anonymousClassesIgnoreUnloaded
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2606
    "Return set of anonymous classes defined in this class. 
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2607
     Those not yet loaded are ommited from the returned set"
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2608
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2609
    ^ self anonymousClassesIgnoreUnloaded:true
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2610
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2611
    "Created: / 11-12-2014 / 17:34:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2612
!
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2613
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2614
anonymousClassesIgnoreUnloaded:ignoreUnloaded
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2615
    "Return set of anonymous classes defined in this class. If ignoreUnloaded is true,
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2616
     anonymous classes that are not loaded will not appear in the returned set.
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2617
     If ignoreUnloaded is false and anonynous class is not loaded yet, it is
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2618
     loaded but not initialized."
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2619
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2620
    ^ Array streamContents: [ :stream | self anonymousClassesIgnoreUnloaded: ignoreUnloaded do: [:class | stream nextPut: class ] ]
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2621
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2622
    "Created: / 11-12-2014 / 17:34:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2623
!
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2624
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2625
anonymousClassesIgnoreUnloaded:ignoreUnloaded do: block
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2626
    "Iterate over a set of anonynous classes. If ignoreUnloaded is true,
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2627
     anonynous classes that are not loaded will be skipped.
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2628
     If ignoreUnloaded is false and anonynous class is not loaded yet, it is
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2629
     loaded but not initialized.
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2630
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2631
     See JVM spec, Section 4.7.6 The InnerClasses Attribute
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2632
    "
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2633
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2634
    | innerClassesAttr |
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2635
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2636
    innerClassesAttr := self getAttribute:#InnerClasses.
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2637
    innerClassesAttr notNil ifTrue:[
3329
4c3b0badaa5f Oops, fixed endless recursion in JavaClass>>innerClasses...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3326
diff changeset
  2638
        | cp |
3301
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2639
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2640
        cp := self constantPool.
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2641
        innerClassesAttr do:[:each |
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2642
            | innerClassRef |
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2643
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2644
            innerClassRef := cp at: each innerClassRefIndex.
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2645
            innerClassRef name ~= binaryName ifTrue:[ 
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2646
                each nameIndex == 0"Anonynous class" ifTrue:[ 
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2647
                    | innerClass |
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2648
3329
4c3b0badaa5f Oops, fixed endless recursion in JavaClass>>innerClasses...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3326
diff changeset
  2649
                    innerClass := JavaVM classNamed:innerClassRef name definedBy:classLoader.
4c3b0badaa5f Oops, fixed endless recursion in JavaClass>>innerClasses...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3326
diff changeset
  2650
                    (innerClass isNil and:[ ignoreUnloaded not ]) ifTrue:[ 
4c3b0badaa5f Oops, fixed endless recursion in JavaClass>>innerClasses...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3326
diff changeset
  2651
                        innerClass := innerClassRef resolve: false.
4c3b0badaa5f Oops, fixed endless recursion in JavaClass>>innerClasses...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3326
diff changeset
  2652
                    ].   
3301
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2653
                    innerClass notNil ifTrue:[ block value: innerClass ].        
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2654
                ].
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2655
            ].
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2656
        ]
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2657
    ].
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2658
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2659
    "Created: / 11-12-2014 / 17:35:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3329
4c3b0badaa5f Oops, fixed endless recursion in JavaClass>>innerClasses...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3326
diff changeset
  2660
    "Modified: / 20-01-2015 / 09:29:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3301
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2661
!
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2662
626
cg
parents: 625
diff changeset
  2663
canBeSubclassed
cg
parents: 625
diff changeset
  2664
    "return true, if its allowed to create subclasses of the receiver."
426
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2665
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2666
    self isFinal ifTrue:[^ false].
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2667
    self isInterface ifTrue:[^ false].
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2668
    ^ true
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2669
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2670
    "Created: / 5.11.1998 / 23:04:50 / cg"
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2671
!
ddb18042134a checkin from browser
cg
parents: 425
diff changeset
  2672
2746
3d4c32e21475 add JavaClass>>canCacheReferences
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2711
diff changeset
  2673
canCacheReferences
3d4c32e21475 add JavaClass>>canCacheReferences
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2711
diff changeset
  2674
    ^ self versions isNil or: [ self versions isEmpty ].
3d4c32e21475 add JavaClass>>canCacheReferences
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2711
diff changeset
  2675
3d4c32e21475 add JavaClass>>canCacheReferences
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2711
diff changeset
  2676
    "Created: / 10-09-2013 / 00:07:40 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
3d4c32e21475 add JavaClass>>canCacheReferences
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2711
diff changeset
  2677
!
3d4c32e21475 add JavaClass>>canCacheReferences
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2711
diff changeset
  2678
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
  2679
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
  2680
    ^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
  2681
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2682
    "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
  2683
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2684
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2685
containsMethodsAnnotatedWith:aJavaTypeName
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2686
    | methods |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2687
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2688
    methods := self selectMethodsAnnotatedWith:aJavaTypeName.
3097
c37c50e0aa5a Fix in containsMethodsAnnotatedWith: - do not compare binary names, compare superclasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2980
diff changeset
  2689
    methods notEmptyOrNil ifTrue:[ ^ true ].
c37c50e0aa5a Fix in containsMethodsAnnotatedWith: - do not compare binary names, compare superclasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2980
diff changeset
  2690
    superclass ~~ JavaObject
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2691
        ifTrue:[ ^ superclass containsMethodsAnnotatedWith:aJavaTypeName. ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2692
    ^ false.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2693
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2694
    "Created: / 02-03-2011 / 23:01:14 / Marcel Hlopko <hlopik@gmail.com>"
3097
c37c50e0aa5a Fix in containsMethodsAnnotatedWith: - do not compare binary names, compare superclasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2980
diff changeset
  2695
    "Modified: / 27-04-2014 / 20:58:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2696
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2697
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
  2698
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
  2699
    ^ (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
  2700
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2701
    "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
  2702
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2703
626
cg
parents: 625
diff changeset
  2704
hasInterface:aJavaInterface
cg
parents: 625
diff changeset
  2705
    "return true, if I respond to all methods as
cg
parents: 625
diff changeset
  2706
     required by the argument, an aJavaInterface"
cg
parents: 625
diff changeset
  2707
cg
parents: 625
diff changeset
  2708
    interfaces size > 0 ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2709
	self interfaces do:[:if |
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2710
	    aJavaInterface == if ifTrue:[
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2711
		^ true
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2712
	    ].
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2713
	]
626
cg
parents: 625
diff changeset
  2714
    ].
cg
parents: 625
diff changeset
  2715
    superclass isJavaClass ifTrue:[
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2716
	^ superclass hasInterface:aJavaInterface
626
cg
parents: 625
diff changeset
  2717
    ].
cg
parents: 625
diff changeset
  2718
    ^ false.
cg
parents: 625
diff changeset
  2719
cg
parents: 625
diff changeset
  2720
"/    aJavaInterface methodDictionary keysAndValuesDo:[:sel :mthd |
587
131f0c4afb89 checkin from browser
cg
parents: 582
diff changeset
  2721
"/        (self canUnderstand:sel) ifFalse:[
131f0c4afb89 checkin from browser
cg
parents: 582
diff changeset
  2722
"/            ^ false.
131f0c4afb89 checkin from browser
cg
parents: 582
diff changeset
  2723
"/        ]
131f0c4afb89 checkin from browser
cg
parents: 582
diff changeset
  2724
"/    ].
53
e10c1dd4ea3b checkin from browser
cg
parents: 52
diff changeset
  2725
    ^ true
281
67c5b913b645 *** empty log message ***
cg
parents: 264
diff changeset
  2726
67c5b913b645 *** empty log message ***
cg
parents: 264
diff changeset
  2727
    "Modified: / 28.1.1998 / 01:46:16 / cg"
587
131f0c4afb89 checkin from browser
cg
parents: 582
diff changeset
  2728
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
  2729
!
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
  2730
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
  2731
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
  2732
    "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
  2733
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2734
    | magicAccessor |
2578
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
  2735
    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
  2736
    ^ 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
  2737
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2738
    "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
  2739
    "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
  2740
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2741
3223
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2742
innerClasses
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2743
    "Return set of inner classes. Inner classes that are yet loaded, are
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2744
     loaded but not initialized."
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2745
    ^ self innerClassesIgnoreUnloaded:false
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2746
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2747
    "Created: / 08-08-2014 / 16:08:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2748
!
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2749
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2750
innerClassesIgnoreUnloaded
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2751
    "Return a set of inner classes. Those not yet loaded
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2752
     are ommited from the returned set"
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2753
3223
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2754
    ^ self innerClassesIgnoreUnloaded:true
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2755
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2756
    "Created: / 08-08-2014 / 16:07:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2757
!
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2758
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2759
innerClassesIgnoreUnloaded:ignoreUnloaded
3223
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2760
    "Return a set of inner classes. If ignoreUnloaded is true,
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2761
     inner classes that are not loaded will not appear in the returned set.
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2762
     If ignoreUnloaded is false and inner class is not loaded yet, it is
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2763
     loaded but not initialized."
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2764
3301
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2765
    ^ Array streamContents: [ :stream | self innerClassesIgnoreUnloaded: ignoreUnloaded do: [:class | stream nextPut: class ] ]
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2766
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2767
    "Created: / 08-08-2014 / 16:06:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2768
    "Modified: / 11-12-2014 / 15:38:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2769
!
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2770
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2771
innerClassesIgnoreUnloaded:ignoreUnloaded do: block
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2772
    "Iterate over a set of inner classes. If ignoreUnloaded is true,
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2773
     inner classes that are not loaded will be skipped.
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2774
     If ignoreUnloaded is false and inner class is not loaded yet, it is
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2775
     loaded but not initialized.
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2776
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2777
     See JVM spec, Section 4.7.6 The InnerClasses Attribute
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2778
    "
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2779
3223
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2780
    | innerClassesAttr |
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2781
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2782
    innerClassesAttr := self getAttribute:#InnerClasses.
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2783
    innerClassesAttr notNil ifTrue:[
3329
4c3b0badaa5f Oops, fixed endless recursion in JavaClass>>innerClasses...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3326
diff changeset
  2784
        | cp |
3301
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2785
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2786
        cp := self constantPool.
3290
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
  2787
        innerClassesAttr do:[:each |
3301
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2788
            | outerClassRefIndex outerClassRef |
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2789
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2790
            outerClassRefIndex := each outerClassRefIndex.
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2791
            outerClassRefIndex ~~ 0 ifTrue:[ 
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2792
                outerClassRef := cp at: outerClassRefIndex.
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2793
                outerClassRef name = self binaryName ifTrue:[ 
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2794
                    | innerClassRef innerClass |
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2795
3303
af659e602072 Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3301
diff changeset
  2796
                    innerClassRef := cp at: each innerClassRefIndex.
3329
4c3b0badaa5f Oops, fixed endless recursion in JavaClass>>innerClasses...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3326
diff changeset
  2797
                    innerClass := JavaVM classNamed:innerClassRef name definedBy:classLoader.
4c3b0badaa5f Oops, fixed endless recursion in JavaClass>>innerClasses...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3326
diff changeset
  2798
                    (innerClass isNil and:[ ignoreUnloaded not ]) ifTrue:[ 
4c3b0badaa5f Oops, fixed endless recursion in JavaClass>>innerClasses...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3326
diff changeset
  2799
                        innerClass := innerClassRef resolve: false.
4c3b0badaa5f Oops, fixed endless recursion in JavaClass>>innerClasses...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3326
diff changeset
  2800
                    ].
3301
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2801
                    innerClass notNil ifTrue:[ block value: innerClass ].
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2802
                ].
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2803
            ].
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2804
        ].
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2805
    ].
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2806
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2807
    "Created: / 11-12-2014 / 15:37:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3329
4c3b0badaa5f Oops, fixed endless recursion in JavaClass>>innerClasses...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3326
diff changeset
  2808
    "Modified (format): / 20-01-2015 / 09:29:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3301
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2809
!
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2810
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2811
isAnonymous
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2812
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2813
    | innerClassesAttr |
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2814
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2815
    innerClassesAttr := self getAttribute: #InnerClasses.
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2816
    innerClassesAttr notNil ifTrue:[
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2817
        innerClassesAttr do:[:each |
3290
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
  2818
            | innerClassRef |
76d4443744ed JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3276
diff changeset
  2819
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2820
            innerClassRef := self constantPool at: each innerClassRefIndex.
3301
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2821
            (innerClassRef name = binaryName) ifTrue:[
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2822
                each nameIndex == 0 ifTrue:[ 
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2823
                    ^ true
3223
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2824
                ].
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2825
            ]
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2826
        ].
7940d8a38e51 Oops, added missing methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3215
diff changeset
  2827
    ].
3301
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2828
    ^ false
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2829
                
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
        (Java at:'java.io.Console') isAnonymous
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2832
        (Java at:'java.io.Console$1') isAnonymous
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2833
        (Java at:'java.io.Console$1$1') isAnonymous
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2834
        (Java at:'sun.misc.Launcher$ExtClassLoader') isAnonymous
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2835
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2836
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2837
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2838
    "Created: / 18-03-1997 / 17:48:01 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2839
    "Created: / 07-08-2011 / 15:50:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3301
1155c0d79d45 Fixed JavaClass#innerClasses, added #anonynousClasses
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3293
diff changeset
  2840
    "Modified: / 11-12-2014 / 15:53:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2841
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2842
2618
e7757e5d593c Initial attempt to generalized builtin class support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2603
diff changeset
  2843
isBuiltInClass
2966
afd174546057 Post-merge fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2965
diff changeset
  2844
    ^JavaVM builtInClassNames includes: binaryName
2618
e7757e5d593c Initial attempt to generalized builtin class support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2603
diff changeset
  2845
e7757e5d593c Initial attempt to generalized builtin class support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2603
diff changeset
  2846
    "Created: / 22-05-2013 / 20:38:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2966
afd174546057 Post-merge fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2965
diff changeset
  2847
    "Modified: / 18-12-2013 / 12:46:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2618
e7757e5d593c Initial attempt to generalized builtin class support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2603
diff changeset
  2848
!
e7757e5d593c Initial attempt to generalized builtin class support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2603
diff changeset
  2849
2916
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2850
isCloneable
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2851
    "Return true, if the receiver implements java.lang.Cloneable,
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2852
     i.e., if it can be cloned using Object#clone()"
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2853
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2854
    (accessFlags bitAnd:ACX_CLONEABLE) ~~ 0 ifTrue:[ ^ true ].
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2855
    self interfaces do:[:interface |
2916
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2856
        interface isCloneable ifTrue:[
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2857
            "/ Cache the information here so subsequent call
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2858
            "/ call to clone() can make use of fast flag-check
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2859
            accessFlags := accessFlags bitOr:ACX_CLONEABLE.
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2860
            ^ true.
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2861
        ].
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2862
    ].
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2863
    superclass isCloneable ifTrue:[
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2864
        "/ Cache the information here so subsequent call
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2865
        "/ call to clone() can make use of fast flag-check
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2866
        accessFlags := accessFlags bitOr:ACX_CLONEABLE.
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2867
        ^ true.
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2868
    ].
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2869
    ^ false.
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2870
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2871
    "Created: / 12-11-2013 / 00:33:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2872
    "Modified: / 12-11-2013 / 11:06:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2873
!
3d8a63dbf6dd Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2908
diff changeset
  2874
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
  2875
isFullyResolved
2757
66f842986836 cleanup multiple Java class versions handling
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2754
diff changeset
  2876
    constantPool do: [:each | (each isJavaRef and: [each isResolved not]) ifTrue: [^false]].
66f842986836 cleanup multiple Java class versions handling
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2754
diff changeset
  2877
    ^ true.
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
  2878
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2879
    "Created: / 08-12-2011 / 20:44:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2757
66f842986836 cleanup multiple Java class versions handling
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2754
diff changeset
  2880
    "Modified (format): / 02-10-2013 / 21:29:57 / Marcel Hlopko <marcel.hlopko@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
  2881
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2882
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2883
isJavaArrayClass
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2884
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2885
    ^false
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2886
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2887
    "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
  2888
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2889
626
cg
parents: 625
diff changeset
  2890
isJavaClass
148
db560ebab8b5 *** empty log message ***
cg
parents: 133
diff changeset
  2891
    ^ self ~~ JavaClass
db560ebab8b5 *** empty log message ***
cg
parents: 133
diff changeset
  2892
db560ebab8b5 *** empty log message ***
cg
parents: 133
diff changeset
  2893
    "Created: 18.3.1997 / 17:48:01 / cg"
db560ebab8b5 *** empty log message ***
cg
parents: 133
diff changeset
  2894
!
db560ebab8b5 *** empty log message ***
cg
parents: 133
diff changeset
  2895
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2896
isJavaClassType
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2897
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2898
    ^self isInterface not
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2899
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2900
    "
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2901
        (Java classForName:'java.lang.Class') isJavaClassType
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2902
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2903
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2904
    "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
  2905
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2906
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2907
isJavaInterfaceType
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2908
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2909
    ^self isInterface
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2910
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2911
    "
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2912
        (Java classForName:'java.lang.Class') isJavaInterfaceType
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2913
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2914
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2915
    "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
  2916
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2917
626
cg
parents: 625
diff changeset
  2918
isJavaMethodRef
cg
parents: 625
diff changeset
  2919
    ^ false
cg
parents: 625
diff changeset
  2920
cg
parents: 625
diff changeset
  2921
    "Created: / 9.11.1999 / 15:42:10 / cg"
cg
parents: 625
diff changeset
  2922
!
cg
parents: 625
diff changeset
  2923
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2924
isJavaPrimitiveType
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2925
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2926
    ^false
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2927
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2928
    "
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2929
        (Java classForName:'java.lang.Class') isJavaPrimitiveType
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2930
        ByteArray isJavaPrimitiveType
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2931
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2932
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2933
    "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
  2934
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2935
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2936
isJavaReferenceType
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2937
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2938
    ^true
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2939
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2940
    "
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2941
        (Java classForName:'java.lang.Class') isJavaReferenceType
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2942
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2943
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2944
    "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
  2945
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2946
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2947
isJavaType
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2948
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2949
    ^true
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2950
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2951
    "
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  2952
        (Java classForName:'java.lang.Class') isJavaType
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2953
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2954
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2955
    "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
  2956
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2957
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
  2958
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
  2959
    "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
  2960
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2961
    binaryName == #'java/lang/Byte' ifTrue:[^true].
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2962
    binaryName == #'java/lang/Short' ifTrue:[^true].
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2963
    binaryName == #'java/lang/Integer' ifTrue:[^true].
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2964
    binaryName == #'java/lang/Long' ifTrue:[^true].
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2965
    binaryName == #'java/lang/Character' ifTrue:[^true].
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2966
    binaryName == #'java/lang/Boolean' ifTrue:[^true].
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2967
    binaryName == #'java/lang/String' ifTrue:[^true]."/Not really a wrapper, but..."
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
  2968
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2969
    ^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
  2970
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2971
    "Created: / 26-12-2011 / 22:03:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2972
    "Modified: / 09-10-2013 / 00:43:01 / 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
  2973
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  2974
626
cg
parents: 625
diff changeset
  2975
isUnresolved
cg
parents: 625
diff changeset
  2976
    "return true, if the receiver is unresolved;
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  2977
     javaClasses are never; JavaUnresolvedClasses are always"
345
7cfa66af11a0 checkin from browser
cg
parents: 336
diff changeset
  2978
90
918e2740098c resolve rewritten
cg
parents: 86
diff changeset
  2979
    ^ false
345
7cfa66af11a0 checkin from browser
cg
parents: 336
diff changeset
  2980
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2981
    "Modified: / 07-05-1998 / 12:23:14 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  2982
    "Created: / 06-03-2011 / 22:57:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
175
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
  2983
!
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
  2984
679
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  2985
nameInBrowser
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  2986
    "return a nameString as shown in browsers"
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  2987
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2988
    ^ self javaName
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2989
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  2990
    "Modified: / 08-10-2013 / 22:44:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
679
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  2991
!
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  2992
2730
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  2993
nameInSmalltalk
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  2994
    "Return the name of the class under which it could be found in
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  2995
     system dictionary (Smalltalk)"
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  2996
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  2997
    ^ self nameSpaceName , '::' , self lastName.
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  2998
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  2999
    "Modified: / 19-10-1998 / 20:07:24 / cg"
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3000
    "Modified: / 14-09-2013 / 22:54:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
679
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  3001
!
8983c2db7e24 *** empty log message ***
cg
parents: 675
diff changeset
  3002
2730
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3003
nameSpaceName
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3004
    "Return the name of the class under which it could be found in
2842
881eb22c2724 Bugfix in JavaClass>>nameSpaceName: all classes loaded by primordial, ext or system class loader should go to JAVA namespace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3005
     system dictionary (Smalltalk).
881eb22c2724 Bugfix in JavaClass>>nameSpaceName: all classes loaded by primordial, ext or system class loader should go to JAVA namespace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3006
881eb22c2724 Bugfix in JavaClass>>nameSpaceName: all classes loaded by primordial, ext or system class loader should go to JAVA namespace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3007
     The top namespace is
881eb22c2724 Bugfix in JavaClass>>nameSpaceName: all classes loaded by primordial, ext or system class loader should go to JAVA namespace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3008
        (i) either JAVA iff the class is loaded by primordial or ext or system class loader
881eb22c2724 Bugfix in JavaClass>>nameSpaceName: all classes loaded by primordial, ext or system class loader should go to JAVA namespace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3009
        (ii) or JAVA_XXXXXXXX where XXXXXXXX is hashcode of the classloader that loaded given class.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3010
2842
881eb22c2724 Bugfix in JavaClass>>nameSpaceName: all classes loaded by primordial, ext or system class loader should go to JAVA namespace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3011
     "
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3012
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3013
    ^ String
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3014
        streamContents: [:s |
2730
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3015
            | parts |
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3016
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3017
            s nextPutAll: 'JAVA'.
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3018
            classLoader notNil ifTrue: [
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3019
                | systemLoader  extLoader |
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3020
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3021
                systemLoader := JavaVM systemClassLoader.
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3022
                systemLoader notNil ifTrue: [
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3023
                    classLoader ~~ systemLoader ifTrue: [
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3024
                        extLoader := systemLoader instVarNamed: #parent.
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3025
                        classLoader ~~ extLoader ifTrue: [
2842
881eb22c2724 Bugfix in JavaClass>>nameSpaceName: all classes loaded by primordial, ext or system class loader should go to JAVA namespace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3026
                            "Class was not loaded by primordial nor ext nor system class loader"
2730
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3027
                            s
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3028
                                nextPut: $_;
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3029
                                nextPutAll: (classLoader identityHash printStringRadix: 16 padTo: 8).
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3030
                        ]
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3031
                    ]
2842
881eb22c2724 Bugfix in JavaClass>>nameSpaceName: all classes loaded by primordial, ext or system class loader should go to JAVA namespace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3032
                ]
2730
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3033
            ].
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3034
            parts := self binaryName asCollectionOfSubstringsSeparatedBy: $/.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3035
            parts
2730
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3036
                from: 1
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3037
                to: (parts size - 1)
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3038
                do: [:aPart |
2730
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3039
                    s nextPutAll: '::'.
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3040
                    s nextPutAll: aPart
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3041
                ].
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3042
        ].
626
cg
parents: 625
diff changeset
  3043
cg
parents: 625
diff changeset
  3044
    "
2730
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3045
     JAVA::java::lang::Object nameInSmalltalk
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  3046
     JAVA::java::lang::Object nameSpacePath
2730
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3047
     JAVA::java::lang::Object name"
2842
881eb22c2724 Bugfix in JavaClass>>nameSpaceName: all classes loaded by primordial, ext or system class loader should go to JAVA namespace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3048
2730
272689c14005 Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2729
diff changeset
  3049
    "Created: / 14-09-2013 / 22:53:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2842
881eb22c2724 Bugfix in JavaClass>>nameSpaceName: all classes loaded by primordial, ext or system class loader should go to JAVA namespace.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3050
    "Modified: / 10-10-2013 / 01:00:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
393
1efe41b5bc98 #removeClass: fix
cg
parents: 375
diff changeset
  3051
!
1efe41b5bc98 #removeClass: fix
cg
parents: 375
diff changeset
  3052
3207
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
  3053
owningClass
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
  3054
    ^ self enclosingClass
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
  3055
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
  3056
    "Created: / 05-08-2014 / 22:35:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
  3057
!
6cb006c63c4a Return enclusing class's package for inner classes. Make #owningClass to return enclosing class.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3206
diff changeset
  3058
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3059
selectMethodsAnnotatedWith:aJavaTypeName
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3060
    ^ self methodDictionary values select:
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3061
            [:method |
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3062
            (method isJavaMethod
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
  3063
                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
  3064
                    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
  3065
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3066
    "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
  3067
    "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
  3068
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3069
626
cg
parents: 625
diff changeset
  3070
supportsMethodCategories
cg
parents: 625
diff changeset
  3071
    ^ self isJavaClass not
175
68da52e100ab *** empty log message ***
cg
parents: 172
diff changeset
  3072
626
cg
parents: 625
diff changeset
  3073
    "Created: / 30.7.1997 / 14:58:58 / cg"
cg
parents: 625
diff changeset
  3074
    "Modified: / 7.5.1998 / 12:25:54 / cg"
cg
parents: 625
diff changeset
  3075
!
321
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 312
diff changeset
  3076
626
cg
parents: 625
diff changeset
  3077
typeName
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3078
    ^ 'L' , self fullName , ';'.
321
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 312
diff changeset
  3079
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 312
diff changeset
  3080
    "
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3081
     (Java at:'java.util.Stack') typeName"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3082
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3083
    "Modified: / 10-02-1998 / 17:13:26 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3084
    "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
  3085
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3086
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3087
!JavaClass methodsFor:'queries-protocol'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3088
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3089
equalsOrIsSubclassOf: aJavaClass
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3090
    self = aJavaClass ifTrue: [^true].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3091
    ^ self isSubclassOf:aJavaClass.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3092
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3093
    "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
  3094
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3095
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3096
includesBehavior: aClass
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3097
    ^ (aClass isJavaClass not or: [ aClass isInterface not ])
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
  3098
        ifTrue: [ self name == aClass name or:[ super includesBehavior: aClass ]]
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3099
        ifFalse: [self name == aClass name or: [ self allInterfaces includes: aClass ]].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3100
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3101
    "Created: / 05-02-2011 / 23:44:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3102
    "Modified (format): / 09-10-2013 / 01:29:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3103
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3104
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
  3105
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
  3106
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3107
    | 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
  3108
    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
  3109
    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
  3110
    [ 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
  3111
        "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
  3112
         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
  3113
        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
  3114
            ^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
  3115
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3116
        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
  3117
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3118
    ^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
  3119
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3120
    "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
  3121
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3122
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3123
!JavaClass methodsFor:'reflection'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3124
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3125
findInstFieldByName: fieldName
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
  3126
    "tries to find a field in current class (not superclasses)"
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3127
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
  3128
    | result |
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3129
    result := self fields
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
  3130
                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
  3131
                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
  3132
    ^ 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
  3133
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3134
    "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
  3135
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3136
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3137
findInterfaceFieldByName: fieldName
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
  3138
    | 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
  3139
    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
  3140
    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
  3141
    [ 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
  3142
        | 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
  3143
        iface := ifaces removeFirst.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3144
        result := iface staticFields
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
  3145
                    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
  3146
                    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
  3147
        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
  3148
        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
  3149
        iface interfaces do: [
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3150
            :each |
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
  3151
            (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
  3152
        ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3153
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3154
    ^ 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
  3155
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3156
    "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
  3157
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3158
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3159
findStaticFieldByName: fieldName
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
  3160
    "tries to find a field in current class (not superclasses)"
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3161
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
  3162
    | result |
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3163
    result := self staticFields
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
  3164
                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
  3165
                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
  3166
    ^ 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
  3167
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3168
    "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
  3169
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3170
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3171
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
  3172
    | 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
  3173
    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
  3174
    [ 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
  3175
        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
  3176
        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
  3177
        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
  3178
        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
  3179
        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
  3180
        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
  3181
        cls := cls superclass.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3182
    ].
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
  3183
    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
  3184
    ^ nil.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3185
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3186
    "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
  3187
    "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
  3188
    "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
  3189
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3190
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3191
lookupMethodByNameAndType: aJavaNameAndType
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3192
    ^ self lookupMethodFor: aJavaNameAndType selector.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3193
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3194
    "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
  3195
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3196
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3197
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
  3198
    | 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
  3199
    cls := self.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3200
    [ 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
  3201
        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
  3202
        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
  3203
        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
  3204
        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
  3205
        cls := cls superclass.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3206
    ].
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
  3207
    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
  3208
    ^ nil.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3209
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3210
    "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
  3211
    "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
  3212
    "Modified: / 07-12-2011 / 23:06:11 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
626
cg
parents: 625
diff changeset
  3213
! !
cg
parents: 625
diff changeset
  3214
cg
parents: 625
diff changeset
  3215
!JavaClass methodsFor:'special'!
cg
parents: 625
diff changeset
  3216
cg
parents: 625
diff changeset
  3217
asClassPointerRef
cg
parents: 625
diff changeset
  3218
"/ self halt.
cg
parents: 625
diff changeset
  3219
     ^ self
cg
parents: 625
diff changeset
  3220
cg
parents: 625
diff changeset
  3221
    "Created: / 10.11.1998 / 02:07:01 / cg"
cg
parents: 625
diff changeset
  3222
    "Modified: / 8.1.1999 / 14:11:26 / cg"
428
4b400c64ccec checkin from browser
cg
parents: 426
diff changeset
  3223
!
4b400c64ccec checkin from browser
cg
parents: 426
diff changeset
  3224
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3225
deinit
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3226
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
  3227
    accessFlags := accessFlags bitClear: ACX_INITIALIZED.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3228
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3229
    "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
  3230
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3231
626
cg
parents: 625
diff changeset
  3232
deref
2118
b73d5b8e93c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
  3233
	^ self
428
4b400c64ccec checkin from browser
cg
parents: 426
diff changeset
  3234
626
cg
parents: 625
diff changeset
  3235
    "Created: / 10.11.1998 / 02:08:06 / cg"
428
4b400c64ccec checkin from browser
cg
parents: 426
diff changeset
  3236
!
4b400c64ccec checkin from browser
cg
parents: 426
diff changeset
  3237
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3238
javaArrayClass
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3239
    "/ self halt.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3240
    "/  ^ Array
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3241
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
  3242
    ^ JavaArray javaArrayClassFor:self
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3243
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3244
    "Created: / 10-11-1998 / 02:07:32 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3245
    "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
  3246
    "Modified: / 05-07-2012 / 23:24:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2966
afd174546057 Post-merge fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2965
diff changeset
  3247
! !
203
67af98594672 *** empty log message ***
cg
parents: 200
diff changeset
  3248
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3249
!JavaClass methodsFor:'support - refactorings'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3250
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3251
directlyDefinesMethod: aSelector
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3252
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3253
    ^self methodDictionary includes: aSelector.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3254
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3255
    "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
  3256
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3257
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3258
metaclass
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3259
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3260
    ^self class
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3261
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3262
    "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
  3263
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3264
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3265
!JavaClass methodsFor:'support - sUnit'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3266
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3267
asTestCase
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3268
    self isTestletLike
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3269
        ifTrue: [^ TestletTestCaseProxy for: self ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3270
    ^ JUnitTestCaseProxy for: self.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3271
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3272
    "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
  3273
    "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
  3274
    "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
  3275
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3276
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3277
asTestlet
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3278
    ^ TestletTestCaseProxy for: self
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3279
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3280
    "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
  3281
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3282
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3283
buildSuite
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3284
    self isTestletLike ifTrue: [ ^(TestletTestCaseProxy for: self) buildSuite ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3285
^ (JUnitTestCaseProxy for: self) buildSuite
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3286
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3287
    "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
  3288
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3289
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
  3290
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
  3291
    | cls |
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3292
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3293
    "try JUnit 4.x"
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3294
    (self containsMethodsAnnotatedWith: #'Lorg/junit/Test;') ifTrue: [
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3295
        ^ true
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
  3296
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3297
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3298
    "Try jUnit 3.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
  3299
    cls := self superclass.
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3300
    [ cls ~~ JavaObject ] whileTrue:[
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3301
        cls binaryName == #'junit/framework/TestCase' ifTrue:[ ^ true ].
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
  3302
        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
  3303
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3304
    ^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
  3305
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3306
        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
  3307
        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
  3308
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3309
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3310
    "Created: / 23-10-2011 / 22:04:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2800
diff changeset
  3311
    "Modified: / 08-10-2013 / 22:37:37 / 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
  3312
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3313
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3314
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
  3315
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3316
    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
  3317
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3318
    ^self isJUnitTestCaseLike or:[ self isTestletLike ]
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3319
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3320
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3321
        JAVA::java::lang::Object isTestCaseLike
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3322
        JAVA::stx::libjava::tests::junit::JUnit3Tests isTestCaseLike"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3323
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3324
    "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
  3325
    "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
  3326
    "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
  3327
    "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
  3328
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3329
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3330
isTestSelector: selector
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3331
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3332
    "Hack, you're right, blame on me"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3333
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3334
    | junit_framework_TestCase m |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3335
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3336
    ((selector == #'test(Lgnu/testlet/TestHarness;)V')
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3337
        and:[self ~~ (Java at:'gnu.testlet.Testlet')])
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3338
            ifTrue:[^true].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3339
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3340
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3341
    junit_framework_TestCase := Java at:'junit.framework.TestCase'.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3342
    (junit_framework_TestCase notNil and:
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3343
        [self includesBehavior:junit_framework_TestCase])
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3344
        ifTrue:[^selector startsWith: 'test'].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3345
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3346
    m := self lookupSelector: selector.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3347
    "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
  3348
    ^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
  3349
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3350
    "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
  3351
    "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
  3352
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3353
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3354
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
  3355
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3356
    ^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
  3357
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3358
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3359
        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
  3360
    "
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3361
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3362
    "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
  3363
    "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
  3364
    "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
  3365
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3366
2968
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3367
!JavaClass methodsFor:'synchronized evaluation'!
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3368
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3369
freeSynchronizationSemaphore
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3370
    "free synchronizationSemaphore. May be used, to save memory when
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3371
     an object is no longer used synchronized."
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3372
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3373
    ^ self shouldNotImplement
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3374
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3375
    "
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3376
     self synchronized:[].
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3377
     self synchronizationSemaphore.
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3378
     self freeSynchronizationSemaphore.
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3379
    "
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3380
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3381
    "Created: / 28-01-1997 / 19:31:20 / stefan"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3382
    "Modified: / 08-12-2013 / 22:21:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3383
!
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3384
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3385
synchronizationSemaphore
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3386
    "return the synchronization semaphore for myself.
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3387
     subclasses may redefine"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3388
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3389
    ^ self shouldNotImplement
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3390
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3391
    "
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3392
      self synchronizationSemaphore
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3393
    "
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3394
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3395
    "Modified: / 28-01-1997 / 19:47:09 / stefan"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3396
    "Modified: / 08-12-2013 / 22:21:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3397
!
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3398
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3399
synchronizationSemaphore:aSemaphore
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3400
    "set the synchronisationSemaphore for myself.
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3401
     subclasses may redefine this method"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3402
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3403
    ^ self shouldNotImplement
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3404
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3405
    "Modified: / 28-01-1997 / 19:37:48 / stefan"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3406
    "Modified: / 08-12-2013 / 22:21:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3407
!
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3408
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3409
synchronized:aBlock
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3410
    "Evaluate aBlock synchronized, i.e. use a monitor for this object"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3411
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3412
%{
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3413
    extern void __monitorEnter(OBJ obj);
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3414
    __monitorEnter(self);
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3415
%}.
2968
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3416
    aBlock ensure:[
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3417
%{
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3418
    extern void __monitorExit(OBJ obj);
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3419
    __monitorExit(self);
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3420
%}.
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3421
    1. "/ To make stc happy (stc needs a return value but primitive code has none)
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3422
    ].
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3423
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3424
    "Created: / 28-01-1997 / 17:52:56 / stefan"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3425
    "Modified: / 30-01-1997 / 13:38:54 / cg"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3426
    "Modified: / 20-02-1997 / 09:43:35 / stefan"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3427
    "Modified: / 08-12-2013 / 22:27:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3428
! !
d4963adcb114 Added JavaClass>>synchronized: that uses thinlocks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2966
diff changeset
  3429
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
  3430
!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
  3431
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3432
unwindHandlerInContext: aContext
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
  3433
    "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
  3434
     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
  3435
     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
  3436
     has an opportunity to clean up monitors"
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3437
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
  3438
    ^ 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
  3439
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3440
    "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
  3441
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3442
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3443
!JavaClass methodsFor:'versions'!
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3444
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3445
mergeVersionsWith: aJavaClass
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3446
    "
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3447
    take both self and aJavaClass and ensure that:
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3448
    1) both share the same versions array instance
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3449
    2) versions instance includes both self and aJavaClass.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3450
    "
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3451
2757
66f842986836 cleanup multiple Java class versions handling
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2754
diff changeset
  3452
    self markMultipleVersions.
3291
2cf782f380f2 JavaClass memory optimization (part 2)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3290
diff changeset
  3453
    aJavaClass markMultipleVersions.
2757
66f842986836 cleanup multiple Java class versions handling
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2754
diff changeset
  3454
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3455
    (self versions isNil and: [ aJavaClass versions isNil ]) ifTrue: [
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  3456
        | versionsArray |
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  3457
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  3458
        versionsArray := WeakArray with: self with: aJavaClass.
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  3459
        versionsArray addDependent: JavaClass::JavaClassVersionDiedHandler new.
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  3460
        self versions: versionsArray.
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  3461
        aJavaClass versions: versionsArray.
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3462
        ^ self.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3463
    ].
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3464
    self versions isNil ifTrue: [
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3465
        self versions: aJavaClass versions.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3466
        self versions add: self.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3467
        ^ self.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3468
    ].
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3469
    aJavaClass versions isNil ifTrue: [
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3470
        aJavaClass versions: self versions.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3471
        self versions add: aJavaClass.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3472
        ^ self.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3473
    ].
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3474
    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
  3475
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3476
    "Created: / 14-04-2013 / 13:44:03 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
2757
66f842986836 cleanup multiple Java class versions handling
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2754
diff changeset
  3477
    "Modified: / 02-10-2013 / 21:52:39 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
3293
14292924cac7 JavaClass memory optimization (part 4)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3292
diff changeset
  3478
    "Modified (format): / 07-12-2014 / 01:30:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2561
diff changeset
  3479
! !
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2561
diff changeset
  3480
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3481
!JavaClass::Attributes class methodsFor:'accessing'!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3482
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3483
empty
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3484
    ^ Empty
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3485
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3486
    "Created: / 13-09-2013 / 00:50:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3487
! !
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3488
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3489
!JavaClass::Attributes class methodsFor:'documentation'!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3490
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3491
documentation
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3492
"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3493
    A special container for class attributes allowing
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3494
    for dense, memory-efficient storage.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3495
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3496
    [author:]
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3497
        Jan Vrany <jan.vrany@fit.cvut.cz>
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3498
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3499
    [instance variables:]
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3500
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3501
    [class variables:]
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3502
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3503
    [see also:]
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3504
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3505
"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3506
! !
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3507
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3508
!JavaClass::Attributes class methodsFor:'initialization'!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3509
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3510
initialize
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3511
    "Invoked at system start or when the class is dynamically loaded."
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3512
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3513
    "/ please change as required (and remove this comment)
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3514
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3515
    Empty := self new:0.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3516
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3517
    "Modified: / 13-09-2013 / 00:51:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3518
! !
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2715
diff changeset
  3519
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3520
!JavaClass::JavaClassVersionDiedHandler class methodsFor:'documentation'!
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3521
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3522
history
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3523
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3524
    "Created: #update:with:from: / 14-04-2013 / 14:04:20 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
2757
66f842986836 cleanup multiple Java class versions handling
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2754
diff changeset
  3525
    "Modified: #update:with:from: / 02-10-2013 / 21:49:51 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3526
! !
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3527
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3528
!JavaClass::JavaClassVersionDiedHandler methodsFor:'notification'!
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3529
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3530
update:aParameter with:anArgument from:source
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3531
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3532
    aParameter = #ElementExpired ifFalse: [
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3533
        self error: 'only #ElementExpired updates supported'.
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3534
    ].
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3535
    self assert: (source notNil and: [ source size >= 1 ]).
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3536
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3537
    source size = 1 ifTrue: [
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3538
        "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
  3539
        | javaClass |
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3540
        javaClass := (source at: 1).
2757
66f842986836 cleanup multiple Java class versions handling
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2754
diff changeset
  3541
        javaClass markNonMultipleVersions.
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3542
    ].
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3543
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3544
    "Created: / 14-04-2013 / 14:04:20 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
2757
66f842986836 cleanup multiple Java class versions handling
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2754
diff changeset
  3545
    "Modified: / 02-10-2013 / 21:49:51 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
2504
08bdd02727cf JavaClass>>mergeVersionsWith:
Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
parents: 2476
diff changeset
  3546
! !
2578
fc6186a4961f Performance optimization: rewrote 'JavaVM classNamed:' to 'JavaVM classNamed:...definedBy:...'.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2566
diff changeset
  3547
130
0483a6fd7d43 handle namespace requests;
cg
parents: 125
diff changeset
  3548
!JavaClass class methodsFor:'documentation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
  3549
083530508d9c intitial checkin
cg
parents:
diff changeset
  3550
version
2561
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3551
    ^ '$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
  3552
!
6c7576efbf16 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  3553
6c7576efbf16 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  3554
version_CVS
2561
2e27f294057e exception access
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3555
    ^ '$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
  3556
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2310
diff changeset
  3557
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3558
version_SVN
2566
f1cea8b752ba Merged branch default (CVS HEAD)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2529 2561
diff changeset
  3559
    ^ 'Id'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
  3560
! !
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2143
diff changeset
  3561
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
  3562
2966
afd174546057 Post-merge fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2965
diff changeset
  3563
JavaClass initialize!
2965
bac7022ca26a Merged 7c3b2a89f173 and 80a1a085a982 (branch performance-optimizations)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2957 2618
diff changeset
  3564
JavaClass::Attributes initialize!