<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_161-google-v7) on Thu Oct 18 16:14:35 PDT 2018 -->
<title>DisplayData (Apache Beam 2.8.0-SNAPSHOT)</title>
<meta name="date" content="2018-10-18">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="DisplayData (Apache Beam 2.8.0-SNAPSHOT)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":10,"i17":9,"i18":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Builder.html" title="interface in org.apache.beam.sdk.transforms.display"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/transforms/display/DisplayData.html" target="_top">Frames</a></li>
<li><a href="DisplayData.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.beam.sdk.transforms.display</div>
<h2 title="Class DisplayData" class="title">Class DisplayData</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.transforms.display.DisplayData</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.io.Serializable</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">DisplayData</span>
extends java.lang.Object
implements java.io.Serializable</pre>
<div class="block">Static display data associated with a pipeline component. Display data is useful for pipeline
 runner UIs and diagnostic dashboards to display details about <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransforms</code></a> that
 make up a pipeline.

 <p>Components specify their display data by implementing the <a href="../../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display"><code>HasDisplayData</code></a> interface.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../serialized-form.html#org.apache.beam.sdk.transforms.display.DisplayData">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Builder.html" title="interface in org.apache.beam.sdk.transforms.display">DisplayData.Builder</a></span></code>
<div class="block">Utility to build up display data from a component and its included subcomponents.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Identifier.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.Identifier</a></span></code>
<div class="block">Unique identifier for a display data item within a component.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Item.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.Item</a></span></code>
<div class="block"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Item.html" title="class in org.apache.beam.sdk.transforms.display"><code>Items</code></a> are the unit of display data.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="type parameter in DisplayData.ItemSpec">T</a>&gt;</span></code>
<div class="block">Specifies an <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Item.html" title="class in org.apache.beam.sdk.transforms.display"><code>DisplayData.Item</code></a> to register as display data.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Path.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.Path</a></span></code>
<div class="block">Structured path of registered display data within a component hierarchy.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Type.html" title="enum in org.apache.beam.sdk.transforms.display">DisplayData.Type</a></span></code>
<div class="block">Display data type.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>java.util.Map&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Identifier.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.Identifier</a>,<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Item.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.Item</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#asMap--">asMap</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#equals-java.lang.Object-">equals</a></span>(java.lang.Object&nbsp;obj)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#from-org.apache.beam.sdk.transforms.display.HasDisplayData-">from</a></span>(<a href="../../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display">HasDisplayData</a>&nbsp;component)</code>
<div class="block">Collect the <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html" title="class in org.apache.beam.sdk.transforms.display"><code>DisplayData</code></a> from a component.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Type.html" title="enum in org.apache.beam.sdk.transforms.display">DisplayData.Type</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#inferType-java.lang.Object-">inferType</a></span>(java.lang.Object&nbsp;value)</code>
<div class="block">Infer the <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Type.html" title="enum in org.apache.beam.sdk.transforms.display"><code>DisplayData.Type</code></a> for the given object.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.Boolean&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-java.lang.Boolean-">item</a></span>(java.lang.String&nbsp;key,
    java.lang.Boolean&nbsp;value)</code>
<div class="block">Create a display item for the specified key and boolean value.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.Class&lt;T&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-java.lang.Class-">item</a></span>(java.lang.String&nbsp;key,
    java.lang.Class&lt;T&gt;&nbsp;value)</code>
<div class="block">Create a display item for the specified key and class value.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;T&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-org.apache.beam.sdk.transforms.display.DisplayData.Type-T-">item</a></span>(java.lang.String&nbsp;key,
    <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Type.html" title="enum in org.apache.beam.sdk.transforms.display">DisplayData.Type</a>&nbsp;type,
    T&nbsp;value)</code>
<div class="block">Create a display item for the specified key, type, and value.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.Double&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-java.lang.Double-">item</a></span>(java.lang.String&nbsp;key,
    java.lang.Double&nbsp;value)</code>
<div class="block">Create a display item for the specified key and floating point value.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;<a href="http://www.joda.org/joda-time/apidocs/org/joda/time/Duration.html?is-external=true" title="class or interface in org.joda.time">Duration</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-org.joda.time.Duration-">item</a></span>(java.lang.String&nbsp;key,
    <a href="http://www.joda.org/joda-time/apidocs/org/joda/time/Duration.html?is-external=true" title="class or interface in org.joda.time">Duration</a>&nbsp;value)</code>
<div class="block">Create a display item for the specified key and duration value.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.Float&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-java.lang.Float-">item</a></span>(java.lang.String&nbsp;key,
    java.lang.Float&nbsp;value)</code>
