public void replay()

in metadata/src/main/java/org/apache/kafka/image/MetadataDelta.java [184:263]


    public void replay(ApiMessage record) {
        MetadataRecordType type = MetadataRecordType.fromId(record.apiKey());
        switch (type) {
            case REGISTER_BROKER_RECORD:
                replay((RegisterBrokerRecord) record);
                break;
            case UNREGISTER_BROKER_RECORD:
                replay((UnregisterBrokerRecord) record);
                break;
            case TOPIC_RECORD:
                replay((TopicRecord) record);
                break;
            case PARTITION_RECORD:
                replay((PartitionRecord) record);
                break;
            case CONFIG_RECORD:
                replay((ConfigRecord) record);
                break;
            case PARTITION_CHANGE_RECORD:
                replay((PartitionChangeRecord) record);
                break;
            case FENCE_BROKER_RECORD:
                replay((FenceBrokerRecord) record);
                break;
            case UNFENCE_BROKER_RECORD:
                replay((UnfenceBrokerRecord) record);
                break;
            case REMOVE_TOPIC_RECORD:
                replay((RemoveTopicRecord) record);
                break;
            case DELEGATION_TOKEN_RECORD:
                replay((DelegationTokenRecord) record);
                break;
            case USER_SCRAM_CREDENTIAL_RECORD:
                replay((UserScramCredentialRecord) record);
                break;
            case FEATURE_LEVEL_RECORD:
                replay((FeatureLevelRecord) record);
                break;
            case CLIENT_QUOTA_RECORD:
                replay((ClientQuotaRecord) record);
                break;
            case PRODUCER_IDS_RECORD:
                replay((ProducerIdsRecord) record);
                break;
            case BROKER_REGISTRATION_CHANGE_RECORD:
                replay((BrokerRegistrationChangeRecord) record);
                break;
            case ACCESS_CONTROL_ENTRY_RECORD:
                replay((AccessControlEntryRecord) record);
                break;
            case CLEAR_ELR_RECORD:
                replay((ClearElrRecord) record);
                break;
            case REMOVE_ACCESS_CONTROL_ENTRY_RECORD:
                replay((RemoveAccessControlEntryRecord) record);
                break;
            case REMOVE_USER_SCRAM_CREDENTIAL_RECORD:
                replay((RemoveUserScramCredentialRecord) record);
                break;
            case REMOVE_DELEGATION_TOKEN_RECORD:
                replay((RemoveDelegationTokenRecord) record);
                break;
            case NO_OP_RECORD:
                /* NoOpRecord is an empty record and doesn't need to be replayed beyond
                 * updating the highest offset and epoch.
                 */
                break;
            case ZK_MIGRATION_STATE_RECORD:
                // In 4.0, although migration is no longer supported and ZK has been removed from Kafka,
                // users might migrate from ZK to KRaft in version 3.x and then perform a rolling upgrade to 4.0.
                // Therefore, this case needs to be retained but will be a no-op.
                break;
            case REGISTER_CONTROLLER_RECORD:
                replay((RegisterControllerRecord) record);
                break;
            default:
                throw new RuntimeException("Unknown metadata record type " + type);
        }
    }