30 * at JavaSoft/Sun. 31 */ 32 33 package com.sun.tools.hat.internal.server; 34 35 import com.sun.tools.hat.internal.model.*; 36 import java.util.*; 37 38 /** 39 * References by type summary 40 * 41 */ 42 public class RefsByTypeQuery extends QueryHandler { 43 public void run() { 44 JavaClass clazz = snapshot.findClass(query); 45 if (clazz == null) { 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; | 30 * at JavaSoft/Sun. 31 */ 32 33 package com.sun.tools.hat.internal.server; 34 35 import com.sun.tools.hat.internal.model.*; 36 import java.util.*; 37 38 /** 39 * References by type summary 40 * 41 */ 42 public class RefsByTypeQuery extends QueryHandler { 43 public void run() { 44 JavaClass clazz = snapshot.findClass(query); 45 if (clazz == null) { 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<JavaHeapObject> instances = clazz.getInstances(false); 51 while (instances.hasMoreElements()) { 52 JavaHeapObject instance = instances.nextElement(); 53 if (instance.getId() == -1) { 54 continue; 55 } 56 Enumeration<JavaThing> 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; |