1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.controller.impl;
17
18 import org.seasar.cubby.controller.ClassDetector;
19 import org.seasar.cubby.controller.DetectClassProcessor;
20 import org.seasar.framework.container.ComponentDef;
21 import org.seasar.framework.container.cooldeploy.CoolComponentAutoRegister;
22 import org.seasar.framework.util.Disposable;
23 import org.seasar.framework.util.DisposableUtil;
24
25
26
27
28
29
30
31
32
33
34 public class ClassDetectorImpl extends CoolComponentAutoRegister implements
35 ClassDetector, Disposable {
36
37
38 public static final String INIT_METHOD = null;
39
40
41 private boolean initialized;
42
43
44 private DetectClassProcessor[] processors;
45
46
47
48
49 @Override
50 public void processClass(final String packageName,
51 final String shortClassName) {
52 for (final DetectClassProcessor processor : processors) {
53 processor.processClass(packageName, shortClassName);
54 }
55 }
56
57
58
59
60 public void detect() {
61 if (!initialized) {
62 processors = DetectClassProcessor[].class.cast(getContainer()
63 .getRoot().findAllComponents(DetectClassProcessor.class));
64 registerAll();
65 DisposableUtil.add(this);
66 initialized = true;
67 }
68 }
69
70
71
72
73 public void dispose() {
74 initialized = false;
75 }
76
77
78
79
80 @SuppressWarnings("unchecked")
81 @Override
82 protected ComponentDef createComponentDef(final Class componentClass) {
83 throw new UnsupportedOperationException();
84 }
85
86 }