<!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 (1.8.0_181-google-v7) on Wed Aug 14 17:37:15 PDT 2019 -->
<title>org.apache.beam.runners.dataflow.util (Apache Beam 2.15.0-SNAPSHOT)</title>
<meta name="date" content="2019-08-14">
<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="org.apache.beam.runners.dataflow.util (Apache Beam 2.15.0-SNAPSHOT)";
        }
    }
    catch(err) {
    }
//-->
</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 class="navBarCell1Rev">Package</li>
<li>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><a href="../../../../../../org/apache/beam/runners/dataflow/options/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../../org/apache/beam/runners/direct/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/runners/dataflow/util/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.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>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.beam.runners.dataflow.util</h1>
<div class="docSummary">
<div class="block">Provides miscellaneous internal utilities used by the Google Cloud Dataflow runner.</div>
</div>
<p>See:&nbsp;<a href="#package.description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/CloudObjectTranslator.html" title="interface in org.apache.beam.runners.dataflow.util">CloudObjectTranslator</a>&lt;T&gt;</td>
<td class="colLast">
<div class="block">A translator that takes an object and creates a <a href="../../../../../../org/apache/beam/runners/dataflow/util/CloudObject.html" title="class in org.apache.beam.runners.dataflow.util"><code>CloudObject</code></a> which can be converted back
 to the original object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/CoderCloudObjectTranslatorRegistrar.html" title="interface in org.apache.beam.runners.dataflow.util">CoderCloudObjectTranslatorRegistrar</a></td>
<td class="colLast">
<div class="block"><a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders"><code>Coder</code></a> authors have the ability to automatically have their <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders"><code>Coder</code></a> registered with
 the Dataflow Runner by creating a <code>ServiceLoader</code> entry and a concrete implementation of
 this interface.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/MonitoringUtil.JobMessagesHandler.html" title="interface in org.apache.beam.runners.dataflow.util">MonitoringUtil.JobMessagesHandler</a></td>
<td class="colLast">
<div class="block">An interface that can be used for defining callbacks to receive a list of JobMessages
 containing monitoring information.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/Stager.html" title="interface in org.apache.beam.runners.dataflow.util">Stager</a></td>
