loadClasses
author cg
Tue, 21 Dec 1999 12:55:34 +0000
changeset 634 c5a9d34c6ae5
parent 617 4c7ad880c405
child 675 d409e317e7ff
permissions -rw-r--r--
*** empty log message ***

"{ package:'stx:libjava' }"

|files|

'loading package stx:libjava ...' printCR.

Scanner allowDollarInIdentifier:true.

"/
"/ base system
"/

files := #(
	'Java'
	'JavaVM'

	'JavaConstantPool'
	'JavaSlotIndexCache'

	'JavaObject'
	'JavaClass'
	'JavaMethod'
	'JavaMethodWithException'
	'JavaMethodWithHandler'
	'JavaNativeMethod'
	'JavaContext'
	'JavaProcess'

	'JavaClassReader'
	'JavaDecompiler'

	'JavaExceptionTableEntry'
	'JavaLocalVariableTable'
	'JavaLocalVariableTableEntry'

	'JavaRef'
	'JavaClassRef'
	'JavaField'
	'JavaFieldref'
	'JavaMethodref'
	'JavaInterfaceMethodref'
	'JavaNameandType'
	'JavaClassPointerRef'
	'JavaBuiltInClassPointerRef'

	'JavaUnresolvedConstant'
	'JavaUnresolvedRefConstant'
	'JavaUnresolvedClassConstant'
	'JavaUnresolvedFieldrefConstant'
	'JavaUnresolvedMethodrefConstant'
	'JavaUnresolvedInterfaceMethodrefConstant'
	'JavaUnresolvedNameandTypeConstant'
	'JavaUnresolvedStringConstant'

	'JavaView'
	'JavaTopView'
	'JavaPopUpView'
	'JavaEmbeddedFrameView'

	'SmalltalkAppletContext'
	'SmalltalkAppletStub'   
).

(Smalltalk loadClassLibraryIfAbsent:'libjava') ifTrue:[
    |handle loaded|

    loaded := OrderedCollection new.
    handle := ObjectFileLoader loadedObjectHandles 
		detect:[:h | |cls|
		    cls := h classes firstIfEmpty:nil.
		    cls notNil and:[cls package = 'stx:libjava']
		]
		ifNone:nil.
    handle notNil ifTrue:[
	handle classes do:[:c| c isMeta ifFalse:[loaded add:c classFilename]].
    ].
    files := files asOrderedCollection.
    loaded do:[:f| files remove:f ifAbsent:[]].
].

files size > 0 ifTrue:[
  files do:[:s|
    '.' print.
    Smalltalk fileIn:s.
  ].
  ' ' printCR.
].
'done (stx:libjava).' printCR.
!