SystemOrganizer.st
changeset 688 5d925b1c32c1
child 689 1d4a311dd765
equal deleted inserted replaced
687:47729447d24a 688:5d925b1c32c1
       
     1 Object subclass:#SystemOrganizer
       
     2 	instanceVariableNames:'categoryArray categories nameSpace'
       
     3 	classVariableNames:''
       
     4 	poolDictionaries:''
       
     5 	category:'Kernel-Support'
       
     6 !
       
     7 
       
     8 
       
     9 !SystemOrganizer class methodsFor:'instance creation'!
       
    10 
       
    11 for:aNameSpace
       
    12     "create & return a new instance of myself, to organize aNameSpace"
       
    13 
       
    14     ^ self new nameSpace:aNameSpace
       
    15 
       
    16     "Created: / 20.6.1998 / 12:33:52 / cg"
       
    17 ! !
       
    18 
       
    19 !SystemOrganizer methodsFor:'accessing'!
       
    20 
       
    21 categories
       
    22     "return a collection of my classes class-categories.
       
    23      If my nameSpace is nil, all classes' categories are included;
       
    24      otherwise, only the categories of that particular namespace."
       
    25 
       
    26     |set categorySet searchedNamespace allNames|
       
    27 
       
    28     categoryArray isNil ifTrue:[
       
    29         categorySet := Set new.
       
    30 
       
    31         (searchedNamespace := nameSpace) isNil ifTrue:[
       
    32             allNames := true.
       
    33             searchedNamespace := Smalltalk.
       
    34         ].
       
    35 
       
    36         searchedNamespace allBehaviorsDo:[:aClass |
       
    37             |cat|
       
    38 
       
    39             aClass isMeta ifFalse:[
       
    40                 (aClass isNamespace not 
       
    41                 or:[aClass == Namespace 
       
    42                 or:[aClass == Smalltalk]]) ifTrue:[
       
    43                     (allNames or:[aClass nameSpace == nameSpace]) ifTrue:[
       
    44                         cat := aClass category.
       
    45                         cat isNil ifTrue:[
       
    46                             cat := '* no category *'
       
    47                         ].
       
    48                         cat ~= 'obsolete' ifTrue:[
       
    49                             categorySet add:cat
       
    50                         ]
       
    51                     ]
       
    52                 ]
       
    53             ]
       
    54         ].
       
    55         categoryArray := categorySet asArray sort.
       
    56     ].
       
    57     ^ categoryArray
       
    58 
       
    59     "
       
    60      (SystemOrganizer for:nil) categories 
       
    61      (SystemOrganizer for:Smalltalk) categories 
       
    62      (SystemOrganizer for:Demos) categories 
       
    63     "
       
    64 
       
    65     "Modified: / 20.6.1998 / 12:40:42 / cg"
       
    66 ! !
       
    67 
       
    68 !SystemOrganizer methodsFor:'private access'!
       
    69 
       
    70 nameSpace:aNameSpace
       
    71     "set the nameSpace - nil is allowed and stands for: any"
       
    72 
       
    73     nameSpace := aNameSpace.
       
    74     Smalltalk addDependent:self.
       
    75 
       
    76     "
       
    77      (SystemOrganizer for:nil) organization
       
    78      (SystemOrganizer for:Demos) organization
       
    79     "
       
    80 
       
    81     "Modified: / 20.6.1998 / 12:35:34 / cg"
       
    82 ! !
       
    83 
       
    84 !SystemOrganizer class methodsFor:'documentation'!
       
    85 
       
    86 version
       
    87     ^ '$Header: /cvs/stx/stx/libbasic3/SystemOrganizer.st,v 1.1 1998-06-20 11:22:25 cg Exp $'
       
    88 ! !