<!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>CoderHelpers (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="CoderHelpers (Apache Beam 2.38.0-SNAPSHOT)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/runners/spark/coders/CoderHelpers.FromByteFunction.html" title="class in org.apache.beam.runners.spark.coders"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/runners/spark/coders/CoderHelpers.html" target="_top">Frames</a></li>
<li><a href="CoderHelpers.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><a href="#nested.class.summary">Nested</a>&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.runners.spark.coders</div>
<h2 title="Class CoderHelpers" class="title">Class CoderHelpers</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.runners.spark.coders.CoderHelpers</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="typeNameLabel">CoderHelpers</span>
extends java.lang.Object</pre>
<div class="block">Serialization utility class.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.FromByteFunction.html" title="class in org.apache.beam.runners.spark.coders">CoderHelpers.FromByteFunction</a>&lt;<a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.FromByteFunction.html" title="type parameter in CoderHelpers.FromByteFunction">K</a>,<a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.FromByteFunction.html" title="type parameter in CoderHelpers.FromByteFunction">V</a>&gt;</span></code>
<div class="block">A function for converting a byte array pair to a key-value pair.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== 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="t1" class="tableTab"><span><a href="javascript:show(1);">Static 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>static &lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.html#fromByteArray-byte:A-org.apache.beam.sdk.coders.Coder-">fromByteArray</a></span>(byte[]&nbsp;serialized,
             <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder)</code>
<div class="block">Utility method for deserializing a byte array using the specified coder.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;java.lang.Iterable&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.html#fromByteArrays-java.util.Collection-org.apache.beam.sdk.coders.Coder-">fromByteArrays</a></span>(java.util.Collection&lt;byte[]&gt;&nbsp;serialized,
              <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder)</code>
<div class="block">Utility method for deserializing a Iterable of byte arrays using the specified coder.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;org.apache.spark.api.java.function.Function&lt;byte[],T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.html#fromByteFunction-org.apache.beam.sdk.coders.Coder-">fromByteFunction</a></span>(<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder)</code>
<div class="block">A function wrapper for converting a byte array to an object.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static &lt;K,V&gt;&nbsp;org.apache.spark.api.java.function.PairFunction&lt;scala.Tuple2&lt;<a href="../../../../../../org/apache/beam/runners/spark/util/ByteArray.html" title="class in org.apache.beam.runners.spark.util">ByteArray</a>,java.lang.Iterable&lt;byte[]&gt;&gt;,K,java.lang.Iterable&lt;V&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.html#fromByteFunctionIterable-org.apache.beam.sdk.coders.Coder-org.apache.beam.sdk.coders.Coder-">fromByteFunctionIterable</a></span>(<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;K&gt;&nbsp;keyCoder,
                        <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;V&gt;&nbsp;valueCoder)</code>
<div class="block">A function wrapper for converting a byte array pair to a key-value pair, where values are
 <code>Iterable</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.html#toByteArray-T-org.apache.beam.sdk.coders.Coder-">toByteArray</a></span>(T&nbsp;value,
           <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder)</code>
<div class="block">Utility method for serializing an object using the specified coder.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;java.util.List&lt;byte[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.html#toByteArrays-java.lang.Iterable-org.apache.beam.sdk.coders.Coder-">toByteArrays</a></span>(java.lang.Iterable&lt;T&gt;&nbsp;values,
            <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder)</code>
<div class="block">Utility method for serializing a Iterable of values using the specified coder.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.html#toByteArrayWithTs-T-org.apache.beam.sdk.coders.Coder-org.joda.time.Instant-">toByteArrayWithTs</a></span>(T&nbsp;value,
                 <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder,
                 <a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;timestamp)</code>
<div class="block">Utility method for serializing an object using the specified coder, appending timestamp
 representation.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static &lt;K,V&gt;&nbsp;org.apache.spark.api.java.function.PairFunction&lt;scala.Tuple2&lt;K,V&gt;,<a href="../../../../../../org/apache/beam/runners/spark/util/ByteArray.html" title="class in org.apache.beam.runners.spark.util">ByteArray</a>,byte[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.html#toByteFunction-org.apache.beam.sdk.coders.Coder-org.apache.beam.sdk.coders.Coder-">toByteFunction</a></span>(<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;K&gt;&nbsp;keyCoder,
              <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;V&gt;&nbsp;valueCoder)</code>
