@Override
  public List<ReplicaTokenInfo> retrieve(String mountPath) throws ReplicationException {
    File replicaTokenFile = new File(mountPath, replicaTokenFileName);
    if (replicaTokenFile.exists()) {
      try (FileInputStream fileInputStream = new FileInputStream(replicaTokenFile)) {
        return replicaTokenSerde.deserializeTokens(fileInputStream, replicaTokenFile.getAbsolutePath());
      } catch (IOException e) {
        throw new ReplicationException("IO error while reading from replica token file at mount path " + mountPath, e);
      }
    } else {
      return Collections.emptyList();
    }
  }
Constructor for {@link DiskTokenPersistor}.
@param replicaTokenFileName the token's file name.
@param partitionGroupedByMountPath A map between mount path and list of partitions under this mount path.
@param replicationMetrics metrics including token persist time.
@param clusterMap the {@link ClusterMap} to deserialize tokens.
@param tokenHelper the {@link FindTokenHelper} to deserialize tokens.
@param storeManager the {@link StoreManager} that manages disks and stores.
ambry-replication/src/main/java/com/github/ambry/replication/DiskTokenPersistor.java