loadClasses
author Claus Gittinger <cg@exept.de>
Sun, 23 Feb 2020 14:03:15 +0100
branchcvs_MAIN
changeset 3997 5bb44f7e1d20
parent 676 31231f2e71cb
child 2380 9195eccdcbd9
permissions -rw-r--r--
#REFACTORING by exept class: Java class changed: #dumpConfigOn:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
617
4c7ad880c405 *** empty log message ***
cg
parents: 616
diff changeset
     1
"{ package:'stx:libjava' }"
616
53bf2ec50346 *** empty log message ***
cg
parents: 613
diff changeset
     2
53bf2ec50346 *** empty log message ***
cg
parents: 613
diff changeset
     3
|files|
53bf2ec50346 *** empty log message ***
cg
parents: 613
diff changeset
     4
53bf2ec50346 *** empty log message ***
cg
parents: 613
diff changeset
     5
'loading package stx:libjava ...' printCR.
53bf2ec50346 *** empty log message ***
cg
parents: 613
diff changeset
     6
553
277a6b22db83 *** empty log message ***
cg
parents: 506
diff changeset
     7
Scanner allowDollarInIdentifier:true.
277a6b22db83 *** empty log message ***
cg
parents: 506
diff changeset
     8
458
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
     9
"/
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    10
"/ base system
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    11
"/
553
277a6b22db83 *** empty log message ***
cg
parents: 506
diff changeset
    12
616
53bf2ec50346 *** empty log message ***
cg
parents: 613
diff changeset
    13
files := #(
676
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    14
	'Java.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    15
	'JavaVM.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    16
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    17
	'JavaConstantPool.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    18
	'JavaSlotIndexCache.st'
458
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    19
676
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    20
	'JavaObject.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    21
	'JavaClass.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    22
	'JavaMethod.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    23
	'JavaMethodWithException.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    24
	'JavaMethodWithHandler.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    25
	'JavaNativeMethod.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    26
	'JavaContext.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    27
	'JavaProcess.st'
458
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    28
676
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    29
	'JavaClassReader.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    30
	'JavaDecompiler.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    31
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    32
	'JavaExceptionTableEntry.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    33
	'JavaLocalVariableTable.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    34
	'JavaLocalVariableTableEntry.st'
458
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    35
676
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    36
	'JavaRef.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    37
	'JavaClassRef.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    38
	'JavaField.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    39
	'JavaFieldref.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    40
	'JavaMethodref.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    41
	'JavaInterfaceMethodref.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    42
	'JavaNameandType.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    43
	'JavaClassPointerRef.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    44
	'JavaBuiltInClassPointerRef.st'
458
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    45
676
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    46
	'JavaUnresolvedConstant.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    47
	'JavaUnresolvedRefConstant.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    48
	'JavaUnresolvedClassConstant.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    49
	'JavaUnresolvedFieldrefConstant.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    50
	'JavaUnresolvedMethodrefConstant.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    51
	'JavaUnresolvedInterfaceMethodrefConstant.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    52
	'JavaUnresolvedNameandTypeConstant.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    53
	'JavaUnresolvedStringConstant.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    54
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    55
	'JavaView.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    56
	'JavaTopView.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    57
	'JavaPopUpView.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    58
	'JavaEmbeddedFrameView.st'
458
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    59
676
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    60
	'SmalltalkAppletContext.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    61
	'SmalltalkAppletStub.st'
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    62
).
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    63
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    64
(Smalltalk loadClassLibraryIfAbsent:'libjava') ifTrue:[
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    65
    |handle loaded|
458
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    66
676
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    67
    loaded := OrderedCollection new.
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    68
    handle := ObjectFileLoader loadedObjectHandles 
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    69
		detect:[:h | |cls|
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    70
		    cls := h classes firstIfEmpty:nil.
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    71
		    cls notNil and:[cls package = 'stx:libjava']
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    72
		]
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    73
		ifNone:nil.
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    74
    handle notNil ifTrue:[
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    75
	handle classes do:[:c| c isMeta ifFalse:[loaded add:c classFilename]].
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    76
    ].
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    77
    files := files asOrderedCollection.
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    78
    loaded do:[:f| files remove:f ifAbsent:[]].
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    79
].
458
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    80
616
53bf2ec50346 *** empty log message ***
cg
parents: 613
diff changeset
    81
files size > 0 ifTrue:[
53bf2ec50346 *** empty log message ***
cg
parents: 613
diff changeset
    82
  files do:[:s|
53bf2ec50346 *** empty log message ***
cg
parents: 613
diff changeset
    83
    '.' print.
676
31231f2e71cb *** empty log message ***
cg
parents: 675
diff changeset
    84
    Smalltalk fileIn:s.
616
53bf2ec50346 *** empty log message ***
cg
parents: 613
diff changeset
    85
  ].
53bf2ec50346 *** empty log message ***
cg
parents: 613
diff changeset
    86
  ' ' printCR.
458
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    87
].
634
c5a9d34c6ae5 *** empty log message ***
cg
parents: 617
diff changeset
    88
'done (stx:libjava).' printCR.
458
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    89
!
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    90
8d965d791b0a *** empty log message ***
cg
parents:
diff changeset
    91