class RestoreBackupService {

    public MetadataBackupModel loadData(String strategy, MetadataCollections collection, String filename,
        long offset) throws StorageNotFoundException {
        LOGGER
            .info(String.format(
                "[Reconstruction]: Retrieve file {%s} from storage of {%s} Collection on {%s} Vitam strategy",
                filename, collection.name(), strategy));
        InputStream inputStream = null;
        try {
            DataCategory type;
            switch (collection) {
                case UNIT:
                    type = DataCategory.UNIT;
                    break;
                case OBJECTGROUP:
                    type = DataCategory.OBJECTGROUP;
                    break;
                default:
                    throw new IllegalArgumentException(String.format("ERROR: Invalid collection {%s}", collection));
            }
            inputStream = loadData(strategy, type, filename);
            MetadataBackupModel metadataBackupModel =
                JsonHandler.getFromInputStream(inputStream, MetadataBackupModel.class);
            if (metadataBackupModel.getMetadatas() != null && metadataBackupModel.getLifecycle() != null) {
                metadataBackupModel.setOffset(offset);
                return metadataBackupModel;
            }
        } catch (InvalidParseOperationException e) {
            throw new VitamRuntimeException("ERROR: Exception has been thrown when using storage service:", e);
        } finally {
            IOUtils.closeQuietly(inputStream);
        }

        return null;
    }

    public  RestoreBackupService();
    @VisibleForTesting public  RestoreBackupService(StorageClientFactory storageClientFactory);

}