<!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_112) on Mon Dec 18 11:25:19 EST 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ConnectorStream (Apache Edgent (incubating) v1.2.0 API)</title>
<meta name="date" content="2017-12-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="ConnectorStream (Apache Edgent (incubating) v1.2.0 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10};
var tabs = {65535:["t0","All 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="class-use/ConnectorStream.html">Use</a></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><a href="../../../../../../org/apache/edgent/topology/spi/graph/AbstractTWindow.html" title="class in org.apache.edgent.topology.spi.graph"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/edgent/topology/spi/graph/GraphTopology.html" title="class in org.apache.edgent.topology.spi.graph"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/edgent/topology/spi/graph/ConnectorStream.html" target="_top">Frames</a></li>
<li><a href="ConnectorStream.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>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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.edgent.topology.spi.graph</div>
<h2 title="Class ConnectorStream" class="title">Class ConnectorStream&lt;G extends <a href="../../../../../../org/apache/edgent/topology/Topology.html" title="interface in org.apache.edgent.topology">Topology</a>,T&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/edgent/topology/spi/AbstractTStream.html" title="class in org.apache.edgent.topology.spi">org.apache.edgent.topology.spi.AbstractTStream</a>&lt;G,T&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.edgent.topology.spi.graph.ConnectorStream&lt;G,T&gt;</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>G</code> - topology type</dd>
<dd><code>T</code> - tuple type</dd>
</dl>
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/apache/edgent/topology/TopologyElement.html" title="interface in org.apache.edgent.topology">TopologyElement</a>, <a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;T&gt;</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ConnectorStream&lt;G extends <a href="../../../../../../org/apache/edgent/topology/Topology.html" title="interface in org.apache.edgent.topology">Topology</a>,T&gt;</span>
extends <a href="../../../../../../org/apache/edgent/topology/spi/AbstractTStream.html" title="class in org.apache.edgent.topology.spi">AbstractTStream</a>&lt;G,T&gt;</pre>
<div class="block">A stream that directly adds oplets to the graph.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.edgent.topology.TStream">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.edgent.topology.<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a></h3>
<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#TYPE">TYPE</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#ConnectorStream-G-org.apache.edgent.graph.Connector-">ConnectorStream</a></span>(<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">G</a>&nbsp;topology,
               <a href="../../../../../../org/apache/edgent/graph/Connector.html" title="interface in org.apache.edgent.graph">Connector</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;connector)</code>&nbsp;</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="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><a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#alias-java.lang.String-">alias</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;alias)</code>
<div class="block">Set an alias for the stream.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected &lt;N extends <a href="../../../../../../org/apache/edgent/oplet/core/Pipe.html" title="class in org.apache.edgent.oplet.core">Pipe</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,U&gt;,U&gt;<br><a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#connectPipe-N-">connectPipe</a></span>(N&nbsp;pipeOp)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected &lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="class in org.apache.edgent.topology.spi.graph">ConnectorStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">G</a>,U&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#derived-org.apache.edgent.graph.Connector-">derived</a></span>(<a href="../../../../../../org/apache/edgent/graph/Connector.html" title="interface in org.apache.edgent.graph">Connector</a>&lt;U&gt;&nbsp;connector)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#fanin-org.apache.edgent.oplet.core.FanIn-java.util.List-">fanin</a></span>(<a href="../../../../../../org/apache/edgent/oplet/core/FanIn.html" title="class in org.apache.edgent.oplet.core">FanIn</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,U&gt;&nbsp;fanin,
     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&gt;&nbsp;others)</code>
<div class="block">Declare a stream that contains the output of the specified 
 <a href="../../../../../../org/apache/edgent/oplet/core/FanIn.html" title="class in org.apache.edgent.oplet.core"><code>FanIn</code></a> oplet applied to this stream and <code>others</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#filter-org.apache.edgent.function.Predicate-">filter</a></span>(<a href="../../../../../../org/apache/edgent/function/Predicate.html" title="interface in org.apache.edgent.function">Predicate</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;predicate)</code>
<div class="block">Declare a new stream that filters tuples from this stream.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#flatMap-org.apache.edgent.function.Function-">flatMap</a></span>(<a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;U&gt;&gt;&nbsp;mapper)</code>
<div class="block">Declare a new stream that maps tuples from this stream into one or
 more (or zero) tuples of a different type <code>U</code>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#getAlias--">getAlias</a></span>()</code>
