KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > java > nio > DirectCharBufferRU


1 /*
2  * @(#)Direct-X-Buffer.java 1.48 04/05/03
3  *
4  * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
5  * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
6  */

7
8 // -- This file was mechanically generated: Do not edit! -- //
9

10 package java.nio;
11
12 import sun.misc.Cleaner;
13 import sun.misc.Unsafe;
14 import sun.nio.ch.DirectBuffer;
15 import sun.nio.ch.FileChannelImpl;
16
17
18 class DirectCharBufferRU
19
20
21
22     extends DirectCharBufferU JavaDoc
23
24     implements DirectBuffer
25 {
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144     // For duplicates and slices
145
//
146
DirectCharBufferRU(DirectBuffer db, // package-private
147
int mark, int pos, int lim, int cap,
148                    int off)
149     {
150
151
152
153
154
155
156
157
158     super(db, mark, pos, lim, cap, off);
159
160     }
161
162     public CharBuffer JavaDoc slice() {
163     int pos = this.position();
164     int lim = this.limit();
165     assert (pos <= lim);
166     int rem = (pos <= lim ? lim - pos : 0);
167     int off = (pos << 1);
168         assert (off >= 0);
169     return new DirectCharBufferRU JavaDoc(this, -1, 0, rem, rem, off);
170     }
171
172     public CharBuffer JavaDoc duplicate() {
173     return new DirectCharBufferRU JavaDoc(this,
174                           this.markValue(),
175                           this.position(),
176                           this.limit(),
177                           this.capacity(),
178                           0);
179     }
180
181     public CharBuffer JavaDoc asReadOnlyBuffer() {
182
183
184
185
186
187
188
189
190     return duplicate();
191
192     }
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243     public CharBuffer JavaDoc put(char x) {
244
245
246
247
248     throw new ReadOnlyBufferException JavaDoc();
249
250     }
251
252     public CharBuffer JavaDoc put(int i, char x) {
253
254
255
256
257     throw new ReadOnlyBufferException JavaDoc();
258
259     }
260
261     public CharBuffer JavaDoc put(CharBuffer JavaDoc src) {
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298     throw new ReadOnlyBufferException JavaDoc();
299
300     }
301
302     public CharBuffer JavaDoc put(char[] src, int offset, int length) {
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325     throw new ReadOnlyBufferException JavaDoc();
326
327     }
328     
329     public CharBuffer JavaDoc compact() {
330
331
332
333
334
335
336
337
338
339
340
341     throw new ReadOnlyBufferException JavaDoc();
342
343     }
344
345     public boolean isDirect() {
346     return true;
347     }
348
349     public boolean isReadOnly() {
350     return true;
351     }
352
353
354
355
356     public String JavaDoc toString(int start, int end) {
357     if ((end > limit()) || (start > end))
358         throw new IndexOutOfBoundsException JavaDoc();
359     try {
360         int len = end - start;
361         char[] ca = new char[len];
362         CharBuffer JavaDoc cb = CharBuffer.wrap(ca);
363         CharBuffer JavaDoc db = this.duplicate();
364         db.position(start);
365         db.limit(end);
366         cb.put(db);
367         return new String JavaDoc(ca);
368     } catch (StringIndexOutOfBoundsException JavaDoc x) {
369         throw new IndexOutOfBoundsException JavaDoc();
370     }
371     }
372
373
374     // --- Methods to support CharSequence ---
375

376     public CharSequence JavaDoc subSequence(int start, int end) {
377     int pos = position();
378     int lim = limit();
379     assert (pos <= lim);
380     pos = (pos <= lim ? pos : lim);
381     int len = lim - pos;
382
383     if ((start < 0) || (end > len) || (start > end))
384         throw new IndexOutOfBoundsException JavaDoc();
385     int sublen = end - start;
386     int off = (pos + start) << 1;
387         assert (off >= 0);
388     return new DirectCharBufferRU JavaDoc(this, -1, 0, sublen, sublen, off);
389     }
390
391
392
393
394
395
396
397     public ByteOrder JavaDoc order() {
398
399
400
401
402
403     return ((ByteOrder.nativeOrder() != ByteOrder.BIG_ENDIAN)
404         ? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN);
405
406     }
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433 }
434
Popular Tags