com.google.cloud.dataflow.sdk.values

## Interface POutput

All Known Subinterfaces:
  PCollectionView<T>, PValue

All Known Implementing Classes:
  PCollection, PCollectionList, PCollectionTuple, PDone, POutputValueBase, PValueBase, TypedPValue

    public interface POutput

The interface for things that might be output from a `PTransform`.

### Method Summary

All Methods Instance Methods Abstract Methods
`Collection<? extends PValue>` `expand()` Expands this `POutput` into a list of its component output `PValues`.
`void` `finishSpecifyingOutput()` As part of applying the producing `PTransform`, finalizes this output to make it ready for being used as an input and for running.
`Pipeline` `getPipeline()` Returns the owning `Pipeline` of this `POutput`.
`void` `recordAsOutput(AppliedPTransform<?,?,?> transform)` Records that this `POutput` is an output of the given `PTransform`.

### Method Detail

#### getPipeline

    Pipeline getPipeline()

Returns the owning `Pipeline` of this `POutput`.

#### expand

    Collection<? extends PValue> expand()

Expands this `POutput` into a list of its component output `PValues`.

- A `PValue` expands to itself.
- A tuple or list of `PValues` (such as `PCollectionTuple` or `PCollectionList`) expands to its component `PValue PValues`.

Not intended to be invoked directly by user code.

#### recordAsOutput

    void recordAsOutput(AppliedPTransform<?,?,?> transform)

Records that this `POutput` is an output of the given `PTransform`.

For a compound `POutput`, it is advised to call this method on each component `POutput`.

This is not intended to be invoked by user code, but is automatically invoked as part of applying the producing `PTransform`.

#### finishSpecifyingOutput

    void finishSpecifyingOutput()

As part of applying the producing `PTransform`, finalizes this output to make it ready for being used as an input and for running.

This includes ensuring that all `PCollections` have `Coders` specified or defaulted.

Automatically invoked whenever this `POutput` is used as a `PInput` to another `PTransform`, or if never used as a `PInput`, when `Pipeline.run()` is called, so users do not normally call this explicitly.