<div class="block">Create a display item for the specified key and floating point value.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;<a href="http://www.joda.org/joda-time/apidocs/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-org.joda.time.Instant-">item</a></span>(java.lang.String&nbsp;key,
    <a href="http://www.joda.org/joda-time/apidocs/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;value)</code>
<div class="block">Create a display item for the specified key and timestamp value.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.Integer&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-java.lang.Integer-">item</a></span>(java.lang.String&nbsp;key,
    java.lang.Integer&nbsp;value)</code>
<div class="block">Create a display item for the specified key and integer value.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.Long&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-java.lang.Long-">item</a></span>(java.lang.String&nbsp;key,
    java.lang.Long&nbsp;value)</code>
<div class="block">Create a display item for the specified key and integer value.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-java.lang.String-">item</a></span>(java.lang.String&nbsp;key,
    java.lang.String&nbsp;value)</code>
<div class="block">Create a display item for the specified key and string value.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-org.apache.beam.sdk.options.ValueProvider-">item</a></span>(java.lang.String&nbsp;key,
    <a href="../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options">ValueProvider</a>&lt;?&gt;&nbsp;value)</code>
<div class="block">Create a display item for the specified key and <a href="../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options"><code>ValueProvider</code></a>.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>java.util.Collection&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Item.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.Item</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#items--">items</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#none--">none</a></span>()</code>
<div class="block">Default empty <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html" title="class in org.apache.beam.sdk.transforms.display"><code>DisplayData</code></a> instance.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="none--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>none</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData</a>&nbsp;none()</pre>
<div class="block">Default empty <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html" title="class in org.apache.beam.sdk.transforms.display"><code>DisplayData</code></a> instance.</div>
</li>
</ul>
<a name="from-org.apache.beam.sdk.transforms.display.HasDisplayData-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>from</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData</a>&nbsp;from(<a href="../../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display">HasDisplayData</a>&nbsp;component)</pre>
<div class="block">Collect the <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html" title="class in org.apache.beam.sdk.transforms.display"><code>DisplayData</code></a> from a component. This will traverse all subcomponents
 specified via <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Builder.html#include-java.lang.String-org.apache.beam.sdk.transforms.display.HasDisplayData-"><code>DisplayData.Builder.include(java.lang.String, org.apache.beam.sdk.transforms.display.HasDisplayData)</code></a> in the given component. Data in this component will be in
 a namespace derived from the component.</div>
</li>
</ul>
<a name="inferType-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inferType</h4>
<pre>@Nullable
public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Type.html" title="enum in org.apache.beam.sdk.transforms.display">DisplayData.Type</a>&nbsp;inferType(@Nullable
                                                   java.lang.Object&nbsp;value)</pre>
<div class="block">Infer the <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Type.html" title="enum in org.apache.beam.sdk.transforms.display"><code>DisplayData.Type</code></a> for the given object.

 <p>Use this method if the type of metadata is not known at compile time. For example:

 <pre><code>
 {@literal @}Override
 public void populateDisplayData(DisplayData.Builder builder) {
   Optional&lt;DisplayData.Type&gt; type = DisplayData.inferType(foo);
   if (type.isPresent()) {
     builder.add(DisplayData.item("foo", type.get(), foo));
   }
 }
 </code></pre></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The inferred <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Type.html" title="enum in org.apache.beam.sdk.transforms.display"><code>DisplayData.Type</code></a>, or null if the type cannot be inferred,</dd>
</dl>
</li>
</ul>
<a name="items--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>items</h4>
<pre>public&nbsp;java.util.Collection&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Item.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.Item</a>&gt;&nbsp;items()</pre>
</li>
</ul>
<a name="asMap--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asMap</h4>
<pre>public&nbsp;java.util.Map&lt;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Identifier.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.Identifier</a>,<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Item.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.Item</a>&gt;&nbsp;asMap()</pre>
</li>
</ul>
<a name="hashCode--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre>public&nbsp;int&nbsp;hashCode()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>hashCode</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;equals(java.lang.Object&nbsp;obj)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>equals</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a name="toString--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a name="item-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>item</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.String&gt;&nbsp;item(java.lang.String&nbsp;key,
                                                          @Nullable
                                                          java.lang.String&nbsp;value)</pre>
<div class="block">Create a display item for the specified key and string value.</div>
</li>
</ul>
<a name="item-java.lang.String-org.apache.beam.sdk.options.ValueProvider-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>item</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;?&gt;&nbsp;item(java.lang.String&nbsp;key,
                                           @Nullable
                                           <a href="../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options">ValueProvider</a>&lt;?&gt;&nbsp;value)</pre>
