JavaFieldref.st
author cg
Thu, 27 Jun 1996 18:38:57 +0000
changeset 87 e9d58a151a63
parent 83 2d61ef3579e4
child 90 918e2740098c
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
JavaRef subclass:#JavaFieldref
80
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
     2
	instanceVariableNames:'offset type'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
     3
	classVariableNames:''
083530508d9c intitial checkin
cg
parents:
diff changeset
     4
	poolDictionaries:''
4
07264ed96b97 checkin from browser
cg
parents: 1
diff changeset
     5
	category:'Java-Reader-Support'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
     6
!
083530508d9c intitial checkin
cg
parents:
diff changeset
     7
083530508d9c intitial checkin
cg
parents:
diff changeset
     8
41
eb7974d88088 checkin from browser
cg
parents: 27
diff changeset
     9
!JavaFieldref methodsFor:'printing & storing'!
eb7974d88088 checkin from browser
cg
parents: 27
diff changeset
    10
eb7974d88088 checkin from browser
cg
parents: 27
diff changeset
    11
displayString
87
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    12
    class isNil ifTrue:[
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    13
        ^ 'JavaFieldRef ( ** unknown class ** ''' , nameandType displayString , ''')'
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    14
    ].
41
eb7974d88088 checkin from browser
cg
parents: 27
diff changeset
    15
    ^ 'JavaFieldRef (' , class fullName , ' ' 
eb7974d88088 checkin from browser
cg
parents: 27
diff changeset
    16
                        , '''' , nameandType name , '''' , nameandType signature , ')'
eb7974d88088 checkin from browser
cg
parents: 27
diff changeset
    17
! !
eb7974d88088 checkin from browser
cg
parents: 27
diff changeset
    18
27
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    19
!JavaFieldref methodsFor:'resolving'!
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    20
80
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    21
isDouble
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
    22
    ^ (JavaMethod typeFromSignature:nameandType signature) == #double
80
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    23
!
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    24
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    25
isLong
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
    26
    ^ (JavaMethod typeFromSignature:nameandType signature) == #long
80
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    27
!
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    28
54
f37bcefb7091 avoid loading classes twice
cg
parents: 43
diff changeset
    29
name
f37bcefb7091 avoid loading classes twice
cg
parents: 43
diff changeset
    30
    ^ nameandType name
f37bcefb7091 avoid loading classes twice
cg
parents: 43
diff changeset
    31
!
f37bcefb7091 avoid loading classes twice
cg
parents: 43
diff changeset
    32
27
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    33
offset
87
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    34
    |nm sig cls|
27
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    35
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    36
    offset notNil ifTrue:[^ offset].
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    37
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    38
    (class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
87
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    39
        cls := class resolve.
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    40
        cls notNil ifTrue:[
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    41
            class := cls
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    42
        ].
27
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    43
    ].
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    44
    (class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
87
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    45
        self halt:'unresolved class'.
27
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    46
    ].
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    47
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    48
    nm := nameandType name asSymbol.
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    49
    sig := nameandType signature.
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    50
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
    51
    type := JavaMethod typeFromSignature:sig.
27
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    52
    offset := class instVarOffsetOf:nm.
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    53
    ^ offset.
43
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    54
!
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    55
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    56
staticOffset
87
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    57
    |nm sig mthd cls|
43
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    58
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    59
    offset notNil ifTrue:[^ offset].
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    60
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    61
    (class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
87
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    62
        cls := class resolve.
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    63
        cls notNil ifTrue:[
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    64
            class := cls
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    65
        ]
43
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    66
    ].
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    67
    (class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
87
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    68
        self halt:'unresolved class'.
43
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    69
    ].
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    70
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    71
    nm := nameandType name asSymbol.
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    72
    sig := nameandType signature.
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    73
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    74
    offset := class class instVarOffsetOf:nm.
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
    75
    ^ offset.
80
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    76
!
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    77
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    78
type
87
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    79
    |sig cls|
80
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    80
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    81
    type notNil ifTrue:[^ type].
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    82
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    83
    (class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
87
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    84
        cls := class resolve.
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    85
        cls notNil ifTrue:[
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    86
            class := cls
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    87
        ]
80
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    88
    ].
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    89
    (class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
87
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
    90
        self halt:'unresolved class'.
80
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    91
    ].
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    92
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    93
    sig := nameandType signature.
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    94
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
    95
    type := JavaMethod typeFromSignature:sig.
80
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    96
    ^ type.
27
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    97
! !
4560bb77bb36 checkin from browser
cg
parents: 13
diff changeset
    98
80
f08d2cab0b55 *** empty log message ***
cg
parents: 54
diff changeset
    99
!JavaFieldref  class methodsFor:'documentation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   100
083530508d9c intitial checkin
cg
parents:
diff changeset
   101
version
87
e9d58a151a63 *** empty log message ***
cg
parents: 83
diff changeset
   102
    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaFieldref.st,v 1.11 1996/06/27 18:38:11 cg Exp $'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   103
! !