1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 */package org/apache/mina/common/package-summary.html">class="comment"> */package org.apache.mina.common;
19
20 import java.io.FilterOutputStream;
21 import java.nio.ByteOrder;
22 import java.nio.CharBuffer;
23 import java.nio.DoubleBuffer;
24 import java.nio.FloatBuffer;
25 import java.nio.IntBuffer;
26 import java.nio.LongBuffer;
27 import java.nio.ShortBuffer;
28 import java.nio.charset.CharacterCodingException;
29 import java.nio.charset.CharsetDecoder;
30 import java.nio.charset.CharsetEncoder;
31
32 /***
33 * A {@link ByteBuffer} that wraps a buffer and proxies any operations to it.
34 * <p>
35 * You can think this class like a {@link FilterOutputStream}. All operations
36 * are proxied by default so that you can extend this class and override existing
37 * operations selectively. You can introduce new operations, too.
38 *
39 * @author Trustin Lee (trustin@apache.org)
40 * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $
41 */
42 public class ByteBufferProxy extends ByteBuffer
43 {
44
45 /***
46 * The buffer proxied by this proxy.
47 */
48 protected ByteBuffer buf;
49
50 /***
51 * Create a new instance.
52 * @param buf the buffer to be proxied
53 */
54 protected ByteBufferProxy( ByteBuffer buf )
55 {
56 if( buf == null )
57 {
58 throw new NullPointerException( "buf" );
59 }
60 this.buf = buf;
61 }
62
63 public void acquire()
64 {
65 buf.acquire();
66 }
67
68 public void release()
69 {
70 buf.release();
71 }
72
73 public boolean isDirect()
74 {
75 return buf.isDirect();
76 }
77
78 public java.nio.ByteBuffer buf()
79 {
80 return buf.buf();
81 }
82
83 public int capacity()
84 {
85 return buf.capacity();
86 }
87
88 public int position()
89 {
90 return buf.position();
91 }
92
93 public ByteBuffer position( int newPosition )
94 {
95 buf.position( newPosition );
96 return this;
97 }
98
99 public int limit()
100 {
101 return buf.limit();
102 }
103
104 public ByteBuffer limit( int newLimit )
105 {
106 buf.limit( newLimit );
107 return this;
108 }
109
110 public ByteBuffer mark()
111 {
112 buf.mark();
113 return this;
114 }
115
116 public ByteBuffer reset()
117 {
118 buf.reset();
119 return this;
120 }
121
122 public ByteBuffer clear()
123 {
124 buf.clear();
125 return this;
126 }
127
128 public ByteBuffer flip()
129 {
130 buf.flip();
131 return this;
132 }
133
134 public ByteBuffer rewind()
135 {
136 buf.rewind();
137 return this;
138 }
139
140 public int remaining()
141 {
142 return buf.remaining();
143 }
144
145 public boolean hasRemaining()
146 {
147 return buf.hasRemaining();
148 }
149
150 public byte get()
151 {
152 return buf.get();
153 }
154
155 public short getUnsigned()
156 {
157 return buf.getUnsigned();
158 }
159
160 public ByteBuffer put( byte b )
161 {
162 buf.put( b );
163 return this;
164 }
165
166 public byte get( int index )
167 {
168 return buf.get( index );
169 }
170
171 public short getUnsigned( int index )
172 {
173 return buf.getUnsigned( index );
174 }
175
176 public ByteBuffer put( int index, byte b )
177 {
178 buf.put( index, b );
179 return this;
180 }
181
182 public ByteBuffer get( byte[] dst, int offset, int length )
183 {
184 buf.get( dst, offset, length );
185 return this;
186 }
187
188 public ByteBuffer get( byte[] dst )
189 {
190 buf.get( dst );
191 return this;
192 }
193
194 public ByteBuffer put( ByteBuffer src )
195 {
196 buf.put( src );
197 return this;
198 }
199
200 public ByteBuffer put( java.nio.ByteBuffer src )
201 {
202 buf.put( src );
203 return this;
204 }
205
206 public ByteBuffer put( byte[] src, int offset, int length )
207 {
208 buf.put( src, offset, length );
209 return this;
210 }
211
212 public ByteBuffer put( byte[] src )
213 {
214 buf.put( src );
215 return this;
216 }
217
218 public ByteBuffer compact()
219 {
220 buf.compact();
221 return this;
222 }
223
224 public String toString()
225 {
226 return buf.toString();
227 }
228
229 public int hashCode()
230 {
231 return buf.hashCode();
232 }
233
234 public boolean equals( Object ob )
235 {
236 return buf.equals( ob );
237 }
238
239 public int compareTo( ByteBuffer that )
240 {
241 return buf.compareTo( that );
242 }
243
244 public ByteOrder order()
245 {
246 return buf.order();
247 }
248
249 public ByteBuffer order( ByteOrder bo )
250 {
251 buf.order( bo );
252 return this;
253 }
254
255 public char getChar()
256 {
257 return buf.getChar();
258 }
259
260 public ByteBuffer putChar( char value )
261 {
262 buf.putChar( value );
263 return this;
264 }
265
266 public char getChar( int index )
267 {
268 return buf.getChar( index );
269 }
270
271 public ByteBuffer putChar( int index, char value )
272 {
273 buf.putChar( index, value );
274 return this;
275 }
276
277 public CharBuffer asCharBuffer()
278 {
279 return buf.asCharBuffer();
280 }
281
282 public short getShort()
283 {
284 return buf.getShort();
285 }
286
287 public int getUnsignedShort()
288 {
289 return buf.getUnsignedShort();
290 }
291
292 public ByteBuffer putShort( short value )
293 {
294 buf.putShort( value );
295 return this;
296 }
297
298 public short getShort( int index )
299 {
300 return buf.getShort( index );
301 }
302
303 public int getUnsignedShort( int index )
304 {
305 return buf.getUnsignedShort( index );
306 }
307
308 public ByteBuffer putShort( int index, short value )
309 {
310 buf.putShort( index, value );
311 return this;
312 }
313
314 public ShortBuffer asShortBuffer()
315 {
316 return buf.asShortBuffer();
317 }
318
319 public int getInt()
320 {
321 return buf.getInt();
322 }
323
324 public long getUnsignedInt()
325 {
326 return buf.getUnsignedInt();
327 }
328
329 public ByteBuffer putInt( int value )
330 {
331 buf.putInt( value );
332 return this;
333 }
334
335 public int getInt( int index )
336 {
337 return buf.getInt( index );
338 }
339
340 public long getUnsignedInt( int index )
341 {
342 return buf.getUnsignedInt( index );
343 }
344
345 public ByteBuffer putInt( int index, int value )
346 {
347 buf.putInt( index, value );
348 return this;
349 }
350
351 public IntBuffer asIntBuffer()
352 {
353 return buf.asIntBuffer();
354 }
355
356 public long getLong()
357 {
358 return buf.getLong();
359 }
360
361 public ByteBuffer putLong( long value )
362 {
363 buf.putLong( value );
364 return this;
365 }
366
367 public long getLong( int index )
368 {
369 return buf.getLong( index );
370 }
371
372 public ByteBuffer putLong( int index, long value )
373 {
374 buf.putLong( index, value );
375 return this;
376 }
377
378 public LongBuffer asLongBuffer()
379 {
380 return buf.asLongBuffer();
381 }
382
383 public float getFloat()
384 {
385 return buf.getFloat();
386 }
387
388 public ByteBuffer putFloat( float value )
389 {
390 buf.putFloat( value );
391 return this;
392 }
393
394 public float getFloat( int index )
395 {
396 return buf.getFloat( index );
397 }
398
399 public ByteBuffer putFloat( int index, float value )
400 {
401 buf.putFloat( index, value );
402 return this;
403 }
404
405 public FloatBuffer asFloatBuffer()
406 {
407 return buf.asFloatBuffer();
408 }
409
410 public double getDouble()
411 {
412 return buf.getDouble();
413 }
414
415 public ByteBuffer putDouble( double value )
416 {
417 buf.putDouble( value );
418 return this;
419 }
420
421 public double getDouble( int index )
422 {
423 return buf.getDouble( index );
424 }
425
426 public ByteBuffer putDouble( int index, double value )
427 {
428 buf.putDouble( index, value );
429 return this;
430 }
431
432 public DoubleBuffer asDoubleBuffer()
433 {
434 return buf.asDoubleBuffer();
435 }
436
437 public String getHexDump()
438 {
439 return buf.getHexDump();
440 }
441
442 public String getString( int fieldSize, CharsetDecoder decoder )
443 throws CharacterCodingException
444 {
445 return buf.getString( fieldSize, decoder );
446 }
447
448 public String getString( CharsetDecoder decoder )
449 throws CharacterCodingException
450 {
451 return buf.getString( decoder );
452 }
453
454 public ByteBuffer putString( CharSequence in, int fieldSize,
455 CharsetEncoder encoder )
456 throws CharacterCodingException
457 {
458 buf.putString( in, fieldSize, encoder );
459 return this;
460 }
461
462 public ByteBuffer putString( CharSequence in, CharsetEncoder encoder )
463 throws CharacterCodingException
464 {
465 buf.putString( in, encoder );
466 return this;
467 }
468
469 public ByteBuffer skip( int size )
470 {
471 buf.skip( size );
472 return this;
473 }
474
475 public ByteBuffer fill( byte value, int size )
476 {
477 buf.fill( value, size );
478 return this;
479 }
480
481 public ByteBuffer fillAndReset( byte value, int size )
482 {
483 buf.fillAndReset( value, size );
484 return this;
485 }
486
487 public ByteBuffer fill( int size )
488 {
489 buf.fill( size );
490 return this;
491 }
492
493 public ByteBuffer fillAndReset( int size )
494 {
495 buf.fillAndReset( size );
496 return this;
497 }
498
499 public boolean isAutoExpand()
500 {
501 return buf.isAutoExpand();
502 }
503
504 public ByteBuffer setAutoExpand( boolean autoExpand )
505 {
506 buf.setAutoExpand( autoExpand );
507 return this;
508 }
509 }