# Package com.google.cloud.dataflow.sdk.values

Defines `PCollection` and other classes for representing data in a `Pipeline`.

See: Description

Interface Summary
PCollectionView<T>: A `PCollectionView<T>` is an immutable view of a `PCollection` as a value of type `T` that can be accessed as a side input to a `ParDo` transform.
PInput: The interface for things that might be input to a `PTransform`.
POutput: The interface for things that might be output from a `PTransform`.
PValue: The interface for values that can be input to and output from `PTransforms`.

Class Summary
KV<K,V>: An immutable key/value pair.
KV.OrderByKey<K extends Comparable<? super K>,V>: A `Comparator` that orders `KVs` by the natural ordering of their keys.
KV.OrderByValue<K,V extends Comparable<? super V>>: A `Comparator` that orders `KVs` by the natural ordering of their values.
PBegin: `PBegin` is the "input" to a root `PTransform`, such as `Read` or `Create`.
PCollection<T>: A `PCollection<T>` is an immutable collection of values of type `T`.
PCollectionList<T>: A `PCollectionList<T>` is an immutable list of homogeneously typed `PCollection<T>s`.
PCollectionTuple: A `PCollectionTuple` is an immutable tuple of heterogeneously-typed `PCollections`, "keyed" by `TupleTags`.
PDone: `PDone` is the output of a `PTransform` that has a trivial result, such as a `Write`.
POutputValueBase: A `POutputValueBase` is the abstract base class of `PTransform` outputs.
PValueBase: A `PValueBase` is an abstract base class that provides sensible default implementations for methods of `PValue`.
TimestampedValue<V>: An immutable pair of a value and a timestamp.
TimestampedValue.TimestampedValueCoder<T>: A `Coder` for `TimestampedValue`.
TupleTag<V>: A `TupleTag` is a typed tag to use as the key of a heterogeneously typed tuple, like `PCollectionTuple`.
TupleTagList: A `TupleTagList` is an immutable list of heterogeneously typed `TupleTags`.
TypeDescriptor<T>: A description of a Java type, including actual generic parameters where possible.
TypedPValue<T>: A `TypedPValue<T>` is the abstract base class of things that store some number of values of type `T`.

Enum Summary
PCollection.IsBounded: The enumeration of cases for whether a `PCollection` is bounded.

## Package com.google.cloud.dataflow.sdk.values Description

Defines `PCollection` and other classes for representing data in a `Pipeline`.

In particular, see these collection abstractions:

- `PCollection` - an immutable collection of values of type `T` and the main representation for data in Dataflow.
- `PCollectionView` - an immutable view of a `PCollection` that can be accessed as a side input of a `ParDo` `PTransform`.
- `PCollectionTuple` - a heterogeneous tuple of `PCollections` used in cases where a `PTransform` takes or returns multiple `PCollections`.
- `PCollectionList` - a homogeneous list of `PCollections` used, for example, as input to `Flatten`.

And these classes for individual values play particular roles in Dataflow:

- `KV` - a key/value pair that is used by keyed transforms, most notably `GroupByKey`.
- `TimestampedValue` - a timestamp/value pair that is used for windowing and handling out-of-order data in streaming execution.

For further details, see the documentation for each class in this package.