JavaBuiltInClassPointerRef.st
author cg
Fri, 22 Nov 2002 20:14:07 +0000
changeset 713 75e92ac63bf1
parent 625 b0d1764545b5
child 748 da0840b7798c
permissions -rw-r--r--
category change
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
454
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
     1
"
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
     3
              All Rights Reserved
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
     4
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
     5
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
     6
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
     8
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
     9
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    10
 hereby transferred.
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    11
"
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    12
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    13
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    14
713
75e92ac63bf1 category change
cg
parents: 625
diff changeset
    15
"{ Package: 'stx:libjava' }"
75e92ac63bf1 category change
cg
parents: 625
diff changeset
    16
106
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
    17
JavaClassRef subclass:#JavaBuiltInClassPointerRef
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
    18
	instanceVariableNames:''
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
    19
	classVariableNames:''
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
    20
	poolDictionaries:''
713
75e92ac63bf1 category change
cg
parents: 625
diff changeset
    21
	category:'Languages-Java-Reader-Support'
106
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
    22
!
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
    23
454
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    24
!JavaBuiltInClassPointerRef class methodsFor:'documentation'!
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    25
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    26
copyright
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    27
"
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    28
 COPYRIGHT (c) 1997 by eXept Software AG
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    29
              All Rights Reserved
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    30
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    31
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    32
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    33
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    34
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    35
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    36
 hereby transferred.
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    37
"
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    38
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    39
38f590639d65 *** empty log message ***
cg
parents: 406
diff changeset
    40
! !
106
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
    41
260
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    42
!JavaBuiltInClassPointerRef methodsFor:'accessing'!
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    43
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    44
nameandType:aJavaNameandType
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    45
    nameandType := aJavaNameandType.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    46
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    47
    nameandType = '[B' ifTrue:[    "/ byte[]
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    48
        class := ByteArray.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    49
        ^ self
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    50
    ].
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    51
    nameandType = '[Z' ifTrue:[    "/ boolean[]
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    52
        class := ByteArray.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    53
        ^ self
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    54
    ].
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    55
    nameandType = '[I' ifTrue:[     "/ int[]
261
d95d5a3cc475 lots of new stuff
cg
parents: 260
diff changeset
    56
        class := SignedIntegerArray.
260
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    57
        ^ self
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    58
    ].
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    59
    nameandType = '[J' ifTrue:[     "/ long[]
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    60
        class := Array.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    61
        ^ self
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    62
    ].
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    63
    nameandType = '[S' ifTrue:[     "/ short[]
261
d95d5a3cc475 lots of new stuff
cg
parents: 260
diff changeset
    64
        class := SignedWordArray.
260
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    65
        ^ self
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    66
    ].
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    67
    nameandType = '[C' ifTrue:[     "/ char[]
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    68
        class := String.      "/ should be TwoByteString ...
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    69
        ^ self
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    70
    ].
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    71
    nameandType = '[F' ifTrue:[     "/ float[]
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    72
        class := FloatArray.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    73
        ^ self
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    74
    ].
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    75
    nameandType = '[D' ifTrue:[     "/ double[]
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    76
        class := DoubleArray.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    77
        ^ self
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    78
    ].
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    79
"/    nameandType = '[[D' ifTrue:[    "/ double[][]
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    80
"/        ref := JavaBuiltInClassPointerRef class:DoubleArray nameandType:fullName.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    81
"/        constantPool at:constantPoolIndex put:ref.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    82
"/        ^ ref
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    83
"/    ].
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    84
"/    nameandType = '[[I' ifTrue:[    "/ int[][]
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    85
"/        ref := JavaBuiltInClassPointerRef class:Array nameandType:fullName.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    86
"/        constantPool at:constantPoolIndex put:ref.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    87
"/        ^ ref
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    88
"/    ].
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    89
    self halt.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    90
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    91
    "Modified: / 13.1.1998 / 00:08:04 / cg"
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    92
! !
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
    93
109
31342b9d745a checkin from browser
cg
parents: 106
diff changeset
    94
!JavaBuiltInClassPointerRef methodsFor:'printing & storing'!
31342b9d745a checkin from browser
cg
parents: 106
diff changeset
    95
31342b9d745a checkin from browser
cg
parents: 106
diff changeset
    96
displayString
31342b9d745a checkin from browser
cg
parents: 106
diff changeset
    97
    ^ self class name , '(class:' , class name , ' ; name&type: ' , nameandType displayString , ')'
31342b9d745a checkin from browser
cg
parents: 106
diff changeset
    98
31342b9d745a checkin from browser
cg
parents: 106
diff changeset
    99
406
4811e38b2d90 *** empty log message ***
cg
parents: 395
diff changeset
   100
!
4811e38b2d90 *** empty log message ***
cg
parents: 395
diff changeset
   101
4811e38b2d90 *** empty log message ***
cg
parents: 395
diff changeset
   102
fullName
4811e38b2d90 *** empty log message ***
cg
parents: 395
diff changeset
   103
    ^ class name
