SmallSense__AbstractJavaCompletionEngine.st
changeset 206 f74a5ffd8eae
child 208 0b9ed08a04c0
equal deleted inserted replaced
205:43bee6463c53 206:f74a5ffd8eae
       
     1 "{ Package: 'jv:smallsense' }"
       
     2 
       
     3 "{ NameSpace: SmallSense }"
       
     4 
       
     5 CompletionEngine subclass:#AbstractJavaCompletionEngine
       
     6 	instanceVariableNames:'class method'
       
     7 	classVariableNames:''
       
     8 	poolDictionaries:''
       
     9 	category:'SmallSense-Java'
       
    10 !
       
    11 
       
    12 !AbstractJavaCompletionEngine methodsFor:'completion-helpers'!
       
    13 
       
    14 javaClassesDo: aBlock
       
    15     | loader loaders |
       
    16 
       
    17     loaders := Set new.
       
    18     loaders := Set new.
       
    19     loader := (class notNil and:[class isJavaClass]) ifTrue:[class classLoader] ifFalse:[JavaVM systemClassLoader].
       
    20     [ loader notNil ] whileTrue:[
       
    21         loaders add: loader.
       
    22         loader := loader instVarNamed: #parent.
       
    23     ].
       
    24     loaders add: nil.
       
    25 
       
    26     context environment allClassesDo:[:cls|
       
    27         (cls isJavaClass and:[loaders includes: cls classLoader]) ifTrue:[
       
    28             aBlock value: cls.
       
    29         ].
       
    30     ].
       
    31 
       
    32     "Created: / 04-10-2013 / 13:10:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
    33     "Modified: / 13-05-2014 / 12:38:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
    34 ! !
       
    35