diff --git a/plugins/gradle/tooling-extension-impl/src/com/intellij/gradle/toolingExtension/impl/model/buildScriptClasspathModel/GradleBuildScriptClasspathSerializationService.java b/plugins/gradle/tooling-extension-impl/src/com/intellij/gradle/toolingExtension/impl/model/buildScriptClasspathModel/GradleBuildScriptClasspathSerializationService.java index 5a458e0caed7..128c2c9a5979 100644 --- a/plugins/gradle/tooling-extension-impl/src/com/intellij/gradle/toolingExtension/impl/model/buildScriptClasspathModel/GradleBuildScriptClasspathSerializationService.java +++ b/plugins/gradle/tooling-extension-impl/src/com/intellij/gradle/toolingExtension/impl/model/buildScriptClasspathModel/GradleBuildScriptClasspathSerializationService.java @@ -18,7 +18,6 @@ import org.jetbrains.plugins.gradle.tooling.util.ObjectCollector; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; -import java.util.ArrayList; import java.util.List; import static org.jetbrains.plugins.gradle.tooling.serialization.ToolingStreamApiUtils.OBJECT_ID_FIELD; @@ -27,7 +26,9 @@ import static org.jetbrains.plugins.gradle.tooling.serialization.ToolingStreamAp import static org.jetbrains.plugins.gradle.tooling.serialization.ToolingStreamApiUtils.readFile; import static org.jetbrains.plugins.gradle.tooling.serialization.ToolingStreamApiUtils.readFileSet; import static org.jetbrains.plugins.gradle.tooling.serialization.ToolingStreamApiUtils.readInt; +import static org.jetbrains.plugins.gradle.tooling.serialization.ToolingStreamApiUtils.readList; import static org.jetbrains.plugins.gradle.tooling.serialization.ToolingStreamApiUtils.readString; +import static org.jetbrains.plugins.gradle.tooling.serialization.ToolingStreamApiUtils.writeCollection; import static org.jetbrains.plugins.gradle.tooling.serialization.ToolingStreamApiUtils.writeFile; import static org.jetbrains.plugins.gradle.tooling.serialization.ToolingStreamApiUtils.writeString; import static org.jetbrains.plugins.gradle.tooling.serialization.ToolingStreamApiUtils.writeStrings; @@ -83,12 +84,9 @@ public final class GradleBuildScriptClasspathSerializationService implements Ser } private static void writeClasspath(IonWriter writer, List classpath) throws IOException { - writer.setFieldName("classpath"); - writer.stepIn(IonType.LIST); - for (ClasspathEntryModel entry : classpath) { - writeClasspathEntry(writer, entry); - } - writer.stepOut(); + writeCollection(writer, "classpath", classpath, entry -> + writeClasspathEntry(writer, entry) + ); } private static void writeClasspathEntry(IonWriter writer, ClasspathEntryModel entry) throws IOException { @@ -124,15 +122,9 @@ public final class GradleBuildScriptClasspathSerializationService implements Ser } private static List readClasspath(IonReader reader) { - List list = new ArrayList<>(); - reader.next(); - reader.stepIn(); - ClasspathEntryModel entry; - while ((entry = readClasspathEntry(reader)) != null) { - list.add(entry); - } - reader.stepOut(); - return list; + return readList(reader, "classpath", () -> + readClasspathEntry(reader) + ); } private static ClasspathEntryModel readClasspathEntry(IonReader reader) {