@Nullable
  private static GradleBuildScriptClasspathModel read(final IonReader reader, final ReadContext context) {
    if (reader.next() == null) return null;
    reader.stepIn();

    DefaultGradleBuildScriptClasspathModel model =
      context.objectMap.computeIfAbsent(readInt(reader, OBJECT_ID_FIELD), new SimpleObjectFactory<DefaultGradleBuildScriptClasspathModel>() {
        @Override
        public DefaultGradleBuildScriptClasspathModel create() {
          DefaultGradleBuildScriptClasspathModel classpathModel = new DefaultGradleBuildScriptClasspathModel();
          if (!context.isFirstModelRead) {
            context.isFirstModelRead = true;
            context.gradleVersion = assertNotNull(readString(reader, "gradleVersion"));
            context.gradleHomeDir = readFile(reader, "gradleHomeDir");
          }
          classpathModel.setGradleVersion(context.gradleVersion);
          classpathModel.setGradleHomeDir(context.gradleHomeDir);
          List<ClasspathEntryModel> classpathEntries = readClasspath(reader);
          for (ClasspathEntryModel entry : classpathEntries) {
            classpathModel.add(entry);
          }
          return classpathModel;
        }
      });
    reader.stepOut();
    return model;
  }
@Nullable
  private static GradleBuildScriptClasspathModel read(final IonReader reader, final ReadContext context)