src/JavaClassRegistry.st
author vranyj1
Sun, 23 Oct 2011 11:02:37 +0000
branchjk_new_structure
changeset 1037 3dc5755c5fe4
parent 1036 4ff03464c3b3
child 1038 bf2ece5a5362
permissions -rw-r--r--
JavaClassRegistry refactored
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
     1
"
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
     2
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
     3
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
     4
                            SWING Research Group, Czech Technical University in Prague
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
     5
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
     6
 Parts of the code written by Claus Gittinger are under following
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
     7
 license:
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
     8
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
     9
 This software is furnished under a license and may be used
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    10
 only in accordance with the terms of that license and with the
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    12
 be provided or otherwise made available to, or used by, any
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    13
 other person.  No title to or ownership of the software is
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    14
 hereby transferred.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    15
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    16
 Parts of the code written at SWING Reasearch Group [1] are MIT licensed:
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    17
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    18
 Permission is hereby granted, free of charge, to any person
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    19
 obtaining a copy of this software and associated documentation
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    20
 files (the 'Software'), to deal in the Software without
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    21
 restriction, including without limitation the rights to use,
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    22
 copy, modify, merge, publish, distribute, sublicense, and/or sell
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    23
 copies of the Software, and to permit persons to whom the
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    24
 Software is furnished to do so, subject to the following
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    25
 conditions:
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    26
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    27
 The above copyright notice and this permission notice shall be
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    28
 included in all copies or substantial portions of the Software.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    29
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    30
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    31
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    32
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    33
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    34
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    35
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    36
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    37
 OTHER DEALINGS IN THE SOFTWARE.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    38
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    39
 [1] Code written at SWING Research Group contain a signature
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    40
     of one of the above copright owners.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    41
"
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    42
"{ Package: 'stx:libjava' }"
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    43
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    44
Object subclass:#JavaClassRegistry
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    45
	instanceVariableNames:'classLoadersAndClasses systemClassLoader'
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    46
	classVariableNames:''
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    47
	poolDictionaries:''
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    48
	category:'Languages-Java-Support'
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    49
!
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    50
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    51
!JavaClassRegistry class methodsFor:'documentation'!
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    52
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    53
copyright
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    54
"
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    55
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    56
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    57
                            SWING Research Group, Czech Technical University in Prague
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    58
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    59
 Parts of the code written by Claus Gittinger are under following
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    60
 license:
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    61
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    62
 This software is furnished under a license and may be used
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    63
 only in accordance with the terms of that license and with the
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    64
 inclusion of the above copyright notice.   This software may not
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    65
 be provided or otherwise made available to, or used by, any
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    66
 other person.  No title to or ownership of the software is
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    67
 hereby transferred.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    68
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    69
 Parts of the code written at SWING Reasearch Group [1] are MIT licensed:
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    70
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    71
 Permission is hereby granted, free of charge, to any person
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    72
 obtaining a copy of this software and associated documentation
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    73
 files (the 'Software'), to deal in the Software without
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    74
 restriction, including without limitation the rights to use,
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    75
 copy, modify, merge, publish, distribute, sublicense, and/or sell
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    76
 copies of the Software, and to permit persons to whom the
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    77
 Software is furnished to do so, subject to the following
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    78
 conditions:
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    79
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    80
 The above copyright notice and this permission notice shall be
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    81
 included in all copies or substantial portions of the Software.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    82
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    83
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    84
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    85
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    86
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    87
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    88
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    89
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    90
 OTHER DEALINGS IN THE SOFTWARE.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    91
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    92
 [1] Code written at SWING Research Group contain a signature
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    93
     of one of the above copright owners.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    94
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
    95
"
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    96
!
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    97
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    98
documentation
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
    99
"
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
   100
    documentation to be added.
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
   101
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
   102
    [author:]
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
   103
        Jan Vrany <jan.vrany@fit.cvut.cz>
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
   104
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
   105
    [instance variables:]
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
   106
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
   107
    [class variables:]
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
   108
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
   109
    [see also:]
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
   110
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1033
diff changeset
   111
