com.google.cloud.dataflow.sdk.transforms

## Class ParDo.BoundMulti<InputT,OutputT>

- java.lang.Object
- - com.google.cloud.dataflow.sdk.transforms.PTransform<PCollection<? extends InputT>,PCollectionTuple>
  - - com.google.cloud.dataflow.sdk.transforms.ParDo.BoundMulti<InputT,OutputT>

Type Parameters:
  `InputT` - the type of the (main) input `PCollection` elements
  `OutputT` - the type of the main output `PCollection` elements

All Implemented Interfaces:
  HasDisplayData, Serializable

Enclosing class:
  ParDo

    public static class ParDo.BoundMulti<InputT,OutputT>
    extends PTransform<PCollection<? extends InputT>,PCollectionTuple>

A `PTransform` that, when applied to a `PCollection<InputT>`, invokes a user-specified `DoFn<InputT, OutputT>` on all its elements, which can emit elements to any of the `PTransform`'s main and side output `PCollection`s, which are bundled into a result `PCollectionTuple`.

See Also:
  Serialized Form

### Field Summary

### Fields inherited from class com.google.cloud.dataflow.sdk.transforms.PTransform

`name`

### Method Summary

All Methods Instance Methods Concrete Methods
`PCollectionTuple` `apply(PCollection<? extends InputT> input)` Applies this `PTransform` on the given `InputT`, and returns its `Output`.
`protected Coder<OutputT>` `getDefaultOutputCoder()` Returns the default `Coder` to use for the output of this single-output `PTransform`.
`<T> Coder<T>` `getDefaultOutputCoder(PCollection<? extends InputT> input, TypedPValue<T> output)` Returns the default `Coder` to use for the given output of this single-output `PTransform` when applied to the given input.
`DoFn<InputT,OutputT>` `getFn()`
`protected String` `getKindString()` Returns the name to use by default for this `PTransform` (not including the names of any enclosing `PTransform`s).
`TupleTag<OutputT>` `getMainOutputTag()`
`List<PCollectionView<?>>` `getSideInputs()`
`TupleTagList` `getSideOutputTags()`
`ParDo.BoundMulti<InputT,OutputT>` `named(String name)` Returns a new multi-output `ParDo` `PTransform` that's like this `PTransform` but with the specified name.
`void` `populateDisplayData(DisplayData.Builder builder)` Register display data for the given transform or component.
`ParDo.BoundMulti<InputT,OutputT>` `withSideInputs(Iterable<? extends PCollectionView<?>> sideInputs)` Returns a new multi-output `ParDo` `PTransform` that's like this `PTransform` but with the specified additional side inputs.
`ParDo.BoundMulti<InputT,OutputT>` `withSideInputs(PCollectionView<?>... sideInputs)` Returns a new multi-output `ParDo` `PTransform` that's like this `PTransform` but with the specified additional side inputs.

### Methods inherited from class com.google.cloud.dataflow.sdk.transforms.PTransform

`getDefaultOutputCoder, getName, toString, validate`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Method Detail

#### named

    public ParDo.BoundMulti<InputT,OutputT> named(String name)

Returns a new multi-output `ParDo` `PTransform` that's like this `PTransform` but with the specified name. Does not modify this `PTransform`.

See the discussion of Naming above for more explanation.

#### withSideInputs

    public ParDo.BoundMulti<InputT,OutputT> withSideInputs(PCollectionView<?>... sideInputs)

Returns a new multi-output `ParDo` `PTransform` that's like this `PTransform` but with the specified additional side inputs. Does not modify this `PTransform`.

See the discussion of Side Inputs above and on `ParDo.withSideInputs(com.google.cloud.dataflow.sdk.values.PCollectionView<?>...)` for more explanation.

#### withSideInputs

    public ParDo.BoundMulti<InputT,OutputT> withSideInputs(Iterable<? extends PCollectionView<?>> sideInputs)

Returns a new multi-output `ParDo` `PTransform` that's like this `PTransform` but with the specified additional side inputs. Does not modify this `PTransform`.

See the discussion of Side Inputs above and on `ParDo.withSideInputs(com.google.cloud.dataflow.sdk.values.PCollectionView<?>...)` for more explanation.

#### apply

    public PCollectionTuple apply(PCollection<? extends InputT> input)

Description copied from class: `PTransform`
Applies this `PTransform` on the given `InputT`, and returns its `Output`.

Composite transforms, which are defined in terms of other transforms, should return the output of one of the composed transforms. Non-composite transforms, which do not apply any transforms internally, should return a new unbound output and register evaluators (via backend-specific registration methods).

The default implementation throws an exception. A derived class must either implement apply, or else each runner must supply a custom implementation via `PipelineRunner.apply(com.google.cloud.dataflow.sdk.transforms.PTransform<InputT, OutputT>, InputT)`.

Overrides:
  `apply` in class `PTransform<PCollection<? extends InputT>,PCollectionTuple>`

#### getDefaultOutputCoder

    protected Coder<OutputT> getDefaultOutputCoder()

Description copied from class: `PTransform`
Returns the default `Coder` to use for the output of this single-output `PTransform`.

By default, always throws

Overrides:
  `getDefaultOutputCoder` in class `PTransform<PCollection<? extends InputT>,PCollectionTuple>`

#### getDefaultOutputCoder

    public <T> Coder<T> getDefaultOutputCoder(PCollection<? extends InputT> input,
                                              TypedPValue<T> output)
                                       throws CannotProvideCoderException

Description copied from class: `PTransform`
Returns the default `Coder` to use for the given output of this single-output `PTransform` when applied to the given input.

Overrides:
  `getDefaultOutputCoder` in class `PTransform<PCollection<? extends InputT>,PCollectionTuple>`
Throws:
  `CannotProvideCoderException` - if none can be inferred.

  By default, always throws.

#### getKindString

    protected String getKindString()

Description copied from class: `PTransform`
Returns the name to use by default for this `PTransform` (not including the names of any enclosing `PTransform`s).

By default, returns the base name of this `PTransform`'s class.

The caller is responsible for ensuring that names of applied `PTransform`s are unique, e.g., by adding a uniquifying suffix when needed.

Overrides:
  `getKindString` in class `PTransform<PCollection<? extends InputT>,PCollectionTuple>`

#### populateDisplayData

    public void populateDisplayData(DisplayData.Builder builder)

Description copied from class: `PTransform`
Register display data for the given transform or component.

`populateDisplayData(DisplayData.Builder)` is invoked by Pipeline runners to collect display data via `DisplayData.from(HasDisplayData)`. Implementations may call `super.populateDisplayData(builder)` in order to register display data in the current namespace, but should otherwise use `subcomponent.populateDisplayData(builder)` to use the namespace of the subcomponent.

By default, does not register any display data. Implementors may override this method to provide their own display data.

Specified by:
  `populateDisplayData` in interface `HasDisplayData`
Overrides:
  `populateDisplayData` in class `PTransform<PCollection<? extends InputT>,PCollectionTuple>`
Parameters:
  `builder` - The builder to populate with display data.
See Also:
  `HasDisplayData`

#### getFn

    public DoFn<InputT,OutputT> getFn()

#### getMainOutputTag

    public TupleTag<OutputT> getMainOutputTag()

#### getSideOutputTags

    public TupleTagList getSideOutputTags()

#### getSideInputs

    public List<PCollectionView<?>> getSideInputs()