private EngineImportException convert(
      Class clazz,
      String methodName,
      Class[] paramTypes,
      EngineNoSuchMethodException e,
      boolean isInstance) {
    String expected = JavaClassHelper.getParameterAsString(paramTypes);
    String message = "Could not find ";
    if (!isInstance) {
      message += "static ";
    } else {
      message += "instance ";
    }

    if (paramTypes.length > 0) {
      message +=
          "method named '"
              + methodName
              + "' in class '"
              + JavaClassHelper.getClassNameFullyQualPretty(clazz)
              + "' with matching parameter number and expected parameter type(s) '"
              + expected
              + "'";
    } else {
      message +=
          "method named '"
              + methodName
              + "' in class '"
              + JavaClassHelper.getClassNameFullyQualPretty(clazz)
              + "' taking no parameters";
    }

    if (e.getNearestMissMethod() != null) {
      message +=
          (" (nearest match found was '"
              + e.getNearestMissMethod().getName()
              + "' taking type(s) '"
              + JavaClassHelper.getParameterAsString(e.getNearestMissMethod().getParameterTypes())
              + "')");
    }
    return new EngineImportException(message, e);
  }