Class LengthPrefixUnknownCoders
- java.lang.Object
-
- org.apache.beam.runners.fnexecution.wire.LengthPrefixUnknownCoders
-
public class LengthPrefixUnknownCoders extends java.lang.ObjectUtilities for replacing or wrapping unknown coders withLengthPrefixCoder.
-
-
Constructor Summary
Constructors Constructor Description LengthPrefixUnknownCoders()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidaddKnownCoderUrn(java.lang.String urn)Registers a coder as being of known type and as such not meriting length prefixing.static java.lang.StringaddLengthPrefixedCoder(java.lang.String coderId, org.apache.beam.model.pipeline.v1.RunnerApi.Components.Builder components, boolean replaceWithByteArrayCoder)Recursively traverses the coder tree and wraps the first unknown coder in every branch with aLengthPrefixCoderunless an ancestor coder is itself aLengthPrefixCoder.
-
-
-
Method Detail
-
addKnownCoderUrn
public static void addKnownCoderUrn(java.lang.String urn)
Registers a coder as being of known type and as such not meriting length prefixing.- Parameters:
urn- The urn of the coder that should not be length prefixed.
-
addLengthPrefixedCoder
public static java.lang.String addLengthPrefixedCoder(java.lang.String coderId, org.apache.beam.model.pipeline.v1.RunnerApi.Components.Builder components, boolean replaceWithByteArrayCoder)Recursively traverses the coder tree and wraps the first unknown coder in every branch with aLengthPrefixCoderunless an ancestor coder is itself aLengthPrefixCoder. IfreplaceWithByteArrayCoderis set, then replaces that unknown coder with aByteArrayCoder. Registers the new coders in the givenRunnerApi.Components.Builder. Note that no ids that are generated will collide with the ids supplied within thecoder mapkey space.- Parameters:
coderId- The root coder contained withincodersto start the recursive descent from.components- Components builder that initially contains the root coder and all component coders, and will be modified to contain all the necessary additional coders (including the resulting coder).replaceWithByteArrayCoder- whether to replace an unknown coder with aByteArrayCoder.- Returns:
- Id of the original coder (if unchanged) or the newly generated length-prefixed coder.
-
-