def process()

in src/main/groovy/org/jetbrains/gradle/ext/IdeaFilesProcessor.groovy [121:163]


    def process(File layoutFile) {
        def gson = new Gson()
        def file = layoutFile
        if (!file.exists()) {
            logger.lifecycle("IDEA layout file 'layout.json' was not found, terminating.")
            return
        }

        final IdeaLayoutJson layout = gson.fromJson(file.text, IdeaLayoutJson)
        def ideaDir = new File(layout.ideaDirPath)
        ideaDirCallbacks.each { it.execute(ideaDir) }

        ideaFileXmlCallbacks.each { entry ->
            def ideaFile = new File(ideaDir, entry.getKey())
            def transformer = new XmlTransformer()
            entry.value.each {transformer.addAction(it) }
            def result = transformer.transform(ideaFile.text)
            ideaFile.write(result, StandardCharsets.UTF_8.name())
        }

        imlsCallbacks.each { entry ->
            def imlPath = lookUpImlPath(layout, entry.key)
            if (imlPath == null) {
                logger.warn("No path to iml is present for key [${entry.key}].\nLayout: $layout")
                return
            }
            def moduleFile = new File(imlPath)
            entry.value.each { it.execute(moduleFile) }
        }

        xmlCallbacks.each { entry ->
            String imlPath = lookUpImlPath(layout, entry.key)
            if (imlPath == null) {
                logger.warn("No path to iml is present for key [${entry.key}].\\nLayout: $layout")
                return
            }
            def moduleFile = new File(imlPath)
            def transformer = new XmlTransformer()
            entry.value.each { transformer.addAction(it) }
            def result = transformer.transform(moduleFile.text)
            moduleFile.write(result, StandardCharsets.UTF_8.name())
        }
    }