"
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   112
! !
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   113
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   114
!JavaClassRegistry class methodsFor:'instance creation'!
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   115
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   116
new
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   117
^ self basicNew initialize.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   118
! !
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   119
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   120
!JavaClassRegistry methodsFor:'accessing'!
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   121
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   122
classForName: className loader: classLoader ifAbsent: aBlock 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   123
    "Get class loaded by given classLoader from registry or evaluate aBlock if class is not yet registered"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   124
        
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   125
    ^ (classLoadersAndClasses at: classLoader
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   126
        ifAbsent: [ self error: 'cannot find given classLoader in registry' ]) 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   127
            at: className
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   128
            ifAbsent: aBlock.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   129
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   130
    "Modified: / 21-10-2011 / 12:39:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   131
    "Created: / 23-10-2011 / 11:40:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   132
!
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   133
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   134
classForName: className loader: classLoader ifAbsentPut: block 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   135
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   136
    "Get class loaded by classLoader from registry. if absent block is evaluated and resulting class in registered in registry, "
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   137
    
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   138
    ^ (classLoadersAndClasses at: classLoader
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   139
        ifAbsent: [ self halt: 'cannot find given classLoader in registry' ]) 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   140
            at: className
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   141
            ifAbsentPut: block.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   142
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   143
    "Created: / 21-10-2011 / 12:00:30 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   144
    "Created: / 23-10-2011 / 11:36:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   145
!
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   146
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   147
classNamed: className
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   148
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   149
    "Return a class for given classname loaded by 'current classloader' or 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   150
     nil if not yet loaded"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   151
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   152
    ^self classNamed: className loader: JavaClassReader classLoaderQuerySignal query
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   153
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   154
    "Created: / 23-10-2011 / 12:23:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   155
!
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   156
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   157
classNamed: className loader: classLoader
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   158
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   159
    "Return a class for given classname loaded by given classloader or 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   160
     nil if not yet loaded"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   161
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   162
    ^self classForName: className loader: classLoader ifAbsent:[nil].
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   163
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   164
    "Created: / 23-10-2011 / 12:23:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   165
! !
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   166
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   167
!JavaClassRegistry methodsFor:'accessing-obsolete'!
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   168
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   169
at: className 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   170
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   171
     <resource: #obsolete> 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   172
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   173
    self breakPoint:#jv info: 'Use #classForName:'.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   174
    self breakPoint:#mh info: 'Use #classForName:'.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   175
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   176
    ^ self classNamed: className
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   177
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   178
    "Modified: / 23-10-2011 / 12:23:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   179
!
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   180
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   181
at: classLoader at: className
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   182
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   183
    <resource: #obsolete> 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   184
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   185
    self breakPoint:#jv info: 'Use #classForName:loader:'.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   186
    self breakPoint:#mh info: 'Use #classForName:loader:'.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   187
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   188
    ^self classNamed: className loader: classLoader
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   189
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   190
    "Modified: / 23-10-2011 / 12:23:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   191
!
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   192
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   193
at: classLoader at: className ifAbsent: aBlock 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   194
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   195
    <resource: #obsolete>
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   196
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   197
    self breakPoint:#mh info: 'Use #classForName:loader:isAbsent:'.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   198
    self breakPoint:#jv info: 'Use #classForName:loader:isAbsent:'.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   199
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   200
    ^self classForName: className loader: classLoader ifAbsent: aBlock.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   201
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   202
    "Modified: / 21-10-2011 / 12:39:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   203
    "Modified: / 23-10-2011 / 11:47:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   204
!
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   205
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   206
at: classLoader at: className ifAbsentPut: aBlock 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   207
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   208
    <resource: #obsolete> 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   209
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   210
    self breakPoint:#jv info: 'Use #classForName:loader:isAbsentPut:'.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   211
    self breakPoint:#mh info: 'Use #classForName:loader:isAbsentPut:'.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   212
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   213
    ^self classForName: className loader: classLoader ifAbsentPut: aBlock
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   214
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   215
    "Created: / 21-10-2011 / 12:00:30 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   216
    "Modified: / 23-10-2011 / 11:41:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   217
