@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, "_type", IdeaSingleEntryLibraryDependency.class.getSimpleName());
          writeFile(writer, "file", libraryDependency.getFile());
          writeFile(writer, "javadoc", libraryDependency.getJavadoc());
          writeFile(writer, "source", libraryDependency.getSource());
          writeString(writer, "scope", libraryDependency.getScope().getScope());
          writeBoolean(writer, "exported", libraryDependency.getExported());

          writer.setFieldName("gradleModuleVersion");
          GradleModuleVersion version = libraryDependency.getGradleModuleVersion();
          if (version != null) {
            writer.stepIn(IonType.STRUCT);
            writeString(writer, "group", version.getGroup());
            writeString(writer, "name", version.getName());
            writeString(writer, "version", version.getVersion());
            writer.stepOut();
          }
          else {
            writer.writeNull();
          }
        }
        writer.stepOut();
      }
@Override
      public void process(boolean isAdded, int objectId)