| <!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 Mon Jan 27 16:42:30 PST 2020 --> |
| <title>Combine.CombineFn (Apache Beam 2.20.0-SNAPSHOT)</title> |
| <meta name="date" content="2020-01-27"> |
| <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="Combine.CombineFn (Apache Beam 2.20.0-SNAPSHOT)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| var methods = {"i0":6,"i1":10,"i2":10,"i3":6,"i4":10,"i5":6,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":6,"i15":10}; |
| var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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><a href="../../../../../org/apache/beam/sdk/transforms/Combine.BinaryCombineLongFn.html" title="class in org.apache.beam.sdk.transforms"><span class="typeNameLink">Prev Class</span></a></li> |
| <li><a href="../../../../../org/apache/beam/sdk/transforms/Combine.Globally.html" title="class in org.apache.beam.sdk.transforms"><span class="typeNameLink">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../index.html?org/apache/beam/sdk/transforms/Combine.CombineFn.html" target="_top">Frames</a></li> |
| <li><a href="Combine.CombineFn.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../../../../allclasses-noframe.html">All 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: </li> |
| <li>Nested | </li> |
| <li>Field | </li> |
| <li><a href="#constructor.summary">Constr</a> | </li> |
| <li><a href="#method.summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li><a href="#constructor.detail">Constr</a> | </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.transforms</div> |
| <h2 title="Class Combine.CombineFn" class="title">Class Combine.CombineFn<InputT,AccumT,OutputT></h2> |
| </div> |
| <div class="contentContainer"> |
| <ul class="inheritance"> |
| <li>java.lang.Object</li> |
| <li> |
| <ul class="inheritance"> |
| <li>org.apache.beam.sdk.transforms.Combine.CombineFn<InputT,AccumT,OutputT></li> |
| </ul> |
| </li> |
| </ul> |
| <div class="description"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <dl> |
| <dt><span class="paramLabel">Type Parameters:</span></dt> |
| <dd><code>InputT</code> - type of input values</dd> |
| <dd><code>AccumT</code> - type of mutable accumulator values</dd> |
| <dd><code>OutputT</code> - type of output values</dd> |
| </dl> |
| <dl> |
| <dt>All Implemented Interfaces:</dt> |
| <dd>java.io.Serializable, <a href="../../../../../org/apache/beam/sdk/transforms/CombineFnBase.GlobalCombineFn.html" title="interface in org.apache.beam.sdk.transforms">CombineFnBase.GlobalCombineFn</a><InputT,AccumT,OutputT>, <a href="../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display">HasDisplayData</a></dd> |
| </dl> |
| <dl> |
| <dt>Direct Known Subclasses:</dt> |
| <dd><a href="../../../../../org/apache/beam/sdk/extensions/sketching/ApproximateDistinct.ApproximateDistinctFn.html" title="class in org.apache.beam.sdk.extensions.sketching">ApproximateDistinct.ApproximateDistinctFn</a>, <a href="../../../../../org/apache/beam/sdk/transforms/ApproximateUnique.ApproximateUniqueCombineFn.html" title="class in org.apache.beam.sdk.transforms">ApproximateUnique.ApproximateUniqueCombineFn</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.AccumulatingCombineFn.html" title="class in org.apache.beam.sdk.transforms">Combine.AccumulatingCombineFn</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.BinaryCombineDoubleFn.html" title="class in org.apache.beam.sdk.transforms">Combine.BinaryCombineDoubleFn</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.BinaryCombineFn.html" title="class in org.apache.beam.sdk.transforms">Combine.BinaryCombineFn</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.BinaryCombineIntegerFn.html" title="class in org.apache.beam.sdk.transforms">Combine.BinaryCombineIntegerFn</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.BinaryCombineLongFn.html" title="class in org.apache.beam.sdk.transforms">Combine.BinaryCombineLongFn</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.IterableCombineFn.html" title="class in org.apache.beam.sdk.transforms">Combine.IterableCombineFn</a>, <a href="../../../../../org/apache/beam/sdk/transforms/CombineFns.ComposedCombineFn.html" title="class in org.apache.beam.sdk.transforms">CombineFns.ComposedCombineFn</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/impl/transform/agg/CovarianceFn.html" title="class in org.apache.beam.sdk.extensions.sql.impl.transform.agg">CovarianceFn</a>, <a href="../../../../../org/apache/beam/sdk/transforms/Sample.FixedSizedSampleFn.html" title="class in org.apache.beam.sdk.transforms">Sample.FixedSizedSampleFn</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sketching/SketchFrequencies.CountMinSketchFn.html" title="class in org.apache.beam.sdk.extensions.sketching">SketchFrequencies.CountMinSketchFn</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sketching/TDigestQuantiles.TDigestQuantilesFn.html" title="class in org.apache.beam.sdk.extensions.sketching">TDigestQuantiles.TDigestQuantilesFn</a>, <a href="../../../../../org/apache/beam/sdk/extensions/sql/impl/transform/agg/VarianceFn.html" title="class in org.apache.beam.sdk.extensions.sql.impl.transform.agg">VarianceFn</a></dd> |
| </dl> |
| <dl> |
| <dt>Enclosing class:</dt> |
| <dd><a href="../../../../../org/apache/beam/sdk/transforms/Combine.html" title="class in org.apache.beam.sdk.transforms">Combine</a></dd> |
| </dl> |
| <hr> |
| <br> |
| <pre>public abstract static class <span class="typeNameLabel">Combine.CombineFn<InputT,AccumT,OutputT></span> |
| extends java.lang.Object</pre> |
| <div class="block">A <code>CombineFn<InputT, AccumT, OutputT></code> specifies how to combine a collection of input |
| values of type <code>InputT</code> into a single output value of type <code>OutputT</code>. It does this |
| via one or more intermediate mutable accumulator values of type <code>AccumT</code>. |
| |
| <p>The overall process to combine a collection of input <code>InputT</code> values into a single |
| output <code>OutputT</code> value is as follows: |
| |
| <ol> |
| <li>The input <code>InputT</code> values are partitioned into one or more batches. |
| <li>For each batch, the <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#createAccumulator--"><code>createAccumulator()</code></a> operation is invoked to create a fresh |
| mutable accumulator value of type <code>AccumT</code>, initialized to represent the |
| combination of zero values. |
| <li>For each input <code>InputT</code> value in a batch, the <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#addInput-AccumT-InputT-"><code>addInput(AccumT, InputT)</code></a> operation is |
| invoked to add the value to that batch's accumulator <code>AccumT</code> value. The |
| accumulator may just record the new value (e.g., if <code>AccumT == List<InputT></code>, or |
| may do work to represent the combination more compactly. |
| <li>The <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#mergeAccumulators-java.lang.Iterable-"><code>mergeAccumulators(java.lang.Iterable<AccumT>)</code></a> operation is invoked to combine a collection of |
| accumulator <code>AccumT</code> values into a single combined output accumulator <code>AccumT</code> value, once the merging accumulators have had all all the input values in their |
| batches added to them. This operation is invoked repeatedly, until there is only one |
| accumulator value left. |
| <li>The <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#extractOutput-AccumT-"><code>extractOutput(AccumT)</code></a> operation is invoked on the final accumulator <code>AccumT</code> |
| value to get the output <code>OutputT</code> value. |
| </ol> |
| |
| <p>For example: |
| |
| <pre><code> |
| public class AverageFn extends CombineFn<Integer, AverageFn.Accum, Double> { |
| public static class Accum implements Serializable { |
| int sum = 0; |
| int count = 0; |
| |
| @Override |
| public boolean equals(Object other) { |
| if (other == null) return false; |
| if (other == this) return true; |
| if (!(other instanceof Accum))return false; |
| |
| |
| Accum o = (Accum)other; |
| if (this.sum != o.sum || this.count != o.count) { |
| return false; |
| } else { |
| return true; |
| } |
| } |
| } |
| |
| public Accum createAccumulator() { |
| return new Accum(); |
| } |
| |
| public Accum addInput(Accum accum, Integer input) { |
| accum.sum += input; |
| accum.count++; |
| return accum; |
| } |
| |
| public Accum mergeAccumulators(Iterable<Accum> accums) { |
| Accum merged = createAccumulator(); |
| for (Accum accum : accums) { |
| merged.sum += accum.sum; |
| merged.count += accum.count; |
| } |
| return merged; |
| } |
| |
| public Double extractOutput(Accum accum) { |
| return ((double) accum.sum) / accum.count; |
| } |
| } |
| PCollection<Integer> pc = ...; |
| PCollection<Double> average = pc.apply(Combine.globally(new AverageFn())); |
| </code></pre> |
| |
| <p>Combining functions used by <a href="../../../../../org/apache/beam/sdk/transforms/Combine.Globally.html" title="class in org.apache.beam.sdk.transforms"><code>Combine.Globally</code></a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.PerKey.html" title="class in org.apache.beam.sdk.transforms"><code>Combine.PerKey</code></a>, <a href="../../../../../org/apache/beam/sdk/transforms/Combine.GroupedValues.html" title="class in org.apache.beam.sdk.transforms"><code>Combine.GroupedValues</code></a>, and <code>PTransforms</code> derived from them should be <i>associative</i> |
| and <i>commutative</i>. Associativity is required because input values are first broken up into |
| subgroups before being combined, and their intermediate results further combined, in an |
| arbitrary tree structure. Commutativity is required because any order of the input values is |
| ignored when breaking up input values into groups. |
| |
| <h3>Note on Data Encoding</h3> |
| |
| <p>Some form of data encoding is required when using custom types in a CombineFn which do not |
| have well-known coders. The sample code above uses a custom Accumulator which gets coder by |
| implementing <code>Serializable</code>. By doing this, we are relying on the generic <a href="../../../../../org/apache/beam/sdk/coders/CoderProvider.html" title="class in org.apache.beam.sdk.coders"><code>CoderProvider</code></a>, which is able to provide a coder for any <code>Serializable</code> if applicable. In cases where <code>Serializable</code> is not |
| efficient, or inapplicable, in general there are two alternatives for encoding: |
| |
| <ul> |
| <li>Default <a href="../../../../../org/apache/beam/sdk/coders/CoderRegistry.html" title="class in org.apache.beam.sdk.coders"><code>CoderRegistry</code></a>. For example, implement a coder |
| class explicitly and use the <code>@DefaultCoder</code> tag. See the <a href="../../../../../org/apache/beam/sdk/coders/CoderRegistry.html" title="class in org.apache.beam.sdk.coders"><code>CoderRegistry</code></a> for the numerous ways in which to bind a type |
| to a coder. |
| <li>CombineFn specific way. While extending CombineFn, overwrite both <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#getAccumulatorCoder-org.apache.beam.sdk.coders.CoderRegistry-org.apache.beam.sdk.coders.Coder-"><code>getAccumulatorCoder(org.apache.beam.sdk.coders.CoderRegistry, org.apache.beam.sdk.coders.Coder<InputT>)</code></a> and <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#getDefaultOutputCoder-org.apache.beam.sdk.coders.CoderRegistry-org.apache.beam.sdk.coders.Coder-"><code>getDefaultOutputCoder(org.apache.beam.sdk.coders.CoderRegistry, org.apache.beam.sdk.coders.Coder<InputT>)</code></a>. |
| </ul></div> |
| <dl> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../../../../serialized-form.html#org.apache.beam.sdk.transforms.Combine.CombineFn">Serialized Form</a></dd> |
| </dl> |
| </li> |
| </ul> |
| </div> |
| <div class="summary"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="constructor.summary"> |
| <!-- --> |
| </a> |
| <h3>Constructor Summary</h3> |
| <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> |
| <caption><span>Constructors</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colOne" scope="col">Constructor and Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#CombineFn--">CombineFn</a></span>()</code> </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"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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>abstract <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#addInput-AccumT-InputT-">addInput</a></span>(<a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a> mutableAccumulator, |
| <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">InputT</a> input)</code> |
| <div class="block">Adds the given input value to the given accumulator, returning the new accumulator value.</div> |
| </td> |
| </tr> |
| <tr id="i1" class="rowColor"> |
| <td class="colFirst"><code><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">OutputT</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#apply-java.lang.Iterable-">apply</a></span>(java.lang.Iterable<? extends <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">InputT</a>> inputs)</code> |
| <div class="block">Applies this <code>CombineFn</code> to a collection of input values to produce a combined output |
| value.</div> |
| </td> |
| </tr> |
| <tr id="i2" class="altColor"> |
| <td class="colFirst"><code><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#compact-AccumT-">compact</a></span>(<a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a> accumulator)</code> |
| <div class="block">Returns an accumulator that represents the same logical value as the input accumulator, but |
| may have a more compact representation.</div> |
| </td> |
| </tr> |
| <tr id="i3" class="rowColor"> |
| <td class="colFirst"><code>abstract <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#createAccumulator--">createAccumulator</a></span>()</code> |
| <div class="block">Returns a new, mutable accumulator value, representing the accumulation of zero input values.</div> |
| </td> |
| </tr> |
| <tr id="i4" class="altColor"> |
| <td class="colFirst"><code><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">OutputT</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#defaultValue--">defaultValue</a></span>()</code> |
| <div class="block">Returns the default value when there are no values added to the accumulator.</div> |
| </td> |
| </tr> |
| <tr id="i5" class="rowColor"> |
| <td class="colFirst"><code>abstract <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">OutputT</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#extractOutput-AccumT-">extractOutput</a></span>(<a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a> accumulator)</code> |
| <div class="block">Returns the output value that is the result of combining all the input values represented by |
| the given accumulator.</div> |
| </td> |
| </tr> |
| <tr id="i6" class="altColor"> |
| <td class="colFirst"><code>java.lang.reflect.TypeVariable<?></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#getAccumTVariable--">getAccumTVariable</a></span>()</code> |
| <div class="block">Returns the <code>TypeVariable</code> of <code>AccumT</code>.</div> |
| </td> |
| </tr> |
| <tr id="i7" class="rowColor"> |
| <td class="colFirst"><code><a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a><AccumT></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#getAccumulatorCoder-org.apache.beam.sdk.coders.CoderRegistry-org.apache.beam.sdk.coders.Coder-">getAccumulatorCoder</a></span>(<a href="../../../../../org/apache/beam/sdk/coders/CoderRegistry.html" title="class in org.apache.beam.sdk.coders">CoderRegistry</a> registry, |
| <a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a><InputT> inputCoder)</code> |
| <div class="block">Returns the <code>Coder</code> to use for accumulator <code>AccumT</code> values, or null if it is not |
| able to be inferred.</div> |
| </td> |
| </tr> |
| <tr id="i8" class="altColor"> |
| <td class="colFirst"><code><a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a><OutputT></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#getDefaultOutputCoder-org.apache.beam.sdk.coders.CoderRegistry-org.apache.beam.sdk.coders.Coder-">getDefaultOutputCoder</a></span>(<a href="../../../../../org/apache/beam/sdk/coders/CoderRegistry.html" title="class in org.apache.beam.sdk.coders">CoderRegistry</a> registry, |
| <a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a><InputT> inputCoder)</code> |
| <div class="block">Returns the <code>Coder</code> to use by default for output <code>OutputT</code> values, or null if it |
| is not able to be inferred.</div> |
| </td> |
| </tr> |
| <tr id="i9" class="rowColor"> |
| <td class="colFirst"><code>java.lang.String</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#getIncompatibleGlobalWindowErrorMessage--">getIncompatibleGlobalWindowErrorMessage</a></span>()</code> |
| <div class="block">Returns the error message for not supported default values in Combine.globally().</div> |
| </td> |
| </tr> |
| <tr id="i10" class="altColor"> |
| <td class="colFirst"><code>java.lang.reflect.TypeVariable<?></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#getInputTVariable--">getInputTVariable</a></span>()</code> |
| <div class="block">Returns the <code>TypeVariable</code> of <code>InputT</code>.</div> |
| </td> |
| </tr> |
| <tr id="i11" class="rowColor"> |
| <td class="colFirst"><code><a href="../../../../../org/apache/beam/sdk/values/TypeDescriptor.html" title="class in org.apache.beam.sdk.values">TypeDescriptor</a><<a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">InputT</a>></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#getInputType--">getInputType</a></span>()</code> |
| <div class="block">Returns a <a href="../../../../../org/apache/beam/sdk/values/TypeDescriptor.html" title="class in org.apache.beam.sdk.values"><code>TypeDescriptor</code></a> capturing what is known statically about the input type of |
| this <code>CombineFn</code> instance's most-derived class.</div> |
| </td> |
| </tr> |
| <tr id="i12" class="altColor"> |
| <td class="colFirst"><code>java.lang.reflect.TypeVariable<?></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#getOutputTVariable--">getOutputTVariable</a></span>()</code> |
| <div class="block">Returns the <code>TypeVariable</code> of <code>OutputT</code>.</div> |
| </td> |
| </tr> |
| <tr id="i13" class="rowColor"> |
| <td class="colFirst"><code><a href="../../../../../org/apache/beam/sdk/values/TypeDescriptor.html" title="class in org.apache.beam.sdk.values">TypeDescriptor</a><<a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">OutputT</a>></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#getOutputType--">getOutputType</a></span>()</code> |
| <div class="block">Returns a <a href="../../../../../org/apache/beam/sdk/values/TypeDescriptor.html" title="class in org.apache.beam.sdk.values"><code>TypeDescriptor</code></a> capturing what is known statically about the output type of |
| this <code>CombineFn</code> instance's most-derived class.</div> |
| </td> |
| </tr> |
| <tr id="i14" class="altColor"> |
| <td class="colFirst"><code>abstract <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#mergeAccumulators-java.lang.Iterable-">mergeAccumulators</a></span>(java.lang.Iterable<<a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a>> accumulators)</code> |
| <div class="block">Returns an accumulator representing the accumulation of all the input values accumulated in |
| the merging accumulators.</div> |
| </td> |
| </tr> |
| <tr id="i15" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#populateDisplayData-org.apache.beam.sdk.transforms.display.DisplayData.Builder-">populateDisplayData</a></span>(<a href="../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Builder.html" title="interface in org.apache.beam.sdk.transforms.display">DisplayData.Builder</a> builder)</code> |
| <div class="block">Register display data for the given transform or component.</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 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"> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="constructor.detail"> |
| <!-- --> |
| </a> |
| <h3>Constructor Detail</h3> |
| <a name="CombineFn--"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>CombineFn</h4> |
| <pre>public CombineFn()</pre> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <!-- ============ METHOD DETAIL ========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="method.detail"> |
| <!-- --> |
| </a> |
| <h3>Method Detail</h3> |
| <a name="createAccumulator--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>createAccumulator</h4> |
| <pre>public abstract <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a> createAccumulator()</pre> |
| <div class="block">Returns a new, mutable accumulator value, representing the accumulation of zero input values.</div> |
| </li> |
| </ul> |
| <a name="addInput-java.lang.Object-java.lang.Object-"> |
| <!-- --> |
| </a><a name="addInput-AccumT-InputT-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>addInput</h4> |
| <pre>public abstract <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a> addInput(<a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a> mutableAccumulator, |
| <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">InputT</a> input)</pre> |
| <div class="block">Adds the given input value to the given accumulator, returning the new accumulator value.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>mutableAccumulator</code> - may be modified and returned for efficiency</dd> |
| <dd><code>input</code> - should not be mutated</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="mergeAccumulators-java.lang.Iterable-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>mergeAccumulators</h4> |
| <pre>public abstract <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a> mergeAccumulators(java.lang.Iterable<<a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a>> accumulators)</pre> |
| <div class="block">Returns an accumulator representing the accumulation of all the input values accumulated in |
| the merging accumulators.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>accumulators</code> - only the first accumulator may be modified and returned for efficiency; |
| the other accumulators should not be mutated, because they may be shared with other code |
| and mutating them could lead to incorrect results or data corruption.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="extractOutput-java.lang.Object-"> |
| <!-- --> |
| </a><a name="extractOutput-AccumT-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>extractOutput</h4> |
| <pre>public abstract <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">OutputT</a> extractOutput(<a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a> accumulator)</pre> |
| <div class="block">Returns the output value that is the result of combining all the input values represented by |
| the given accumulator.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>accumulator</code> - can be modified for efficiency</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="compact-java.lang.Object-"> |
| <!-- --> |
| </a><a name="compact-AccumT-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>compact</h4> |
| <pre>public <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a> compact(<a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">AccumT</a> accumulator)</pre> |
| <div class="block">Returns an accumulator that represents the same logical value as the input accumulator, but |
| may have a more compact representation. |
| |
| <p>For most CombineFns this would be a no-op, but should be overridden by CombineFns that |
| (for example) buffer up elements and combine them in batches. |
| |
| <p>For efficiency, the input accumulator may be modified and returned. |
| |
| <p>By default returns the original accumulator.</div> |
| </li> |
| </ul> |
| <a name="apply-java.lang.Iterable-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>apply</h4> |
| <pre>public <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">OutputT</a> apply(java.lang.Iterable<? extends <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">InputT</a>> inputs)</pre> |
| <div class="block">Applies this <code>CombineFn</code> to a collection of input values to produce a combined output |
| value. |
| |
| <p>Useful when using a <code>CombineFn</code> separately from a <code>Combine</code> transform. Does |
| not invoke the <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html#mergeAccumulators-java.lang.Iterable-"><code>mergeAccumulators(java.lang.Iterable<AccumT>)</code></a> operation.</div> |
| </li> |
| </ul> |
| <a name="defaultValue--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>defaultValue</h4> |
| <pre>public <a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">OutputT</a> defaultValue()</pre> |
| <div class="block">Returns the default value when there are no values added to the accumulator. |
| |
| <p>By default returns the extract output of an empty accumulator.</div> |
| </li> |
| </ul> |
| <a name="getOutputType--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getOutputType</h4> |
| <pre>public <a href="../../../../../org/apache/beam/sdk/values/TypeDescriptor.html" title="class in org.apache.beam.sdk.values">TypeDescriptor</a><<a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">OutputT</a>> getOutputType()</pre> |
| <div class="block">Returns a <a href="../../../../../org/apache/beam/sdk/values/TypeDescriptor.html" title="class in org.apache.beam.sdk.values"><code>TypeDescriptor</code></a> capturing what is known statically about the output type of |
| this <code>CombineFn</code> instance's most-derived class. |
| |
| <p>In the normal case of a concrete <code>CombineFn</code> subclass with no generic type |
| parameters of its own, this will be a complete non-generic type.</div> |
| </li> |
| </ul> |
| <a name="getInputType--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getInputType</h4> |
| <pre>public <a href="../../../../../org/apache/beam/sdk/values/TypeDescriptor.html" title="class in org.apache.beam.sdk.values">TypeDescriptor</a><<a href="../../../../../org/apache/beam/sdk/transforms/Combine.CombineFn.html" title="type parameter in Combine.CombineFn">InputT</a>> getInputType()</pre> |
| <div class="block">Returns a <a href="../../../../../org/apache/beam/sdk/values/TypeDescriptor.html" title="class in org.apache.beam.sdk.values"><code>TypeDescriptor</code></a> capturing what is known statically about the input type of |
| this <code>CombineFn</code> instance's most-derived class. |
| |
| <p>In the normal case of a concrete <code>CombineFn</code> subclass with no generic type |
| parameters of its own, this will be a complete non-generic type.</div> |
| </li> |
| </ul> |
| <a name="getAccumulatorCoder-org.apache.beam.sdk.coders.CoderRegistry-org.apache.beam.sdk.coders.Coder-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getAccumulatorCoder</h4> |
| <pre>public <a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a><AccumT> getAccumulatorCoder(<a href="../../../../../org/apache/beam/sdk/coders/CoderRegistry.html" title="class in org.apache.beam.sdk.coders">CoderRegistry</a> registry, |
| <a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a><InputT> inputCoder) |
| throws <a href="../../../../../org/apache/beam/sdk/coders/CannotProvideCoderException.html" title="class in org.apache.beam.sdk.coders">CannotProvideCoderException</a></pre> |
| <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/beam/sdk/transforms/CombineFnBase.GlobalCombineFn.html#getAccumulatorCoder-org.apache.beam.sdk.coders.CoderRegistry-org.apache.beam.sdk.coders.Coder-">CombineFnBase.GlobalCombineFn</a></code></span></div> |
| <div class="block">Returns the <code>Coder</code> to use for accumulator <code>AccumT</code> values, or null if it is not |
| able to be inferred. |
| |
| <p>By default, uses the knowledge of the <code>Coder</code> being used for <code>InputT</code> values |
| and the enclosing <code>Pipeline</code>'s <code>CoderRegistry</code> to try to infer the Coder for |
| <code>AccumT</code> values. |
| |
| <p>This is the Coder used to send data through a communication-intensive shuffle step, so a |
| compact and efficient representation may have significant performance benefits.</div> |
| <dl> |
| <dt><span class="overrideSpecifyLabel">Specified by:</span></dt> |
| <dd><code><a href="../../../../../org/apache/beam/sdk/transforms/CombineFnBase.GlobalCombineFn.html#getAccumulatorCoder-org.apache.beam.sdk.coders.CoderRegistry-org.apache.beam.sdk.coders.Coder-">getAccumulatorCoder</a></code> in interface <code><a href="../../../../../org/apache/beam/sdk/transforms/CombineFnBase.GlobalCombineFn.html" title="interface in org.apache.beam.sdk.transforms">CombineFnBase.GlobalCombineFn</a><InputT,AccumT,OutputT></code></dd> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="../../../../../org/apache/beam/sdk/coders/CannotProvideCoderException.html" title="class in org.apache.beam.sdk.coders">CannotProvideCoderException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getDefaultOutputCoder-org.apache.beam.sdk.coders.CoderRegistry-org.apache.beam.sdk.coders.Coder-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getDefaultOutputCoder</h4> |
| <pre>public <a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a><OutputT> getDefaultOutputCoder(<a href="../../../../../org/apache/beam/sdk/coders/CoderRegistry.html" title="class in org.apache.beam.sdk.coders">CoderRegistry</a> registry, |
| <a href="../../../../../org/apache/beam/sdk/coders/Coder.html" title="class in org.apache.beam.sdk.coders">Coder</a><InputT> inputCoder) |
| throws <a href="../../../../../org/apache/beam/sdk/coders/CannotProvideCoderException.html" title="class in org.apache.beam.sdk.coders">CannotProvideCoderException</a></pre> |
| <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/beam/sdk/transforms/CombineFnBase.GlobalCombineFn.html#getDefaultOutputCoder-org.apache.beam.sdk.coders.CoderRegistry-org.apache.beam.sdk.coders.Coder-">CombineFnBase.GlobalCombineFn</a></code></span></div> |
| <div class="block">Returns the <code>Coder</code> to use by default for output <code>OutputT</code> values, or null if it |
| is not able to be inferred. |
| |
| <p>By default, uses the knowledge of the <code>Coder</code> being used for input <code>InputT</code> |
| values and the enclosing <code>Pipeline</code>'s <code>CoderRegistry</code> to try to infer the Coder |
| for <code>OutputT</code> values.</div> |
| <dl> |
| <dt><span class="overrideSpecifyLabel">Specified by:</span></dt> |
| <dd><code><a href="../../../../../org/apache/beam/sdk/transforms/CombineFnBase.GlobalCombineFn.html#getDefaultOutputCoder-org.apache.beam.sdk.coders.CoderRegistry-org.apache.beam.sdk.coders.Coder-">getDefaultOutputCoder</a></code> in interface <code><a href="../../../../../org/apache/beam/sdk/transforms/CombineFnBase.GlobalCombineFn.html" title="interface in org.apache.beam.sdk.transforms">CombineFnBase.GlobalCombineFn</a><InputT,AccumT,OutputT></code></dd> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="../../../../../org/apache/beam/sdk/coders/CannotProvideCoderException.html" title="class in org.apache.beam.sdk.coders">CannotProvideCoderException</a></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getIncompatibleGlobalWindowErrorMessage--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getIncompatibleGlobalWindowErrorMessage</h4> |
| <pre>public java.lang.String getIncompatibleGlobalWindowErrorMessage()</pre> |
| <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/beam/sdk/transforms/CombineFnBase.GlobalCombineFn.html#getIncompatibleGlobalWindowErrorMessage--">CombineFnBase.GlobalCombineFn</a></code></span></div> |
| <div class="block">Returns the error message for not supported default values in Combine.globally().</div> |
| <dl> |
| <dt><span class="overrideSpecifyLabel">Specified by:</span></dt> |
| <dd><code><a href="../../../../../org/apache/beam/sdk/transforms/CombineFnBase.GlobalCombineFn.html#getIncompatibleGlobalWindowErrorMessage--">getIncompatibleGlobalWindowErrorMessage</a></code> in interface <code><a href="../../../../../org/apache/beam/sdk/transforms/CombineFnBase.GlobalCombineFn.html" title="interface in org.apache.beam.sdk.transforms">CombineFnBase.GlobalCombineFn</a><InputT,AccumT,OutputT></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getInputTVariable--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getInputTVariable</h4> |
| <pre>public java.lang.reflect.TypeVariable<?> getInputTVariable()</pre> |
| <div class="block">Returns the <code>TypeVariable</code> of <code>InputT</code>.</div> |
| </li> |
| </ul> |
| <a name="getAccumTVariable--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getAccumTVariable</h4> |
| <pre>public java.lang.reflect.TypeVariable<?> getAccumTVariable()</pre> |
| <div class="block">Returns the <code>TypeVariable</code> of <code>AccumT</code>.</div> |
| </li> |
| </ul> |
| <a name="getOutputTVariable--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getOutputTVariable</h4> |
| <pre>public java.lang.reflect.TypeVariable<?> getOutputTVariable()</pre> |
| <div class="block">Returns the <code>TypeVariable</code> of <code>OutputT</code>.</div> |
| </li> |
| </ul> |
| <a name="populateDisplayData-org.apache.beam.sdk.transforms.display.DisplayData.Builder-"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>populateDisplayData</h4> |
| <pre>public void populateDisplayData(<a href="../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Builder.html" title="interface in org.apache.beam.sdk.transforms.display">DisplayData.Builder</a> builder)</pre> |
| <div class="block">Register display data for the given transform or component. |
| |
| <p><code>populateDisplayData(DisplayData.Builder)</code> is invoked by Pipeline runners to collect |
| display data via <a href="../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#from-org.apache.beam.sdk.transforms.display.HasDisplayData-"><code>DisplayData.from(HasDisplayData)</code></a>. Implementations may call <code>super.populateDisplayData(builder)</code> in order to register display data in the current namespace, |
| but should otherwise use <code>subcomponent.populateDisplayData(builder)</code> to use the namespace |
| of the subcomponent. |
| |
| <p>By default, does not register any display data. Implementors may override this method to |
| provide their own display data.</div> |
| <dl> |
| <dt><span class="overrideSpecifyLabel">Specified by:</span></dt> |
| <dd><code><a href="../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html#populateDisplayData-org.apache.beam.sdk.transforms.display.DisplayData.Builder-">populateDisplayData</a></code> in interface <code><a href="../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display">HasDisplayData</a></code></dd> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>builder</code> - The builder to populate with display data.</dd> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display"><code>HasDisplayData</code></a></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><a href="../../../../../org/apache/beam/sdk/transforms/Combine.BinaryCombineLongFn.html" title="class in org.apache.beam.sdk.transforms"><span class="typeNameLink">Prev Class</span></a></li> |
| <li><a href="../../../../../org/apache/beam/sdk/transforms/Combine.Globally.html" title="class in org.apache.beam.sdk.transforms"><span class="typeNameLink">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../index.html?org/apache/beam/sdk/transforms/Combine.CombineFn.html" target="_top">Frames</a></li> |
| <li><a href="Combine.CombineFn.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../../../../allclasses-noframe.html">All 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: </li> |
| <li>Nested | </li> |
| <li>Field | </li> |
| <li><a href="#constructor.summary">Constr</a> | </li> |
| <li><a href="#method.summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li><a href="#constructor.detail">Constr</a> | </li> |
| <li><a href="#method.detail">Method</a></li> |
| </ul> |
| </div> |
| <a name="skip.navbar.bottom"> |
| <!-- --> |
| </a></div> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| </body> |
| </html> |