<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>Decoder.TextStream</title>
<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="Decoder.TextStream";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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><a href="../../jakarta/websocket/Decoder.Text.html" title="interface in jakarta.websocket"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/websocket/DeploymentException.html" title="class in jakarta.websocket"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/websocket/Decoder.TextStream.html" target="_top">Frames</a></li>
<li><a href="Decoder.TextStream.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>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">jakarta.websocket</div>
<h2 title="Interface Decoder.TextStream" class="title">Interface Decoder.TextStream&lt;T&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - The type of the object that is decoded</dd>
</dl>
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../jakarta/websocket/Decoder.html" title="interface in jakarta.websocket">Decoder</a></dd>
</dl>
<dl>
<dt>Enclosing interface:</dt>
<dd><a href="../../jakarta/websocket/Decoder.html" title="interface in jakarta.websocket">Decoder</a></dd>
</dl>
<hr>
<br>
<pre>public static interface <span class="typeNameLabel">Decoder.TextStream&lt;T&gt;</span>
extends <a href="../../jakarta/websocket/Decoder.html" title="interface in jakarta.websocket">Decoder</a></pre>
<div class="block">This interface defines how a custom object of type T is decoded from a web socket message in the form of a
 character stream.</div>
</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>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.jakarta.websocket.Decoder">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;jakarta.websocket.<a href="../../jakarta/websocket/Decoder.html" title="interface in jakarta.websocket">Decoder</a></h3>
<code><a href="../../jakarta/websocket/Decoder.Binary.html" title="interface in jakarta.websocket">Decoder.Binary</a>&lt;<a href="../../jakarta/websocket/Decoder.Binary.html" title="type parameter in Decoder.Binary">T</a>&gt;, <a href="../../jakarta/websocket/Decoder.BinaryStream.html" title="interface in jakarta.websocket">Decoder.BinaryStream</a>&lt;<a href="../../jakarta/websocket/Decoder.BinaryStream.html" title="type parameter in Decoder.BinaryStream">T</a>&gt;, <a href="../../jakarta/websocket/Decoder.Text.html" title="interface in jakarta.websocket">Decoder.Text</a>&lt;<a href="../../jakarta/websocket/Decoder.Text.html" title="type parameter in Decoder.Text">T</a>&gt;, <a href="../../jakarta/websocket/Decoder.TextStream.html" title="interface in jakarta.websocket">Decoder.TextStream</a>&lt;<a href="../../jakarta/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&gt;</code></li>
</ul>
</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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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="../../jakarta/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../jakarta/websocket/Decoder.TextStream.html#decode-java.io.Reader-">decode</a></span>(java.io.Reader&nbsp;reader)</code>
<div class="block">Reads the websocket message from the implementation provided Reader and decodes it into an instance of the
 supplied object type.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.jakarta.websocket.Decoder">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;jakarta.websocket.<a href="../../jakarta/websocket/Decoder.html" title="interface in jakarta.websocket">Decoder</a></h3>
<code><a href="../../jakarta/websocket/Decoder.html#destroy--">destroy</a>, <a href="../../jakarta/websocket/Decoder.html#init-jakarta.websocket.EndpointConfig-">init</a></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="decode-java.io.Reader-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>decode</h4>
<pre><a href="../../jakarta/websocket/Decoder.TextStream.html" title="type parameter in Decoder.TextStream">T</a>&nbsp;decode(java.io.Reader&nbsp;reader)
  throws <a href="../../jakarta/websocket/DecodeException.html" title="class in jakarta.websocket">DecodeException</a>,
         java.io.IOException</pre>
<div class="block">Reads the websocket message from the implementation provided Reader and decodes it into an instance of the
 supplied object type.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reader</code> - the reader from which to read the web socket message.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the instance of the object that is the decoded web socket message.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../jakarta/websocket/DecodeException.html" title="class in jakarta.websocket">DecodeException</a></code> - If the data from the provided reader cannot be decoded to type T</dd>
<dd><code>java.io.IOException</code> - If an error occurs reading from the reader</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><a href="../../jakarta/websocket/Decoder.Text.html" title="interface in jakarta.websocket"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../jakarta/websocket/DeploymentException.html" title="class in jakarta.websocket"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?jakarta/websocket/Decoder.TextStream.html" target="_top">Frames</a></li>
<li><a href="Decoder.TextStream.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>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>
