docs: @Internal
      @UsedByGeneratedCode
      protected final boolean containsValueForMethodArgument(BeanResolutionContext resolutionContext, BeanContext context, int methodIndex, int argIndex) {
          if (context instanceof ApplicationContext) {
              MethodInjectionPoint injectionPoint = methodInjectionPoints.get(methodIndex);
              Argument argument = injectionPoint.getArguments()[argIndex];
              String valueAnnStr = argument.getAnnotationMetadata().getValue(Value.class, String.class).orElse(null);
              String valString = resolvePropertyValueName(resolutionContext, injectionPoint.getAnnotationMetadata(), argument, valueAnnStr);
              ApplicationContext applicationContext = (ApplicationContext) context;
              Class type = argument.getType();
              boolean isConfigProps = type.isAnnotationPresent(ConfigurationProperties.class);
              boolean result = isConfigProps || Map.class.isAssignableFrom(type) ? applicationContext.containsProperties(valString) : applicationContext.containsProperty(valString);
              if (!result && isConfigurationProperties()) {
                  String cliOption = resolveCliOption(argument.getName());
                  if (cliOption != null) {
                      result = applicationContext.containsProperty(cliOption);
                  }
              }
              if (result && injectionPoint instanceof MissingMethodInjectionPoint) {
                  if (LOG.isWarnEnabled()) {
                      LOG.warn("Bean definition for type [{}] is compiled against an older version and value [{}] can no longer be set for missing method: {}",
                              getBeanType(),
                              valString,
                              injectionPoint.getName());
                  }
                  result = false;
              }
              return result;
          }
          return false;
      }