JavaUnresolvedMethodrefConstant.st
author cg
Mon, 16 Nov 1998 15:17:54 +0000
changeset 454 38f590639d65
parent 399 94d37f2032a1
child 596 1649256b9b6d
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
454
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     1
"
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     3
              All Rights Reserved
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     4
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     5
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     6
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     8
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     9
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    10
 hereby transferred.
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    11
"
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    12
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    13
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    14
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    15
JavaUnresolvedRefConstant subclass:#JavaUnresolvedMethodrefConstant
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    16
	instanceVariableNames:'classIndex'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    17
	classVariableNames:''
083530508d9c intitial checkin
cg
parents:
diff changeset
    18
	poolDictionaries:''
083530508d9c intitial checkin
cg
parents:
diff changeset
    19
	category:'Java-Reader-Support'
083530508d9c intitial checkin
cg
parents:
diff changeset
    20
!
083530508d9c intitial checkin
cg
parents:
diff changeset
    21
454
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    22
!JavaUnresolvedMethodrefConstant class methodsFor:'documentation'!
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    23
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    24
copyright
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    25
"
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    26
 COPYRIGHT (c) 1997 by eXept Software AG
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    27
              All Rights Reserved
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    28
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    29
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    30
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    32
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    33
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    34
 hereby transferred.
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    35
"
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    36
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    37
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    38
! !
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    39
135
098936234135 *** empty log message ***
cg
parents: 90
diff changeset
    40
!JavaUnresolvedMethodrefConstant class methodsFor:'instance creation'!
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    41
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    42
pool:aPool poolIndex:idx classIndex:cIdx nameandTypeIndex:nmIdx 
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    43
    ^ self new 
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    44
        pool:aPool poolIndex:idx classIndex:cIdx nameandTypeIndex:nmIdx
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    45
! !
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    46
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    47
!JavaUnresolvedMethodrefConstant methodsFor:'accessing'!
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    48
163
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    49
argSignature
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    50
    |ref cls nameAndType|
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    51
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    52
    self isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    53
        self halt
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    54
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    55
    ref := self preResolve.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    56
    ref isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    57
        ^ ref argSignature
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    58
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    59
    nameAndType := (constantPool at:nameandTypeIndex).
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    60
    nameAndType isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    61
        nameAndType displayString printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    62
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    63
    ^ JavaMethod argSigArrayFromSignature:(nameAndType signature)
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    64
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    65
    "Modified: 24.3.1997 / 13:05:57 / cg"
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    66
!
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    67
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    68
javaClass
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    69
    |ref cls|
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    70
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    71
    self isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    72
        self halt
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    73
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    74
    ref := self preResolve.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    75
    ref isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    76
        ^ ref javaClass
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    77
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    78
    cls := constantPool at:classIndex.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    79
    ^ cls
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    80
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    81
    "Created: 24.3.1997 / 13:03:59 / cg"
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
method
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 method
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    91
        ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    92
        (cls := constantPool at:classIndex) isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    93
            cls displayString printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    94
        ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    95
        nameAndType := (constantPool at:nameandTypeIndex).
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    96
        nameAndType isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    97
            nameAndType displayString printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    98
        ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    99
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   100
('unresolved mthod: ' , self displayString) printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   101
    ^ self
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   102
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   103
    "Modified: 24.3.1997 / 13:02:56 / cg"
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   104
!
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   105
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   106
name
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   107
    |ref cls nameAndType|
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   108
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   109
    self isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   110
        self halt
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   111
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   112
    ref := self preResolve.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   113
    ref isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   114
        ^ ref name
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   115
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   116
    nameAndType := (constantPool at:nameandTypeIndex).
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   117
    nameAndType isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   118
        nameAndType displayString printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   119
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   120
    ^ nameAndType name
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   121
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   122
    "Modified: 24.3.1997 / 13:05:57 / cg"
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   123
    "Created: 24.3.1997 / 13:06:58 / cg"
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   124
!
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   125
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   126
pool:aPool poolIndex:idx classIndex:cIdx nameandTypeIndex:nmIdx
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   127
    constantPool := aPool.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   128
    constantPoolIndex := idx.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   129
    classIndex := cIdx.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   130
    nameandTypeIndex := nmIdx
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   131
163
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   132
!
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   133
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   134
returnType
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   135
    |ref cls nameAndType|
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   136
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   137
    self isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   138
        self halt
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   139
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   140
    ref := self preResolve.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   141
    ref isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   142
        ^ ref returnType
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   143
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   144
    nameAndType := (constantPool at:nameandTypeIndex).
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   145
    nameAndType isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   146
        nameAndType displayString printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   147
    ].
255
2d8b3948a08a *** empty log message ***
cg
parents: 163
diff changeset
   148
    ^ JavaMethod returnTypeFromSignature:(nameAndType signature) in:nil.
163
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   149
255
2d8b3948a08a *** empty log message ***
cg
parents: 163
diff changeset
   150
    "Created: / 24.3.1997 / 13:07:45 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 163
diff changeset
   151
    "Modified: / 8.1.1998 / 19:07:47 / cg"
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   152
! !
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   153
399
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   154
!JavaUnresolvedMethodrefConstant methodsFor:'queries'!
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   155
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   156
isUnresolvedMethod
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   157
    ^ true
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   158
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   159
    "Created: / 20.10.1998 / 17:43:19 / cg"
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   160
! !
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   161
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   162
!JavaUnresolvedMethodrefConstant methodsFor:'resolving'!
083530508d9c intitial checkin
cg
parents:
diff changeset
   163
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   164
preResolve
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   165
    |nameAndType class ref|
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   166
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   167
    "/ first, resolve the nameAndType & signature ...
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   168
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   169
    class := (constantPool at:classIndex).
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   170
    class isUnresolved ifTrue:[
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   171
        class := class preResolve.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   172
    ].
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   173
    class isUnresolved ifFalse:[
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   174
        nameAndType := (constantPool at:nameandTypeIndex).
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   175
        nameAndType isUnresolved ifTrue:[
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   176
            nameAndType := nameAndType preResolve.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   177
        ].
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   178
        nameAndType isUnresolved ifFalse:[
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   179
            "/ ok, got them
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   180
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   181
            ref := JavaMethodref class:class nameandType:nameAndType.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   182
            constantPool at:constantPoolIndex put:ref.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   183
            ^ ref
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   184
        ]
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   185
    ].
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   186
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   187
    self rememberForResolveWith:(class fullName).
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   188
    ^ self
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   189
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   190
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
   191
135
098936234135 *** empty log message ***
cg
parents: 90
diff changeset
   192
!JavaUnresolvedMethodrefConstant class methodsFor:'documentation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   193
083530508d9c intitial checkin
cg
parents:
diff changeset
   194
version
454
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
   195
    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedMethodrefConstant.st,v 1.10 1998/11/16 15:16:31 cg Exp $'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   196
! !