JavaUnresolvedConstant.st
author cg
Mon, 07 Apr 1997 17:28:23 +0000
changeset 168 90e39cb3fa04
parent 135 098936234135
child 206 2200b9091b9e
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
083530508d9c intitial checkin
cg
parents:
diff changeset
     1
Object subclass:#JavaUnresolvedConstant
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
     2
	instanceVariableNames:'nextUnresolved prevUnresolved constantPool constantPoolIndex'
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
     3
	classVariableNames:'PatchLists'
1
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
135
098936234135 *** empty log message ***
cg
parents: 93
diff changeset
     9
!JavaUnresolvedConstant class methodsFor:'instance creation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    10
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    11
pool:aPool poolIndex:index
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    12
    ^ self new 
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    13
        pool:aPool poolIndex:index
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    14
083530508d9c intitial checkin
cg
parents:
diff changeset
    15
083530508d9c intitial checkin
cg
parents:
diff changeset
    16
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
    17
135
098936234135 *** empty log message ***
cg
parents: 93
diff changeset
    18
!JavaUnresolvedConstant class methodsFor:'queries'!
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    19
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    20
countUnresolved
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    21
    |u cnt|
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    22
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    23
    cnt := 0.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    24
    PatchLists do:[:patchList |
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    25
        u := patchList.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    26
        [u notNil] whileTrue:[
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    27
            cnt := cnt + 1.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    28
            u := u nextUnresolved
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    29
        ]
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    30
    ].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    31
    ^ cnt
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    32
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    33
    "
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    34
     self countUnresolved 
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    35
    "
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    36
! !
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    37
135
098936234135 *** empty log message ***
cg
parents: 93
diff changeset
    38
!JavaUnresolvedConstant class methodsFor:'resolving'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    39
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    40
flushPatchLists
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    41
    PatchLists := nil
93
2b1e50b70bb1 checkin from browser
cg
parents: 90
diff changeset
    42
!
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    43
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    44
resolveFor:aJavaClass
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    45
    "a JAVA class has been loaded - resolve what can be"
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    46
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    47
    |patchList unresolved nameSymbol|
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    48
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    49
"/ 'resolving: ' print. aJavaClass fullName printCR.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    50
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    51
    PatchLists isNil ifTrue:[^ self].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    52
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    53
    nameSymbol := aJavaClass fullName asSymbol.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    54
    patchList := PatchLists at:nameSymbol ifAbsent:nil.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    55
    patchList notNil ifTrue:[
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    56
        PatchLists removeKey:nameSymbol.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    57
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    58
        [patchList notNil] whileTrue:[
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    59
            unresolved := patchList.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    60
            patchList := unresolved nextUnresolved.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    61
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    62
            unresolved prevUnresolved:nil.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    63
            unresolved nextUnresolved:nil.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    64
            unresolved preResolve.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    65
        ]
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    66
    ].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    67
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    68
!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    69
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    70
unresolvedClassNames
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    71
    "return a collection of unresolved class names"
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    72
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    73
    PatchLists isNil ifTrue:[^ #()].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    74
    ^ PatchLists keys 
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    75
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    76
    "
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    77
     self unresolvedClassNames 
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    78
    "
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    79
! !
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    80
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    81
!JavaUnresolvedConstant methodsFor:'accessing'!
083530508d9c intitial checkin
cg
parents:
diff changeset
    82
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    83
constantPool
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    84
    ^ constantPool
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    85
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    86
    "Created: 15.4.1996 / 15:59:45 / cg"
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    87
!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    88
168
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
    89
constantPool:aPool
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
    90
    constantPool := aPool
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
    91
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
    92
    "Created: 7.4.1997 / 16:13:02 / cg"
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
    93
!
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
    94
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    95
constantPoolIndex
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    96
    ^ constantPoolIndex
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    97
083530508d9c intitial checkin
cg
parents:
diff changeset
    98
    "Created: 15.4.1996 / 15:59:45 / cg"
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    99
!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   100
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   101
nextUnresolved
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   102
    ^ nextUnresolved
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   103
!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   104
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   105
nextUnresolved:anUnresolvedConstant
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   106
    nextUnresolved := anUnresolvedConstant
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   107
!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   108
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   109
pool:aPool poolIndex:i
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   110
    constantPool := aPool.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   111
    constantPoolIndex := i
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   112
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   113
    "Created: 15.4.1996 / 15:59:45 / cg"
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   114
!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   115
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   116
prevUnresolved:anUnresolvedConstant
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   117
    prevUnresolved := anUnresolvedConstant
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   118
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
   119
83
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   120
!JavaUnresolvedConstant methodsFor:'printing & storing'!
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   121
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   122
displayString
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   123
    ^ (self class name) , '( idx= ' , constantPoolIndex printString , ')'
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   124
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   125
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   126
! !
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   127
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   128
!JavaUnresolvedConstant methodsFor:'queries'!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   129
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   130
isUnresolved
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   131
    ^ true
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   132
! !
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   133
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   134
!JavaUnresolvedConstant methodsFor:'resolving'!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   135
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   136
preResolve
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   137
    self subclassResponsibility.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   138
    ^ self
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   139
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   140
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   141
!
83
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   142
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   143
rememberForResolveWith:aFullClassName
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   144
    |patchList nameSymbol|
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   145
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   146
    prevUnresolved notNil ifTrue:[^ self].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   147
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   148
    PatchLists isNil ifTrue:[
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   149
        PatchLists := IdentityDictionary new.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   150
    ].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   151
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   152
    nameSymbol := aFullClassName asSymbol.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   153
    patchList := PatchLists at:nameSymbol ifAbsent:nil.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   154
    patchList isNil ifTrue:[
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   155
"/        ('first patch for: ' , aFullClassName) printCR.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   156
    ] ifFalse:[
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   157
        patchList prevUnresolved:self.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   158
        nextUnresolved := patchList.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   159
    ].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   160
    PatchLists at:nameSymbol put:self.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   161
    prevUnresolved := #startOfList.
83
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   162
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   163
! !
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   164
135
098936234135 *** empty log message ***
cg
parents: 93
diff changeset
   165
!JavaUnresolvedConstant class methodsFor:'documentation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   166
083530508d9c intitial checkin
cg
parents:
diff changeset
   167
version
168
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
   168
    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedConstant.st,v 1.6 1997/04/07 17:26:33 cg Exp $'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   169
! !