@Override
      public void process(boolean isAdded, int objectId) throws IOException {
        writer.stepIn(IonType.STRUCT);
        writer.setFieldName(OBJECT_ID_FIELD);
        writer.writeInt(objectId);
        if (isAdded) {
          writeString(writer, "languageLevel", getJavaVersion(getLanguageLevel(languageSettings)));
          writeString(writer, "targetBytecodeVersion",
                      getJavaVersion(nullizeUnsupported(new TargetBytecodeVersionGetter(languageSettings))));
          writer.setFieldName("jdk");
          InstalledJdk jdk = nullizeUnsupported(new JdkGetter(languageSettings));
          if (jdk != null) {
            writer.stepIn(IonType.STRUCT);
            writeFile(writer, "javaHome", jdk.getJavaHome());
            JavaVersion jdkJavaVersion = getJavaVersion(jdk);
            writeString(writer, "javaVersion", jdkJavaVersion == null ? null : jdkJavaVersion.name());
            writer.stepOut();
          }
          else {
            writer.writeNull();
          }
        }
        writer.stepOut();
      }
@Override
      public void process(boolean isAdded, int objectId)