View Javadoc

1   /*
2    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3    *
4    * Copyright (c) 2007-2010 Oracle and/or its affiliates. All rights reserved.
5    *
6    * The contents of this file are subject to the terms of either the GNU
7    * General Public License Version 2 only ("GPL") or the Common Development
8    * and Distribution License("CDDL") (collectively, the "License").  You
9    * may not use this file except in compliance with the License.  You can
10   * obtain a copy of the License at
11   * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
12   * or packager/legal/LICENSE.txt.  See the License for the specific
13   * language governing permissions and limitations under the License.
14   *
15   * When distributing the software, include this License Header Notice in each
16   * file and include the License file at packager/legal/LICENSE.txt.
17   *
18   * GPL Classpath Exception:
19   * Oracle designates this particular file as subject to the "Classpath"
20   * exception as provided by Oracle in the GPL Version 2 section of the License
21   * file that accompanied this code.
22   *
23   * Modifications:
24   * If applicable, add the following below the License Header, with the fields
25   * enclosed by brackets [] replaced by your own identifying information:
26   * "Portions Copyright [year] [name of copyright owner]"
27   *
28   * Contributor(s):
29   * If you wish your version of this file to be governed by only the CDDL or
30   * only the GPL Version 2, indicate your decision by adding "[Contributor]
31   * elects to include this software in this distribution under the [CDDL or GPL
32   * Version 2] license."  If you don't indicate a single choice of license, a
33   * recipient has the option to distribute your version of this file under
34   * either the CDDL, the GPL Version 2 or to extend the choice of license to
35   * its licensees as provided above.  However, if you add GPL Version 2 code
36   * and therefore, elected the GPL Version 2 license, then the option applies
37   * only if the new code is made subject to such option by the copyright
38   * holder.
39   */
40  
41  package com.sun.grizzly.http.algorithms;
42  
43  import com.sun.grizzly.util.Interceptor;
44  import java.nio.ByteBuffer;
45  
46  
47  /**
48   * This algorithm doesn't parse the bytes, delegating the work to the 
49   * InternalInputBuffer.
50   *
51   * @author Jeanfrancois Arcand
52   */
53  public class NoParsingAlgorithm extends StreamAlgorithmBase{
54  
55      
56      public NoParsingAlgorithm() {
57          super();
58      }
59      
60      
61      /**
62       * Do nothing, as the ByteBufferInputStream will take care of reading the 
63       * missing bytes.
64       */
65      @Override
66      public ByteBuffer preParse(ByteBuffer byteBuffer){ 
67          return byteBuffer;
68      }
69      
70      
71      /**
72       * Do not parse the bytes and automatically flip the {@link ByteBuffer}
73       */
74      public boolean parse(ByteBuffer byteBuffer){
75          byteBuffer.flip();
76          return true;
77      }
78      
79      
80      /**
81       * Return the {@link Interceptor} used by this algorithm.
82       */
83      public Interceptor getHandler(){
84          return handler;
85      }
86      
87      
88      /***
89       * Recycle this object.
90       */
91      @Override
92      public void recycle(){
93          socketChannel = null;
94          if ( handler != null){
95              handler.attachChannel(null);
96          }
97      }    
98  }