class FileBasedStorage implements StorageProvider {

  @Override
  public @Nonnull Optional<String> readId(Class<? extends Id> idType, String name, Id... ancestors)
      throws IOException {
    try {
      return Optional.of(readFileToString(getIdFile(idType, name, ancestors), UTF_8));
    } catch (FileNotFoundException e) {
      return Optional.empty();
    }
  }

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

}