<div class="block">Returns the stream's alias if any.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#getTags--">getTags</a></span>()</code>
<div class="block">Returns the set of tags associated with this stream.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../../org/apache/edgent/graph/Graph.html" title="interface in org.apache.edgent.graph">Graph</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#graph--">graph</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>&lt;J,U,K&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;J&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#join-org.apache.edgent.function.Function-org.apache.edgent.topology.TWindow-org.apache.edgent.function.BiFunction-">join</a></span>(<a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,K&gt;&nbsp;keyer,
    <a href="../../../../../../org/apache/edgent/topology/TWindow.html" title="interface in org.apache.edgent.topology">TWindow</a>&lt;U,K&gt;&nbsp;twindow,
    <a href="../../../../../../org/apache/edgent/function/BiFunction.html" title="interface in org.apache.edgent.function">BiFunction</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;U&gt;,J&gt;&nbsp;joiner)</code>
<div class="block">Join this stream with a partitioned window of type <code>U</code> with key type <code>K</code>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>&lt;J,U,K&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;J&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#joinLast-org.apache.edgent.function.Function-org.apache.edgent.topology.TStream-org.apache.edgent.function.Function-org.apache.edgent.function.BiFunction-">joinLast</a></span>(<a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,K&gt;&nbsp;keyer,
        <a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;&nbsp;lastStream,
        <a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;U,K&gt;&nbsp;lastStreamKeyer,
        <a href="../../../../../../org/apache/edgent/function/BiFunction.html" title="interface in org.apache.edgent.function">BiFunction</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,U,J&gt;&nbsp;joiner)</code>
<div class="block">Join this stream with the last tuple seen on a stream of type <code>U</code>
 with partitioning.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>&lt;K&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TWindow.html" title="interface in org.apache.edgent.topology">TWindow</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,K&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#last-int-org.apache.edgent.function.Function-">last</a></span>(int&nbsp;count,
    <a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,K&gt;&nbsp;keyFunction)</code>
<div class="block">Declare a partitioned window that continually represents the last <code>count</code>
 tuples on this stream for each partition.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>&lt;K&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TWindow.html" title="interface in org.apache.edgent.topology">TWindow</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,K&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#last-long-java.util.concurrent.TimeUnit-org.apache.edgent.function.Function-">last</a></span>(long&nbsp;time,
    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit,
    <a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,K&gt;&nbsp;keyFunction)</code>
<div class="block">Declare a partitioned window that continually represents the last <code>time</code> seconds of 
 tuples on this stream for each partition.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#map-org.apache.edgent.function.Function-">map</a></span>(<a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,U&gt;&nbsp;mapper)</code>
<div class="block">Declare a new stream that maps (or transforms) each tuple from this stream into one
 (or zero) tuple of a different type <code>U</code>.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#peek-org.apache.edgent.function.Consumer-">peek</a></span>(<a href="../../../../../../org/apache/edgent/function/Consumer.html" title="interface in org.apache.edgent.function">Consumer</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;peeker)</code>
<div class="block">Declare a stream that contains the same contents as this stream while
 peeking at each element using <code>peeker</code>.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#pipe-org.apache.edgent.oplet.core.Pipe-">pipe</a></span>(<a href="../../../../../../org/apache/edgent/oplet/core/Pipe.html" title="class in org.apache.edgent.oplet.core">Pipe</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,U&gt;&nbsp;pipe)</code>
<div class="block">Declare a stream that contains the output of the specified <a href="../../../../../../org/apache/edgent/oplet/core/Pipe.html" title="class in org.apache.edgent.oplet.core"><code>Pipe</code></a>
 oplet applied to this stream.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/edgent/topology/TSink.html" title="interface in org.apache.edgent.topology">TSink</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#sink-org.apache.edgent.oplet.core.Sink-">sink</a></span>(<a href="../../../../../../org/apache/edgent/oplet/core/Sink.html" title="class in org.apache.edgent.oplet.core">Sink</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;oplet)</code>
<div class="block">Sink (terminate) this stream using a oplet.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>&lt;E extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;E&gt;&gt;<br><a href="http://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html?is-external=true" title="class or interface in java.util">EnumMap</a>&lt;E,<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#split-java.lang.Class-org.apache.edgent.function.Function-">split</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;E&gt;&nbsp;enumClass,
     <a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,E&gt;&nbsp;splitter)</code>
