View Javadoc

    1   /*
    2    * Copyright 2012 The Netty Project
    3    *
    4    * The Netty Project licenses this file to you under the Apache License,
    5    * version 2.0 (the "License"); you may not use this file except in compliance
    6    * with the License. You may obtain a copy of the License at:
    7    *
    8    *   http://www.apache.org/licenses/LICENSE-2.0
    9    *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
    12   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
    13   * License for the specific language governing permissions and limitations
    14   * under the License.
    15   */
    16  package org.jboss.netty.handler.codec.spdy;
    17
    18  import org.jboss.netty.util.internal.StringUtil;
    19
    20  /**
    21   * The default {@link SpdyGoAwayFrame} implementation.
    22   */
    23  public class DefaultSpdyGoAwayFrame implements SpdyGoAwayFrame {
    24
    25      private int lastGoodStreamId;
    26      private SpdySessionStatus status;
    27
    28      /**
    29       * Creates a new instance.
    30       *
    31       * @param lastGoodStreamId the Last-good-stream-ID of this frame
    32       */
    33      public DefaultSpdyGoAwayFrame(int lastGoodStreamId) {
    34          this(lastGoodStreamId, 0);
    35      }
    36
    37      /**
    38       * Creates a new instance.
    39       *
    40       * @param lastGoodStreamId the Last-good-stream-ID of this frame
    41       * @param statusCode       the Status code of this frame
    42       */
    43      public DefaultSpdyGoAwayFrame(int lastGoodStreamId, int statusCode) {
    44          this(lastGoodStreamId, SpdySessionStatus.valueOf(statusCode));
    45      }
    46
    47      /**
    48       * Creates a new instance.
    49       *
    50       * @param lastGoodStreamId the Last-good-stream-ID of this frame
    51       * @param status           the status of this frame
    52       */
    53      public DefaultSpdyGoAwayFrame(int lastGoodStreamId, SpdySessionStatus status) {
    54          setLastGoodStreamId(lastGoodStreamId);
    55          setStatus(status);
    56      }
    57
    58      public int getLastGoodStreamID() {
    59          return getLastGoodStreamId();
    60      }
    61
    62      public int getLastGoodStreamId() {
    63          return lastGoodStreamId;
    64      }
    65
    66      public void setLastGoodStreamID(int lastGoodStreamId) {
    67          setLastGoodStreamId(lastGoodStreamId);
    68      }
    69
    70      public void setLastGoodStreamId(int lastGoodStreamId) {
    71          if (lastGoodStreamId < 0) {
    72              throw new IllegalArgumentException("Last-good-stream-ID"
    73                      + " cannot be negative: " + lastGoodStreamId);
    74          }
    75          this.lastGoodStreamId = lastGoodStreamId;
    76      }
    77
    78      public SpdySessionStatus getStatus() {
    79          return status;
    80      }
    81
    82      public void setStatus(SpdySessionStatus status) {
    83          this.status = status;
    84      }
    85
    86      @Override
    87      public String toString() {
    88          StringBuilder buf = new StringBuilder();
    89          buf.append(getClass().getSimpleName());
    90          buf.append(StringUtil.NEWLINE);
    91          buf.append("--> Last-good-stream-ID = ");
    92          buf.append(lastGoodStreamId);
    93          buf.append(StringUtil.NEWLINE);
    94          buf.append("--> Status: ");
    95          buf.append(status.toString());
    96          return buf.toString();
    97      }
    98  }