code: private static Map<Class<?>, LinkedHashMap<String, Type>> resolveHierarchy(final Type type) {
          return GenericsResolutionUtils.resolve(
                  GenericsUtils.resolveClass(type),
                  GenericsResolutionUtils.resolveGenerics(type, EmptyGenericsMap.getInstance()));
      }
docs: If type is {@link java.lang.reflect.ParameterizedType} then it's generics will be still counted as root
  class generics and so all sub type generics will be properly resolved.
  
  @param type type to build hierarchy for
  @return complete type hierarchy with resolved generics