<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>ConsumeToLinearWhitespaceDecodingState xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/mina/filter/codec/statemachine/ConsumeToLinearWhitespaceDecodingState.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_comment"> *    <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.filter.codec.statemachine;
<a class="jxr_linenumber" name="21" href="#21">21</a>  
<a class="jxr_linenumber" name="22" href="#22">22</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="23" href="#23">23</a>  <em class="jxr_javadoccomment"> * {@link DecodingState} which consumes all bytes until a space (0x20) or tab </em>
<a class="jxr_linenumber" name="24" href="#24">24</a>  <em class="jxr_javadoccomment"> * (0x09) character is reached. The terminator is skipped.</em>
<a class="jxr_linenumber" name="25" href="#25">25</a>  <em class="jxr_javadoccomment"> * </em>
<a class="jxr_linenumber" name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="http://mina.apache.org" target="alexandria_uri">http://mina.apache.org</a>"&gt;Apache MINA Project&lt;/a&gt;</em>
<a class="jxr_linenumber" name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/mina/filter/codec/statemachine/ConsumeToLinearWhitespaceDecodingState.html">ConsumeToLinearWhitespaceDecodingState</a> <strong class="jxr_keyword">extends</strong>
<a class="jxr_linenumber" name="29" href="#29">29</a>          <a href="../../../../../../org/apache/mina/filter/codec/statemachine/ConsumeToDynamicTerminatorDecodingState.html">ConsumeToDynamicTerminatorDecodingState</a> {
<a class="jxr_linenumber" name="30" href="#30">30</a>  
<a class="jxr_linenumber" name="31" href="#31">31</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="32" href="#32">32</a>  <em class="jxr_javadoccomment">     * @return &lt;code&gt;true&lt;/code&gt; if the given byte is a space or a tab</em>
<a class="jxr_linenumber" name="33" href="#33">33</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="34" href="#34">34</a>      @Override
<a class="jxr_linenumber" name="35" href="#35">35</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isTerminator(byte b) {
<a class="jxr_linenumber" name="36" href="#36">36</a>          <strong class="jxr_keyword">return</strong> (b == ' ') || (b == '\t');
<a class="jxr_linenumber" name="37" href="#37">37</a>      }
<a class="jxr_linenumber" name="38" href="#38">38</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

