class HadoopFileSystem extends FileSystem<HadoopResourceId> {

  @Override
  protected List<MatchResult> match(List<String> specs) {
    ImmutableList.Builder<MatchResult> resultsBuilder = ImmutableList.builder();
    for (String spec : specs) {
      try {
        FileStatus[] fileStatuses = fileSystem.globStatus(new Path(spec));
        List<Metadata> metadata = new ArrayList<>();
        for (FileStatus fileStatus : fileStatuses) {
          if (fileStatus.isFile()) {
            metadata.add(Metadata.builder()
                .setResourceId(new HadoopResourceId(fileStatus.getPath().toUri()))
                .setIsReadSeekEfficient(true)
                .setSizeBytes(fileStatus.getLen())
                .build());
          }
        }
        resultsBuilder.add(MatchResult.create(Status.OK, metadata));
      } catch (IOException e) {
        resultsBuilder.add(MatchResult.create(Status.ERROR, e));
      }
    }
    return resultsBuilder.build();
  }

    HadoopFileSystem(Configuration configuration);

}