class MapsSectionProcessingStrategy implements ISectionStrategy {

    @Override
    public void onLoadConfig(final IObject config)
            throws ConfigurationProcessingException {
        try {
            List<IObject> section = (List<IObject>) config.getValue(name);

            IChainStorage chainStorage = IOC.resolve(Keys.getOrAdd(IChainStorage.class.getCanonicalName()));

            for (IObject mapDescription : section) {
                Object mapId = IOC.resolve(Keys.getOrAdd("chain_id_from_map_name"), mapDescription.getValue(mapIdFieldName));
                try {
                    chainStorage.register(mapId, mapDescription);
                } catch (ChainCreationException e) {
                    throw new ConfigurationProcessingException("Could not create chain for map #'" + String.valueOf(mapId) + "'.", e);
                }
            }
        } catch (InvalidArgumentException | ResolutionException | ReadValueException e) {
            throw new ConfigurationProcessingException("Error occurred loading \"maps\" section of configuration.", e);
        }
    }

    public  MapsSectionProcessingStrategy();

}