--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaClass.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,36 @@
+ClassDescription subclass:#JavaClass
+ instanceVariableNames:'accessFlags'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Java-Classes'
+!
+
+
+!JavaClass class methodsFor:'instance creation'!
+
+name:aString
+ ^ self new setName:aString
+
+ "Created: 15.4.1996 / 15:52:55 / cg"
+! !
+
+!JavaClass methodsFor:'printing & storing'!
+
+displayString
+ ^ self class name , '(' , name , ')'
+
+ "Created: 15.4.1996 / 16:02:48 / cg"
+! !
+
+!JavaClass methodsFor:'private accessing'!
+
+setAccessFlags:flags
+
+ "Created: 15.4.1996 / 16:42:52 / cg"
+! !
+
+!JavaClass class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClass.st,v 1.1 1996/04/15 14:56:48 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaClassReader.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,489 @@
+Object subclass:#JavaClassReader
+ instanceVariableNames:'inStream msb constants this_class super_class'
+ classVariableNames:'Verbose'
+ poolDictionaries:''
+ category:'Java-Support'
+!
+
+
+!JavaClassReader class methodsFor:'initialization'!
+
+initialize
+ Verbose := false
+! !
+
+!JavaClassReader class methodsFor:'debugging'!
+
+verbose:aBoolean
+ Verbose := aBoolean
+
+ "
+ JavaClassReader verbose:true
+ JavaClassReader verbose:false
+ "
+! !
+
+!JavaClassReader class methodsFor:'file reading'!
+
+readFile:aFilename
+ |inStream retVal|
+
+ inStream := aFilename asFilename readStream.
+ inStream isNil ifTrue:[^ nil].
+ retVal := self readStream:inStream.
+ inStream close.
+ ^ retVal
+
+ "Created: 15.4.1996 / 14:58:53 / cg"
+!
+
+readStream:aStream
+ ^ self new readStream:aStream
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Modified: 15.4.1996 / 15:01:30 / cg"
+! !
+
+!JavaClassReader methodsFor:'file reading'!
+
+readAttribute
+ |attribute_name attribute_length attribute_info|
+
+ attribute_name := self nextU2.
+ attribute_length := self nextU4.
+ attribute_info := ByteArray new:(attribute_length).
+ inStream nextBytes:attribute_length into:attribute_info startingAt:1.
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Modified: 15.4.1996 / 15:33:28 / cg"
+ "Created: 15.4.1996 / 15:40:17 / cg"
+!
+
+readClassFile
+ |magic version
+ access_flags this_class_index super_class_index|
+
+ "/
+ "/ read magic, determine byte order
+ "/
+ msb := true.
+ magic := self nextU4.
+ magic = 16rCAFEBABE ifFalse:[
+ magic = 16rBEBAFECA ifFalse:[
+ self error:'not a java class file'.
+ ^ nil
+ ].
+ msb := false.
+ Verbose ifTrue:[Transcript showCr:'file is lsb'].
+ ] ifTrue:[
+ Verbose ifTrue:[Transcript showCr:'file is msb'].
+ ].
+
+ "/
+ "/ get version
+ "/
+ version := self nextU4.
+ Verbose ifTrue:[Transcript show:'version = '; showCr:version].
+
+ "/
+ "/ get constant pool
+ "/
+ self readConstantPool.
+
+ "/
+ "/ access flags
+ "/
+ access_flags := self nextU2.
+ this_class_index := self nextU2.
+ super_class_index := self nextU2.
+
+ this_class := constants at:this_class_index.
+ super_class := constants at:super_class_index.
+
+ this_class setAccessFlags:access_flags.
+
+ "/
+ "/ get interfaces
+ "/
+ self readInterfaces.
+
+ "/
+ "/ get fields
+ "/
+ self readFieldInfofields.
+
+ "/
+ "/ get methods
+ "/
+ self readMethods.
+
+self halt.
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/Alignable.class'
+ "
+
+ "Created: 15.4.1996 / 15:02:47 / cg"
+ "Modified: 15.4.1996 / 16:51:48 / cg"
+!
+
+readConstant
+ |tag constReader const|
+
+
+ "/
+ "/ get tag
+ "/
+ tag := self nextU1.
+ Verbose ifTrue:[Transcript show:'tag = '; showCr:tag].
+
+ constReader := #(
+ readConstant_Asciz "/ 1
+ readConstant_Undef "/ 2
+ readConstant_Integer "/ 3
+ readConstant_Float "/ 4
+ readConstant_Long "/ 5
+ readConstant_Double "/ 6
+ readConstant_Class "/ 7
+ readConstant_String "/ 8
+ readConstant_Fieldref "/ 9
+ readConstant_Methodref "/ 10
+ readConstant_InterfaceMethodref "/ 11
+ readConstant_NameandType "/ 12
+ ) at:tag ifAbsent:[#readConstant_Undef].
+
+ ^ self perform:constReader.
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Created: 15.4.1996 / 15:46:32 / cg"
+ "Modified: 15.4.1996 / 15:47:00 / cg"
+!
+
+readConstantPool
+ |constantPoolCount const|
+
+ "/
+ "/ get constant pool
+ "/
+ constantPoolCount := self nextU2.
+ Verbose ifTrue:[Transcript show:'constantPoolCount = '; showCr:constantPoolCount].
+
+ constants := Array new:constantPoolCount-1.
+
+ 1 to:constantPoolCount-1 do:[:i |
+ Verbose ifTrue:[Transcript show:'const: '; showCr:i].
+ const := self readConstant.
+ constants at:i put:const
+ ].
+
+ 1 to:constantPoolCount-1 do:[:i |
+ |const|
+
+ const := constants at:i.
+ constants at:i put:(JavaUnresolvedConstant resolve:const from:constants).
+ ].
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/Alignable.class'
+ "
+
+ "Created: 15.4.1996 / 15:14:11 / cg"
+ "Modified: 15.4.1996 / 16:41:57 / cg"
+!
+
+readConstant_Asciz
+ |len string|
+
+ len := self nextU2.
+ string := String new:len.
+ inStream nextBytes:len into:string startingAt:1.
+
+ Verbose ifTrue:[Transcript show:'asciz; string= '; showCr:string].
+
+ ^ string
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/Alignable.class'
+ "
+
+ "Created: 15.4.1996 / 15:15:35 / cg"
+ "Modified: 15.4.1996 / 16:33:45 / cg"
+!
+
+readConstant_Class
+ |name_index|
+
+ name_index := self nextU2.
+
+ Verbose ifTrue:[Transcript show:'class; index= '; showCr:name_index].
+
+ ^ JavaUnresolvedClassConstant nameIndex:name_index
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Created: 15.4.1996 / 15:21:13 / cg"
+ "Modified: 15.4.1996 / 15:49:32 / cg"
+!
+
+readConstant_Fieldref
+ |class_index name_and_type_index|
+
+ class_index := self nextU2.
+ name_and_type_index := self nextU2.
+
+ Verbose ifTrue:[Transcript show:'fieldref; classindex= '; showCr:class_index].
+ Verbose ifTrue:[Transcript show:'fieldref; name&typeindex= '; showCr:name_and_type_index].
+
+ ^ JavaUnresolvedFieldrefConstant
+ classIndex:class_index
+ nameandTypeIndex:name_and_type_index
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Created: 15.4.1996 / 15:22:18 / cg"
+ "Modified: 15.4.1996 / 16:07:01 / cg"
+!
+
+readConstant_Integer
+ |value|
+
+ value := self nextU4.
+
+ Verbose ifTrue:[Transcript show:'integer; value= '; showCr:value].
+
+ ^ value
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/Alignable.class'
+ "
+
+ "Modified: 15.4.1996 / 15:42:16 / cg"
+ "Created: 15.4.1996 / 16:34:42 / cg"
+!
+
+readConstant_Methodref
+ |class_index name_and_type_index|
+
+ class_index := self nextU2.
+ name_and_type_index := self nextU2.
+
+ Verbose ifTrue:[Transcript show:'methodref; classindex= '; showCr:class_index].
+ Verbose ifTrue:[Transcript show:'methodref; name&typeindex= '; showCr:name_and_type_index].
+
+ ^ JavaUnresolvedMethodrefConstant
+ classIndex:class_index
+ nameandTypeIndex:name_and_type_index
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Created: 15.4.1996 / 15:22:37 / cg"
+ "Modified: 15.4.1996 / 16:07:19 / cg"
+!
+
+readConstant_NameandType
+ |name_index signature_index|
+
+ name_index := self nextU2.
+ signature_index := self nextU2.
+
+ Verbose ifTrue:[Transcript show:'methodref; nameindex= '; showCr:name_index].
+ Verbose ifTrue:[Transcript show:'methodref; signatureindex= '; showCr:signature_index].
+
+ ^ JavaUnresolvedNameandTypeConstant
+ nameIndex:name_index
+ signatureIndex:signature_index
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Created: 15.4.1996 / 15:23:43 / cg"
+ "Modified: 15.4.1996 / 16:17:16 / cg"
+!
+
+readConstant_String
+ |tag string_index|
+
+ string_index := self nextU2.
+
+ Verbose ifTrue:[Transcript show:'string; index= '; showCr:string_index].
+
+ ^ JavaUnresolvedStringConstant index:string_index
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Created: 15.4.1996 / 15:20:33 / cg"
+ "Modified: 15.4.1996 / 16:01:37 / cg"
+!
+
+readFieldInfofield
+ |access_flags name_index signature_index attributes_count|
+
+ access_flags := self nextU2.
+ name_index := self nextU2.
+ signature_index := self nextU2.
+ attributes_count := self nextU2.
+
+ 1 to:attributes_count do:[:i |
+ self readAttribute.
+ ].
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Modified: 15.4.1996 / 15:33:28 / cg"
+ "Created: 15.4.1996 / 15:38:43 / cg"
+!
+
+readFieldInfofields
+ |fieldsCount interface|
+
+ "/
+ "/ get interfaces
+ "/
+ fieldsCount := self nextU2.
+ Verbose ifTrue:[Transcript show:'fieldsCount = '; showCr:fieldsCount].
+
+ 1 to:fieldsCount do:[:i |
+ Verbose ifTrue:[Transcript show:'field: '; showCr:i].
+ self readFieldInfofield
+ ].
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Created: 15.4.1996 / 15:34:41 / cg"
+ "Modified: 15.4.1996 / 15:35:28 / cg"
+!
+
+readInterfaces
+ |interfacesCount interface|
+
+
+ "/
+ "/ get interfaces
+ "/
+ interfacesCount := self nextU2.
+ Verbose ifTrue:[Transcript show:'interfacesCount = '; showCr:interfacesCount].
+
+ 1 to:interfacesCount do:[:i |
+ Verbose ifTrue:[Transcript show:'interface: '; showCr:i].
+ interface = self nextU2
+ ].
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Created: 15.4.1996 / 15:31:59 / cg"
+ "Modified: 15.4.1996 / 15:33:28 / cg"
+!
+
+readMethod
+ |access_flags name_index signature_index attributes_counts attribute|
+
+
+ "/
+ "/ get a method
+ "/
+ access_flags := self nextU2.
+ name_index := self nextU2.
+ signature_index := self nextU2.
+ attributes_counts := self nextU2.
+
+ 1 to:attributes_counts do:[:i |
+ attribute = self readAttribute
+ ].
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Modified: 15.4.1996 / 15:33:28 / cg"
+ "Created: 15.4.1996 / 16:48:49 / cg"
+!
+
+readMethods
+ |methodsCount method|
+
+
+ "/
+ "/ get methods
+ "/
+ methodsCount := self nextU2.
+ Verbose ifTrue:[Transcript show:'methodsCount = '; showCr:methodsCount].
+
+ 1 to:methodsCount do:[:i |
+ Verbose ifTrue:[Transcript show:'method: '; showCr:i].
+ method = self readMethod
+ ].
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Modified: 15.4.1996 / 15:33:28 / cg"
+ "Created: 15.4.1996 / 16:46:30 / cg"
+!
+
+readStream:aStream
+ inStream := aStream.
+ inStream binary.
+ self readClassFile
+
+ "
+ JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class'
+ "
+
+ "Created: 15.4.1996 / 15:00:55 / cg"
+ "Modified: 15.4.1996 / 15:06:18 / cg"
+! !
+
+!JavaClassReader methodsFor:'low level reading'!
+
+nextU1
+ ^ inStream nextByte
+
+ "Created: 15.4.1996 / 15:15:43 / cg"
+!
+
+nextU2
+ ^ inStream nextUnsignedShortMSB:msb
+
+ "Created: 15.4.1996 / 15:12:25 / cg"
+!
+
+nextU4
+ ^ inStream nextUnsignedLongMSB:msb
+
+ "Created: 15.4.1996 / 15:04:28 / cg"
+! !
+
+!JavaClassReader class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaClassReader.st,v 1.1 1996/04/15 15:08:12 cg Exp $'
+! !
+JavaClassReader initialize!
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaFieldref.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,13 @@
+JavaRef subclass:#JavaFieldref
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Java-Classes'
+!
+
+
+!JavaFieldref class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaFieldref.st,v 1.1 1996/04/15 14:57:10 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaMethodref.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,13 @@
+JavaRef subclass:#JavaMethodref
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Java-Classes'
+!
+
+
+!JavaMethodref class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaMethodref.st,v 1.1 1996/04/15 14:57:37 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaNameandType.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,38 @@
+Object subclass:#JavaNameandType
+ instanceVariableNames:'name signature'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Java-Classes'
+!
+
+
+!JavaNameandType class methodsFor:'instance creation'!
+
+name:aString signature:signature
+ ^ self new name:aString signature:signature
+
+ "Created: 15.4.1996 / 16:17:14 / cg"
+! !
+
+!JavaNameandType methodsFor:'accessing'!
+
+name:aString signature:aSignature
+ name := aString.
+ signature := aSignature
+
+ "Created: 15.4.1996 / 16:16:47 / cg"
+! !
+
+!JavaNameandType methodsFor:'printing & storing'!
+
+displayString
+ ^ self class name , '(name:' , name , ' signature: ' , signature displayString , ')'
+
+ "Created: 15.4.1996 / 16:32:40 / cg"
+! !
+
+!JavaNameandType class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaNameandType.st,v 1.1 1996/04/15 14:57:47 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaRef.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,39 @@
+Object subclass:#JavaRef
+ instanceVariableNames:'class nameandType'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Java-Classes'
+!
+
+
+!JavaRef class methodsFor:'instance creation'!
+
+class:aJavaClass nameandType:nameAndType
+ ^ self new class:aJavaClass nameandType:nameAndType
+
+ "Created: 15.4.1996 / 16:10:49 / cg"
+! !
+
+!JavaRef methodsFor:'accessing'!
+
+class:aJavaClass nameandType:aJavanameAndType
+ class := aJavaClass.
+ nameandType := aJavanameAndType
+
+ "Modified: 15.4.1996 / 16:08:39 / cg"
+ "Created: 15.4.1996 / 16:10:37 / cg"
+! !
+
+!JavaRef methodsFor:'printing & storing'!
+
+displayString
+ ^ self class name , '(class:' , class displayString , ' ; name&type: ' , nameandType displayString , ')'
+
+ "Created: 15.4.1996 / 16:18:54 / cg"
+! !
+
+!JavaRef class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaRef.st,v 1.1 1996/04/15 14:57:57 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaUnresolvedClassConstant.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,31 @@
+JavaUnresolvedConstant subclass:#JavaUnresolvedClassConstant
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Java-Reader-Support'
+!
+
+
+!JavaUnresolvedClassConstant class methodsFor:'instance creation'!
+
+nameIndex:index
+ ^ self index:index
+! !
+
+!JavaUnresolvedClassConstant methodsFor:'resolving'!
+
+resolveFrom:aConstantTable
+ |name|
+
+ name := self class resolve:(aConstantTable at:index) from:aConstantTable.
+ ^ JavaClass name:name
+
+ "Created: 15.4.1996 / 15:51:42 / cg"
+ "Modified: 15.4.1996 / 16:26:05 / cg"
+! !
+
+!JavaUnresolvedClassConstant class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedClassConstant.st,v 1.1 1996/04/15 14:58:21 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaUnresolvedConstant.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,39 @@
+Object subclass:#JavaUnresolvedConstant
+ instanceVariableNames:'index'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Java-Reader-Support'
+!
+
+
+!JavaUnresolvedConstant class methodsFor:'instance creation'!
+
+index:index
+ ^ self new index:index
+
+
+! !
+
+!JavaUnresolvedConstant class methodsFor:'resolving'!
+
+resolve:aPossiblyUnresolvedConstant from:aConstantTable
+ (aPossiblyUnresolvedConstant isKindOf:JavaUnresolvedConstant) ifTrue:[
+ ^ aPossiblyUnresolvedConstant resolveFrom:aConstantTable
+ ].
+ ^ aPossiblyUnresolvedConstant
+
+! !
+
+!JavaUnresolvedConstant methodsFor:'accessing'!
+
+index:i
+ index := i
+
+ "Created: 15.4.1996 / 15:59:45 / cg"
+! !
+
+!JavaUnresolvedConstant class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedConstant.st,v 1.1 1996/04/15 14:58:30 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaUnresolvedFieldrefConstant.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,28 @@
+JavaUnresolvedRefConstant subclass:#JavaUnresolvedFieldrefConstant
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Java-Reader-Support'
+!
+
+
+!JavaUnresolvedFieldrefConstant methodsFor:'resolving'!
+
+resolveFrom:aConstantTable
+ |class nameAndType|
+
+ class := self class resolve:(aConstantTable at:index) from:aConstantTable.
+ nameAndType := self class resolve:(aConstantTable at:nameandTypeIndex) from:aConstantTable.
+ ^ JavaFieldref
+ class:class
+ nameandType:nameAndType
+
+ "Created: 15.4.1996 / 16:05:50 / cg"
+ "Modified: 15.4.1996 / 16:26:44 / cg"
+! !
+
+!JavaUnresolvedFieldrefConstant class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedFieldrefConstant.st,v 1.1 1996/04/15 14:58:39 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaUnresolvedMethodrefConstant.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,28 @@
+JavaUnresolvedRefConstant subclass:#JavaUnresolvedMethodrefConstant
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Java-Reader-Support'
+!
+
+
+!JavaUnresolvedMethodrefConstant methodsFor:'resolving'!
+
+resolveFrom:aConstantTable
+ |class nameAndType|
+
+ class := self class resolve:(aConstantTable at:index) from:aConstantTable.
+ nameAndType := self class resolve:(aConstantTable at:nameandTypeIndex) from:aConstantTable.
+ ^ JavaMethodref
+ class:class
+ nameandType:nameAndType
+
+ "Created: 15.4.1996 / 16:12:41 / cg"
+ "Modified: 15.4.1996 / 16:26:59 / cg"
+! !
+
+!JavaUnresolvedMethodrefConstant class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedMethodrefConstant.st,v 1.1 1996/04/15 14:58:51 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaUnresolvedNameandTypeConstant.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,44 @@
+JavaUnresolvedConstant subclass:#JavaUnresolvedNameandTypeConstant
+ instanceVariableNames:'signatureIndex'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Java-Reader-Support'
+!
+
+
+!JavaUnresolvedNameandTypeConstant class methodsFor:'instance creation'!
+
+nameIndex:name_index signatureIndex:signature_index
+ ^ (super index:name_index) signatureIndex:signature_index
+
+ "Created: 15.4.1996 / 16:15:16 / cg"
+! !
+
+!JavaUnresolvedNameandTypeConstant methodsFor:'accessing'!
+
+signatureIndex:signature_index
+ signatureIndex := signature_index
+
+ "Created: 15.4.1996 / 16:14:39 / cg"
+! !
+
+!JavaUnresolvedNameandTypeConstant methodsFor:'resolving'!
+
+resolveFrom:aConstantTable
+ |name signature|
+
+ name := self class resolve:(aConstantTable at:index) from:aConstantTable.
+ signature := self class resolve:(aConstantTable at:signatureIndex) from:aConstantTable.
+ ^ JavaNameandType
+ name:name
+ signature:signature
+
+ "Created: 15.4.1996 / 16:15:53 / cg"
+ "Modified: 15.4.1996 / 16:27:33 / cg"
+! !
+
+!JavaUnresolvedNameandTypeConstant class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedNameandTypeConstant.st,v 1.1 1996/04/15 15:02:07 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaUnresolvedRefConstant.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,38 @@
+JavaUnresolvedConstant subclass:#JavaUnresolvedRefConstant
+ instanceVariableNames:'nameandTypeIndex'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Java-Reader-Support'
+!
+
+
+!JavaUnresolvedRefConstant class methodsFor:'instance creation'!
+
+classIndex:class_index nameandTypeIndex:name_and_type_index
+ ^ (super index:class_index) nameandTypeIndex:name_and_type_index
+
+ "Created: 15.4.1996 / 16:11:49 / cg"
+! !
+
+!JavaUnresolvedRefConstant methodsFor:'accessing'!
+
+nameandTypeIndex:name_and_type_index
+ nameandTypeIndex := name_and_type_index
+
+ "Created: 15.4.1996 / 16:12:00 / cg"
+! !
+
+!JavaUnresolvedRefConstant methodsFor:'resolving'!
+
+resolveFrom:aConstantTable
+ ^ self subclassResponsibility
+
+ "Created: 15.4.1996 / 16:12:00 / cg"
+ "Modified: 15.4.1996 / 16:28:11 / cg"
+! !
+
+!JavaUnresolvedRefConstant class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedRefConstant.st,v 1.1 1996/04/15 15:03:27 cg Exp $'
+! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaUnresolvedStringConstant.st Mon Apr 15 15:08:12 1996 +0000
@@ -0,0 +1,31 @@
+JavaUnresolvedConstant subclass:#JavaUnresolvedStringConstant
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Java-Reader-Support'
+!
+
+
+!JavaUnresolvedStringConstant class methodsFor:'instance creation'!
+
+stringIndex:index
+ ^ self index:index
+! !
+
+!JavaUnresolvedStringConstant methodsFor:'resolving'!
+
+resolveFrom:aConstantTable
+ |string|
+
+ string := self class resolve:(aConstantTable at:index) from:aConstantTable.
+ ^ JavaString string:string
+
+ "Created: 15.4.1996 / 15:51:42 / cg"
+ "Modified: 15.4.1996 / 16:28:45 / cg"
+! !
+
+!JavaUnresolvedStringConstant class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedStringConstant.st,v 1.1 1996/04/15 15:03:38 cg Exp $'
+! !