<div class="block">Split a stream's tuples among <code>enumClass.size</code> streams as specified by
 <code>splitter</code>.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#split-int-org.apache.edgent.function.ToIntFunction-">split</a></span>(int&nbsp;n,
     <a href="../../../../../../org/apache/edgent/function/ToIntFunction.html" title="interface in org.apache.edgent.function">ToIntFunction</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;splitter)</code>
<div class="block">Split a stream's tuples among <code>n</code> streams as specified by
 <code>splitter</code>.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#tag-java.lang.String...-">tag</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;values)</code>
<div class="block">Adds the specified tags to the stream.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#toString--">toString</a></span>()</code>
<div class="block">Intended only as a debug aid and content is not guaranteed.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html#union-java.util.Set-">union</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&gt;&nbsp;others)</code>
<div class="block">Declare a stream that will contain all tuples from this stream and all the
 streams in <code>others</code>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.edgent.topology.spi.AbstractTStream">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.edgent.topology.spi.<a href="../../../../../../org/apache/edgent/topology/spi/AbstractTStream.html" title="class in org.apache.edgent.topology.spi">AbstractTStream</a></h3>
<code><a href="../../../../../../org/apache/edgent/topology/spi/AbstractTStream.html#asString--">asString</a>, <a href="../../../../../../org/apache/edgent/topology/spi/AbstractTStream.html#modify-org.apache.edgent.function.UnaryOperator-">modify</a>, <a href="../../../../../../org/apache/edgent/topology/spi/AbstractTStream.html#print--">print</a>, <a href="../../../../../../org/apache/edgent/topology/spi/AbstractTStream.html#sink-org.apache.edgent.function.Consumer-">sink</a>, <a href="../../../../../../org/apache/edgent/topology/spi/AbstractTStream.html#topology--">topology</a>, <a href="../../../../../../org/apache/edgent/topology/spi/AbstractTStream.html#union-org.apache.edgent.topology.TStream-">union</a>, <a href="../../../../../../org/apache/edgent/topology/spi/AbstractTStream.html#verify-org.apache.edgent.topology.TStream-">verify</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="ConnectorStream-org.apache.edgent.topology.Topology-org.apache.edgent.graph.Connector-">
<!--   -->
</a><a name="ConnectorStream-G-org.apache.edgent.graph.Connector-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ConnectorStream</h4>
<pre>protected&nbsp;ConnectorStream(<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">G</a>&nbsp;topology,
                          <a href="../../../../../../org/apache/edgent/graph/Connector.html" title="interface in org.apache.edgent.graph">Connector</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;connector)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="derived-org.apache.edgent.graph.Connector-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>derived</h4>
<pre>protected&nbsp;&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="class in org.apache.edgent.topology.spi.graph">ConnectorStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">G</a>,U&gt;&nbsp;derived(<a href="../../../../../../org/apache/edgent/graph/Connector.html" title="interface in org.apache.edgent.graph">Connector</a>&lt;U&gt;&nbsp;connector)</pre>
</li>
</ul>
<a name="graph--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>graph</h4>
<pre>protected&nbsp;<a href="../../../../../../org/apache/edgent/graph/Graph.html" title="interface in org.apache.edgent.graph">Graph</a>&nbsp;graph()</pre>
</li>
</ul>
<a name="connectPipe-org.apache.edgent.oplet.core.Pipe-">
<!--   -->
</a><a name="connectPipe-N-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connectPipe</h4>
<pre>protected&nbsp;&lt;N extends <a href="../../../../../../org/apache/edgent/oplet/core/Pipe.html" title="class in org.apache.edgent.oplet.core">Pipe</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,U&gt;,U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;&nbsp;connectPipe(N&nbsp;pipeOp)</pre>
</li>
</ul>
<a name="filter-org.apache.edgent.function.Predicate-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filter</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;filter(<a href="../../../../../../org/apache/edgent/function/Predicate.html" title="interface in org.apache.edgent.function">Predicate</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;predicate)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#filter-org.apache.edgent.function.Predicate-">TStream</a></code></span></div>
<div class="block">Declare a new stream that filters tuples from this stream. Each tuple
 <code>t</code> on this stream will appear in the returned stream if
 <a href="../../../../../../org/apache/edgent/function/Predicate.html#test-T-"><code>filter.test(t)</code></a> returns <code>true</code>. If
 <code>filter.test(t)</code> returns <code>false</code> then then <code>t</code> will not
 appear in the returned stream.
 <P>
 Examples of filtering out all empty strings from stream <code>s</code> of type
 <code>String</code>
 </P>
 
 <pre>
 <code>
 TStream&lt;String&gt; s = ...
 TStream&lt;String&gt; filtered = s.filter(t -&gt; !t.isEmpty());
             
 </code>
 </pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - Filtering logic to be executed against each tuple.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Filtered stream</dd>
