code: public List<String> expandFromExpansionFile(
              final ArgumentDefinition argumentDefinition,
              final String stringValue,
              final List<String> originalValuesForPreservation) {
          List<String> expandedValues = new ArrayList<>();
          if (EXPANSION_FILE_EXTENSIONS.stream().anyMatch(ext -> stringValue.endsWith(ext))) {
              // If any value provided for this argument is an expansion file, expand it in place,
              // but  preserve the original values for subsequent retrieval during command line
              // display, since expansion files can result in very large post-expansion command lines
              // (its harmless to update this multiple times).
              expandedValues.addAll(loadCollectionListFile(stringValue));
              argumentDefinition.setOriginalCommandLineValues(originalValuesForPreservation);
          } else {
              expandedValues.add(stringValue);
          }
          return expandedValues;
      }
docs: Expand any collection value that references a filename that ends in one of the accepted expansion
  extensions, and add the contents of the file to the list of values for that argument.
  @param argumentDefinition ArgumentDefinition for the arg being populated
  @param stringValue the argument value as presented on the command line
  @param originalValuesForPreservation list of original values provided on the command line
  @return a list containing the original entries in {@code originalValues}, with any
  values from list files expanded in place, preserving both the original list order and
  the file order