JavaUnresolvedFieldrefConstant.st
author Stefan Vogel <sv@exept.de>
Tue, 08 Nov 2005 17:49:17 +0100
changeset 2121 7b06266d8249
parent 2108 ca8c4e7db2e8
permissions -rw-r--r--
/tmp/cvsyRpZ5v
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
454
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
     1
"
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
     3
              All Rights Reserved
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
     4
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
     5
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
     6
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
     8
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
     9
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    10
 hereby transferred.
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    11
"
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    12
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    13
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    14
713
75e92ac63bf1 category change
cg
parents: 600
diff changeset
    15
"{ Package: 'stx:libjava' }"
75e92ac63bf1 category change
cg
parents: 600
diff changeset
    16
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    17
JavaUnresolvedRefConstant subclass:#JavaUnresolvedFieldrefConstant
90
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    18
	instanceVariableNames:'classIndex'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    19
	classVariableNames:''
083530508d9c intitial checkin
cg
parents:
diff changeset
    20
	poolDictionaries:''
713
75e92ac63bf1 category change
cg
parents: 600
diff changeset
    21
	category:'Languages-Java-Reader-Support'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    22
!
083530508d9c intitial checkin
cg
parents:
diff changeset
    23
454
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    24
!JavaUnresolvedFieldrefConstant class methodsFor:'documentation'!
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    25
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    26
copyright
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    27
"
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    28
 COPYRIGHT (c) 1997 by eXept Software AG
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    29
              All Rights Reserved
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    30
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    31
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    32
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    33
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    34
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    35
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    36
 hereby transferred.
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    37
"
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    38
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    39
38f590639d65 *** empty log message ***
cg
parents: 264
diff changeset
    40
! !
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    41
135
098936234135 *** empty log message ***
cg
parents: 93
diff changeset
    42
!JavaUnresolvedFieldrefConstant class methodsFor:'instance creation'!
90
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    43
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    44
pool:aPool poolIndex:idx classIndex:cIdx nameandTypeIndex:nmIdx
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    45
    ^ self new 
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    46
        pool:aPool poolIndex:idx classIndex:cIdx nameandTypeIndex:nmIdx
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    47
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    48
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    49
! !
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    50
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    51
!JavaUnresolvedFieldrefConstant methodsFor:'accessing'!
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    52
163
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    53
name
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    54
    |ref cls nameAndType|
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    55
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    56
    self isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    57
        ref := self preResolve.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    58
        ref isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    59
            ^ ref name
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    60
        ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    61
        nameAndType := (constantPool at:nameandTypeIndex).
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    62
        nameAndType isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    63
            nameAndType displayString printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    64
        ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    65
        ^ nameAndType name
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    66
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    67
('unresolved type: ' , self displayString) printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    68
    ^ self
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    69
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    70
    "Modified: 24.3.1997 / 13:02:56 / cg"
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    71
    "Created: 24.3.1997 / 13:09:26 / cg"
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    72
!
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    73
90
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    74
pool:aPool poolIndex:slotIndex classIndex:cIdx nameandTypeIndex:nmIdx  
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    75
    constantPool := aPool.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    76
    constantPoolIndex := slotIndex.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    77
    classIndex := cIdx.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    78
    nameandTypeIndex := nmIdx
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    79
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    80
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
    81
163
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    82
!
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    83
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    84
type
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    85
    |ref cls nameAndType|
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    86
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    87
    self isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    88
        ref := self preResolve.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    89
        ref isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    90
            ^ ref type
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    91
        ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    92
        nameAndType := (constantPool at:nameandTypeIndex).
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    93
        nameAndType isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    94
            nameAndType displayString printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    95
        ].
255
2d8b3948a08a *** empty log message ***
cg
parents: 163
diff changeset
    96
        ^ JavaMethod typeFromSignature:nameAndType signature in:nil.
163
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    97
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    98
('unresolved type: ' , self displayString) printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    99
    ^ self
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   100
255
2d8b3948a08a *** empty log message ***
cg
parents: 163
diff changeset
   101
    "Modified: / 8.1.1998 / 19:14:05 / cg"
90
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   102
! !
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   103
600
78174752509d checkin from browser
cg
parents: 454
diff changeset
   104
