mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-385795 [gradle|tooling] cleanup GradleBuildScriptClasspathModel: replace add() with setClasspath()
Collecting entries into a local list and setting them all at once is simpler than maintaining a rolling hash via repeated add() calls. Call sites no longer need a forEach loop to populate the model. GitOrigin-RevId: 567c4f6252642f61e470d178428afb7ce940ee5c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
1afd5d66a8
commit
cb6b37c22f
+9
-8
@@ -18,14 +18,15 @@ import java.util.Objects;
|
||||
@ApiStatus.Internal
|
||||
public class DefaultGradleBuildScriptClasspathModel implements GradleBuildScriptClasspathModel {
|
||||
|
||||
private final @NotNull List<ClasspathEntryModel> myClasspathEntries;
|
||||
private @NotNull List<ClasspathEntryModel> myClasspathEntries;
|
||||
private int myClasspathEntriesHashCode;
|
||||
|
||||
private @Nullable File gradleHomeDir;
|
||||
private String myGradleVersion;
|
||||
private int myClasspathEntriesHashCode;
|
||||
|
||||
public DefaultGradleBuildScriptClasspathModel() {
|
||||
myClasspathEntries = new ArrayList<>(0);
|
||||
myClasspathEntriesHashCode = 0;
|
||||
myClasspathEntriesHashCode = myClasspathEntries.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -33,6 +34,11 @@ public class DefaultGradleBuildScriptClasspathModel implements GradleBuildScript
|
||||
return myClasspathEntries;
|
||||
}
|
||||
|
||||
public void setClasspath(@NotNull List<ClasspathEntryModel> classpathEntries) {
|
||||
myClasspathEntries = classpathEntries;
|
||||
myClasspathEntriesHashCode = myClasspathEntries.hashCode();
|
||||
}
|
||||
|
||||
public void setGradleHomeDir(@Nullable File file) {
|
||||
gradleHomeDir = file;
|
||||
}
|
||||
@@ -42,11 +48,6 @@ public class DefaultGradleBuildScriptClasspathModel implements GradleBuildScript
|
||||
return gradleHomeDir;
|
||||
}
|
||||
|
||||
public void add(@NotNull ClasspathEntryModel classpathEntryModel) {
|
||||
myClasspathEntries.add(classpathEntryModel);
|
||||
myClasspathEntriesHashCode = 31 * myClasspathEntriesHashCode + classpathEntryModel.hashCode();
|
||||
}
|
||||
|
||||
public void setGradleVersion(@NotNull String gradleVersion) {
|
||||
myGradleVersion = gradleVersion;
|
||||
}
|
||||
|
||||
+11
-7
@@ -24,8 +24,10 @@ import org.jetbrains.plugins.gradle.tooling.ModelBuilderContext;
|
||||
import org.jetbrains.plugins.gradle.tooling.internal.ClasspathEntryModelImpl;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
@@ -46,13 +48,13 @@ public class GradleBuildScriptClasspathModelBuilder extends AbstractModelBuilder
|
||||
buildScriptClasspath.setGradleHomeDir(project.getGradle().getGradleHomeDir());
|
||||
buildScriptClasspath.setGradleVersion(GradleVersion.current().getVersion());
|
||||
|
||||
List<ClasspathEntryModel> classpathEntries = new ArrayList<>();
|
||||
|
||||
Project parentProject = project.getParent();
|
||||
if (parentProject != null) {
|
||||
GradleBuildScriptClasspathModel parentBuildScriptClasspath = GradleBuildScriptClasspathCache.getInstance(context)
|
||||
.getBuildScriptClasspathModel(parentProject);
|
||||
for (ClasspathEntryModel classpathEntryModel : parentBuildScriptClasspath.getClasspath()) {
|
||||
buildScriptClasspath.add(classpathEntryModel);
|
||||
}
|
||||
classpathEntries.addAll(parentBuildScriptClasspath.getClasspath());
|
||||
}
|
||||
|
||||
Configuration classpathConfiguration = project.getBuildscript().getConfigurations().findByName(CLASSPATH_CONFIGURATION_NAME);
|
||||
@@ -65,7 +67,7 @@ public class GradleBuildScriptClasspathModelBuilder extends AbstractModelBuilder
|
||||
ExternalProjectDependency projectDependency = (ExternalProjectDependency)dependency;
|
||||
Collection<File> projectDependencyArtifacts = projectDependency.getProjectDependencyArtifacts();
|
||||
Collection<File> projectDependencyArtifactsSources = projectDependency.getProjectDependencyArtifactsSources();
|
||||
buildScriptClasspath.add(new ClasspathEntryModelImpl(
|
||||
classpathEntries.add(new ClasspathEntryModelImpl(
|
||||
projectDependencyArtifacts,
|
||||
projectDependencyArtifactsSources,
|
||||
Collections.emptySet()
|
||||
@@ -73,7 +75,7 @@ public class GradleBuildScriptClasspathModelBuilder extends AbstractModelBuilder
|
||||
}
|
||||
else if (dependency instanceof ExternalLibraryDependency) {
|
||||
final ExternalLibraryDependency libraryDep = (ExternalLibraryDependency)dependency;
|
||||
buildScriptClasspath.add(new ClasspathEntryModelImpl(
|
||||
classpathEntries.add(new ClasspathEntryModelImpl(
|
||||
GradleCollections.createMaybeSingletonList(libraryDep.getFile()),
|
||||
GradleCollections.createMaybeSingletonList(libraryDep.getSource()),
|
||||
GradleCollections.createMaybeSingletonList(libraryDep.getJavadoc())
|
||||
@@ -81,7 +83,7 @@ public class GradleBuildScriptClasspathModelBuilder extends AbstractModelBuilder
|
||||
}
|
||||
else if (dependency instanceof ExternalMultiLibraryDependency) {
|
||||
ExternalMultiLibraryDependency multiLibraryDependency = (ExternalMultiLibraryDependency)dependency;
|
||||
buildScriptClasspath.add(new ClasspathEntryModelImpl(
|
||||
classpathEntries.add(new ClasspathEntryModelImpl(
|
||||
multiLibraryDependency.getFiles(),
|
||||
multiLibraryDependency.getSources(),
|
||||
multiLibraryDependency.getJavadoc()
|
||||
@@ -89,7 +91,7 @@ public class GradleBuildScriptClasspathModelBuilder extends AbstractModelBuilder
|
||||
}
|
||||
else if (dependency instanceof FileCollectionDependency) {
|
||||
FileCollectionDependency fileCollectionDependency = (FileCollectionDependency)dependency;
|
||||
buildScriptClasspath.add(new ClasspathEntryModelImpl(
|
||||
classpathEntries.add(new ClasspathEntryModelImpl(
|
||||
fileCollectionDependency.getFiles(),
|
||||
Collections.emptySet(),
|
||||
Collections.emptySet()
|
||||
@@ -98,6 +100,8 @@ public class GradleBuildScriptClasspathModelBuilder extends AbstractModelBuilder
|
||||
}
|
||||
}
|
||||
|
||||
buildScriptClasspath.setClasspath(classpathEntries);
|
||||
|
||||
GradleBuildScriptClasspathCache.getInstance(context)
|
||||
.setBuildScriptClasspathModel(project, buildScriptClasspath);
|
||||
|
||||
|
||||
+1
-4
@@ -115,10 +115,7 @@ public final class GradleBuildScriptClasspathSerializationService implements Ser
|
||||
}
|
||||
classpathModel.setGradleVersion(context.gradleVersion);
|
||||
classpathModel.setGradleHomeDir(context.gradleHomeDir);
|
||||
List<ClasspathEntryModel> classpathEntries = readClasspath(reader);
|
||||
for (ClasspathEntryModel entry : classpathEntries) {
|
||||
classpathModel.add(entry);
|
||||
}
|
||||
classpathModel.setClasspath(readClasspath(reader));
|
||||
return classpathModel;
|
||||
}
|
||||
});
|
||||
|
||||
+2
-3
@@ -98,9 +98,8 @@ class ToolingSerializerTest {
|
||||
myRandomParameters.randomize(DefaultGradleBuildScriptClasspathModel::class.java) {
|
||||
val result = DefaultGradleBuildScriptClasspathModel()
|
||||
result.gradleVersion = myRandom.nextObject(String::class.java)
|
||||
myRandom.objects(ClasspathEntryModel::class.java, myRandom.nextInt(1, 10))
|
||||
.distinct()
|
||||
.forEach { result.add(it) }
|
||||
result.classpath = myRandom.objects(ClasspathEntryModel::class.java, myRandom.nextInt(1, 10))
|
||||
.collect(Collectors.toList())
|
||||
return@randomize result
|
||||
}
|
||||
doTest(
|
||||
|
||||
Reference in New Issue
Block a user