protected ConfigObject buildConfig()

in src/main/java/com/epam/gmp/service/ScriptContextBuilder.java [200:221]


    protected ConfigObject buildConfig(Deque<ConfigLayer> configStack, String environment, Map additionalBindings) throws ScriptInitializationException {
        Set<String> processedConfigs = new HashSet<>();
        Deque<ConfigObject> cfgObjStack = new LinkedList<>();
        ConfigObject resultConfig = new ConfigObject();

        while (!configStack.isEmpty()) {
            ConfigLayer cfgLayer = configStack.removeFirst();
            // Skip parsing if current config already parsed
            String curConfigPath = cfgLayer.getRoot().toString() + cfgLayer.getScriptName();
            if (processedConfigs.contains(curConfigPath)) continue;
            processedConfigs.add(curConfigPath);

            ConfigObject cfgObj = assembleConfigForLayer(configStack, cfgLayer, environment, additionalBindings);
            if (cfgObj != null) cfgObjStack.addFirst(cfgObj);
        }

        do {
            ConfigObject cfgItem = cfgObjStack.removeFirst();
            resultConfig.merge(cfgItem);
        } while (!cfgObjStack.isEmpty());
        return resultConfig;
    }