private def getMethod()

in kernel-api/src/main/scala/org/apache/toree/utils/DynamicReflectionSupport.scala [88:103]


  private def getMethod(name: String, args: Any*): Option[Method] = {
    val flatArgs = flatten(args)
    val potentialMethods = klass.getDeclaredMethods.filter(_.getName == name)
    val method: Option[Method] =
      potentialMethods.foldLeft[Option[Method]](None) {
        (current, m) =>
          if (current != None) current
          else if (m.getParameterTypes.size != flatArgs.size) current
          else if (!m.getParameterTypes.zipWithIndex.forall {
            case (c, i) => isCompatible(c, flatArgs(i).getClass)
          }) current
          else Some(m)
      }

    method
  }