private ConfigModuleDescriptor findConfigDir()

in src/com/intellij/idea/plugin/hybris/project/descriptors/DefaultHybrisProjectDescriptor.java [201:254]


    private ConfigModuleDescriptor findConfigDir() {
        final List<ConfigModuleDescriptor> foundConfigModules = new ArrayList<>();
        PlatformModuleDescriptor platformHybrisModuleDescriptor = null;
        for (ModuleDescriptor moduleDescriptor : foundModules) {
            if (moduleDescriptor instanceof final ConfigModuleDescriptor descriptor) {
                foundConfigModules.add(descriptor);
            }
            if (moduleDescriptor instanceof final PlatformModuleDescriptor descriptor) {
                platformHybrisModuleDescriptor = descriptor;
            }
        }
        if (platformHybrisModuleDescriptor == null) {
            if (foundConfigModules.size() == 1) {
                return foundConfigModules.get(0);
            }
            return null;
        }
        final File configDir;
        if (externalConfigDirectory != null) {
            configDir = externalConfigDirectory;
            if (!configDir.isDirectory()) {
                return null;
            }
        } else {
            configDir = getExpectedConfigDir(platformHybrisModuleDescriptor);
            if (configDir == null || !configDir.isDirectory()) {
                if (foundConfigModules.size() == 1) {
                    return foundConfigModules.get(0);
                }
                return null;
            }
        }
        for (final ConfigModuleDescriptor configHybrisModuleDescriptor : foundConfigModules) {
            if (FileUtil.filesEqual(configHybrisModuleDescriptor.getModuleRootDirectory(), configDir)) {
                return configHybrisModuleDescriptor;
            }
        }
        final HybrisProjectService hybrisProjectService = ApplicationManager.getApplication().getService(HybrisProjectService.class);

        if (hybrisProjectService.isConfigModule(configDir)) {
            try {
                final var configHybrisModuleDescriptor = ModuleDescriptorFactory.INSTANCE.createConfigDescriptor(
                    configDir, platformHybrisModuleDescriptor.getRootProjectDescriptor(), configDir.getName()
                );
                LOG.info("Creating Overridden Config module in local.properties for " + configDir.getAbsolutePath());
                foundModules.add(configHybrisModuleDescriptor);
                Collections.sort(foundModules);
                return configHybrisModuleDescriptor;
            } catch (HybrisConfigurationException e) {
                // no-op
            }
        }
        return null;
    }