com.google.cloud.dataflow.sdk.transforms.display

## Interface HasDisplayData

All Known Subinterfaces:
  ApplicationNameOptions, BigQueryOptions, BlockingDataflowPipelineOptions, CombineFnBase.GlobalCombineFn<InputT,AccumT,OutputT>, CombineFnBase.PerKeyCombineFn<K,InputT,AccumT,OutputT>, DataflowPipelineDebugOptions, DataflowPipelineOptions, DataflowPipelineWorkerPoolOptions, DataflowWorkerHarnessOptions, DataflowWorkerLoggingOptions, DirectPipelineOptions, GcpOptions, GcsOptions, GoogleApiDebugOptions, InProcessPipelineOptions, PipelineOptions, StreamingOptions, TestDataflowPipelineOptions

All Known Implementing Classes:
  ApproximateQuantiles.ApproximateQuantilesCombineFn, ApproximateUnique.ApproximateUniqueCombineFn, AvroIO.Read.Bound, AvroIO.Write.Bound, AvroSource, BigQueryIO.Read.Bound, BigQueryIO.Write.Bound, BigtableIO.Read, BigtableIO.Write, BlockBasedSource, BoundedSource, CalendarWindows.DaysWindows, CalendarWindows.MonthsWindows, CalendarWindows.YearsWindows, CoGroupByKey, Combine.AccumulatingCombineFn, Combine.BinaryCombineDoubleFn, Combine.BinaryCombineFn, Combine.BinaryCombineIntegerFn, Combine.BinaryCombineLongFn, Combine.CombineFn, Combine.Globally, Combine.GloballyAsSingletonView, Combine.GroupedValues, Combine.IterableCombineFn, Combine.KeyedCombineFn, Combine.PerKey, Combine.PerKeyWithHotKeyFanout, Combine.SimpleCombineFn, CombineFns.ComposedCombineFn, CombineFns.ComposedCombineFnWithContext, CombineFns.ComposedKeyedCombineFn, CombineFns.ComposedKeyedCombineFnWithContext, CombineWithContext.CombineFnWithContext, CombineWithContext.KeyedCombineFnWithContext, CompressedSource, Count.PerElement, CountingInput.BoundedCountingInput, CountingInput.UnboundedCountingInput, Create.TimestampedValues, Create.Values, DataflowAssert.GroupThenAssert, DataflowAssert.GroupThenAssertForSingleton, DataflowAssert.OneSideInputAssert, DatastoreIO.Sink, DatastoreIO.Source, DatastoreV1.DeleteEntity, DatastoreV1.DeleteKey, DatastoreV1.Read, DatastoreV1.Write, DirectPipelineRunner.TestCombineDoFn, DoFn, DoFnWithContext, FileBasedSink, FileBasedSource, Filter, FixedWindows, FlatMapElements, Flatten.FlattenIterables, Flatten.FlattenPCollectionList, ForwardingPTransform, GlobalWindows, GroupByKey, GroupByKey.GroupAlsoByWindow, GroupByKey.GroupByKeyOnly, GroupByKey.ReifyTimestampsAndWindows, GroupByKey.SortValuesByTimestamp, IntraBundleParallelization.Bound, IntraBundleParallelization.MultiThreadedIntraBundleProcessingDoFn, InvalidWindows, Keys, KvSwap, MapElements, Max.MaxDoubleFn, Max.MaxFn, Max.MaxIntegerFn, Max.MaxLongFn, Min.MinDoubleFn, Min.MinFn, Min.MinIntegerFn, Min.MinLongFn, NonMergingWindowFn, OffsetBasedSource, ParDo.Bound, ParDo.BoundMulti, Partition, PartitioningWindowFn, PTransform, PubsubIO.Read.Bound, PubsubIO.Read.Bound.PubsubReader, PubsubIO.Write.Bound, PubsubIO.Write.Bound.PubsubWriter, PubsubUnboundedSink, PubsubUnboundedSource, Read.Bounded, Read.Unbounded, RemoveDuplicates, RemoveDuplicates.WithRepresentativeValues, Sample.FixedSizedSampleFn, Sample.SampleAny, Sessions, Sink, SlidingWindows, Source, Sum.SumDoubleFn, Sum.SumIntegerFn, Sum.SumLongFn, TestStream, TextIO.Read.Bound, TextIO.Write.Bound, Top.TopCombineFn, UnboundedSource, Values, View.AsIterable, View.AsList, View.AsMap, View.AsMultimap, View.AsSingleton, View.CreatePCollectionView, Window.Bound, Window.Remerge, WindowFn, WithKeys, WithTimestamps, Write.Bound, XmlSink.Bound, XmlSource

    public interface HasDisplayData

Marker interface for `PTransforms` and components to specify display data used within UIs and diagnostic tools.

Display data is registered by overriding `populateDisplayData(DisplayData.Builder)` in a component which implements `HasDisplayData`. Display data is available for `PipelineOptions` and `PTransform` implementations.

     @Override
     public void populateDisplayData(DisplayData.Builder builder) {
      super.populateDisplayData(builder);

      builder
         .include(subComponent)
         .add(DisplayData.item("minFilter", 42))
         .addIfNotDefault(DisplayData.item("useTransactions", this.txn), false)
         .add(DisplayData.item("topic", "projects/myproject/topics/mytopic")
           .withLabel("Pub/Sub Topic"))
         .add(DisplayData.item("serviceInstance", "myservice.com/fizzbang")
           .withLinkUrl("http://www.myservice.com/fizzbang"));
     }

Display data is optional and may be collected during pipeline construction. It should only be used for informational purposes. Tools and components should not assume that display data will always be collected, or that collected display data will always be displayed.

See Also:
  `populateDisplayData(DisplayData.Builder)`

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `populateDisplayData(DisplayData.Builder builder)` Register display data for the given transform or component.

### Method Detail

#### populateDisplayData

    void populateDisplayData(DisplayData.Builder builder)

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.

Parameters:
  `builder` - The builder to populate with display data.
See Also:
  `HasDisplayData`