class RestartBackoffTimeStrategyFactoryLoader {

	public static RestartBackoffTimeStrategy.Factory createRestartBackoffTimeStrategyFactory(
			final RestartStrategies.RestartStrategyConfiguration jobRestartStrategyConfiguration,
			final Configuration clusterConfiguration,
			final boolean isCheckpointingEnabled) {

		checkNotNull(jobRestartStrategyConfiguration);
		checkNotNull(clusterConfiguration);

		return getJobRestartStrategyFactory(jobRestartStrategyConfiguration)
			.orElse(getClusterRestartStrategyFactory(clusterConfiguration)
				.orElse(getDefaultRestartStrategyFactory(isCheckpointingEnabled)));
	}

	private  RestartBackoffTimeStrategyFactoryLoader();

}