!JavaUnresolvedFieldrefConstant methodsFor:'printing & storing'!
78174752509d checkin from browser
cg
parents: 454
diff changeset
   105
78174752509d checkin from browser
cg
parents: 454
diff changeset
   106
displayString
78174752509d checkin from browser
cg
parents: 454
diff changeset
   107
    |classOrClassRef className nameAndType fieldName|
78174752509d checkin from browser
cg
parents: 454
diff changeset
   108
78174752509d checkin from browser
cg
parents: 454
diff changeset
   109
    classOrClassRef := (constantPool at:classIndex).
78174752509d checkin from browser
cg
parents: 454
diff changeset
   110
    className := classOrClassRef fullName.
78174752509d checkin from browser
cg
parents: 454
diff changeset
   111
78174752509d checkin from browser
cg
parents: 454
diff changeset
   112
    nameAndType := (constantPool at:nameandTypeIndex).
78174752509d checkin from browser
cg
parents: 454
diff changeset
   113
    nameAndType isUnresolved ifTrue:[
78174752509d checkin from browser
cg
parents: 454
diff changeset
   114
        nameAndType := nameAndType preResolve.
78174752509d checkin from browser
cg
parents: 454
diff changeset
   115
    ].
78174752509d checkin from browser
cg
parents: 454
diff changeset
   116
    fieldName := nameAndType name.
78174752509d checkin from browser
cg
parents: 454
diff changeset
   117
    ^ (self class name) , '( idx= ' , constantPoolIndex printString , ' class= ' , className , ' field= ' , fieldName ,')'
78174752509d checkin from browser
cg
parents: 454
diff changeset
   118
78174752509d checkin from browser
cg
parents: 454
diff changeset
   119
78174752509d checkin from browser
cg
parents: 454
diff changeset
   120
! !
78174752509d checkin from browser
cg
parents: 454
diff changeset
   121
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   122
!JavaUnresolvedFieldrefConstant methodsFor:'resolving'!
083530508d9c intitial checkin
cg
parents:
diff changeset
   123
90
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   124
preResolve
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   125
    |className class nameAndType ref|
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   126
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   127
    class := (constantPool at:classIndex).
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   128
    class isUnresolved ifTrue:[
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   129
        class := class preResolve.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   130
    ].
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   131
    class isUnresolved ifFalse:[
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   132
        nameAndType := (constantPool at:nameandTypeIndex).
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   133
        nameAndType isUnresolved ifTrue:[
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   134
            nameAndType := nameAndType preResolve.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   135
        ].
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   136
        nameAndType isUnresolved ifFalse:[
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   137
            "/ good - class is there
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   138
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   139
            ref := JavaFieldref class:class nameandType:nameAndType.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   140
            constantPool at:constantPoolIndex put:ref.
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   141
            ^ ref
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   142
        ]
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   143
    ].
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   144
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   145
    self rememberForResolveWith:(class fullName).
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   146
    ^ self
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   147
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   148
    "Created: 15.4.1996 / 16:05:50 / cg"
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   149
    "Modified: 15.4.1996 / 16:26:44 / cg"
600
78174752509d checkin from browser
cg
parents: 454
diff changeset
   150
!
78174752509d checkin from browser
cg
parents: 454
diff changeset
   151
78174752509d checkin from browser
cg
parents: 454
diff changeset
   152
resolveStatic
78174752509d checkin from browser
cg
parents: 454
diff changeset
   153
self halt.
78174752509d checkin from browser
cg
parents: 454
diff changeset
   154
    ^ self
78174752509d checkin from browser
cg
parents: 454
diff changeset
   155
90
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   156
! !
918e2740098c resolve rewritten
cg
parents: 41
diff changeset
   157
135
098936234135 *** empty log message ***
cg
parents: 93
diff changeset
   158
!JavaUnresolvedFieldrefConstant class methodsFor:'documentation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   159
083530508d9c intitial checkin
cg
parents:
diff changeset
   160
version
2108
ca8c4e7db2e8 category change
Claus Gittinger <cg@exept.de>
parents: 748
diff changeset
   161
    ^ '$Header: /cvs/stx/stx/libjava/Attic/JavaUnresolvedFieldrefConstant.st,v 1.13 2002-11-22 20:11:42 cg Exp $'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   162
! !