JavaUnresolvedClassConstant.st
author cg
Mon, 06 May 1996 18:58:11 +0000
changeset 54 f37bcefb7091
parent 52 1dc41619b6f8
child 67 a72c949d86dd
permissions -rw-r--r--
avoid loading classes twice
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
083530508d9c intitial checkin
cg
parents:
diff changeset
     1
JavaUnresolvedConstant subclass:#JavaUnresolvedClassConstant
21
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
     2
	instanceVariableNames:'fullName pool poolIndex'
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-Reader-Support'
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
!JavaUnresolvedClassConstant class methodsFor:'instance creation'!
083530508d9c intitial checkin
cg
parents:
diff changeset
    10
54
f37bcefb7091 avoid loading classes twice
cg
parents: 52
diff changeset
    11
fullName:nm
f37bcefb7091 avoid loading classes twice
cg
parents: 52
diff changeset
    12
    ^ self new fullName:nm
f37bcefb7091 avoid loading classes twice
cg
parents: 52
diff changeset
    13
!
f37bcefb7091 avoid loading classes twice
cg
parents: 52
diff changeset
    14
21
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    15
nameIndex:index pool:aConstantPool slotIndex:slotIndex
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    16
    ^ self new index:index pool:aConstantPool slotIndex:slotIndex
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    17
! !
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    18
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    19
!JavaUnresolvedClassConstant methodsFor:'accessing'!
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    20
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    21
fullName
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    22
    ^ fullName
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    23
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    24
!
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    25
54
f37bcefb7091 avoid loading classes twice
cg
parents: 52
diff changeset
    26
fullName:nm
f37bcefb7091 avoid loading classes twice
cg
parents: 52
diff changeset
    27
    fullName := nm
f37bcefb7091 avoid loading classes twice
cg
parents: 52
diff changeset
    28
f37bcefb7091 avoid loading classes twice
cg
parents: 52
diff changeset
    29
!
f37bcefb7091 avoid loading classes twice
cg
parents: 52
diff changeset
    30
21
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    31
index:index pool:aConstantPool slotIndex:slotIndex
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    32
    super index:index.
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    33
    pool := aConstantPool.
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    34
    poolIndex := slotIndex.
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    35
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    36
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
    37
41
eb7974d88088 checkin from browser
cg
parents: 32
diff changeset
    38
!JavaUnresolvedClassConstant methodsFor:'printing & storing'!
eb7974d88088 checkin from browser
cg
parents: 32
diff changeset
    39
eb7974d88088 checkin from browser
cg
parents: 32
diff changeset
    40
displayString
52
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    41
    fullName isNil ifTrue:[
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    42
        ^ 'Unresolved(** nil **)'
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    43
    ].
41
eb7974d88088 checkin from browser
cg
parents: 32
diff changeset
    44
    ^ 'Unresolved(' , (fullName copy replaceAll:$/ by:$.) , ')'
eb7974d88088 checkin from browser
cg
parents: 32
diff changeset
    45
! !
eb7974d88088 checkin from browser
cg
parents: 32
diff changeset
    46
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    47
!JavaUnresolvedClassConstant methodsFor:'resolving'!
083530508d9c intitial checkin
cg
parents:
diff changeset
    48
21
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    49
resolve
50
458467ce0e15 checkin from browser
cg
parents: 41
diff changeset
    50
    |cls|
458467ce0e15 checkin from browser
cg
parents: 41
diff changeset
    51
458467ce0e15 checkin from browser
cg
parents: 41
diff changeset
    52
    cls := Java classNamed:fullName.
52
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    53
    cls notNil ifTrue:[
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    54
        pool notNil ifTrue:[
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    55
            pool at:poolIndex put:cls
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    56
        ].
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    57
    ] ifFalse:[
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    58
        Java rememberUnresolved:self.
50
458467ce0e15 checkin from browser
cg
parents: 41
diff changeset
    59
    ].
458467ce0e15 checkin from browser
cg
parents: 41
diff changeset
    60
    ^ cls
21
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    61
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    62
    "Created: 15.4.1996 / 15:51:42 / cg"
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    63
    "Modified: 15.4.1996 / 16:26:05 / cg"
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    64
!
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    65
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    66
resolveFrom:aConstantTable
52
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    67
    |cls nm s|
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    68
21
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    69
    fullName := self class resolve:(aConstantTable at:index) from:aConstantTable.
32
0dbaa43a73db checkin from browser
cg
parents: 21
diff changeset
    70
    cls := Java classNamed:fullName.
21
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    71
    cls notNil ifTrue:[
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    72
        ^ cls
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    73
    ].
52
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    74
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    75
    (fullName startsWith:'[') ifTrue:[
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    76
        "/ a ref for newarray or new
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    77
        s := fullName readStream.
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    78
        s next.
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    79
        fullName := JavaMethod retvalSpecFromStream:s.
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    80
        cls := Java classNamed:fullName.
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    81
        cls notNil ifTrue:[
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    82
            ^ cls
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    83
        ].
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    84
    ].
1dc41619b6f8 checkin from browser
cg
parents: 50
diff changeset
    85
21
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    86
    Java rememberUnresolved:self.
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    87
    ^ self
b9dd73f299dd checkin from browser
cg
parents: 13
diff changeset
    88
"/    ^ JavaClass fullName:fullName
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    89
083530508d9c intitial checkin
cg
parents:
diff changeset
    90
    "Created: 15.4.1996 / 15:51:42 / cg"
083530508d9c intitial checkin
cg
parents:
diff changeset
    91
    "Modified: 15.4.1996 / 16:26:05 / cg"
083530508d9c intitial checkin
cg
parents:
diff changeset
    92
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
    93
083530508d9c intitial checkin
cg
parents:
diff changeset
    94
!JavaUnresolvedClassConstant class methodsFor:'documentation'!
083530508d9c intitial checkin
cg
parents:
diff changeset
    95
083530508d9c intitial checkin
cg
parents:
diff changeset
    96
version
54
f37bcefb7091 avoid loading classes twice
cg
parents: 52
diff changeset
    97
    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedClassConstant.st,v 1.10 1996/05/06 18:57:25 cg Exp $'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    98
! !