private static InternalGradleTask readGradleTask(final IonReader reader, final ReadContext context) {
    IonType ionType = reader.next();
    if (ionType == IonType.NULL || ionType == null) {
      return null;
    }

    reader.stepIn();
    InternalGradleTask project =
      context.tasksMap.computeIfAbsent(readInt(reader, OBJECT_ID_FIELD), new IntObjectMap.ObjectFactory<InternalGradleTask>() {
        @Override
        public InternalGradleTask newInstance() {
          return new InternalGradleTask();
        }

        @Override
        public void fill(InternalGradleTask gradleTask) {
          gradleTask.setName(readString(reader, "name"));
          gradleTask.setDescription(readString(reader, "description"));
          gradleTask.setPath(readString(reader, "path"));
          gradleTask.setGroup(readString(reader, "group"));
          gradleTask.setDisplayName(readString(reader, "displayName"));
          gradleTask.setPublic(readBoolean(reader, "isPublic"));
          gradleTask.setProjectIdentifier(readProjectIdentifier(reader, context));
          gradleTask.setGradleProject(readGradleProject(reader, context, "project"));
        }
      });
    reader.stepOut();
    return project;
  }
private static InternalGradleTask readGradleTask(final IonReader reader, final ReadContext context)