private static MainMethodStatus getMainMethodStatus(Method method, MainMethodSearchMode mode) {
    if ("main".equals(method.getName()) ) {
      if (!Modifier.isPrivate(method.getModifiers())) {
        if (mode == MainMethodSearchMode.ALL_METHOD ||
            (mode == MainMethodSearchMode.STATIC_METHOD && Modifier.isStatic(method.getModifiers()))) {
          Class<?>[] parameterTypes = method.getParameterTypes();
          if (parameterTypes.length == 1 && parameterTypes[0] == String[].class) {
            return MainMethodStatus.WithArgs;
          }
          if (parameterTypes.length == 0) {
            return MainMethodStatus.WithoutArgs;
          }
        }
      }
    }
    return MainMethodStatus.NotMain;
  }
private static MainMethodStatus getMainMethodStatus(Method method, MainMethodSearchMode mode)