</dl>
</li>
</ul>
<a name="map-org.apache.edgent.function.Function-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>map</h4>
<pre>public&nbsp;&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;&nbsp;map(<a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,U&gt;&nbsp;mapper)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#map-org.apache.edgent.function.Function-">TStream</a></code></span></div>
<div class="block">Declare a new stream that maps (or transforms) each tuple from this stream into one
 (or zero) tuple of a different type <code>U</code>. For each tuple <code>t</code>
 on this stream, the returned stream will contain a tuple that is the
 result of <code>mapper.apply(t)</code> when the return is not <code>null</code>.
 If <code>mapper.apply(t)</code> returns <code>null</code> then no tuple
 is submitted to the returned stream for <code>t</code>.
 
 <P>
 Examples of transforming a stream containing numeric values as
 <code>String</code> objects into a stream of <code>Double</code> values.
 </P>
 
 <pre>
 <code>
 // Using lambda expression
 TStream&lt;String&gt; strings = ...
 TStream&lt;Double&gt; doubles = strings.map(v -&gt; Double.valueOf(v));
 
 // Using method reference
 TStream&lt;String&gt; strings = ...
 TStream&lt;Double&gt; doubles = strings.map(Double::valueOf);
 
 </code>
 </pre></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>U</code> - Tuple type of output stream</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mapper</code> - Mapping logic to be executed against each tuple.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Stream that will contain tuples of type <code>U</code> mapped from this
         stream's tuples.</dd>
</dl>
</li>
</ul>
<a name="flatMap-org.apache.edgent.function.Function-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flatMap</h4>
<pre>public&nbsp;&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;&nbsp;flatMap(<a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;U&gt;&gt;&nbsp;mapper)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#flatMap-org.apache.edgent.function.Function-">TStream</a></code></span></div>
<div class="block">Declare a new stream that maps tuples from this stream into one or
 more (or zero) tuples of a different type <code>U</code>. For each tuple
 <code>t</code> on this stream, the returned stream will contain all non-null tuples in
 the <code>Iterator&lt;U&gt;</code> that is the result of <code>mapper.apply(t)</code>.
 Tuples will be added to the returned stream in the order the iterator
 returns them.
 
 <BR>
 If the return is null or an empty iterator then no tuples are added to
 the returned stream for input tuple <code>t</code>.
 <P>
 Examples of mapping a stream containing lines of text into a stream
 of words split out from each line. The order of the words in the stream
 will match the order of the words in the lines.
 </P>
 
 <pre>
 <code>
 TStream&lt;String&gt; lines = ...
 TStream&lt;String&gt; words = lines.flatMap(
                     line -&gt; Arrays.asList(line.split(" ")));
             
 </code>
 </pre></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>U</code> - Type of mapped input tuples.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mapper</code> - Mapper logic to be executed against each tuple.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Stream that will contain tuples of type <code>U</code> mapped and flattened from this
         stream's tuples.</dd>
</dl>
</li>
</ul>
<a name="split-int-org.apache.edgent.function.ToIntFunction-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>split</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&gt;&nbsp;split(int&nbsp;n,
                              <a href="../../../../../../org/apache/edgent/function/ToIntFunction.html" title="interface in org.apache.edgent.function">ToIntFunction</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;splitter)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#split-int-org.apache.edgent.function.ToIntFunction-">TStream</a></code></span></div>
