private TreeElement handleClass(HashMap classes, ClassInfo clazz) {
		if (clazz == null)
			return root;
		TreeElement elem = (TreeElement) classes.get(clazz);
		if (elem != null)
			return elem;

		elem = new TreeElement(clazz.getName());
		classes.put(clazz, elem);

		if (!clazz.isInterface()) {
			ClassInfo superClazz = clazz.getSuperclass();
			handleClass(classes, superClazz).addChild(elem);
		}
		ClassInfo[] ifaces = clazz.getInterfaces();
		for (int i = 0; i < ifaces.length; i++)
			handleClass(classes, ifaces[i]).addChild(elem);
		if (ifaces.length == 0 && clazz.isInterface())
			root.addChild(elem);
		return elem;
	}