class FileBasedStorage implements StorageProvider {

  @VisibleForTesting
  @Nonnull
  Path validatePath(Path path) {
    try {
      Path sanitizedPath = path.toFile().getCanonicalFile().toPath();
      checkArgument(
          sanitizedPath.toString().startsWith(_baseDir.toString()),
          "Path %s outside of base dir %s",
          path,
          _baseDir);
      return sanitizedPath;
    } catch (IOException e) {
      throw new UncheckedIOException(e);
    }
  }

  public  FileBasedStorage(
      Path baseDir, BatfishLogger logger, BiFunction<String, Integer, AtomicInteger> newBatch);
  public  FileBasedStorage(Path baseDir, BatfishLogger logger);

}