@SuppressWarnings("unchecked")
    public static List<Class<?>> getInterfaceHierarchy(Class<?> srcClass, BeanContainer beanContainer) {
        final List<Class<?>> result = new LinkedList<>();
        Class<?> realClass = getRealClass(srcClass, beanContainer);

        final LinkedList<Class> interfacesToProcess = new LinkedList<>();

        Class[] interfaces = realClass.getInterfaces();

        interfacesToProcess.addAll(Arrays.asList(interfaces));

        while (!interfacesToProcess.isEmpty()) {
            Class<?> iface = interfacesToProcess.remove();
            if (!result.contains(iface)) {
                result.add(iface);
                for (Class subiface : iface.getInterfaces()) {
                    // if we haven't processed this interface yet then add it to be processed
                    if (!result.contains(subiface)) {
                        interfacesToProcess.add(subiface);
                    }
                }
            }
        }

        return result;

    }
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