class HadoopFileSystem extends FileSystem<HadoopResourceId> {

  @Override
  protected HadoopResourceId matchNewResource(String singleResourceSpec, boolean isDirectory) {
    try {
      if (singleResourceSpec.endsWith("/") && !isDirectory) {
        throw new IllegalArgumentException(String.format(
            "Expected file path but received directory path %s", singleResourceSpec));
      }
      return !singleResourceSpec.endsWith("/") && isDirectory
          ? new HadoopResourceId(new URI(singleResourceSpec + "/"))
          : new HadoopResourceId(new URI(singleResourceSpec));
    } catch (URISyntaxException e) {
      throw new IllegalArgumentException(
          String.format("Invalid spec %s directory %s", singleResourceSpec, isDirectory),
          e);
    }
  }

    HadoopFileSystem(Configuration configuration);

}