46 error("class not found: " + query);
47 } else {
48 Map<JavaClass, Long> referrersStat = new HashMap<JavaClass, Long>();
49 final Map<JavaClass, Long> refereesStat = new HashMap<JavaClass, Long>();
50 Enumeration instances = clazz.getInstances(false);
51 while (instances.hasMoreElements()) {
52 JavaHeapObject instance = (JavaHeapObject) instances.nextElement();
53 if (instance.getId() == -1) {
54 continue;
55 }
56 Enumeration e = instance.getReferers();
57 while (e.hasMoreElements()) {
58 JavaHeapObject ref = (JavaHeapObject) e.nextElement();
59 JavaClass cl = ref.getClazz();
60 if (cl == null) {
61 System.out.println("null class for " + ref);
62 continue;
63 }
64 Long count = referrersStat.get(cl);
65 if (count == null) {
66 count = new Long(1);
67 } else {
68 count = new Long(count.longValue() + 1);
69 }
70 referrersStat.put(cl, count);
71 }
72 instance.visitReferencedObjects(
73 new AbstractJavaHeapObjectVisitor() {
74 public void visit(JavaHeapObject obj) {
75 JavaClass cl = obj.getClazz();
76 Long count = refereesStat.get(cl);
77 if (count == null) {
78 count = new Long(1);
79 } else {
80 count = new Long(count.longValue() + 1);
81 }
82 refereesStat.put(cl, count);
83 }
84 }
85 );
86 } // for each instance
87
88 startHtml("References by Type");
89 out.println("<p align='center'>");
90 printClass(clazz);
91 if (clazz.getId() != -1) {
92 println("[" + clazz.getIdString() + "]");
93 }
94 out.println("</p>");
95
96 if (referrersStat.size() != 0) {
97 out.println("<h3 align='center'>Referrers by Type</h3>");
98 print(referrersStat);
99 }
100
|
46 error("class not found: " + query);
47 } else {
48 Map<JavaClass, Long> referrersStat = new HashMap<JavaClass, Long>();
49 final Map<JavaClass, Long> refereesStat = new HashMap<JavaClass, Long>();
50 Enumeration instances = clazz.getInstances(false);
51 while (instances.hasMoreElements()) {
52 JavaHeapObject instance = (JavaHeapObject) instances.nextElement();
53 if (instance.getId() == -1) {
54 continue;
55 }
56 Enumeration e = instance.getReferers();
57 while (e.hasMoreElements()) {
58 JavaHeapObject ref = (JavaHeapObject) e.nextElement();
59 JavaClass cl = ref.getClazz();
60 if (cl == null) {
61 System.out.println("null class for " + ref);
62 continue;
63 }
64 Long count = referrersStat.get(cl);
65 if (count == null) {
66 count = 1L;
67 } else {
68 count = count + 1L;
69 }
70 referrersStat.put(cl, count);
71 }
72 instance.visitReferencedObjects(
73 new AbstractJavaHeapObjectVisitor() {
74 public void visit(JavaHeapObject obj) {
75 JavaClass cl = obj.getClazz();
76 Long count = refereesStat.get(cl);
77 if (count == null) {
78 count = 1L;
79 } else {
80 count = count + 1L;
81 }
82 refereesStat.put(cl, count);
83 }
84 }
85 );
86 } // for each instance
87
88 startHtml("References by Type");
89 out.println("<p align='center'>");
90 printClass(clazz);
91 if (clazz.getId() != -1) {
92 println("[" + clazz.getIdString() + "]");
93 }
94 out.println("</p>");
95
96 if (referrersStat.size() != 0) {
97 out.println("<h3 align='center'>Referrers by Type</h3>");
98 print(referrersStat);
99 }
100
|