class PreDeletionHooksConfiguration {

    public static PreDeletionHooksConfiguration from(HierarchicalConfiguration<ImmutableNode> configuration) throws ConfigurationException {
        List<HierarchicalConfiguration<ImmutableNode>> entries = configuration.configurationsAt(CONFIGURATION_ENTRY_NAME);

        return new PreDeletionHooksConfiguration(entries
            .stream()
            .map(Throwing.function(PreDeletionHookConfiguration::from).sneakyThrow())
            .collect(Guavate.toImmutableList()));
    }

    @VisibleForTesting  PreDeletionHooksConfiguration(List<PreDeletionHookConfiguration> hooksConfiguration);

}