<td class="colLast">
<div class="block">Interface for staging files needed for running a Dataflow pipeline.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/CloudObject.html" title="class in org.apache.beam.runners.dataflow.util">CloudObject</a></td>
<td class="colLast">
<div class="block">A representation of an arbitrary Java object to be instantiated by Dataflow workers.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/CloudObjects.html" title="class in org.apache.beam.runners.dataflow.util">CloudObjects</a></td>
<td class="colLast">
<div class="block">Utilities for converting an object to a <a href="../../../../../../org/apache/beam/runners/dataflow/util/CloudObject.html" title="class in org.apache.beam.runners.dataflow.util"><code>CloudObject</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/DataflowTemplateJob.html" title="class in org.apache.beam.runners.dataflow.util">DataflowTemplateJob</a></td>
<td class="colLast">
<div class="block">A <a href="../../../../../../org/apache/beam/runners/dataflow/DataflowPipelineJob.html" title="class in org.apache.beam.runners.dataflow"><code>DataflowPipelineJob</code></a> that is returned when <code>--templateRunner</code> is set.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/DataflowTransport.html" title="class in org.apache.beam.runners.dataflow.util">DataflowTransport</a></td>
<td class="colLast">
<div class="block">Helpers for cloud communication.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/DefaultCoderCloudObjectTranslatorRegistrar.html" title="class in org.apache.beam.runners.dataflow.util">DefaultCoderCloudObjectTranslatorRegistrar</a></td>
<td class="colLast">
<div class="block">The <a href="../../../../../../org/apache/beam/runners/dataflow/util/CoderCloudObjectTranslatorRegistrar.html" title="interface in org.apache.beam.runners.dataflow.util"><code>CoderCloudObjectTranslatorRegistrar</code></a> containing the default collection of <a href="../../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders"><code>Coder</code></a> <a href="../../../../../../org/apache/beam/runners/dataflow/util/CloudObjectTranslator.html" title="interface in org.apache.beam.runners.dataflow.util"><code>Cloud Object Translators</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/GcsStager.html" title="class in org.apache.beam.runners.dataflow.util">GcsStager</a></td>
<td class="colLast">
<div class="block">Utility class for staging files to GCS.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/MonitoringUtil.html" title="class in org.apache.beam.runners.dataflow.util">MonitoringUtil</a></td>
<td class="colLast">
<div class="block">A helper class for monitoring jobs submitted to the service.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/MonitoringUtil.LoggingHandler.html" title="class in org.apache.beam.runners.dataflow.util">MonitoringUtil.LoggingHandler</a></td>
<td class="colLast">
<div class="block">A handler that logs monitoring messages.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/MonitoringUtil.TimeStampComparator.html" title="class in org.apache.beam.runners.dataflow.util">MonitoringUtil.TimeStampComparator</a></td>
<td class="colLast">
<div class="block">Comparator for sorting rows in increasing order based on timestamp.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/OutputReference.html" title="class in org.apache.beam.runners.dataflow.util">OutputReference</a></td>
<td class="colLast">
<div class="block">A representation used by <a href="https://static.javadoc.io/com.google.apis/google-api-services-dataflow/v1b3-rev20190607-1.27.0/com/google/api/services/dataflow/model/Step.html?is-external=true" title="class or interface in com.google.api.services.dataflow.model"><code>Step</code></a>s to reference the
 output of other <code>Step</code>s.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/PropertyNames.html" title="class in org.apache.beam.runners.dataflow.util">PropertyNames</a></td>
<td class="colLast">
<div class="block">Constant property names used by the SDK in CloudWorkflow specifications.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/RandomAccessData.html" title="class in org.apache.beam.runners.dataflow.util">RandomAccessData</a></td>
<td class="colLast">
<div class="block">An elastic-sized byte array which allows you to manipulate it as a stream, or access it directly.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/RandomAccessData.RandomAccessDataCoder.html" title="class in org.apache.beam.runners.dataflow.util">RandomAccessData.RandomAccessDataCoder</a></td>
<td class="colLast">
<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> which encodes the valid parts of this stream.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/RandomAccessData.UnsignedLexicographicalComparator.html" title="class in org.apache.beam.runners.dataflow.util">RandomAccessData.UnsignedLexicographicalComparator</a></td>
<td class="colLast">
<div class="block">A <code>Comparator</code> that compares two byte arrays lexicographically.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/SchemaCoderCloudObjectTranslator.html" title="class in org.apache.beam.runners.dataflow.util">SchemaCoderCloudObjectTranslator</a></td>
<td class="colLast">
<div class="block">Translator for Schema coders.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/Structs.html" title="class in org.apache.beam.runners.dataflow.util">Structs</a></td>
<td class="colLast">
<div class="block">A collection of static methods for manipulating datastructure representations transferred via the
 Dataflow API.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../../org/apache/beam/runners/dataflow/util/TimeUtil.html" title="class in org.apache.beam.runners.dataflow.util">TimeUtil</a></td>
<td class="colLast">
<div class="block">A helper class for converting between Dataflow API and SDK time representations.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package.description">
<!--   -->
</a>
<h2 title="Package org.apache.beam.runners.dataflow.util Description">Package org.apache.beam.runners.dataflow.util Description</h2>
<div class="block">Provides miscellaneous internal utilities used by the Google Cloud Dataflow runner.</div>
</div>
<!-- ======= 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 class="navBarCell1Rev">Package</li>
<li>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><a href="../../../../../../org/apache/beam/runners/dataflow/options/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../../org/apache/beam/runners/direct/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/runners/dataflow/util/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.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>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
