code: public FunctionInfo getFunction(String methodDesc) {
  
          methodDesc = methodDesc.replace('.', '$');
          int paramsStartPos = methodDesc.indexOf('(');
          int firstSep = methodDesc.indexOf('$');
          String prefix = firstSep != -1 && firstSep < paramsStartPos ? methodDesc.substring(0, firstSep) : "";
          methodDesc = prefix.length() > 0 ? methodDesc.substring(prefix.length() + 1) : methodDesc;
          FunctionInfo[] f = getFunctions();
  
          for (int i = 0; i < f.length; i++) {
              String p = f[i].getProvider() != null ? f[i].getProvider().getContextPrefixName().trim() : "";
              p = p.endsWith("$") ? p.substring(0, p.length() - 1) : p;
              if (("".equals(prefix) || prefix.equals(p)) &&
                      new TemplateCallExtractor.AppMethodInfo(f[i].getDescriptor().getMethod()).equals(
                      new TemplateCallExtractor.AppMethodInfo(methodDesc)))
              return f[i];
          }
  
          return null;
  
      }
docs: /*
  Returns a FunctionInfo for a method descriptor.