<div class="block">Split a stream's tuples among <code>n</code> streams as specified by
 <code>splitter</code>.
 
 <P>
 For each tuple on the stream, <code>splitter.applyAsInt(tuple)</code> is
 called. The return value <code>r</code> determines the destination stream:
 </P>
 
 <pre>
 if r &lt; 0 the tuple is discarded
 else it is sent to the stream at position (r % n) in the returned array.
 </pre>

 <P>
 Each split <code>TStream</code> is exposed by the API. The user has full
 control over the each stream's processing pipeline. Each stream's
 pipeline must be declared explicitly. Each stream can have different
 processing pipelines.
 </P>
 <P>
 An N-way <code>split()</code> is logically equivalent to a collection of N
 <code>filter()</code> invocations, each with a predicate to select the tuples
 for its stream. <code>split()</code> is more efficient. Each tuple is analyzed
 only once by a single <code>splitter</code> instance to identify the
 destination stream. For example, these are logically equivalent:
 </P>
 <pre>
 List&lt;TStream&lt;String&gt;&gt; streams = stream.split(2, tuple -&gt; tuple.length());
 
 TStream&lt;String&gt; stream0 = stream.filter(tuple -&gt; (tuple.length() % 2) == 0);
 TStream&lt;String&gt; stream1 = stream.filter(tuple -&gt; (tuple.length() % 2) == 1);
 </pre>
 <P>
 Example of splitting a stream of log records by their level attribute:
 </P>
 
 <pre>
 <code>
 TStream&lt;LogRecord&gt; lrs = ...
 List&lt;&lt;TStream&lt;LogRecord&gt;&gt; splits = lrr.split(3, lr -&gt; {
            if (SEVERE.equals(lr.getLevel()))
                return 0;
            else if (WARNING.equals(lr.getLevel()))
                return 1;
            else
                return 2;
        });
 splits.get(0). ... // SEVERE log record processing pipeline
 splits.get(1). ... // WARNING log record  processing pipeline
 splits.get(2). ... // "other" log record processing pipeline
 </code>
 </pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>n</code> - the number of output streams</dd>
<dd><code>splitter</code> - the splitter function</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of <code>n</code> streams</dd>
</dl>
</li>
</ul>
<a name="split-java.lang.Class-org.apache.edgent.function.Function-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>split</h4>
<pre>public&nbsp;&lt;E extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;E&gt;&gt;&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html?is-external=true" title="class or interface in java.util">EnumMap</a>&lt;E,<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&gt;&nbsp;split(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;E&gt;&nbsp;enumClass,
                                                       <a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,E&gt;&nbsp;splitter)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#split-java.lang.Class-org.apache.edgent.function.Function-">TStream</a></code></span></div>
<div class="block">Split a stream's tuples among <code>enumClass.size</code> streams as specified by
 <code>splitter</code>.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>E</code> - Enum type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enumClass</code> - enum data to split</dd>
<dd><code>splitter</code> - the splitter function</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>EnumMap&lt;E,TStream&lt;T&gt;&gt;</dd>
</dl>
</li>
</ul>
<a name="peek-org.apache.edgent.function.Consumer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>peek</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;peek(<a href="../../../../../../org/apache/edgent/function/Consumer.html" title="interface in org.apache.edgent.function">Consumer</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;peeker)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#peek-org.apache.edgent.function.Consumer-">TStream</a></code></span></div>
<div class="block">Declare a stream that contains the same contents as this stream while
 peeking at each element using <code>peeker</code>. <BR>
 For each tuple <code>t</code> on this stream, <code>peeker.accept(t)</code> will be
 called.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>peeker</code> - Function to be called for each tuple.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code></dd>
</dl>
</li>
</ul>
<a name="sink-org.apache.edgent.oplet.core.Sink-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sink</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/edgent/topology/TSink.html" title="interface in org.apache.edgent.topology">TSink</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;sink(<a href="../../../../../../org/apache/edgent/oplet/core/Sink.html" title="class in org.apache.edgent.oplet.core">Sink</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;oplet)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#sink-org.apache.edgent.oplet.core.Sink-">TStream</a></code></span></div>
<div class="block">Sink (terminate) this stream using a oplet.
 This provides a richer api for a sink than
 <a href="../../../../../../org/apache/edgent/topology/TStream.html#sink-org.apache.edgent.function.Consumer-"><code>TStream.sink(Consumer)</code></a> with a full life-cycle of
 the oplet as well as easy access to
 <a href="../../../../../../org/apache/edgent/execution/services/RuntimeServices.html" title="interface in org.apache.edgent.execution.services"><code>runtime services</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>oplet</code> - Oplet processes each tuple without producing output.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>sink element representing termination of this stream.</dd>
