public static Class getUnproxiedClass(Class currentClass) {
        Class unproxiedClass = currentClass;

        while (isProxiedClass(unproxiedClass)) {
            unproxiedClass = unproxiedClass.getSuperclass();
        }

        return unproxiedClass;
    }
NOTE: copied from DeltaSpike

@param currentClass current class

@return class of the real implementation
primefaces/src/main/java/org/primefaces/util/LangUtils.java