An extension point that allows end users to plug in a custom implementation of logical change
stream records. This is useful in cases where the user would like to apply advanced client side
filtering(for example, only keep DeleteFamily in the mutations). This adapter acts like a factory
for a SAX style change stream record builder.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Interface ChangeStreamRecordAdapter<ChangeStreamRecordT> (2.65.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.65.0 (latest)](/java/docs/reference/google-cloud-bigtable/latest/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.63.0](/java/docs/reference/google-cloud-bigtable/2.63.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.62.0](/java/docs/reference/google-cloud-bigtable/2.62.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.61.0](/java/docs/reference/google-cloud-bigtable/2.61.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.60.0](/java/docs/reference/google-cloud-bigtable/2.60.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.59.0](/java/docs/reference/google-cloud-bigtable/2.59.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.58.2](/java/docs/reference/google-cloud-bigtable/2.58.2/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.56.0](/java/docs/reference/google-cloud-bigtable/2.56.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.54.0](/java/docs/reference/google-cloud-bigtable/2.54.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.52.0](/java/docs/reference/google-cloud-bigtable/2.52.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.51.2](/java/docs/reference/google-cloud-bigtable/2.51.2/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.49.0](/java/docs/reference/google-cloud-bigtable/2.49.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.46.0](/java/docs/reference/google-cloud-bigtable/2.46.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.45.1](/java/docs/reference/google-cloud-bigtable/2.45.1/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.44.1](/java/docs/reference/google-cloud-bigtable/2.44.1/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.43.0](/java/docs/reference/google-cloud-bigtable/2.43.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.42.0](/java/docs/reference/google-cloud-bigtable/2.42.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.40.0](/java/docs/reference/google-cloud-bigtable/2.40.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.39.5](/java/docs/reference/google-cloud-bigtable/2.39.5/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.37.0](/java/docs/reference/google-cloud-bigtable/2.37.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.35.1](/java/docs/reference/google-cloud-bigtable/2.35.1/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.34.0](/java/docs/reference/google-cloud-bigtable/2.34.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.33.0](/java/docs/reference/google-cloud-bigtable/2.33.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.32.0](/java/docs/reference/google-cloud-bigtable/2.32.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.31.0](/java/docs/reference/google-cloud-bigtable/2.31.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.30.0](/java/docs/reference/google-cloud-bigtable/2.30.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.29.1](/java/docs/reference/google-cloud-bigtable/2.29.1/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter)\n- [2.28.0](/java/docs/reference/google-cloud-bigtable/2.28.0/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter) \n\n public interface ChangeStreamRecordAdapter\u003cChangeStreamRecordT\u003e\n\nAn extension point that allows end users to plug in a custom implementation of logical change\nstream records. This is useful in cases where the user would like to apply advanced client side\nfiltering(for example, only keep DeleteFamily in the mutations). This adapter acts like a factory\nfor a SAX style change stream record builder.\n\nMethods\n-------\n\n### createChangeStreamRecordBuilder()\n\n public abstract ChangeStreamRecordAdapter.ChangeStreamRecordBuilder\u003cChangeStreamRecordT\u003e createChangeStreamRecordBuilder()\n\nCreates a new instance of a [ChangeStreamRecordBuilder](/java/docs/reference/google-cloud-bigtable/latest/com.google.cloud.bigtable.data.v2.models.ChangeStreamRecordAdapter.ChangeStreamRecordBuilder).\n\n### getTokenFromChangeStreamMutation(ChangeStreamRecordT record)\n\n public abstract String getTokenFromChangeStreamMutation(ChangeStreamRecordT record)\n\n| **Internal Only**: This feature is not stable for application use.\n|\n| *Intended for use by the BigtableIO in apache/beam only.*\n\nGet the token from the given ChangeStreamMutation record. If the given record is not a\nChangeStreamMutation, it will throw an Exception.\n\n### getTokenFromHeartbeat(ChangeStreamRecordT heartbeatRecord)\n\n public abstract String getTokenFromHeartbeat(ChangeStreamRecordT heartbeatRecord)\n\n| **Internal Only**: This feature is not stable for application use.\n|\n| *Intended for use by the BigtableIO in apache/beam only.*\n\nGet the token from the given Heartbeat record. If the given record is not a Heartbeat, it will\nthrow an Exception.\n\n### isChangeStreamMutation(ChangeStreamRecordT record)\n\n public abstract boolean isChangeStreamMutation(ChangeStreamRecordT record)\n\n| **Internal Only**: This feature is not stable for application use.\n|\n| *Intended for use by the BigtableIO in apache/beam only.*\n\nChecks if the given change stream record is a ChangeStreamMutation.\n\n### isHeartbeat(ChangeStreamRecordT record)\n\n public abstract boolean isHeartbeat(ChangeStreamRecordT record)\n\n| **Internal Only**: This feature is not stable for application use.\n|\n| *Intended for use by the BigtableIO in apache/beam only.*\n\nChecks if the given change stream record is a Heartbeat."]]