<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>ChangeStreamRecordMapper (Apache Beam 2.38.0-SNAPSHOT)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="ChangeStreamRecordMapper (Apache Beam 2.38.0-SNAPSHOT)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/MapperFactory.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.mapper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html" target="_top">Frames</a></li>
<li><a href="ChangeStreamRecordMapper.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.beam.sdk.io.gcp.spanner.changestreams.mapper</div>
<h2 title="Class ChangeStreamRecordMapper" class="title">Class ChangeStreamRecordMapper</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.io.gcp.spanner.changestreams.mapper.ChangeStreamRecordMapper</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">ChangeStreamRecordMapper</span>
extends java.lang.Object</pre>
<div class="block">This class is responsible for transforming a <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner"><code>Struct</code></a> to a <code>List</code> of <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/ChangeStreamRecord.html" title="interface in org.apache.beam.sdk.io.gcp.spanner.changestreams.model"><code>ChangeStreamRecord</code></a> models.

 <p>The change stream full specification can be seen in the internal documentation
 https://docs.google.com/document/d/1nLlMGvQLIeUSDNmtoLT9vaQo0hVGl4CIf6iCSOkdIbA/edit#bookmark=id.fxgtygh8eony</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/ChangeStreamRecord.html" title="interface in org.apache.beam.sdk.io.gcp.spanner.changestreams.model">ChangeStreamRecord</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#toChangeStreamRecords-org.apache.beam.sdk.io.gcp.spanner.changestreams.model.PartitionMetadata-com.google.cloud.spanner.Struct-org.apache.beam.sdk.io.gcp.spanner.changestreams.dao.ChangeStreamResultSetMetadata-">toChangeStreamRecords</a></span>(<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/PartitionMetadata.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.model">PartitionMetadata</a>&nbsp;partition,
                     <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner">Struct</a>&nbsp;row,
                     <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/dao/ChangeStreamResultSetMetadata.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.dao">ChangeStreamResultSetMetadata</a>&nbsp;resultSetMetadata)</code>
<div class="block">Transforms a <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner"><code>Struct</code></a> representing a change stream result into a <code>List</code> of <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/ChangeStreamRecord.html" title="interface in org.apache.beam.sdk.io.gcp.spanner.changestreams.model"><code>ChangeStreamRecord</code></a> model.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="toChangeStreamRecords-org.apache.beam.sdk.io.gcp.spanner.changestreams.model.PartitionMetadata-com.google.cloud.spanner.Struct-org.apache.beam.sdk.io.gcp.spanner.changestreams.dao.ChangeStreamResultSetMetadata-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toChangeStreamRecords</h4>
<pre>public&nbsp;java.util.List&lt;<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/ChangeStreamRecord.html" title="interface in org.apache.beam.sdk.io.gcp.spanner.changestreams.model">ChangeStreamRecord</a>&gt;&nbsp;toChangeStreamRecords(<a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/PartitionMetadata.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.model">PartitionMetadata</a>&nbsp;partition,
                                                                <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner">Struct</a>&nbsp;row,
                                                                <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/dao/ChangeStreamResultSetMetadata.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.dao">ChangeStreamResultSetMetadata</a>&nbsp;resultSetMetadata)</pre>
