JavaClass.st
author cg
Fri, 03 May 1996 11:44:28 +0000
changeset 42 b93a36fbb245
parent 41 eb7974d88088
child 43 2c4ca2eb8d07
permissions -rw-r--r--
checkin from browser
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
083530508d9c intitial checkin
cg
parents:
diff changeset
     1
ClassDescription subclass:#JavaClass
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
     2
	instanceVariableNames:'fullName accessFlags constantPool sourceFile fields'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
     3
	classVariableNames:''
083530508d9c intitial checkin
cg
parents:
diff changeset
     4
	poolDictionaries:''
083530508d9c intitial checkin
cg
parents:
diff changeset
     5
	category:'Java-Classes'
083530508d9c intitial checkin
cg
parents:
diff changeset
     6
!
083530508d9c intitial checkin
cg
parents:
diff changeset
     7
083530508d9c intitial checkin
cg
parents:
diff changeset
     8
083530508d9c intitial checkin
cg
parents:
diff changeset
     9
!JavaClass class methodsFor:'instance creation'!
083530508d9c intitial checkin
cg
parents:
diff changeset
    10
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    11
fullName:aString
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    12
    ^ self new setFullName:aString
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    13
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    14
    "Created: 15.4.1996 / 15:52:55 / cg"
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    15
!
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    16
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    17
fullName:aString numStatic:nStatic
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    18
    |meta cls|
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    19
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    20
    "create the metaclass first"
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    21
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    22
    meta := Metaclass new.
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    23
    meta setSuperclass:(self).
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    24
    meta instSize:(JavaClass class instSize + nStatic).
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    25
    meta setName:(aString , 'class') asSymbol.
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    26
    meta setClassVariableString:''.
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    27
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    28
    "then let the new meta create the class"
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    29
    cls := meta new.
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    30
    cls setSuperclass:JavaObject.
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    31
    cls instSize:0.
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    32
    cls setName:aString.
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    33
    cls flags:0.
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    34
"/    cls setClassVariableString:''.
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    35
    cls setInstanceVariableString:''.
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    36
    cls category:#java.
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    37
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    38
    cls setFullName:aString.
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    39
    ^ cls
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    40
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    41
"/    ^ self new setFullName:aString
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    42
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    43
    "Created: 15.4.1996 / 15:52:55 / cg"
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    44
!
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
    45
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    46
name:aString
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    47
    self shouldNotImplement
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    48
083530508d9c intitial checkin
cg
parents:
diff changeset
    49
    "Created: 15.4.1996 / 15:52:55 / cg"
083530508d9c intitial checkin
cg
parents:
diff changeset
    50
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
    51
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    52
!JavaClass class methodsFor:'special'!
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    53
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    54
setInstanceVariableStringFromFields:f in:aClass
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    55
    |varNames|
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    56
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    57
    varNames := ''.
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    58
    f do:[:aField |
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    59
        varNames := varNames , aField name , ' '
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    60
    ].
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    61
    aClass setInstanceVariableString:varNames.
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    62
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    63
    "Created: 15.4.1996 / 16:42:52 / cg"
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    64
! !
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
    65
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
    66
!JavaClass methodsFor:'accessing'!
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
    67
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    68
category
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    69
    "java classes do not really hav a category;
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    70
     simulate one by separating its name into individual components,
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    71
     prepending 'java'"
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    72
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    73
    |nameComponents|
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    74
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    75
    nameComponents := fullName asCollectionOfSubstringsSeparatedBy:$/.
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    76
    ^ 'java-' , (nameComponents asStringWith:$/ from:1 to:(nameComponents size - 1))
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    77
!
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    78
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
    79
constantPool
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
    80
    ^ constantPool
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    81
!
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    82
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    83
fullName
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
    84
    ^ fullName
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 7
diff changeset
    85
!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 7
diff changeset
    86
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 7
diff changeset
    87
name
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
    88
    ^ name "/ fullName
22
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
    89
!
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
    90
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
    91
package
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
    92
    "extract from the fullName"
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
    93
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
    94
    |components|
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
    95
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
    96
    components := fullName asCollectionOfSubstringsSeparatedBy:$/.
24
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
    97
    components size > 1 ifTrue:[
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
    98
        ^ (components copyWithoutLast:1) asStringWith:$/
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
    99
    ].
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
   100
    ^ fullName
