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

    DefaultGradleExtensions extensions =
      context.objectMap.computeIfAbsent(readInt(reader, OBJECT_ID_FIELD), new SimpleObjectFactory<DefaultGradleExtensions>() {
        @Override
        public DefaultGradleExtensions create() {
          DefaultGradleExtensions gradleExtensions = new DefaultGradleExtensions();
          gradleExtensions.setParentProjectPath(readString(reader, "parentProjectPath"));
          gradleExtensions.getConfigurations().addAll(readConfigurations(reader, context));
          gradleExtensions.getConventions().addAll(readConventions(reader, context));
          gradleExtensions.getExtensions().addAll(readExtensions(reader, context));
          gradleExtensions.getGradleProperties().addAll(readGradleProperties(reader, context));
          // do not read tasks, as it will be added from ExternalProject model at BaseGradleProjectResolverExtension.populateModuleExtraModels
          return gradleExtensions;
        }
      });
    reader.stepOut();
    return extensions;
  }
@Nullable
  private static GradleExtensions read(final IonReader reader, final ReadContext context)