<div class="block">Transforms a <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner"><code>Struct</code></a> representing a change stream result into a <code>List</code> of <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/ChangeStreamRecord.html" title="interface in org.apache.beam.sdk.io.gcp.spanner.changestreams.model"><code>ChangeStreamRecord</code></a> model. The type of the change stream record will be identified and one of
 the following subclasses can be returned within the resulting <code>List</code>:

 <ul>
   <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/DataChangeRecord.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.model"><code>DataChangeRecord</code></a>
   <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/HeartbeatRecord.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.model"><code>HeartbeatRecord</code></a>
   <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/ChildPartitionsRecord.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.model"><code>ChildPartitionsRecord</code></a>
 </ul>

 Additionally to the <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner"><code>Struct</code></a> received, the originating partition of the records (given by
 the <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/PartitionMetadata.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.model"><code>PartitionMetadata</code></a> parameter) and the stream metadata (given by the <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/dao/ChangeStreamResultSetMetadata.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.dao"><code>ChangeStreamResultSetMetadata</code></a>) are used to populate the <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/ChangeStreamRecordMetadata.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.model"><code>ChangeStreamRecordMetadata</code></a> for
 each record mapped.

 <p>The <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner"><code>Struct</code></a> is expected to have the following fields:

 <ul>
   <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#DATA_CHANGE_RECORD_COLUMN"><code>DATA_CHANGE_RECORD_COLUMN</code></a>: non-nullable <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner"><code>Struct</code></a>
       list of data change records.
       <ul>
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#COMMIT_TIMESTAMP_COLUMN"><code>COMMIT_TIMESTAMP_COLUMN</code></a>: non-nullable <code>Timestamp</code> representing the timestamp at which the modifications within the record
             were committed in Cloud Spanner.
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#SERVER_TRANSACTION_ID_COLUMN"><code>SERVER_TRANSACTION_ID_COLUMN</code></a>: non-nullable <code>String</code> representing the unique transaction id in which the modifications for this
             record occurred.
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#IS_LAST_RECORD_IN_TRANSACTION_IN_PARTITION_COLUMN"><code>IS_LAST_RECORD_IN_TRANSACTION_IN_PARTITION_COLUMN</code></a>:
             non-nullable <code>Boolean</code> indicating whether this record is the last emitted for
             the transaction.
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#RECORD_SEQUENCE_COLUMN"><code>RECORD_SEQUENCE_COLUMN</code></a>: non-nullable <code>String</code> representing the order in which this record appears within the context of a
             partition, commit timestamp and transaction.
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#TABLE_NAME_COLUMN"><code>TABLE_NAME_COLUMN</code></a>: non-nullable <code>String</code>
             representing the name of the table in which the modifications for this record
             occurred.
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#COLUMN_TYPES_COLUMN"><code>COLUMN_TYPES_COLUMN</code></a>: non-nullable <code>List</code> of
             <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner"><code>Struct</code></a>s representing the type of the primary keys and modified columns
             within this record.
             <ul>
               <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#NAME_COLUMN"><code>NAME_COLUMN</code></a>: non-nullable <code>String</code>
                   representing the name of a column.
               <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#TYPE_COLUMN"><code>TYPE_COLUMN</code></a>: non-nullable <code>String</code>
                   representing the type of a column.
               <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#IS_PRIMARY_KEY_COLUMN"><code>IS_PRIMARY_KEY_COLUMN</code></a>: non-nullable <code>Boolean</code> indicating if the column is part of the primary key.
               <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#ORDINAL_POSITION_COLUMN"><code>ORDINAL_POSITION_COLUMN</code></a>: non-nullable <code>Long</code> representing the position of the column in the table it is defined.
             </ul>
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#MODS_COLUMN"><code>MODS_COLUMN</code></a>: non-nullable <code>List</code> of <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner"><code>Struct</code></a>s representing the data modifications within this record.
             <ul>
               <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#KEYS_COLUMN"><code>KEYS_COLUMN</code></a>: non-nullable <code>String</code>
                   json object, where keys are the primary key column names, and the values are
                   their corresponding values.
               <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#OLD_VALUES_COLUMN"><code>OLD_VALUES_COLUMN</code></a>: nullable <code>String</code>
                   json object displaying the old state of the columns modified, where keys are
                   the column names, and the values are their corresponding values.
               <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#NEW_VALUES_COLUMN"><code>NEW_VALUES_COLUMN</code></a>: nullable <code>String</code>
                   json object displaying the new state of the columns modified, where keys are
                   the column names, and the values are their corresponding values.
             </ul>
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#MOD_TYPE_COLUMN"><code>MOD_TYPE_COLUMN</code></a>: non-nullable <code>String</code>
             representing the type of operation that caused the modifications (see also <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/ModType.html" title="enum in org.apache.beam.sdk.io.gcp.spanner.changestreams.model"><code>ModType</code></a>.
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#VALUE_CAPTURE_TYPE_COLUMN"><code>VALUE_CAPTURE_TYPE_COLUMN</code></a>: non-nullable <code>String</code> representing the capture type of the change stream that generated this
             record (see also <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/ValueCaptureType.html" title="enum in org.apache.beam.sdk.io.gcp.spanner.changestreams.model"><code>ValueCaptureType</code></a>).
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#NUMBER_OF_RECORDS_IN_TRANSACTION_COLUMN"><code>NUMBER_OF_RECORDS_IN_TRANSACTION_COLUMN</code></a>:
             non-nullable <code>Long</code> representing the total number of data change records for
             the transaction in which this record occurred.
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#NUMBER_OF_PARTITIONS_IN_TRANSACTION_COLUMN"><code>NUMBER_OF_PARTITIONS_IN_TRANSACTION_COLUMN</code></a>:
             non-nullable <code>Long</code> representing the total number of partitions for the
             transaction in which this record occurred.
       </ul>
   <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#HEARTBEAT_RECORD_COLUMN"><code>HEARTBEAT_RECORD_COLUMN</code></a>: non-nullable <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner"><code>Struct</code></a>
       list of hearbeat records.
       <ul>
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#TIMESTAMP_COLUMN"><code>TIMESTAMP_COLUMN</code></a>: non-nullable <code>Timestamp</code>
             representing the timestamp for which the change stream query has returned all
             changes (see more in <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/HeartbeatRecord.html#getTimestamp--"><code>HeartbeatRecord.getTimestamp()</code></a>.
       </ul>
   <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#CHILD_PARTITIONS_RECORD_COLUMN"><code>CHILD_PARTITIONS_RECORD_COLUMN</code></a>: non-nullable <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner"><code>Struct</code></a> list of child partitions records.
       <ul>
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#START_TIMESTAMP_COLUMN"><code>START_TIMESTAMP_COLUMN</code></a>: non-nullable <code>Timestamp</code> representing the timestamp at which the new partition started being
             valid in Cloud Spanner.
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#RECORD_SEQUENCE_COLUMN"><code>RECORD_SEQUENCE_COLUMN</code></a>: non-nullable <code>String</code> representing the order in which this record appears within the context of a
             partition and commit timestamp.
         <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#CHILD_PARTITIONS_COLUMN"><code>CHILD_PARTITIONS_COLUMN</code></a>: non-nullable <code>List</code>
             of <a href="https://static.javadoc.io/com.google.cloud/google-cloud-spanner/6.20.0/com/google/cloud/spanner/Struct.html?is-external=true" title="class or interface in com.google.cloud.spanner"><code>Struct</code></a> representing the new child partitions.
             <ul>
               <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#TOKEN_COLUMN"><code>TOKEN_COLUMN</code></a>: non-nullable <code>String</code>
                   representing the unique identifier of the new child partition.
               <li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html#PARENT_PARTITION_TOKENS_COLUMN"><code>PARENT_PARTITION_TOKENS_COLUMN</code></a>: non-nullable
                   <code>List</code> of <code>String</code> representing the unique identifier(s) of
                   parent partition(s) where this child partition originated from.
             </ul>
       </ul>
 </ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>partition</code> - the partition metadata from which the row was generated</dd>
<dd><code>row</code> - the struct row, representing a single change stream result (it may contain multiple
     change stream records within)</dd>
<dd><code>resultSetMetadata</code> - the metadata generated when reading the change stream row</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>List</code> of <a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/model/ChangeStreamRecord.html" title="interface in org.apache.beam.sdk.io.gcp.spanner.changestreams.model"><code>ChangeStreamRecord</code></a> subclasses</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../../../../org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/MapperFactory.html" title="class in org.apache.beam.sdk.io.gcp.spanner.changestreams.mapper"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../../index.html?org/apache/beam/sdk/io/gcp/spanner/changestreams/mapper/ChangeStreamRecordMapper.html" target="_top">Frames</a></li>
<li><a href="ChangeStreamRecordMapper.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
