public static boolean isSubtyping(IClass subType, IClass superType) {
		if (superType.getName().equals(Object.class.getName()) || 
			subType.equals(superType)) {
            return true;
        }
		IClass[] directSuperTypes = TypeUtils.directSuperType(subType);
        if (directSuperTypes == null) {
            return false;
        }
        
        for (IClass directSuperType : directSuperTypes) {
            if (directSuperType.isChildOrEqual(superType)) {
                return true;
            }
        }
        return false;
	}