! !
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   218
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   219
!JavaClassRegistry methodsFor:'class loading'!
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   220
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   221
loadFile: aFilename 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   222
    "reads a class from aFilename, installs and returns it."
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   223
    
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   224
    | aClass |
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   225
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   226
    self breakPoint: #mh.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   227
    aClass := JavaClassReader readFile: aFilename ignoring: Set new.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   228
    aClass isJavaClass ifFalse:[self breakPoint:#mh].
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   229
    self registerClass: aClass.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   230
    ^ aClass.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   231
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   232
    "Created: / 15-04-1996 / 14:58:53 / cg"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   233
    "Modified: / 12-05-1998 / 22:06:52 / cg"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   234
    "Modified: / 23-10-2011 / 11:55:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   235
!
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   236
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   237
loadStream: javaClassDataStream loader: aJavaClassLoader 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   238
    "reads a class from aStream and returns it.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   239
     The JavaClass is installed as global.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   240
     If new classes are required to be loaded, aClassLoader is
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   241
     asked to do it."
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   242
    
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   243
    | javaClass |
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   244
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   245
    self breakPoint: #mh.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   246
    JavaClassReader classLoaderQuerySignal answer: aJavaClassLoader
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   247
        do: [
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   248
            javaClass := JavaClassReader readStream: javaClassDataStream
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   249
                        ignoring: (Set new).
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   250
            javaClass 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   251
                ifNil: [
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   252
                    Logger 
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   253
                        log: 'JavaClassReader was not able to read given data stream'
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   254
                        severity: #warn
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   255
                        facility: #JavaClassRegistry.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   256
                    self breakPoint: #mh.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   257
                    ^ nil.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   258
                ].
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   259
            javaClass isJavaClass ifFalse: [ self breakPoint: #mh. ].
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   260
            javaClass classLoader: aJavaClassLoader.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   261
            self registerClass: javaClass.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   262
        ].
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   263
    ^ javaClass
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   264
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   265
    "Modified: / 23-10-2011 / 11:57:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   266
! !
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   267
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   268
!JavaClassRegistry methodsFor:'helpers'!
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   269
1032
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   270
addClassLoader: aJavaClassLoader
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
   271
1032
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   272
classLoadersAndClasses at: aJavaClassLoader put: Dictionary new.
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   273
!
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   274
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   275
getClassesDefinedBy:classLoader 
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   276
    ^classLoadersAndClasses at: classLoader ifAbsent: [nil].
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
   277
!
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
   278
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   279
getSystemClassLoader
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   280
    systemClassLoader 
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   281
        ifNil: [
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1032
diff changeset
   282
            systemClassLoader := (JavaVM classForName: 'java.lang.ClassLoader') 
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   283
                        perform: #'getSystemClassLoader()Ljava/lang/ClassLoader;'.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   284
        ].
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   285
    ^ systemClassLoader.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   286
!
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   287
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   288
removeClassLoader: aJavaClassLoader 
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   289
    classLoadersAndClasses removeKey: aJavaClassLoader.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   290
! !
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   291
1032
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   292
!JavaClassRegistry methodsFor:'initialization'!
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   293
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   294
flush
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   295
    classLoadersAndClasses := Dictionary new.
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   296
    classLoadersAndClasses at: nil put: Dictionary new.
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   297
    systemClassLoader := nil.
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   298
!
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   299
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   300
initialize
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   301
    classLoadersAndClasses := Dictionary new.
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   302
    classLoadersAndClasses at: nil put: Dictionary new.
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   303
! !
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   304
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   305
!JavaClassRegistry methodsFor:'registering'!
1032
c3085c73e150 just refactoring registry
hlopkmar
parents: 1030
diff changeset
   306
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   307
registerClass: aJavaClass
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
   308
    | classesDefinedByClassLoader |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
   309
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   310
    classesDefinedByClassLoader := classLoadersAndClasses at: aJavaClass classLoader
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
   311
                ifAbsentPut: [ Dictionary new ].
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
   312
    classesDefinedByClassLoader at: aJavaClass name put: aJavaClass.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
   313
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
   314
    "Created: / 23-10-2011 / 11:53:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   315
! !
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   316
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   317
!JavaClassRegistry class methodsFor:'documentation'!
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   318
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   319
version_SVN
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   320
    ^ '$Id$'
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents:
diff changeset
   321
! !