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();
}