4811e38b2d90 *** empty log message ***
cg
parents: 395
diff changeset
   104
4811e38b2d90 *** empty log message ***
cg
parents: 395
diff changeset
   105
    "Created: / 20.10.1998 / 23:02:48 / cg"
109
31342b9d745a checkin from browser
cg
parents: 106
diff changeset
   106
! !
31342b9d745a checkin from browser
cg
parents: 106
diff changeset
   107
106
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   108
!JavaBuiltInClassPointerRef methodsFor:'queries'!
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   109
260
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   110
arrayClass
395
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   111
    |tc|
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   112
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   113
    nameandType size >= 2 ifTrue:[
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   114
        (nameandType at:1) == $[ ifTrue:[
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   115
            tc := nameandType at:2.
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   116
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   117
            ( tc == $[ ) ifTrue:[
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   118
                ^ Array
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   119
            ].
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   120
            ( tc == $I ) ifTrue:[
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   121
                ^ SignedIntegerArray
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   122
            ].
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   123
            ( tc == $B ) ifTrue:[
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   124
                ^ ByteArray
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   125
            ].
601
7e45fca24adf checkin from browser
cg
parents: 564
diff changeset
   126
            ( tc == $Z ) ifTrue:[  "/ Boolean array
7e45fca24adf checkin from browser
cg
parents: 564
diff changeset
   127
                ^ ByteArray
7e45fca24adf checkin from browser
cg
parents: 564
diff changeset
   128
            ].
395
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   129
            ( tc == $C ) ifTrue:[
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   130
                ^ String "/ soon: TwoByteString
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   131
            ].
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   132
            ( tc == $D ) ifTrue:[
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   133
                ^ DoubleArray 
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   134
            ].
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   135
            ( tc == $F ) ifTrue:[
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   136
                ^ FloatArray 
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   137
            ].
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   138
        ].
394
1a853ab08431 checkin from browser
cg
parents: 317
diff changeset
   139
    ].
260
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   140
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   141
self halt.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   142
    ^ self
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   143
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   144
    "Created: / 13.1.1998 / 00:02:39 / cg"
395
ea3f9047f937 *** empty log message ***
cg
parents: 394
diff changeset
   145
    "Modified: / 20.10.1998 / 15:05:13 / cg"
260
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   146
!
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   147
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   148
asClassPointerRef
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   149
    ^ self
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   150
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   151
    "Created: / 13.1.1998 / 00:01:02 / cg"
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   152
    "Modified: / 13.1.1998 / 00:10:00 / cg"
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   153
!
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   154
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   155
deref
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   156
    (nameandType startsWith:'[[') ifTrue:[
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   157
        ^ self class new nameandType:(nameandType copyFrom:2)
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   158
    ].
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   159
    self halt.
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   160
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   161
    "Created: / 13.1.1998 / 00:03:44 / cg"
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   162
    "Modified: / 13.1.1998 / 00:09:15 / cg"
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   163
!
fd810b2b7be0 checkin from browser
cg
parents: 135
diff changeset
   164
625
b0d1764545b5 checkin from browser
cg
parents: 601
diff changeset
   165
isJavaClassRef
b0d1764545b5 checkin from browser
cg
parents: 601
diff changeset
   166
    ^ false
b0d1764545b5 checkin from browser
cg
parents: 601
diff changeset
   167
b0d1764545b5 checkin from browser
cg
parents: 601
diff changeset
   168
    "Created: / 9.11.1999 / 17:16:55 / cg"
b0d1764545b5 checkin from browser
cg
parents: 601
diff changeset
   169
!
b0d1764545b5 checkin from browser
cg
parents: 601
diff changeset
   170
106
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   171
isUnresolved
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   172
    ^ false
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   173
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   174
    "Created: 2.7.1996 / 17:17:39 / cg"
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   175
!
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   176
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   177
javaClass
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   178
    ^ class
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   179
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   180
    "Created: 2.7.1996 / 17:19:43 / cg"
564
a21bc85208c8 checkin from browser
cg
parents: 454
diff changeset
   181
!
a21bc85208c8 checkin from browser
cg
parents: 454
diff changeset
   182
a21bc85208c8 checkin from browser
cg
parents: 454
diff changeset
   183
javaClassForNew
a21bc85208c8 checkin from browser
cg
parents: 454
diff changeset
   184
    ^ self
a21bc85208c8 checkin from browser
cg
parents: 454
diff changeset
   185
a21bc85208c8 checkin from browser
cg
parents: 454
diff changeset
   186
    "Created: 2.7.1996 / 17:19:43 / cg"
106
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   187
! !
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   188
135
098936234135 *** empty log message ***
cg
parents: 109
diff changeset
   189
!JavaBuiltInClassPointerRef class methodsFor:'documentation'!
106
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   190
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   191
version
713
75e92ac63bf1 category change
cg
parents: 625
diff changeset
   192
    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaBuiltInClassPointerRef.st,v 1.14 2002/11/22 20:11:28 cg Exp $'
106
5b192c18c7d8 intitial checkin
cg
parents:
diff changeset
   193
! !