/** * Process the path. * * @param currentType * The current type. * @param clazz * The type * @param path * The path. */ private static void processPath(final Class<?> currentType, final Class<?> clazz, final Deque<Type> path) { final Class<?> currentClazz = currentType; GenericsUtil.processInterfaces(clazz, path, currentClazz); // We haven't found it yet, try the superclasses. final Type superClass = currentClazz.getGenericSuperclass(); if ((path.size() < 2) && !CheckUtil.isNull(superClass)) { path.addAll(GenericsUtil.findTypePath(superClass, clazz)); } // Still haven't found it, try the declaring classes. final Class<?> declaringClass = currentClazz.getDeclaringClass(); if ((path.size() < 2) && !CheckUtil.isNull(declaringClass)) { path.addAll(GenericsUtil.findTypePath(declaringClass, clazz)); } }