public static List<Class<?>> getSuperClassesAndInterfaces(Class<?> srcClass, BeanContainer beanContainer) {
        List<Class<?>> superClasses = new ArrayList<>();
        Class<?> realClass = getRealClass(srcClass, beanContainer);

        // Add all super classes first
        Class<?> superClass = getRealClass(realClass, beanContainer).getSuperclass();
        while (!isBaseClass(superClass)) {
            superClasses.add(superClass);
            superClass = superClass.getSuperclass();
        }

        // Now add all interfaces of the passed in class and all it's super classes

        // Linked hash set so duplicated are not added but insertion order is kept
        LinkedHashSet<Class<?>> interfaces = new LinkedHashSet<>();

        interfaces.addAll(getInterfaceHierarchy(realClass, beanContainer));
        for (Class<?> clazz : superClasses) {
            interfaces.addAll(getInterfaceHierarchy(clazz, beanContainer));
        }

        superClasses.addAll(interfaces);
        return superClasses;
    }
Used to test if both {@code srcFieldClass} and {@code destFieldType} are enum.

@param srcFieldClass the source field to be tested.
@param destFieldType the destination field to be tested.
@return {@code true} if and only if current running JRE is 1.5 or above, and both
{@code srcFieldClass} and {@code destFieldType} are enum; otherwise return {@code false}.
core/src/main/java/com/github/dozermapper/core/util/MappingUtils.java