class FileBasedStorage implements StorageProvider {

  @Nonnull
  @Override
  public Optional<Layer1Topology> loadSynthesizedLayer1Topology(NetworkSnapshot snapshot)
      throws IOException {
    Path sl1tPath = getSynthesizedLayer1TopologyPath(snapshot.getNetwork(), snapshot.getSnapshot());
    // this is here for backward compatibility when we load up an existing container
    if (!Files.exists(sl1tPath)) {
      return Optional.empty();
    }
    return Optional.ofNullable(
        BatfishObjectMapper.mapper().readValue(sl1tPath.toFile(), Layer1Topology.class));
  }

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

}