</dl>
</li>
</ul>
<a name="pipe-org.apache.edgent.oplet.core.Pipe-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pipe</h4>
<pre>public&nbsp;&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;&nbsp;pipe(<a href="../../../../../../org/apache/edgent/oplet/core/Pipe.html" title="class in org.apache.edgent.oplet.core">Pipe</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,U&gt;&nbsp;pipe)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#pipe-org.apache.edgent.oplet.core.Pipe-">TStream</a></code></span></div>
<div class="block">Declare a stream that contains the output of the specified <a href="../../../../../../org/apache/edgent/oplet/core/Pipe.html" title="class in org.apache.edgent.oplet.core"><code>Pipe</code></a>
 oplet applied to this stream.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>U</code> - Tuple type of the returned stream.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pipe</code> - The <a href="../../../../../../org/apache/edgent/oplet/core/Pipe.html" title="class in org.apache.edgent.oplet.core"><code>Pipe</code></a> oplet.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Declared stream that contains the tuples emitted by the pipe
      oplet.</dd>
</dl>
</li>
</ul>
<a name="fanin-org.apache.edgent.oplet.core.FanIn-java.util.List-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fanin</h4>
<pre>public&nbsp;&lt;U&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;&nbsp;fanin(<a href="../../../../../../org/apache/edgent/oplet/core/FanIn.html" title="class in org.apache.edgent.oplet.core">FanIn</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,U&gt;&nbsp;fanin,
                            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&gt;&nbsp;others)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#fanin-org.apache.edgent.oplet.core.FanIn-java.util.List-">TStream</a></code></span></div>
<div class="block">Declare a stream that contains the output of the specified 
 <a href="../../../../../../org/apache/edgent/oplet/core/FanIn.html" title="class in org.apache.edgent.oplet.core"><code>FanIn</code></a> oplet applied to this stream and <code>others</code>.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>U</code> - Tuple type of the returned streams.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fanin</code> - The <a href="../../../../../../org/apache/edgent/oplet/core/FanIn.html" title="class in org.apache.edgent.oplet.core"><code>FanIn</code></a> oplet.</dd>
<dd><code>others</code> - The other input streams. 
        Must not be empty or contain duplicates or <code>this</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a stream that contains the tuples emitted by the oplet.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/edgent/topology/TStream.html#union-java.util.Set-"><code>TStream.union(Set)</code></a>, 
<a href="../../../../../../org/apache/edgent/topology/TStream.html#pipe-org.apache.edgent.oplet.core.Pipe-"><code>TStream.pipe(Pipe)</code></a>, 
<a href="../../../../../../org/apache/edgent/topology/TStream.html#sink-org.apache.edgent.oplet.core.Sink-"><code>TStream.sink(Sink)</code></a></dd>
</dl>
</li>
</ul>
<a name="last-int-org.apache.edgent.function.Function-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>last</h4>
<pre>public&nbsp;&lt;K&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TWindow.html" title="interface in org.apache.edgent.topology">TWindow</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,K&gt;&nbsp;last(int&nbsp;count,
                             <a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,K&gt;&nbsp;keyFunction)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#last-int-org.apache.edgent.function.Function-">TStream</a></code></span></div>
<div class="block">Declare a partitioned window that continually represents the last <code>count</code>
 tuples on this stream for each partition. Each partition independently maintains the last
 <code>count</code> tuples for each key seen on this stream.
 If no tuples have been seen on the stream for a key then the corresponding partition will be empty.
 <BR>
 The window is partitioned by each tuple's key, obtained by <code>keyFunction</code>.
 For each tuple on the stream <code>keyFunction.apply(tuple)</code> is called
 and the returned value is the tuple's key. For any two tuples <code>ta,tb</code> in a partition
 <code>keyFunction.apply(ta).equals(keyFunction.apply(tb))</code> is true.
 <BR>
 The key function must return keys that implement <code>equals()</code> and <code>hashCode()</code> correctly.
 <P>
 To create a window partitioned using the tuple as the key use <a href="../../../../../../org/apache/edgent/function/Functions.html#identity--"><code>identity()</code></a>
 as the key function.
 </P>
 <P>
 To create an unpartitioned window use a key function that returns a constant,
 by convention <a href="../../../../../../org/apache/edgent/function/Functions.html#unpartitioned--"><code>unpartitioned()</code></a> is recommended.
 </P></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - Key type.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>count</code> - Number of tuples to maintain in each partition.</dd>
