code: @Nullable
      public static Compression forFileName(final String fileName,
              @Nullable final Compression fallback) {
          final int index = fileName.lastIndexOf('.');
          final String extension = (index < 0 ? fileName : fileName.substring(index + 1))
                  .toLowerCase();
          for (final Compression compression : register) {
              final List<String> extensions = compression.fileExtensions;
              if (!extensions.isEmpty() && extensions.get(0).equals(extension)) {
                  return compression;
              }
          }
          for (final Compression compression : register) {
              if (compression.fileExtensions.contains(extension)) {
                  return compression;
              }
          }
          return fallback;
      }
docs: Returns the registered {@code Compression} format matching the extension in the file name
  supplied, or the {@code fallback} specified if none matches.
  
  @param fileName
  the file name, not null
  @param fallback
  the {@code Compression} to return if none matches
  @return the matching {@code Compression}, or the {@code fallback} one if none of the
  registered {@code Compression}s matches