22
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   101
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   102
    "
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   103
     Java allClasses first fullName
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   104
     Java allClasses first package  
d22e13bdf100 checkin from browser
cg
parents: 21
diff changeset
   105
    "
24
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
   106
!
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
   107
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
   108
sourceFile
4a9822b95fc0 checkin from browser
cg
parents: 22
diff changeset
   109
    ^ sourceFile
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   110
! !
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   111
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   112
!JavaClass methodsFor:'instance creation'!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   113
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   114
basicNew
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   115
    |newJavaObject|
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   116
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   117
    newJavaObject := super basicNew.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   118
    newJavaObject initializeToZero.     "/ mhmh
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   119
    ^ newJavaObject
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   120
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   121
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   122
new
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   123
    |newJavaObject|
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   124
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   125
    newJavaObject := self basicNew.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   126
    newJavaObject invoke:#'<init>'.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   127
    ^ newJavaObject
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   128
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   129
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   130
! !
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   131
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   132
!JavaClass methodsFor:'printing & storing'!
083530508d9c intitial checkin
cg
parents:
diff changeset
   133
083530508d9c intitial checkin
cg
parents:
diff changeset
   134
displayString
41
eb7974d88088 checkin from browser
cg
parents: 40
diff changeset
   135
    ^ fullName copy replaceAll:$/ by:$.
eb7974d88088 checkin from browser
cg
parents: 40
diff changeset
   136
"/    ^ 'JAVA-' , name .
eb7974d88088 checkin from browser
cg
parents: 40
diff changeset
   137
"/    ^ name , '(Java)'  "/ 'JavaClass(' , name , ')'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   138
083530508d9c intitial checkin
cg
parents:
diff changeset
   139
    "Created: 15.4.1996 / 16:02:48 / cg"
083530508d9c intitial checkin
cg
parents:
diff changeset
   140
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
   141
083530508d9c intitial checkin
cg
parents:
diff changeset
   142
!JavaClass methodsFor:'private accessing'!
083530508d9c intitial checkin
cg
parents:
diff changeset
   143
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   144
addMethod:m name:name signature:signature
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   145
    selectorArray isNil ifTrue:[
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   146
        selectorArray := #().
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   147
        methodArray := #()
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   148
    ].
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   149
    selectorArray := selectorArray copyWith:(name , signature) asSymbol. "/ name.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   150
"/    selectorArray := selectorArray copyWith:name asSymbol. "/ name.
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   151
    methodArray := methodArray copyWith:m
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   152
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   153
    "Created: 15.4.1996 / 16:42:52 / cg"
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   154
!
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   155
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   156
setAccessFlags:flags
3
e3c2a84b2a72 checkin from browser
cg
parents: 1
diff changeset
   157
    accessFlags := flags.
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   158
083530508d9c intitial checkin
cg
parents:
diff changeset
   159
    "Created: 15.4.1996 / 16:42:52 / cg"
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   160
!
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   161
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   162
setConstantPool:anArray
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   163
    constantPool := anArray.
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   164
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   165
    "Created: 15.4.1996 / 16:42:52 / cg"
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   166
!
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   167
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   168
setFields:f
40
7f332a95e015 checkin from browser
cg
parents: 38
diff changeset
   169
    JavaClass setInstanceVariableStringFromFields:f in:self.
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   170
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   171
    "Created: 15.4.1996 / 16:42:52 / cg"
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   172
!
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   173
7
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   174
setFullName:aString
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   175
    |nameComponents|
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   176
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   177
    fullName := aString.
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   178
    nameComponents := aString asCollectionOfSubstringsSeparatedBy:$/.
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   179
    name := nameComponents last
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   180
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   181
    "Created: 15.4.1996 / 16:42:52 / cg"
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   182
!
de8ce26e1f2c checkin from browser
cg
parents: 5
diff changeset
   183
5
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   184
setSourceFile:aFilename
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   185
    sourceFile := aFilename.
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   186
f026f5d20c15 checkin from browser
cg
parents: 3
diff changeset
   187
    "Created: 15.4.1996 / 16:42:52 / cg"
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   188
!
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   189
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   190
setSuperclass:aClass
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   191
    aClass isNil ifTrue:[
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   192
        super setSuperclass:JavaObject
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   193
    ] ifFalse:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   194
        (aClass isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   195
            self halt.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   196
        ].
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   197
        super setSuperclass:aClass.
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   198
    ].
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   199
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   200
    instvars notNil ifTrue:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   201
        (superclass notNil and:[(superclass isMemberOf:JavaUnresolvedClassConstant) not]) ifTrue:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   202
            instSize := superclass instSize + (instvars asCollectionOfWords size)
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   203
        ] ifFalse:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   204
            instSize := instvars asCollectionOfWords size
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   205
        ]
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   206
    ].
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   207
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   208
    "Created: 15.4.1996 / 16:42:52 / cg"
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   209
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
   210