<dd><code>keyFunction</code> - Function that defines the key for each tuple.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Window on this stream representing the last <code>count</code> tuples for each partition.</dd>
</dl>
</li>
</ul>
<a name="last-long-java.util.concurrent.TimeUnit-org.apache.edgent.function.Function-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>last</h4>
<pre>public&nbsp;&lt;K&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TWindow.html" title="interface in org.apache.edgent.topology">TWindow</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,K&gt;&nbsp;last(long&nbsp;time,
                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit,
                             <a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,K&gt;&nbsp;keyFunction)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#last-long-java.util.concurrent.TimeUnit-org.apache.edgent.function.Function-">TStream</a></code></span></div>
<div class="block">Declare a partitioned window that continually represents the last <code>time</code> seconds of 
 tuples on this stream for each partition. If no tuples have been 
 seen on the stream for a key in the last <code>time</code> seconds then the partition will be empty.
 Each partition independently maintains the last
 <code>count</code> tuples for each key seen on this stream.
 <BR>
 The window is partitioned by each tuple's key, obtained by <code>keyFunction</code>.
 For each tuple on the stream <code>keyFunction.apply(tuple)</code> is called
 and the returned value is the tuple's key. For any two tuples <code>ta,tb</code> in a partition
 <code>keyFunction.apply(ta).equals(keyFunction.apply(tb))</code> is true.
 <BR>
 The key function must return keys that implement <code>equals()</code> and <code>hashCode()</code> correctly.
 <P>
 To create a window partitioned using the tuple as the key use <a href="../../../../../../org/apache/edgent/function/Functions.html#identity--"><code>identity()</code></a>
 as the key function.
 </P>
 <P>
 To create an unpartitioned window use a key function that returns a constant,
 by convention <a href="../../../../../../org/apache/edgent/function/Functions.html#unpartitioned--"><code>unpartitioned()</code></a> is recommended.
 </P></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - Key type.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>time</code> - Time to retain a tuple in a partition.</dd>
<dd><code>unit</code> - Unit for <code>time</code>.</dd>
<dd><code>keyFunction</code> - Function that defines the key for each tuple.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Partitioned window on this stream representing the last <code>count</code> tuple.</dd>
</dl>
</li>
</ul>
<a name="join-org.apache.edgent.function.Function-org.apache.edgent.topology.TWindow-org.apache.edgent.function.BiFunction-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>join</h4>
<pre>public&nbsp;&lt;J,U,K&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;J&gt;&nbsp;join(<a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,K&gt;&nbsp;keyer,
                               <a href="../../../../../../org/apache/edgent/topology/TWindow.html" title="interface in org.apache.edgent.topology">TWindow</a>&lt;U,K&gt;&nbsp;twindow,
                               <a href="../../../../../../org/apache/edgent/function/BiFunction.html" title="interface in org.apache.edgent.function">BiFunction</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;U&gt;,J&gt;&nbsp;joiner)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#join-org.apache.edgent.function.Function-org.apache.edgent.topology.TWindow-org.apache.edgent.function.BiFunction-">TStream</a></code></span></div>
<div class="block">Join this stream with a partitioned window of type <code>U</code> with key type <code>K</code>.
 For each tuple on this stream, it is joined with the contents of <code>window</code>
 for the key <code>keyer.apply(tuple)</code>. Each tuple is
 passed into <code>joiner</code> and the return value is submitted to the
 returned stream. If call returns null then no tuple is submitted.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>J</code> - Tuple type of result stream</dd>
<dd><code>U</code> - Tuple type of window to join with</dd>
<dd><code>K</code> - Key type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyer</code> - Key function for this stream to match the window's key.</dd>
<dd><code>twindow</code> - Keyed window to join this stream with.</dd>
<dd><code>joiner</code> - Join function.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A stream that is the results of joining this stream with
         <code>window</code>.</dd>
</dl>
</li>
</ul>
<a name="joinLast-org.apache.edgent.function.Function-org.apache.edgent.topology.TStream-org.apache.edgent.function.Function-org.apache.edgent.function.BiFunction-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>joinLast</h4>
<pre>public&nbsp;&lt;J,U,K&gt;&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;J&gt;&nbsp;joinLast(<a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,K&gt;&nbsp;keyer,
                                   <a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;U&gt;&nbsp;lastStream,
                                   <a href="../../../../../../org/apache/edgent/function/Function.html" title="interface in org.apache.edgent.function">Function</a>&lt;U,K&gt;&nbsp;lastStreamKeyer,
                                   <a href="../../../../../../org/apache/edgent/function/BiFunction.html" title="interface in org.apache.edgent.function">BiFunction</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>,U,J&gt;&nbsp;joiner)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#joinLast-org.apache.edgent.function.Function-org.apache.edgent.topology.TStream-org.apache.edgent.function.Function-org.apache.edgent.function.BiFunction-">TStream</a></code></span></div>
