public TreePath getPath(String fullName) {
		if (fullName == null || fullName.length() == 0)
			return new TreePath(root);

		int length = 2;
		ClassInfo ci = ClassInfo.forName(fullName);
		while (ci.getSuperclass() != null) {
			length++;
			ci = ci.getSuperclass();
		}

		TreeElement[] path = new TreeElement[length];
		path[0] = root;
		int nr = 0;
		next_component: while (nr < length - 1) {
			ci = ClassInfo.forName(fullName);
			for (int i = 2; i < length - nr; i++)
				ci = ci.getSuperclass();
			Iterator iter = path[nr].getChilds().iterator();
			while (iter.hasNext()) {
				TreeElement te = (TreeElement) iter.next();
				if (te.getFullName().equals(ci.getName())) {
					path[++nr] = te;
					continue next_component;
				}
			}
			return null;
		}
		return new TreePath(path);
	}