|
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 ! ! |