private static void _getAllInterfaces(Class<?> clazz, ArrayList<Class<?>> result) {
		if (clazz == null)
			return;
		
		Class<?>[] interfaces = clazz.getInterfaces();
		for (Class<?> interf : interfaces) {
			result.add(interf);
			_getAllInterfaces(interf, result);
		}
		
		_getAllInterfaces(clazz.getSuperclass(), result);
	}