ClassHierarchyVisitable.java
biz/hammurapi/util/ClassHierarchyVisitable.java
Violations
Inspector |
Message |
Severity |
Location |
Java Inspector 048 |
Copyrights information should be present in each file. |
1 |
|
Java Inspector 049 |
Use a Collection instead of arrays Object[] |
2 |
52:38
|
Java Inspector 089 |
Undocumented constructor |
2 |
39:9
|
Java Inspector 089 |
Undocumented method |
2 |
43:9
|
Java Inspector 051 |
It is good practice to call in any case super() in a constructor. |
3 |
39:9
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23package biz.hammurapi.util;
24
25import java.util.HashSet;
26import java.util.LinkedList;
27import java.util.Set;
28
29
30
31
32
33
34
35
36public class ClassHierarchyVisitable implements Visitable {
37 private Class clazz;
38
39 public ClassHierarchyVisitable(Class clazz) {
40 this.clazz=clazz;
41 }
42
43 public boolean accept(Visitor visitor) {
44 LinkedList queue=new LinkedList();
45 queue.add(clazz);
46 Set visited=new HashSet();
47 visited.add(Object.class);
48
49 while (!queue.isEmpty()) {
50 Class currentClazz=(Class) queue.removeFirst();
51 if (visitor.visit(currentClazz)) {
52 Class[] interfaces = currentClazz.getInterfaces();
53 for (int i=0; i<interfaces.length; i++) {
54 if (visited.add(interfaces[i])) {
55 queue.add(interfaces[i]);
56 }
57 }
58
59 Class superclass = currentClazz.getSuperclass();
60 if (superclass!=null && visited.add(superclass)) {
61 queue.add(superclass);
62 }
63 } else {
64 return false;
65 }
66 }
67
68 return visitor.visit(Object.class);
69 }
70
71}
72