From ef25ecb2e51c9e37103a41c5e734347fce60a548 Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Mon, 27 Jul 2015 15:00:31 +0300 Subject: [PATCH] gradle: expose buildscript repositories and dependencies for gradle framework support providers contribution --- .../BuildScriptDataBuilder.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/frameworkSupport/BuildScriptDataBuilder.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/frameworkSupport/BuildScriptDataBuilder.java index ad70b3ebc36f..3c985b361812 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/frameworkSupport/BuildScriptDataBuilder.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/frameworkSupport/BuildScriptDataBuilder.java @@ -34,6 +34,8 @@ public class BuildScriptDataBuilder { private final Set repositories = ContainerUtil.newTreeSet(); private final Set dependencies = ContainerUtil.newTreeSet(); private final Set properties = ContainerUtil.newTreeSet(); + private final Set buildScriptRepositories = ContainerUtil.newTreeSet(); + private final Set buildScriptDependencies = ContainerUtil.newTreeSet(); private final Set other = ContainerUtil.newTreeSet(); public BuildScriptDataBuilder(@NotNull VirtualFile buildScriptFile) { @@ -54,6 +56,7 @@ public class BuildScriptDataBuilder { return StringUtil.isNotEmpty(s) ? " " + s : ""; } }; + addBuildscriptLines(lines, padding); if (!plugins.isEmpty()) { lines.addAll(plugins); lines.add(""); @@ -80,6 +83,36 @@ public class BuildScriptDataBuilder { return StringUtil.join(lines, "\n"); } + private void addBuildscriptLines(@NotNull List lines, @NotNull Function padding) { + if (!buildScriptRepositories.isEmpty() || !buildScriptDependencies.isEmpty()) { + lines.add("buildscript {"); + final List buildScriptLines = ContainerUtil.newSmartList(); + if (!buildScriptRepositories.isEmpty()) { + buildScriptLines.add("repositories {"); + buildScriptLines.addAll(ContainerUtil.map(buildScriptRepositories, padding)); + buildScriptLines.add("}"); + } + if (!buildScriptDependencies.isEmpty()) { + buildScriptLines.add("dependencies {"); + buildScriptLines.addAll(ContainerUtil.map(buildScriptDependencies, padding)); + buildScriptLines.add("}"); + } + lines.addAll(ContainerUtil.map(buildScriptLines, padding)); + lines.add("}"); + lines.add(""); + } + } + + public BuildScriptDataBuilder addBuildscriptRepositoriesDefinition(@NotNull String definition) { + buildScriptRepositories.add(definition.trim()); + return this; + } + + public BuildScriptDataBuilder addBuildscriptDependencyNotation(@NotNull String notation) { + buildScriptDependencies.add(notation.trim()); + return this; + } + public BuildScriptDataBuilder addPluginDefinition(@NotNull String definition) { plugins.add(definition.trim()); return this;