<div class="block">Join this stream with the last tuple seen on a stream of type <code>U</code>
 with partitioning.
 For each tuple on this
 stream, it is joined with the last tuple seen on <code>lastStream</code>
 with a matching key (of type <code>K</code>).
 <BR>
 Each tuple <code>t</code> on this stream will match the last tuple
 <code>u</code> on <code>lastStream</code> if
 <code>keyer.apply(t).equals(lastStreamKeyer.apply(u))</code>
 is true.
 <BR>
 The assumption is made that
 the key classes correctly implement the contract for <code>equals</code> and
 <code>hashCode()</code>.
 <P>Each tuple is
 passed into <code>joiner</code> and the return value is submitted to the
 returned stream. If call returns null then no tuple is submitted.
 </P></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>J</code> - Tuple type of result stream</dd>
<dd><code>U</code> - Tuple type of stream to join with</dd>
<dd><code>K</code> - Key type</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyer</code> - Key function for this stream</dd>
<dd><code>lastStream</code> - Stream to join with.</dd>
<dd><code>lastStreamKeyer</code> - Key function for <code>lastStream</code></dd>
<dd><code>joiner</code> - Join function.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A stream that is the results of joining this stream with
         <code>lastStream</code>.</dd>
</dl>
</li>
</ul>
<a name="union-java.util.Set-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>union</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;union(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&gt;&nbsp;others)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#union-java.util.Set-">TStream</a></code></span></div>
<div class="block">Declare a stream that will contain all tuples from this stream and all the
 streams in <code>others</code>. A stream cannot be unioned with itself, in
 this case the union will only contain tuples from this stream once. If
 <code>others</code> is empty or only contains <code>this</code> then <code>this</code>
 is returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>others</code> - Stream to union with this stream.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A stream that is the union of <code>this</code> and <code>others</code>.</dd>
</dl>
</li>
</ul>
<a name="tag-java.lang.String...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tag</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;tag(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;values)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#tag-java.lang.String...-">TStream</a></code></span></div>
<div class="block">Adds the specified tags to the stream.  Adding the same tag to 
 a stream multiple times will not change the result beyond the 
 initial application.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - Tag values.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The tagged stream.</dd>
</dl>
</li>
</ul>
<a name="getTags--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTags</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getTags()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#getTags--">TStream</a></code></span></div>
<div class="block">Returns the set of tags associated with this stream.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>set of tags</dd>
</dl>
</li>
</ul>
<a name="alias-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>alias</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/edgent/topology/TStream.html" title="interface in org.apache.edgent.topology">TStream</a>&lt;<a href="../../../../../../org/apache/edgent/topology/spi/graph/ConnectorStream.html" title="type parameter in ConnectorStream">T</a>&gt;&nbsp;alias(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;alias)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#alias-java.lang.String-">TStream</a></code></span></div>
<div class="block">Set an alias for the stream.
 <p>
 The alias must be unique within the topology.
 The alias may be used in various contexts:
 </p>
 <ul>
 <li>Runtime control services for the stream are registered with this alias.</li>
 </ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>alias</code> - an alias for the stream.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/edgent/execution/services/ControlService.html" title="interface in org.apache.edgent.execution.services"><code>ControlService</code></a></dd>
</dl>
</li>
</ul>
<a name="getAlias--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAlias</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getAlias()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/edgent/topology/TStream.html#getAlias--">TStream</a></code></span></div>
<div class="block">Returns the stream's alias if any.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the alias. null if one has not be set.</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<div class="block">Intended only as a debug aid and content is not guaranteed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></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="class-use/ConnectorStream.html">Use</a></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><a href="../../../../../../org/apache/edgent/topology/spi/graph/AbstractTWindow.html" title="class in org.apache.edgent.topology.spi.graph"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/edgent/topology/spi/graph/GraphTopology.html" title="class in org.apache.edgent.topology.spi.graph"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/edgent/topology/spi/graph/ConnectorStream.html" target="_top">Frames</a></li>
<li><a href="ConnectorStream.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>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2016&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
