public static void toJson()

in core/src/main/java/org/apache/iceberg/MetadataUpdateParser.java [180:283]


  public static void toJson(MetadataUpdate metadataUpdate, JsonGenerator generator)
      throws IOException {
    String updateAction = ACTIONS.get(metadataUpdate.getClass());

    // Provide better exception message than the NPE thrown by writing null for the update action,
    // which is required
    Preconditions.checkArgument(
        updateAction != null,
        "Cannot convert metadata update to json. Unrecognized metadata update type: %s",
        metadataUpdate.getClass().getName());

    generator.writeStartObject();
    generator.writeStringField(ACTION, updateAction);

    switch (updateAction) {
      case ASSIGN_UUID:
        writeAssignUUID((MetadataUpdate.AssignUUID) metadataUpdate, generator);
        break;
      case UPGRADE_FORMAT_VERSION:
        writeUpgradeFormatVersion((MetadataUpdate.UpgradeFormatVersion) metadataUpdate, generator);
        break;
      case ADD_SCHEMA:
        writeAddSchema((MetadataUpdate.AddSchema) metadataUpdate, generator);
        break;
      case SET_CURRENT_SCHEMA:
        writeSetCurrentSchema((MetadataUpdate.SetCurrentSchema) metadataUpdate, generator);
        break;
      case ADD_PARTITION_SPEC:
        writeAddPartitionSpec((MetadataUpdate.AddPartitionSpec) metadataUpdate, generator);
        break;
      case SET_DEFAULT_PARTITION_SPEC:
        writeSetDefaultPartitionSpec(
            (MetadataUpdate.SetDefaultPartitionSpec) metadataUpdate, generator);
        break;
      case ADD_SORT_ORDER:
        writeAddSortOrder((MetadataUpdate.AddSortOrder) metadataUpdate, generator);
        break;
      case SET_DEFAULT_SORT_ORDER:
        writeSetDefaultSortOrder((MetadataUpdate.SetDefaultSortOrder) metadataUpdate, generator);
        break;
      case SET_STATISTICS:
        writeSetStatistics((MetadataUpdate.SetStatistics) metadataUpdate, generator);
        break;
      case REMOVE_STATISTICS:
        writeRemoveStatistics((MetadataUpdate.RemoveStatistics) metadataUpdate, generator);
        break;
      case SET_PARTITION_STATISTICS:
        writeSetPartitionStatistics(
            (MetadataUpdate.SetPartitionStatistics) metadataUpdate, generator);
        break;
      case REMOVE_PARTITION_STATISTICS:
        writeRemovePartitionStatistics(
            (MetadataUpdate.RemovePartitionStatistics) metadataUpdate, generator);
        break;
      case ADD_SNAPSHOT:
        writeAddSnapshot((MetadataUpdate.AddSnapshot) metadataUpdate, generator);
        break;
      case REMOVE_SNAPSHOTS:
        MetadataUpdate.RemoveSnapshots removeSnapshots;
        removeSnapshots = (MetadataUpdate.RemoveSnapshots) metadataUpdate;
        writeRemoveSnapshots(removeSnapshots, generator);
        break;
      case REMOVE_SNAPSHOT_REF:
        writeRemoveSnapshotRef((MetadataUpdate.RemoveSnapshotRef) metadataUpdate, generator);
        break;
      case SET_SNAPSHOT_REF:
        writeSetSnapshotRef((MetadataUpdate.SetSnapshotRef) metadataUpdate, generator);
        break;
      case SET_PROPERTIES:
        writeSetProperties((MetadataUpdate.SetProperties) metadataUpdate, generator);
        break;
      case REMOVE_PROPERTIES:
        writeRemoveProperties((MetadataUpdate.RemoveProperties) metadataUpdate, generator);
        break;
      case SET_LOCATION:
        writeSetLocation((MetadataUpdate.SetLocation) metadataUpdate, generator);
        break;
      case ADD_VIEW_VERSION:
        writeAddViewVersion((MetadataUpdate.AddViewVersion) metadataUpdate, generator);
        break;
      case SET_CURRENT_VIEW_VERSION:
        writeSetCurrentViewVersionId(
            (MetadataUpdate.SetCurrentViewVersion) metadataUpdate, generator);
        break;
      case REMOVE_PARTITION_SPECS:
        writeRemovePartitionSpecs((MetadataUpdate.RemovePartitionSpecs) metadataUpdate, generator);
        break;
      case REMOVE_SCHEMAS:
        writeRemoveSchemas((MetadataUpdate.RemoveSchemas) metadataUpdate, generator);
        break;
      case ADD_ENCRYPTION_KEY:
        writeAddEncryptionKey((MetadataUpdate.AddEncryptionKey) metadataUpdate, generator);
        break;
      case REMOVE_ENCRYPTION_KEY:
        writeRemoveEncryptionKey((MetadataUpdate.RemoveEncryptionKey) metadataUpdate, generator);
        break;
      default:
        throw new IllegalArgumentException(
            String.format(
                "Cannot convert metadata update to json. Unrecognized action: %s", updateAction));
    }

    generator.writeEndObject();
  }