<div class="block">A function wrapper for converting a key-value pair to a byte array pair.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;org.apache.spark.api.java.function.Function&lt;T,byte[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.html#toByteFunction-org.apache.beam.sdk.coders.Coder-">toByteFunction</a></span>(<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder)</code>
<div class="block">A function wrapper for converting an object to a bytearray.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static &lt;K,V&gt;&nbsp;org.apache.spark.api.java.function.PairFunction&lt;scala.Tuple2&lt;K,V&gt;,<a href="../../../../../../org/apache/beam/runners/spark/util/ByteArray.html" title="class in org.apache.beam.runners.spark.util">ByteArray</a>,byte[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/runners/spark/coders/CoderHelpers.html#toByteFunctionWithTs-org.apache.beam.sdk.coders.Coder-org.apache.beam.sdk.coders.Coder-org.apache.spark.api.java.function.Function-">toByteFunctionWithTs</a></span>(<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;K&gt;&nbsp;keyCoder,
                    <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;V&gt;&nbsp;valueCoder,
                    org.apache.spark.api.java.function.Function&lt;scala.Tuple2&lt;K,V&gt;,<a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&gt;&nbsp;timestamp)</code>
<div class="block">A function wrapper for converting a key-value pair to a byte array pair, where the key in
 resulting ByteArray contains (key, timestamp).</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="toByteArray-java.lang.Object-org.apache.beam.sdk.coders.Coder-">
<!--   -->
</a><a name="toByteArray-T-org.apache.beam.sdk.coders.Coder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteArray</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;byte[]&nbsp;toByteArray(T&nbsp;value,
                                     <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder)</pre>
<div class="block">Utility method for serializing an object using the specified coder.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - type of value that is serialized</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - Value to serialize.</dd>
<dd><code>coder</code> - Coder to serialize with.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Byte array representing serialized object.</dd>
</dl>
</li>
</ul>
<a name="toByteArrayWithTs-java.lang.Object-org.apache.beam.sdk.coders.Coder-org.joda.time.Instant-">
<!--   -->
</a><a name="toByteArrayWithTs-T-org.apache.beam.sdk.coders.Coder-org.joda.time.Instant-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteArrayWithTs</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;byte[]&nbsp;toByteArrayWithTs(T&nbsp;value,
                                           <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder,
                                           <a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;timestamp)</pre>
<div class="block">Utility method for serializing an object using the specified coder, appending timestamp
 representation. This is useful when sorting by timestamp</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - type of value that is serialized</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - Value to serialize.</dd>
<dd><code>coder</code> - Coder to serialize with.</dd>
<dd><code>timestamp</code> - timestamp to be bundled into key's ByteArray representation</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Byte array representing serialized object.</dd>
</dl>
</li>
</ul>
<a name="toByteArrays-java.lang.Iterable-org.apache.beam.sdk.coders.Coder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteArrays</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;java.util.List&lt;byte[]&gt;&nbsp;toByteArrays(java.lang.Iterable&lt;T&gt;&nbsp;values,
                                                      <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder)</pre>
<div class="block">Utility method for serializing a Iterable of values using the specified coder.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - type of value that is serialized</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - Values to serialize.</dd>
<dd><code>coder</code> - Coder to serialize with.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of bytes representing serialized objects.</dd>
</dl>
</li>
</ul>
<a name="fromByteArray-byte:A-org.apache.beam.sdk.coders.Coder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fromByteArray</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;T&nbsp;fromByteArray(byte[]&nbsp;serialized,
                                  <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder)</pre>
<div class="block">Utility method for deserializing a byte array using the specified coder.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Type of object to be returned.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serialized</code> - bytearray to be deserialized.</dd>
<dd><code>coder</code> - Coder to deserialize with.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Deserialized object.</dd>
</dl>
</li>
</ul>
<a name="fromByteArrays-java.util.Collection-org.apache.beam.sdk.coders.Coder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fromByteArrays</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;java.lang.Iterable&lt;T&gt;&nbsp;fromByteArrays(java.util.Collection&lt;byte[]&gt;&nbsp;serialized,
                                                       <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder)</pre>
