JavaUnresolvedFieldrefConstant.st
author cg
Fri, 28 Jun 1996 21:39:53 +0000
changeset 90 918e2740098c
parent 41 eb7974d88088
child 93 2b1e50b70bb1
permissions -rw-r--r--
resolve rewritten
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
083530508d9c intitial checkin
cg
parents:
diff changeset
     1
JavaUnresolvedRefConstant subclass:#JavaUnresolvedFieldrefConstant
90
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
     2
	instanceVariableNames:'classIndex'
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
90
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
     9
!JavaUnresolvedFieldrefConstant  class methodsFor:'instance creation'!
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    10
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    11
pool:aPool poolIndex:idx classIndex:cIdx nameandTypeIndex:nmIdx
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    12
    ^ self new 
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    13
        pool:aPool poolIndex:idx classIndex:cIdx nameandTypeIndex:nmIdx
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    14
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    15
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    16
! !
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    17
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    18
!JavaUnresolvedFieldrefConstant methodsFor:'accessing'!
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    19
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    20
pool:aPool poolIndex:slotIndex classIndex:cIdx nameandTypeIndex:nmIdx  
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    21
    constantPool := aPool.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    22
    constantPoolIndex := slotIndex.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    23
    classIndex := cIdx.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    24
    nameandTypeIndex := nmIdx
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    25
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    26
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    27
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    28
! !
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    29
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    30
!JavaUnresolvedFieldrefConstant methodsFor:'resolving'!
083530508d9c intitial checkin
cg
parents:
diff changeset
    31
90
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    32
preResolve
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    33
    |className class nameAndType ref|
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    34
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    35
    class := (constantPool at:classIndex).
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    36
    class isUnresolved ifTrue:[
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    37
        class := class preResolve.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    38
    ].
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    39
    class isUnresolved ifFalse:[
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    40
        nameAndType := (constantPool at:nameandTypeIndex).
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    41
        nameAndType isUnresolved ifTrue:[
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    42
            nameAndType := nameAndType preResolve.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    43
        ].
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    44
        nameAndType isUnresolved ifFalse:[
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    45
            "/ good - class is there
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    46
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    47
            ref := JavaFieldref class:class nameandType:nameAndType.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    48
            constantPool at:constantPoolIndex put:ref.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    49
            ^ ref
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    50
        ]
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    51
    ].
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    52
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    53
    self rememberForResolveWith:(class fullName).
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    54
    ^ self
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    55
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    56
    "Created: 15.4.1996 / 16:05:50 / cg"
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    57
    "Modified: 15.4.1996 / 16:26:44 / cg"
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    58
! !
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    59
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    60
!JavaUnresolvedFieldrefConstant ignoredMethodsFor:'resolving'!
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    61
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    62
resolveFrom:aConstantTable
083530508d9c intitial checkin
cg
parents:
diff changeset
    63
    |class nameAndType|
083530508d9c intitial checkin
cg
parents:
diff changeset
    64
90
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    65
self halt.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    66
    class := self class resolve:(aConstantTable at:constantPoolIndex) from:aConstantTable.
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    67
    nameAndType := self class resolve:(aConstantTable at:nameandTypeIndex) from:aConstantTable.
41
eb7974d88088 checkin from browser
cg
parents: 13
diff changeset
    68
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    69
    ^ JavaFieldref 
083530508d9c intitial checkin
cg
parents:
diff changeset
    70
        class:class
083530508d9c intitial checkin
cg
parents:
diff changeset
    71
        nameandType:nameAndType
083530508d9c intitial checkin
cg
parents:
diff changeset
    72
083530508d9c intitial checkin
cg
parents:
diff changeset
    73
    "Created: 15.4.1996 / 16:05:50 / cg"
083530508d9c intitial checkin
cg
parents:
diff changeset
    74
    "Modified: 15.4.1996 / 16:26:44 / cg"
083530508d9c intitial checkin
cg
parents:
diff changeset
    75
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
    76
90
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    77
!JavaUnresolvedFieldrefConstant  class methodsFor:'documentation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    78
083530508d9c intitial checkin
cg
parents:
diff changeset
    79
version
90
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    80
    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedFieldrefConstant.st,v 1.5 1996/06/28 21:39:53 cg Exp $'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    81
! !