code: public static Collection<Method> findMethods(final DeploymentReflectionIndex deploymentReflectionIndex, final ClassReflectionIndex classReflectionIndex, final String methodName, final String... paramTypes) {
          final Collection<Method> methods = classReflectionIndex.getMethods(methodName, paramTypes);
          if (!methods.isEmpty()) {
              return methods;
          }
          // find on super class
          Class<?> superClass = classReflectionIndex.getIndexedClass().getSuperclass();
          if (superClass != null) {
              ClassReflectionIndex superClassIndex = deploymentReflectionIndex.getClassIndex(superClass);
              if (superClassIndex != null) {
                  return findMethods(deploymentReflectionIndex, superClassIndex, methodName, paramTypes);
              }
  
          }
          return methods;
      }
docs: Finds and returns methods corresponding to the passed method <code>name</code> and method <code>paramTypes</code>.
  The passed <code>classReflectionIndex</code> will be used to traverse the class hierarchy while finding the method.
  <p/>
  Returns empty collection if no such method is found
  
  @param deploymentReflectionIndex The deployment reflection index
  @param classReflectionIndex      The class reflection index which will be used to traverse the class hierarchy to find the method
  @param methodName                The name of the method
  @param paramTypes                The param types accepted by the method
  @return