blob: 8c14e5903e34c7d196f53210cd243973b7eed4f1 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- GitHub action javadoc-cleanup -->
<link rel="canonical" href="https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- End javadoc-cleanup block -->
<!-- Generated by javadoc -->
<title>ByteStringCoder (Apache Beam 2.53.0)</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="ByteStringCoder (Apache Beam 2.53.0)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/extensions/protobuf/DynamicProtoCoder.html" title="class in org.apache.beam.sdk.extensions.protobuf"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html" target="_top">Frames</a></li>
<li><a href="ByteStringCoder.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.classes.inherited.from.class.org.apache.beam.sdk.coders.Coder">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.sdk.extensions.protobuf</div>
<h2 title="Class ByteStringCoder" class="title">Class ByteStringCoder</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">org.apache.beam.sdk.coders.Coder</a>&lt;T&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/beam/sdk/coders/StructuredCoder.html" title="class in org.apache.beam.sdk.coders">org.apache.beam.sdk.coders.StructuredCoder</a>&lt;T&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/beam/sdk/coders/AtomicCoder.html" title="class in org.apache.beam.sdk.coders">org.apache.beam.sdk.coders.AtomicCoder</a>&lt;com.google.protobuf.ByteString&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.extensions.protobuf.ByteStringCoder</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.io.Serializable</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ByteStringCoder</span>
extends <a href="../../../../../../org/apache/beam/sdk/coders/AtomicCoder.html" title="class in org.apache.beam.sdk.coders">AtomicCoder</a>&lt;com.google.protobuf.ByteString&gt;</pre>
<div class="block">A <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders"><code>Coder</code></a> for <code>ByteString</code> objects based on their encoded Protocol Buffer form.
<p>When this code is used in a nested <code>Coder.Context</code>, the serialized <code>ByteString</code>
objects are first delimited by their size.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../serialized-form.html#org.apache.beam.sdk.extensions.protobuf.ByteStringCoder">Serialized Form</a></dd>
</dl>
</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>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.beam.sdk.coders.Coder">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.beam.sdk.coders.<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a></h3>
<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.Context.html" title="class in org.apache.beam.sdk.coders">Coder.Context</a>, <a href="../../../../../../org/apache/beam/sdk/coders/Coder.NonDeterministicException.html" title="class in org.apache.beam.sdk.coders">Coder.NonDeterministicException</a></code></li>
</ul>
</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="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>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html#consistentWithEquals--">consistentWithEquals</a></span>()</code>
<div class="block">Returns <code>true</code> if this <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders"><code>Coder</code></a> is injective with respect to <code>Object.equals(java.lang.Object)</code>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>com.google.protobuf.ByteString</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html#decode-java.io.InputStream-">decode</a></span>(java.io.InputStream&nbsp;inStream)</code>
<div class="block">Decodes a value of type <code>T</code> from the given input stream in the given context.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>com.google.protobuf.ByteString</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html#decode-java.io.InputStream-org.apache.beam.sdk.coders.Coder.Context-">decode</a></span>(java.io.InputStream&nbsp;inStream,
<a href="../../../../../../org/apache/beam/sdk/coders/Coder.Context.html" title="class in org.apache.beam.sdk.coders">Coder.Context</a>&nbsp;context)</code>
<div class="block">Decodes a value of type <code>T</code> from the given input stream in the given context.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html#encode-com.google.protobuf.ByteString-java.io.OutputStream-">encode</a></span>(com.google.protobuf.ByteString&nbsp;value,
java.io.OutputStream&nbsp;outStream)</code>
<div class="block">Encodes the given value of type <code>T</code> onto the given output stream.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html#encode-com.google.protobuf.ByteString-java.io.OutputStream-org.apache.beam.sdk.coders.Coder.Context-">encode</a></span>(com.google.protobuf.ByteString&nbsp;value,
java.io.OutputStream&nbsp;outStream,
<a href="../../../../../../org/apache/beam/sdk/coders/Coder.Context.html" title="class in org.apache.beam.sdk.coders">Coder.Context</a>&nbsp;context)</code>
<div class="block">Encodes the given value of type <code>T</code> onto the given output stream in the given context.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html#getEncodedElementByteSize-com.google.protobuf.ByteString-">getEncodedElementByteSize</a></span>(com.google.protobuf.ByteString&nbsp;value)</code>
<div class="block">Returns the size in bytes of the encoded value using this coder.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/beam/sdk/values/TypeDescriptor.html" title="class in org.apache.beam.sdk.values">TypeDescriptor</a>&lt;com.google.protobuf.ByteString&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html#getEncodedTypeDescriptor--">getEncodedTypeDescriptor</a></span>()</code>
<div class="block">Returns the <a href="../../../../../../org/apache/beam/sdk/values/TypeDescriptor.html" title="class in org.apache.beam.sdk.values"><code>TypeDescriptor</code></a> for the type encoded.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html#isRegisterByteSizeObserverCheap-com.google.protobuf.ByteString-">isRegisterByteSizeObserverCheap</a></span>(com.google.protobuf.ByteString&nbsp;value)</code>
<div class="block">Returns whether <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#registerByteSizeObserver-T-org.apache.beam.sdk.util.common.ElementByteSizeObserver-"><code>Coder.registerByteSizeObserver(T, org.apache.beam.sdk.util.common.ElementByteSizeObserver)</code></a> cheap enough to call for every element, that
is, if this <code>Coder</code> can calculate the byte size of the element to be coded in roughly
constant time (or lazily).</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html" title="class in org.apache.beam.sdk.extensions.protobuf">ByteStringCoder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html#of--">of</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html#verifyDeterministic--">verifyDeterministic</a></span>()</code>
<div class="block">Throw <a href="../../../../../../org/apache/beam/sdk/coders/Coder.NonDeterministicException.html" title="class in org.apache.beam.sdk.coders"><code>Coder.NonDeterministicException</code></a> if the coding is not deterministic.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.sdk.coders.AtomicCoder">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.beam.sdk.coders.<a href="../../../../../../org/apache/beam/sdk/coders/AtomicCoder.html" title="class in org.apache.beam.sdk.coders">AtomicCoder</a></h3>
<code><a href="../../../../../../org/apache/beam/sdk/coders/AtomicCoder.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/beam/sdk/coders/AtomicCoder.html#getCoderArguments--">getCoderArguments</a>, <a href="../../../../../../org/apache/beam/sdk/coders/AtomicCoder.html#getComponents--">getComponents</a>, <a href="../../../../../../org/apache/beam/sdk/coders/AtomicCoder.html#hashCode--">hashCode</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.sdk.coders.StructuredCoder">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.beam.sdk.coders.<a href="../../../../../../org/apache/beam/sdk/coders/StructuredCoder.html" title="class in org.apache.beam.sdk.coders">StructuredCoder</a></h3>
<code><a href="../../../../../../org/apache/beam/sdk/coders/StructuredCoder.html#toString--">toString</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.beam.sdk.coders.Coder">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.beam.sdk.coders.<a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a></h3>
<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#registerByteSizeObserver-T-org.apache.beam.sdk.util.common.ElementByteSizeObserver-">registerByteSizeObserver</a>, <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#structuralValue-T-">structuralValue</a>, <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#verifyDeterministic-org.apache.beam.sdk.coders.Coder-java.lang.String-org.apache.beam.sdk.coders.Coder...-">verifyDeterministic</a>, <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#verifyDeterministic-org.apache.beam.sdk.coders.Coder-java.lang.String-java.lang.Iterable-">verifyDeterministic</a></code></li>
</ul>
<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, finalize, getClass, notify, notifyAll, 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="of--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>of</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html" title="class in org.apache.beam.sdk.extensions.protobuf">ByteStringCoder</a>&nbsp;of()</pre>
</li>
</ul>
<a name="encode-com.google.protobuf.ByteString-java.io.OutputStream-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encode</h4>
<pre>public&nbsp;void&nbsp;encode(com.google.protobuf.ByteString&nbsp;value,
java.io.OutputStream&nbsp;outStream)
throws java.io.IOException,
<a href="../../../../../../org/apache/beam/sdk/coders/CoderException.html" title="class in org.apache.beam.sdk.coders">CoderException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#encode-T-java.io.OutputStream-">Coder</a></code></span></div>
<div class="block">Encodes the given value of type <code>T</code> onto the given output stream. Multiple elements can
be encoded next to each other on the output stream, each coder should encode information to
know how many bytes to read when decoding. A common approach is to prefix the encoding with the
element's encoded length.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#encode-T-java.io.OutputStream-">encode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;com.google.protobuf.ByteString&gt;</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if writing to the <code>OutputStream</code> fails for some reason</dd>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/CoderException.html" title="class in org.apache.beam.sdk.coders">CoderException</a></code> - if the value could not be encoded for some reason</dd>
</dl>
</li>
</ul>
<a name="encode-com.google.protobuf.ByteString-java.io.OutputStream-org.apache.beam.sdk.coders.Coder.Context-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encode</h4>
<pre>public&nbsp;void&nbsp;encode(com.google.protobuf.ByteString&nbsp;value,
java.io.OutputStream&nbsp;outStream,
<a href="../../../../../../org/apache/beam/sdk/coders/Coder.Context.html" title="class in org.apache.beam.sdk.coders">Coder.Context</a>&nbsp;context)
throws java.io.IOException,
<a href="../../../../../../org/apache/beam/sdk/coders/CoderException.html" title="class in org.apache.beam.sdk.coders">CoderException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#encode-T-java.io.OutputStream-org.apache.beam.sdk.coders.Coder.Context-">Coder</a></code></span></div>
<div class="block">Encodes the given value of type <code>T</code> onto the given output stream in the given context.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#encode-T-java.io.OutputStream-org.apache.beam.sdk.coders.Coder.Context-">encode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;com.google.protobuf.ByteString&gt;</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if writing to the <code>OutputStream</code> fails for some reason</dd>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/CoderException.html" title="class in org.apache.beam.sdk.coders">CoderException</a></code> - if the value could not be encoded for some reason</dd>
</dl>
</li>
</ul>
<a name="decode-java.io.InputStream-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decode</h4>
<pre>public&nbsp;com.google.protobuf.ByteString&nbsp;decode(java.io.InputStream&nbsp;inStream)
throws java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#decode-java.io.InputStream-">Coder</a></code></span></div>
<div class="block">Decodes a value of type <code>T</code> from the given input stream in the given context. Returns the
decoded value. Multiple elements can be encoded next to each other on the input stream, each
coder should encode information to know how many bytes to read when decoding. A common approach
is to prefix the encoding with the element's encoded length.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#decode-java.io.InputStream-">decode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;com.google.protobuf.ByteString&gt;</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if reading from the <code>InputStream</code> fails for some reason</dd>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/CoderException.html" title="class in org.apache.beam.sdk.coders">CoderException</a></code> - if the value could not be decoded for some reason</dd>
</dl>
</li>
</ul>
<a name="decode-java.io.InputStream-org.apache.beam.sdk.coders.Coder.Context-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decode</h4>
<pre>public&nbsp;com.google.protobuf.ByteString&nbsp;decode(java.io.InputStream&nbsp;inStream,
<a href="../../../../../../org/apache/beam/sdk/coders/Coder.Context.html" title="class in org.apache.beam.sdk.coders">Coder.Context</a>&nbsp;context)
throws java.io.IOException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#decode-java.io.InputStream-org.apache.beam.sdk.coders.Coder.Context-">Coder</a></code></span></div>
<div class="block">Decodes a value of type <code>T</code> from the given input stream in the given context. Returns the
decoded value.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#decode-java.io.InputStream-org.apache.beam.sdk.coders.Coder.Context-">decode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;com.google.protobuf.ByteString&gt;</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if reading from the <code>InputStream</code> fails for some reason</dd>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/CoderException.html" title="class in org.apache.beam.sdk.coders">CoderException</a></code> - if the value could not be decoded for some reason</dd>
</dl>
</li>
</ul>
<a name="getEncodedElementByteSize-com.google.protobuf.ByteString-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEncodedElementByteSize</h4>
<pre>protected&nbsp;long&nbsp;getEncodedElementByteSize(com.google.protobuf.ByteString&nbsp;value)
throws java.lang.Exception</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#getEncodedElementByteSize-T-">Coder</a></code></span></div>
<div class="block">Returns the size in bytes of the encoded value using this coder.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#getEncodedElementByteSize-T-">getEncodedElementByteSize</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;com.google.protobuf.ByteString&gt;</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a name="verifyDeterministic--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>verifyDeterministic</h4>
<pre>public&nbsp;void&nbsp;verifyDeterministic()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/AtomicCoder.html#verifyDeterministic--">AtomicCoder</a></code></span></div>
<div class="block">Throw <a href="../../../../../../org/apache/beam/sdk/coders/Coder.NonDeterministicException.html" title="class in org.apache.beam.sdk.coders"><code>Coder.NonDeterministicException</code></a> if the coding is not deterministic.
<p>In order for a <code>Coder</code> to be considered deterministic, the following must be true:
<ul>
<li>two values that compare as equal (via <code>Object.equals()</code> or <code>Comparable.compareTo()</code>, if supported) have the same encoding.
<li>the <code>Coder</code> always produces a canonical encoding, which is the same for an instance
of an object even if produced on different computers at different times.
</ul>.
<p>Unless overridden, does not throw. An <a href="../../../../../../org/apache/beam/sdk/coders/AtomicCoder.html" title="class in org.apache.beam.sdk.coders"><code>AtomicCoder</code></a> is presumed to be deterministic</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/AtomicCoder.html#verifyDeterministic--">verifyDeterministic</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/AtomicCoder.html" title="class in org.apache.beam.sdk.coders">AtomicCoder</a>&lt;com.google.protobuf.ByteString&gt;</code></dd>
</dl>
</li>
</ul>
<a name="consistentWithEquals--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>consistentWithEquals</h4>
<pre>public&nbsp;boolean&nbsp;consistentWithEquals()</pre>
<div class="block">Returns <code>true</code> if this <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders"><code>Coder</code></a> is injective with respect to <code>Object.equals(java.lang.Object)</code>.
<p>Whenever the encoded bytes of two values are equal, then the original values are equal
according to <code>Objects.equals()</code>. Note that this is well-defined for <code>null</code>.
<p>This condition is most notably false for arrays. More generally, this condition is false
whenever <code>equals()</code> compares object identity, rather than performing a
semantic/structural comparison.
<p>By default, returns false.
<p>Returns true; the encoded output of two invocations of <a href="../../../../../../org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html" title="class in org.apache.beam.sdk.extensions.protobuf"><code>ByteStringCoder</code></a> in the same
<code>Coder.Context</code> will be identical if and only if the original <code>ByteString</code> objects
are equal according to <code>Object.equals(java.lang.Object)</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#consistentWithEquals--">consistentWithEquals</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;com.google.protobuf.ByteString&gt;</code></dd>
</dl>
</li>
</ul>
<a name="isRegisterByteSizeObserverCheap-com.google.protobuf.ByteString-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRegisterByteSizeObserverCheap</h4>
<pre>public&nbsp;boolean&nbsp;isRegisterByteSizeObserverCheap(com.google.protobuf.ByteString&nbsp;value)</pre>
<div class="block">Returns whether <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#registerByteSizeObserver-T-org.apache.beam.sdk.util.common.ElementByteSizeObserver-"><code>Coder.registerByteSizeObserver(T, org.apache.beam.sdk.util.common.ElementByteSizeObserver)</code></a> cheap enough to call for every element, that
is, if this <code>Coder</code> can calculate the byte size of the element to be coded in roughly
constant time (or lazily).
<p>Not intended to be called by user code, but instead by <a href="../../../../../../org/apache/beam/sdk/PipelineRunner.html" title="class in org.apache.beam.sdk"><code>PipelineRunner</code></a>
implementations.
<p>By default, returns false. The default <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#registerByteSizeObserver-T-org.apache.beam.sdk.util.common.ElementByteSizeObserver-"><code>Coder.registerByteSizeObserver(T, org.apache.beam.sdk.util.common.ElementByteSizeObserver)</code></a> implementation
invokes <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#getEncodedElementByteSize-T-"><code>Coder.getEncodedElementByteSize(T)</code></a> which requires re-encoding an element unless it is
overridden. This is considered expensive.
<p>Returns true. <code>ByteString.size()</code> returns the size of an array and a <code>VarInt</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#isRegisterByteSizeObserverCheap-T-">isRegisterByteSizeObserverCheap</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;com.google.protobuf.ByteString&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getEncodedTypeDescriptor--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getEncodedTypeDescriptor</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/beam/sdk/values/TypeDescriptor.html" title="class in org.apache.beam.sdk.values">TypeDescriptor</a>&lt;com.google.protobuf.ByteString&gt;&nbsp;getEncodedTypeDescriptor()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#getEncodedTypeDescriptor--">Coder</a></code></span></div>
<div class="block">Returns the <a href="../../../../../../org/apache/beam/sdk/values/TypeDescriptor.html" title="class in org.apache.beam.sdk.values"><code>TypeDescriptor</code></a> for the type encoded.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html#getEncodedTypeDescriptor--">getEncodedTypeDescriptor</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a>&lt;com.google.protobuf.ByteString&gt;</code></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/extensions/protobuf/DynamicProtoCoder.html" title="class in org.apache.beam.sdk.extensions.protobuf"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/extensions/protobuf/ByteStringCoder.html" target="_top">Frames</a></li>
<li><a href="ByteStringCoder.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.classes.inherited.from.class.org.apache.beam.sdk.coders.Coder">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>