<div class="block">Utility method for deserializing a Iterable of byte arrays using the specified coder.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - Type of object to be returned.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serialized</code> - bytearrays to be deserialized.</dd>
<dd><code>coder</code> - Coder to deserialize with.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Iterable of deserialized objects.</dd>
</dl>
</li>
</ul>
<a name="toByteFunction-org.apache.beam.sdk.coders.Coder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteFunction</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;org.apache.spark.api.java.function.Function&lt;T,byte[]&gt;&nbsp;toByteFunction(<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder)</pre>
<div class="block">A function wrapper for converting an object to a bytearray.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The type of the object being serialized.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>coder</code> - Coder to serialize with.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A function that accepts an object and returns its coder-serialized form.</dd>
</dl>
</li>
</ul>
<a name="fromByteFunction-org.apache.beam.sdk.coders.Coder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fromByteFunction</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;org.apache.spark.api.java.function.Function&lt;byte[],T&gt;&nbsp;fromByteFunction(<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;T&gt;&nbsp;coder)</pre>
<div class="block">A function wrapper for converting a byte array to an object.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The type of the object being deserialized.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>coder</code> - Coder to deserialize with.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A function that accepts a byte array and returns its corresponding object.</dd>
</dl>
</li>
</ul>
<a name="toByteFunction-org.apache.beam.sdk.coders.Coder-org.apache.beam.sdk.coders.Coder-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteFunction</h4>
<pre>public static&nbsp;&lt;K,V&gt;&nbsp;org.apache.spark.api.java.function.PairFunction&lt;scala.Tuple2&lt;K,V&gt;,<a href="../../../../../../org/apache/beam/runners/spark/util/ByteArray.html" title="class in org.apache.beam.runners.spark.util">ByteArray</a>,byte[]&gt;&nbsp;toByteFunction(<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;K&gt;&nbsp;keyCoder,
                                                                                                                       <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;V&gt;&nbsp;valueCoder)</pre>
<div class="block">A function wrapper for converting a key-value pair to a byte array pair.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - The type of the key being serialized.</dd>
<dd><code>V</code> - The type of the value being serialized.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyCoder</code> - Coder to serialize keys.</dd>
<dd><code>valueCoder</code> - Coder to serialize values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A function that accepts a key-value pair and returns a pair of byte arrays.</dd>
</dl>
</li>
</ul>
<a name="toByteFunctionWithTs-org.apache.beam.sdk.coders.Coder-org.apache.beam.sdk.coders.Coder-org.apache.spark.api.java.function.Function-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteFunctionWithTs</h4>
<pre>public static&nbsp;&lt;K,V&gt;&nbsp;org.apache.spark.api.java.function.PairFunction&lt;scala.Tuple2&lt;K,V&gt;,<a href="../../../../../../org/apache/beam/runners/spark/util/ByteArray.html" title="class in org.apache.beam.runners.spark.util">ByteArray</a>,byte[]&gt;&nbsp;toByteFunctionWithTs(<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;K&gt;&nbsp;keyCoder,
                                                                                                                             <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;V&gt;&nbsp;valueCoder,
                                                                                                                             org.apache.spark.api.java.function.Function&lt;scala.Tuple2&lt;K,V&gt;,<a href="https://static.javadoc.io/joda-time/joda-time/2.10.10/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&gt;&nbsp;timestamp)</pre>
<div class="block">A function wrapper for converting a key-value pair to a byte array pair, where the key in
 resulting ByteArray contains (key, timestamp).</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - The type of the key being serialized.</dd>
<dd><code>V</code> - The type of the value being serialized.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyCoder</code> - Coder to serialize keys.</dd>
<dd><code>valueCoder</code> - Coder to serialize values.</dd>
<dd><code>timestamp</code> - timestamp of the input Tuple2</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A function that accepts a key-value pair and returns a pair of byte arrays.</dd>
</dl>
</li>
</ul>
<a name="fromByteFunctionIterable-org.apache.beam.sdk.coders.Coder-org.apache.beam.sdk.coders.Coder-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>fromByteFunctionIterable</h4>
<pre>public static&nbsp;&lt;K,V&gt;&nbsp;org.apache.spark.api.java.function.PairFunction&lt;scala.Tuple2&lt;<a href="../../../../../../org/apache/beam/runners/spark/util/ByteArray.html" title="class in org.apache.beam.runners.spark.util">ByteArray</a>,java.lang.Iterable&lt;byte[]&gt;&gt;,K,java.lang.Iterable&lt;V&gt;&gt;&nbsp;fromByteFunctionIterable(<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;K&gt;&nbsp;keyCoder,
                                                                                                                                                                         <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;V&gt;&nbsp;valueCoder)</pre>
<div class="block">A function wrapper for converting a byte array pair to a key-value pair, where values are
 <code>Iterable</code>.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - The type of the key being deserialized.</dd>
<dd><code>V</code> - The type of the value being deserialized.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyCoder</code> - Coder to deserialize keys.</dd>
<dd><code>valueCoder</code> - Coder to deserialize values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A function that accepts a pair of byte arrays and returns a key-value pair.</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/runners/spark/coders/CoderHelpers.FromByteFunction.html" title="class in org.apache.beam.runners.spark.coders"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/runners/spark/coders/CoderHelpers.html" target="_top">Frames</a></li>
<li><a href="CoderHelpers.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><a href="#nested.class.summary">Nested</a>&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>