18
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   211
!JavaClass methodsFor:'queries'!
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   212
42
b93a36fbb245 checkin from browser
cg
parents: 41
diff changeset
   213
browserClass
b93a36fbb245 checkin from browser
cg
parents: 41
diff changeset
   214
    "return the browser to use for this class - 
b93a36fbb245 checkin from browser
cg
parents: 41
diff changeset
   215
     this can be redefined in special classes, to get different browsers"
b93a36fbb245 checkin from browser
cg
parents: 41
diff changeset
   216
b93a36fbb245 checkin from browser
cg
parents: 41
diff changeset
   217
    ^ JavaBrowser
b93a36fbb245 checkin from browser
cg
parents: 41
diff changeset
   218
b93a36fbb245 checkin from browser
cg
parents: 41
diff changeset
   219
b93a36fbb245 checkin from browser
cg
parents: 41
diff changeset
   220
b93a36fbb245 checkin from browser
cg
parents: 41
diff changeset
   221
b93a36fbb245 checkin from browser
cg
parents: 41
diff changeset
   222
!
b93a36fbb245 checkin from browser
cg
parents: 41
diff changeset
   223
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   224
isClass
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   225
    ^ true
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   226
!
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   227
18
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   228
isFinal
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   229
    ^ (accessFlags bitAnd:16r0010) ~~ 0
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   230
!
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   231
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   232
isInterface
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   233
    ^ (accessFlags bitAnd:16r0200) ~~ 0
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   234
!
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   235
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   236
isPublic
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   237
    ^ (accessFlags bitAnd:16r0001) ~~ 0
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   238
! !
6c07dc4b1118 checkin from browser
cg
parents: 8
diff changeset
   239
21
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   240
!JavaClass methodsFor:'resolving class refs'!
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   241
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   242
resolveClassRefs
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   243
    |newClass const newConst|
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   244
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   245
    (superclass isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   246
        newClass := superclass resolve.
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   247
        newClass isNil ifTrue:[
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   248
            newClass := JavaClassReader loadClassLazy:(superclass fullName).
21
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   249
        ].
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   250
        newClass notNil ifTrue:[
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   251
            superclass := newClass
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   252
        ]
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   253
    ].
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   254
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   255
    1 to:constantPool size do:[:index |
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   256
        const := constantPool at:index.
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   257
        (const isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   258
            "/ try to resolve
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   259
            newConst := const resolve.
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   260
            newConst isNil ifTrue:[
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   261
                newConst := JavaClassReader loadClassLazy:(const fullName).
21
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   262
            ].
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   263
            newConst notNil ifTrue:[
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   264
                constantPool at:index put:newConst
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   265
            ]
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   266
        ]
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   267
    ].
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   268
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   269
    (superclass notNil and:[(superclass isMemberOf:JavaUnresolvedClassConstant) not]) ifTrue:[
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   270
        superclass resolveClassRefs.
27
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   271
        instSize := superclass instSize + (instvars asCollectionOfWords size)
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   272
    ] ifFalse:[
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   273
        instSize := instvars asCollectionOfWords size
4560bb77bb36 checkin from browser
cg
parents: 24
diff changeset
   274
    ].
38
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   275
"/Transcript show:'resolved '; show: self displayString; 
3f1b61722466 checkin from browser
cg
parents: 34
diff changeset
   276
"/           show: ' instSize='; showCr:  instSize.
21
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   277
! !
b9dd73f299dd checkin from browser
cg
parents: 18
diff changeset
   278
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   279
!JavaClass class methodsFor:'documentation'!
083530508d9c intitial checkin
cg
parents:
diff changeset
   280
083530508d9c intitial checkin
cg
parents:
diff changeset
   281
version
42
b93a36fbb245 checkin from browser
cg
parents: 41
diff changeset
   282
    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClass.st,v 1.16 1996/05/03 11:44:24 cg Exp $'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   283
! !