<div class="block">Create a display item for the specified key and <a href="../../../../../../org/apache/beam/sdk/options/ValueProvider.html" title="interface in org.apache.beam.sdk.options"><code>ValueProvider</code></a>.</div>
</li>
</ul>
<a name="item-java.lang.String-java.lang.Integer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>item</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.Integer&gt;&nbsp;item(java.lang.String&nbsp;key,
                                                           @Nullable
                                                           java.lang.Integer&nbsp;value)</pre>
<div class="block">Create a display item for the specified key and integer value.</div>
</li>
</ul>
<a name="item-java.lang.String-java.lang.Long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>item</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.Long&gt;&nbsp;item(java.lang.String&nbsp;key,
                                                        @Nullable
                                                        java.lang.Long&nbsp;value)</pre>
<div class="block">Create a display item for the specified key and integer value.</div>
</li>
</ul>
<a name="item-java.lang.String-java.lang.Float-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>item</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.Float&gt;&nbsp;item(java.lang.String&nbsp;key,
                                                         @Nullable
                                                         java.lang.Float&nbsp;value)</pre>
<div class="block">Create a display item for the specified key and floating point value.</div>
</li>
</ul>
<a name="item-java.lang.String-java.lang.Double-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>item</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.Double&gt;&nbsp;item(java.lang.String&nbsp;key,
                                                          @Nullable
                                                          java.lang.Double&nbsp;value)</pre>
<div class="block">Create a display item for the specified key and floating point value.</div>
</li>
</ul>
<a name="item-java.lang.String-java.lang.Boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>item</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.Boolean&gt;&nbsp;item(java.lang.String&nbsp;key,
                                                           @Nullable
                                                           java.lang.Boolean&nbsp;value)</pre>
<div class="block">Create a display item for the specified key and boolean value.</div>
</li>
</ul>
<a name="item-java.lang.String-org.joda.time.Instant-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>item</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;<a href="http://www.joda.org/joda-time/apidocs/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&gt;&nbsp;item(java.lang.String&nbsp;key,
                                                 @Nullable
                                                 <a href="http://www.joda.org/joda-time/apidocs/org/joda/time/Instant.html?is-external=true" title="class or interface in org.joda.time">Instant</a>&nbsp;value)</pre>
<div class="block">Create a display item for the specified key and timestamp value.</div>
</li>
</ul>
<a name="item-java.lang.String-org.joda.time.Duration-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>item</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;<a href="http://www.joda.org/joda-time/apidocs/org/joda/time/Duration.html?is-external=true" title="class or interface in org.joda.time">Duration</a>&gt;&nbsp;item(java.lang.String&nbsp;key,
                                                  @Nullable
                                                  <a href="http://www.joda.org/joda-time/apidocs/org/joda/time/Duration.html?is-external=true" title="class or interface in org.joda.time">Duration</a>&nbsp;value)</pre>
<div class="block">Create a display item for the specified key and duration value.</div>
</li>
</ul>
<a name="item-java.lang.String-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>item</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;java.lang.Class&lt;T&gt;&gt;&nbsp;item(java.lang.String&nbsp;key,
                                                                @Nullable
                                                                java.lang.Class&lt;T&gt;&nbsp;value)</pre>
<div class="block">Create a display item for the specified key and class value.</div>
</li>
</ul>
<a name="item-java.lang.String-org.apache.beam.sdk.transforms.display.DisplayData.Type-java.lang.Object-">
<!--   -->
</a><a name="item-java.lang.String-org.apache.beam.sdk.transforms.display.DisplayData.Type-T-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>item</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.ItemSpec.html" title="class in org.apache.beam.sdk.transforms.display">DisplayData.ItemSpec</a>&lt;T&gt;&nbsp;item(java.lang.String&nbsp;key,
                                               <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Type.html" title="enum in org.apache.beam.sdk.transforms.display">DisplayData.Type</a>&nbsp;type,
                                               @Nullable
                                               T&nbsp;value)</pre>
<div class="block">Create a display item for the specified key, type, and value. This method should be used if the
 type of the input value can only be determined at runtime. Otherwise, <a href="../../../../../../org/apache/beam/sdk/transforms/display/HasDisplayData.html" title="interface in org.apache.beam.sdk.transforms.display"><code>HasDisplayData</code></a>
 implementors should call one of the typed factory methods, such as <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-java.lang.String-"><code>item(String,
 String)</code></a> or <a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#item-java.lang.String-java.lang.Integer-"><code>item(String, Integer)</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.ClassCastException</code> - if the value cannot be formatted as the given type.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.html#inferType-java.lang.Object-"><code>inferType(Object)</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/beam/sdk/transforms/display/DisplayData.Builder.html" title="interface in org.apache.beam.sdk.transforms.display"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/transforms/display/DisplayData.html" target="_top">Frames</a></li>
<li><a href="DisplayData.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
