View Javadoc

1   //
2   //  ========================================================================
3   //  Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
4   //  ------------------------------------------------------------------------
5   //  All rights reserved. This program and the accompanying materials
6   //  are made available under the terms of the Eclipse Public License v1.0
7   //  and Apache License v2.0 which accompanies this distribution.
8   //
9   //      The Eclipse Public License is available at
10  //      http://www.eclipse.org/legal/epl-v10.html
11  //
12  //      The Apache License v2.0 is available at
13  //      http://www.opensource.org/licenses/apache2.0.php
14  //
15  //  You may elect to redistribute this code under either of these licenses.
16  //  ========================================================================
17  //
18  
19  package org.eclipse.jetty.websocket.common.frames;
20  
21  import java.nio.ByteBuffer;
22  
23  import org.eclipse.jetty.websocket.api.extensions.Frame;
24  
25  /**
26   * Immutable, Read-only, Frame implementation.
27   */
28  public class ReadOnlyDelegatedFrame implements Frame
29  {
30      private final Frame delegate;
31      
32      public ReadOnlyDelegatedFrame(Frame frame)
33      {
34          this.delegate = frame;
35      }
36  
37      @Override
38      public byte[] getMask()
39      {
40          return delegate.getMask();
41      }
42  
43      @Override
44      public byte getOpCode()
45      {
46          return delegate.getOpCode();
47      }
48  
49      @Override
50      public ByteBuffer getPayload()
51      {
52          if(!delegate.hasPayload()) {
53              return null;
54          }
55          return delegate.getPayload().asReadOnlyBuffer();
56      }
57  
58      @Override
59      public int getPayloadLength()
60      {
61          return delegate.getPayloadLength();
62      }
63  
64      @Override
65      public Type getType()
66      {
67          return delegate.getType();
68      }
69  
70      @Override
71      public boolean hasPayload()
72      {
73          return delegate.hasPayload();
74      }
75  
76      @Override
77      public boolean isFin()
78      {
79          return delegate.isFin();
80      }
81  
82      @Override
83      @Deprecated
84      public boolean isLast()
85      {
86          return delegate.isLast();
87      }
88  
89      @Override
90      public boolean isMasked()
91      {
92          return delegate.isMasked();
93      }
94  
95      @Override
96      public boolean isRsv1()
97      {
98          return delegate.isRsv1();
99      }
100 
101     @Override
102     public boolean isRsv2()
103     {
104         return delegate.isRsv2();
105     }
106 
107     @Override
108     public boolean isRsv3()
109     {
110         return delegate.isRsv3();
111     }
112 }