void (@NotNull String rootPath, @NotNull Map<String, GradleExtensions> extensions) { GradleProject gradleProject = new GradleProject(); for (Map.Entry<String, GradleExtensions> entry : extensions.entrySet()) { GradleExtensionsData extensionsData = new GradleExtensionsData(); GradleExtensions gradleExtensions = entry.getValue(); extensionsData.parent = gradleExtensions.getParentProjectPath(); for (org.jetbrains.plugins.gradle.model.GradleExtension extension : gradleExtensions.getExtensions()) { GradleExtension gradleExtension = new GradleExtension(); gradleExtension.name = extension.getName(); gradleExtension.rootTypeFqn = extension.getTypeFqn(); extensionsData.extensions.put(extension.getName(), gradleExtension); } for (org.jetbrains.plugins.gradle.model.GradleConvention convention : gradleExtensions.getConventions()) { GradleConvention gradleConvention = new GradleConvention(); gradleConvention.name = convention.getName(); gradleConvention.typeFqn = convention.getTypeFqn(); extensionsData.conventions.add(gradleConvention); } for (GradleProperty property : gradleExtensions.getGradleProperties()) { GradleProp gradleProp = new GradleProp(); gradleProp.name = property.getName(); gradleProp.typeFqn = property.getTypeFqn(); extensionsData.properties.put(gradleProp.name, gradleProp); } for (ExternalTask task : gradleExtensions.getTasks()) { GradleTask gradleTask = new GradleTask(); gradleTask.name = task.getName(); String type = task.getType(); if (type != null) { gradleTask.typeFqn = type; } StringBuilder description = new StringBuilder(); if (task.getDescription() != null) { description.append(task.getDescription()); if (task.getGroup() != null) { description.append("<p>"); } } if (task.getGroup() != null) { description.append("<i>Task group: ").append(task.getGroup()).append("<i>"); } gradleTask.description = description.toString(); extensionsData.tasksMap.put(gradleTask.name, gradleTask); } for (org.jetbrains.plugins.gradle.model.GradleConfiguration configuration : gradleExtensions.getConfigurations()) { GradleConfiguration gradleConfiguration = new GradleConfiguration(); gradleConfiguration.name = configuration.getName(); gradleConfiguration.description = configuration.getDescription(); gradleConfiguration.visible = configuration.isVisible(); gradleConfiguration.scriptClasspath = configuration.isScriptClasspathConfiguration(); gradleConfiguration.declarationAlternatives = configuration.getDeclarationAlternatives(); if (gradleConfiguration.scriptClasspath) { extensionsData.buildScriptConfigurations.put(configuration.getName(), gradleConfiguration); } else { extensionsData.configurations.put(configuration.getName(), gradleConfiguration); } } gradleProject.extensions.put(entry.getKey(), extensionsData); extensionsData.myGradleProject = gradleProject; } Map<String, GradleProject> projects = new HashMap<>(this.projects); projects.put(rootPath, gradleProject); this.projects = projects; }